Hello @Piney1930 ,
The MCDU buttons are controlled by “H-command”. There is no native support for H-commands in my tool, but you can easily use the execute_calculator_code method, which are the so called “X-commands” in my tool. Below I show the list of commands for the left MCDU. If I remember well, FBW doesn’t support the right MCDU (or that should have changed recently).
In the below, I just copied the code extract from my MPLAB X IDE environment, which is the one I use to program my PIC microcontroller. The commands are wrapped in a function call to USBSend, but that is of course irrelevant for you. You just need the part between ““.
/* 001 */ USBSend("VOID_X:(>H:A320_Neo_CDU_1_BTN_AIRPORT)", NULL);
/* 002 */ USBSend("VOID_X:(>H:A320_Neo_CDU_1_BTN_PREVPAGE)", NULL);
/* 003 */ USBSend("VOID_X:(>H:A320_Neo_CDU_1_BTN_1)", NULL);
/* 004 */ USBSend("VOID_X:(>H:A320_Neo_CDU_1_BTN_4)", NULL);
/* 005 */ USBSend("VOID_X:(>H:A320_Neo_CDU_1_BTN_7)", NULL);
/* 006 */ USBSend("VOID_X:(>H:A320_Neo_CDU_1_BTN_DOT)", NULL);
/* 007 */ USBSend("VOID_X:(>H:A320_Neo_CDU_1_BTN_DIR)", NULL);
/* 008 */ USBSend("VOID_X:(>H:A320_Neo_CDU_1_BTN_FPLN)", NULL);
/* 009 */ USBSend("VOID_X:(>H:A320_Neo_CDU_1_BTN_NEXTPAGE)", NULL);
/* 010 */ USBSend("VOID_X:(>H:A320_Neo_CDU_1_BTN_2)", NULL);
/* 011 */ USBSend("VOID_X:(>H:A320_Neo_CDU_1_BTN_5)", NULL);
/* 012 */ USBSend("VOID_X:(>H:A320_Neo_CDU_1_BTN_8)", NULL);
/* 013 */ USBSend("VOID_X:(>H:A320_Neo_CDU_1_BTN_0)", NULL);
/* 014 */ USBSend("VOID_X:(>H:A320_Neo_CDU_1_BTN_L1)", NULL);
/* 015 */ USBSend("VOID_X:(>H:A320_Neo_CDU_1_BTN_R1)", NULL);
/* 016 */ USBSend("VOID_X:(>H:A320_Neo_CDU_1_BTN_PROG)", NULL);
/* 017 */ USBSend("VOID_X:(>H:A320_Neo_CDU_1_BTN_RAD)", NULL);
/* 018 */ USBSend("VOID_X:(>H:A320_Neo_CDU_1_BTN_UP)", NULL);
/* 019 */ USBSend("VOID_X:(>H:A320_Neo_CDU_1_BTN_DOWN)", NULL);
/* 020 */ USBSend("VOID_X:(>H:A320_Neo_CDU_1_BTN_3)", NULL);
/* 021 */ USBSend("VOID_X:(>H:A320_Neo_CDU_1_BTN_6)", NULL);
/* 022 */ USBSend("VOID_X:(>H:A320_Neo_CDU_1_BTN_9)", NULL);
/* 023 */ USBSend("VOID_X:(>H:A320_Neo_CDU_1_BTN_PLUSMINUS)", NULL);
/* 024 */ USBSend("VOID_X:(>H:A320_Neo_CDU_1_BTN_L2)", NULL);
/* 025 */ USBSend("VOID_X:(>H:A320_Neo_CDU_1_BTN_R2)", NULL);
/* 026 */ USBSend("VOID_X:(>H:A320_Neo_CDU_1_BTN_PERF)", NULL);
/* 027 */ USBSend("VOID_X:(>H:A320_Neo_CDU_1_BTN_FUEL)", NULL);
/* 028 */ USBSend("VOID_X:(>H:A320_Neo_CDU_1_BTN_A)", NULL);
/* 029 */ USBSend("VOID_X:(>H:A320_Neo_CDU_1_BTN_F)", NULL);
/* 030 */ USBSend("VOID_X:(>H:A320_Neo_CDU_1_BTN_K)", NULL);
/* 031 */ USBSend("VOID_X:(>H:A320_Neo_CDU_1_BTN_P)", NULL);
/* 032 */ USBSend("VOID_X:(>H:A320_Neo_CDU_1_BTN_U)", NULL);
/* 033 */ USBSend("VOID_X:(>H:A320_Neo_CDU_1_BTN_Z)", NULL);
/* 034 */ USBSend("VOID_X:(>H:A320_Neo_CDU_1_BTN_L3)", NULL);
/* 035 */ USBSend("VOID_X:(>H:A320_Neo_CDU_1_BTN_R3)", NULL);
/* 036 */ USBSend("VOID_X:(>H:A320_Neo_CDU_1_BTN_INIT)", NULL);
/* 037 */ USBSend("VOID_X:(>H:A320_Neo_CDU_1_BTN_SEC)", NULL);
/* 038 */ USBSend("VOID_X:(>H:A320_Neo_CDU_1_BTN_B)", NULL);
/* 039 */ USBSend("VOID_X:(>H:A320_Neo_CDU_1_BTN_G)", NULL);
/* 040 */ USBSend("VOID_X:(>H:A320_Neo_CDU_1_BTN_L)", NULL);
/* 041 */ USBSend("VOID_X:(>H:A320_Neo_CDU_1_BTN_Q)", NULL);
/* 042 */ USBSend("VOID_X:(>H:A320_Neo_CDU_1_BTN_V)", NULL);
/* 043 */ USBSend("VOID_X:(>H:A320_Neo_CDU_1_BTN_DIV)", NULL);
/* 044 */ USBSend("VOID_X:(>H:A320_Neo_CDU_1_BTN_L4)", NULL);
/* 045 */ USBSend("VOID_X:(>H:A320_Neo_CDU_1_BTN_R4)", NULL);
/* 046 */ USBSend("VOID_X:(>H:A320_Neo_CDU_1_BTN_DATA)", NULL);
/* 047 */ USBSend("VOID_X:(>H:A320_Neo_CDU_1_BTN_ATC)", NULL);
/* 048 */ USBSend("VOID_X:(>H:A320_Neo_CDU_1_BTN_C)", NULL);
/* 049 */ USBSend("VOID_X:(>H:A320_Neo_CDU_1_BTN_H)", NULL);
/* 050 */ USBSend("VOID_X:(>H:A320_Neo_CDU_1_BTN_M)", NULL);
/* 051 */ USBSend("VOID_X:(>H:A320_Neo_CDU_1_BTN_R)", NULL);
/* 052 */ USBSend("VOID_X:(>H:A320_Neo_CDU_1_BTN_W)", NULL);
/* 053 */ USBSend("VOID_X:(>H:A320_Neo_CDU_1_BTN_SP)", NULL);
/* 054 */ USBSend("VOID_X:(>H:A320_Neo_CDU_1_BTN_L5)", NULL);
/* 055 */ USBSend("VOID_X:(>H:A320_Neo_CDU_1_BTN_R5)", NULL);
/* 056 */ USBSend("VOID_X:(>H:A320_Neo_CDU_1_BTN_MENU)", NULL);
/* 057 */ USBSend("VOID_X:(>H:A320_Neo_CDU_1_BTN_D)", NULL);
/* 058 */ USBSend("VOID_X:(>H:A320_Neo_CDU_1_BTN_I)", NULL);
/* 059 */ USBSend("VOID_X:(>H:A320_Neo_CDU_1_BTN_N)", NULL);
/* 060 */ USBSend("VOID_X:(>H:A320_Neo_CDU_1_BTN_S)", NULL);
/* 061 */ USBSend("VOID_X:(>H:A320_Neo_CDU_1_BTN_X)", NULL);
/* 062 */ USBSend("VOID_X:(>H:A320_Neo_CDU_1_BTN_OVFY)", NULL);
/* 063 */ USBSend("VOID_X:(>H:A320_Neo_CDU_1_BTN_L6)", NULL);
/* 064 */ USBSend("VOID_X:(>H:A320_Neo_CDU_1_BTN_R6)", NULL);
/* 065 */ USBSend("VOID_X:(>H:A320_Neo_CDU_1_BTN_E)", NULL);
/* 066 */ USBSend("VOID_X:(>H:A320_Neo_CDU_1_BTN_J)", NULL);
/* 067 */ USBSend("VOID_X:(>H:A320_Neo_CDU_1_BTN_O)", NULL);
/* 068 */ USBSend("VOID_X:(>H:A320_Neo_CDU_1_BTN_T)", NULL);
/* 069 */ USBSend("VOID_X:(>H:A320_Neo_CDU_1_BTN_Y)", NULL);
/* 070 */ USBSend("VOID_X:(>H:A320_Neo_CDU_1_BTN_CLR)", NULL);
I hope this helps!