hauntersix Posted July 3, 2023 Posted July 3, 2023 Didnt know where to post so i post here. I am building atm mfcds for a-10c and using arduino uno board. i made a buttonmatrix that i think work with the code, the code compiles, upolads and when i press a button on my controller the led blinks on my board and it shows that the board is communicating with dcs bios. but in-game iin the cockpit, nothing happens, osb buttons are not reacting on press on my controller. next soultion is mega if i cant fix this, cus then i wont need any button matrix, but i rather use smaller cards and button matrixes. here is my code: /* Tell DCS-BIOS to use a serial connection and use the default Arduino Serial library. This will work on the vast majority of Arduino-compatible boards, but you can get corrupted data if you have too many or too slow outputs (e.g. when you have multiple character displays), because the receive buffer can fill up if the sketch spends too much time updating them. If you can, use the IRQ Serial connection instead. */ #define DCSBIOS_DEFAULT_SERIAL #if ARDUINO > 10605 #include <Keypad.h> #endif #include "DcsBios.h" /* paste code snippets from the reference documentation here */ const byte ROWS = 4; //four rows const byte COLS = 5; //five columns char keys[ROWS][COLS] = { {'1','2','3','4','5'}, {'6','7','8','9','10'}, {'11','12','13','14','15'}, {'16','17','18','19','20'}, }; byte rowPins[ROWS] = {3, 4, 5, 6}; //connect to the row pinouts of the keypad byte colPins[COLS] = {7, 8, 9, 10, 11}; //connect to the column pinouts of the keypad Keypad keypad = Keypad (makeKeymap(keys), rowPins, colPins, ROWS, COLS); void setup() { DcsBios::setup(); keypad.addEventListener(keypadEvent); // Add an event listener keypad.setHoldTime(100); // Default is 1000mS keypad.setDebounceTime(50); // Default is 500mS } void loop() { DcsBios::loop(); char key = keypad.getKey(); } void keypadEvent(KeypadEvent KEY){ switch (keypad.getState()){ // Gives PRESSED, HOLD or RELEASED} case PRESSED: switch(KEY) { // Following commands are fired unoqued if PRESSED //CDU case '1': sendDcsBiosMessage('LMFD_01','1'); break; case '2': sendDcsBiosMessage('LMFD_02','1'); break; case '3': sendDcsBiosMessage('LMFD_03','1'); break; case '4': sendDcsBiosMessage('LMFD_04','1'); break; case '5': sendDcsBiosMessage('LMFD_05','1'); break; case '6': sendDcsBiosMessage('LMFD_06','1'); break; case '7': sendDcsBiosMessage('LMFD_07','1'); break; case '8': sendDcsBiosMessage('LMFD_08','1'); break; case '9': sendDcsBiosMessage('LMFD_09','1'); break; case '10': sendDcsBiosMessage('LMFD_10','1'); break; case '11': sendDcsBiosMessage('LMFD_11','1'); break; case '12': sendDcsBiosMessage('LMFD_12','1'); break; case '13': sendDcsBiosMessage('LMFD_13','1'); break; case '14': sendDcsBiosMessage('LMFD_14','1'); break; case '15': sendDcsBiosMessage('LMFD_15','1'); break; case '16': sendDcsBiosMessage('LMFD_16','1'); break; case '17': sendDcsBiosMessage('LMFD_17','1'); break; case '18': sendDcsBiosMessage('LMFD_18','1'); break; case '19': sendDcsBiosMessage('LMFD_19','1'); break; case '20': sendDcsBiosMessage('LMFD_20','1'); break; }} switch (keypad.getState()){ // Gives PRESSED, HOLD or RELEASED} case RELEASED: switch (KEY){ // Released KEYs or Neutral Rockers signal is sent //CDU case '1': sendDcsBiosMessage('LMFD_01','0'); break; case '2': sendDcsBiosMessage('LMFD_02','0'); break; case '3': sendDcsBiosMessage('LMFD_03','0'); break; case '4': sendDcsBiosMessage('LMFD_04','0'); break; case '5': sendDcsBiosMessage('LMFD_05','0'); break; case '6': sendDcsBiosMessage('LMFD_06','0'); break; case '7': sendDcsBiosMessage('LMFD_07','0'); break; case '8': sendDcsBiosMessage('LMFD_08','0'); break; case '9': sendDcsBiosMessage('LMFD_09','0'); break; case '10': sendDcsBiosMessage('LMFD_10','0'); break; case '11': sendDcsBiosMessage('LMFD_11','0'); break; case '12': sendDcsBiosMessage('LMFD_12','0'); break; case '13': sendDcsBiosMessage('LMFD_13','0'); break; case '14': sendDcsBiosMessage('LMFD_14','0'); break; case '15': sendDcsBiosMessage('LMFD_15','0'); break; case '16': sendDcsBiosMessage('LMFD_16','0'); break; case '17': sendDcsBiosMessage('LMFD_17','0'); break; case '18': sendDcsBiosMessage('LMFD_18','0'); break; case '19': sendDcsBiosMessage('LMFD_19','0'); break; case '20': sendDcsBiosMessage('LMFD_20','0'); break; } } }
Scott-S6 Posted July 7, 2023 Posted July 7, 2023 You should post in the home cockpit subforum. This one is for products from the company realsimulator (so mostly force sensing sticks for F16s). 2
Recommended Posts