-
Posts
1775 -
Joined
-
Last visited
-
Days Won
1
Content Type
Profiles
Forums
Events
Everything posted by Hansolo
-
Looking like a good start. Check the CMSC panel though. It's MWS for Missile Warning System not NWS. Looking forward to seeing the result Cheers Hans
-
Thanks @Yurgon. Must have been too tired when I wrote it :lol: Check out the remaining of Eddie's YT for that mission, 4 in total. Worth while watching. Cheers Hans
-
Southwest, Southeast, Northeast & Northwest EOR (End Of Runway) marked on page 32 on the 476th Flight Info Publication Nevada v. 2.1; http://www.476vfightergroup.com/downloads.php?do=file&id=405 Here you can see 476th Eddie taxiing into Southeast EOR during a mission 4:21, for take-off preparations; Cheers Hans
-
You are using pin 0 and 1 for the LCD. IMHO you can't since these are the pins used for the USB communication with DCS. Use two other pins and you should be good Cheers Hans
-
No need to feel bad at all Mr_Burns. Main thing is you are building your pit, it works and looks good :thumbup: Keep up the good work Sir. Cheers Hans
-
Uhhhh that looks very nicely done Boltz. Really looking forward for seeing it once you have engraved it. Looks like you have made recess for pcb to be embedded for backlighting? Cheers Hans
-
Holy cow that looks stunnishing BB :thumbup: Keep those teasers and the good work comming Sir Cheers Solo
-
Things don't get pretty tiny on 4K. There are just more pixels to show the objects. So if you fly with a 27" monitor then everything is the same size on a 4k 27" monitor. You will of cause have to tell DCSW that you run on a different resolution otherwise things will get small. HD; 4K: I run with this one (https://www.philips.com.au/c-p/BDM4350UC_75/brilliance-4k-ultra-hd-lcd-display) and are very happy with the switch from a 40" full HD Ps. the screen shot is done from Full HD so you may not be able to see the resolution difference. This is just for object size comparrision Cheers Hans
-
Very nice work on the backlite @padonis :thumbup: Looking good sir Cheers Hans
-
Yes you need a MAX487 chip at the Master and at each of the slaves. Cheers Hans
-
Tinnitus sucks @Ian. Hope you get better soon Sir. Cheers Hans
-
3.5x3.5 inch LCD screen now available
Hansolo replied to JB3DG's topic in PC Hardware and Related Software
The TED5X5P6 here (http://pixelscientific.com/ted5x5p6/) looks pretty close, image area 127x127mm. No price of cause http://pixelscientific.com/resizing-lcds/ Cheers Hans -
First of all many thanks for the kind words Warhog. Coming from you means a lot to me. Secondly, my good friend Mac asked me a few questions and I though I might as well answer them here; Q: Are you using the same RS485 expansion board on every panel now? A: No I am not using the same board everytime. I kinda wing it everytime. The basic setup is the same. A MAX487 chip on a prototype board. 6 core cable comes in with communication, ground, 5VDC, 12VDC, and an unused wire. 12VDC is applied directly to the Arduino, The Arduino supplies regulated 5VDC to the MAX487 chip. But the rest of the setup depends on what I need the panel for. Here is a closup of the standard starting point for the prototype board: The prototype board hold the MAX487, Brown is GND, Pink is 12VDC, White is 5VDC, Grey is unused at this point, Yellow/Green is communication. This is one of the simplest panels, the AAP which uses 12 inputs; The prototype board is also used for the common ground for all the switches. I have ordered some terminals to do this. It does make the setup a little more expensive but it’s just so much easier to get it to look nice when the wires ends in screw terminals. Top view of same panel; The ILS is done in a very similar way but since the panel is very narrow I had to split the setup Other panels are more demanding e.g. the SAS panel; This is an older version and I think I changed this one into a two layer setup as the initial layout was too big. This board has the MOSFET’s to drive the mag switches and Trim LED. Here is the Emergency flight plan which apart for MOSFET’s to drive the LED’s also have a NAND circuit to return the trim switch to neutral. Q: Would you mind sharing your schematics and hook-up guide for the RS485 system you’re using with me A: Here is the setup I am using; DCS communicates with one Arduino Mega via USB. The Mega communicates with the remaining boards over RS485. The junction box holds DB9 female connectors and all the panels then have DB9 male connector. Hope this is of a little assistance Cheers Hans
-
Deadman, Peter and Calum thanks a lot for the kind words. Means a lot comming from you fine gentlemen. Much appreciated. A little more pit stuff got done today. Got the ILS panel up and running. Acquired the panel a while back by coinsident. As DCS-BIOS is already prepared for it the programming part was piece of cake but my soldering skills played tricks with me this time. Eventually I got it running Quite satisfied with the result. Code /* The following #define tells DCS-BIOS that this is a RS-485 slave device. It also sets the address of this slave device. The slave address should be between 1 and 126 and must be unique among all devices on the same bus. */ #define DCSBIOS_RS485_SLAVE 17 /* The Arduino pin that is connected to the /RE and DE pins on the RS-485 transceiver. */ #define TXENABLE_PIN 2 #include "DcsBios.h" /* paste code snippets from the reference documentation here */ //ILS Frequency KHz const byte ilsKhzPins[10] = {3, 4, 5, 6, 7, 8, 9, 10, 11, 12}; DcsBios::SwitchMultiPos ilsKhz("ILS_KHZ", ilsKhzPins, 10); //ILS Frequency MHz const byte ilsMhzPins[4] = {A2, A3, A4, A5}; DcsBios::SwitchMultiPos ilsMhz("ILS_MHZ", ilsMhzPins, 4); //ILS Power const byte ilsPwrPins[2] = {A1, A0}; DcsBios::SwitchMultiPos ilsPwr("ILS_PWR", ilsPwrPins, 2); //ILS Volume DcsBios::Potentiometer ilsVol("ILS_VOL", A7); //Master Caution light DcsBios::LED masterCaution(0x1012, 0x0800, 13); void setup() { DcsBios::setup(); } void loop() { DcsBios::loop(); } Panel and Arduino This is a photo of the backlighting I haven't connected the backlighting yet. Tried to map out the backlighting and several of the panels have, in DCSW at least, two light sources. For the ILS the channel window is controlled by ENG INST potentiometer and panel backlighting by CONSOLE potentiometer. Thats for later :-) Cheers Hans
-
Very neat solution there Romeokilo :thumbup: Do you have a link for that damper? Keep up the good work Sir. Cheers Hans
-
Hansangb and Mac you are both too kind. I am just utilizing DCS-BIOS and what Tekkx discovered. Andreilo, this may be one of the best pictures I got https://forums.eagle.ru/album.php?albumid=705&pictureid=5556 The button was cut in in two steps. First the inner square was cut to 4mm in depth i.e. not all the way through. I then painted the top and after paint dried the text was engraved. Then finally the outer square was cut to full depth 6mm. It may not be the most efficient way of making them. I suggest you check out Warhog’s thread. He has done some really beautiful buttons; https://forums.eagle.ru/showthread.php?t=138740 Mr. Burns, yes its for a F-16 and the click sound is awesome
-
DCS-BIOS with AAP, F-16 MFD & C-130 CDU Finally managed to get a little further with the pit. Very productive weekend so far (HQ and Minime are on tour ) First I got a real AAP up and running on DCS-BIOS. It was a fairly simple task of remove boards and wires from the old self made panel and then hook them up to the real one. The CDU ON and EGI ON switches are ON-ON switches but that is no problem for DCS-BIOS Back in November last year I did some test with Arduino Keypad library (https://playground.arduino.cc/Code/Keypad) and a C-130 CDU pinout (https://forums.eagle.ru/showpost.php?p=2958104&postcount=109). I just used the serial monitor to confirm that inputs were working not establishing communication with DCS-BIOS. Tekkx got his Keypad library working with DCS-BIOS so yesterday I tried to get my F-16 MFD’s up at running using Tekkx’s work as reference and the Keypad library. After remarkably little trial and error I got it working. I left out some of Tekkx’s code as I was unsure what it did, but perhaps it is needed with an older version of DCS-BIOS. /* The following #define tells DCS-BIOS that this is a RS-485 slave device. It also sets the address of this slave device. The slave address should be between 1 and 126 and must be unique among all devices on the same bus. */ #define DCSBIOS_RS485_SLAVE 16 /* The Arduino pin that is connected to the /RE and DE pins on the RS-485 transceiver. */ #define TXENABLE_PIN 2 #include <Keypad.h> #include "DcsBios.h" /* paste code snippets from the reference documentation here */ const byte ROWS = 7; //four rows const byte COLS = 4; //three columns char keys[ROWS][COLS] = { {'a','b','c','d'}, {'e','f','g','h'}, {'i','j','k','l'}, {'m','n','o','p'}, {'q','r','s','t'}, {'u','v','w','x'}, {'y','z','$','&'}, }; byte rowPins[ROWS] = {A5, 3, A4, 4, A3, 5, A2}; //connect to the row pinouts of the keypad byte colPins[COLS] = {A1, 11,A0,12}; //connect to the column pinouts of the keypad Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS ); //PWR OFF - NT - DAY const byte LMFDPwrPins[3] = {6, 7, 8}; DcsBios::SwitchMultiPos LMFDPwr("LMFD_PWR", LMFDPwrPins, 3); //Master Caution DcsBios::LED masterCaution(0x1012, 0x0800, 13); void setup() { DcsBios::setup(); keypad.addEventListener(keypadEvent); // Add an event listener. keypad.setHoldTime(100); // Default is 1000mS keypad.setDebounceTime(50); // Default is 50mS } void loop() { DcsBios::loop(); char key = keypad.getKey(); } void keypadEvent(KeypadEvent KEY){ switch (keypad.getState()) { // gives PRESSED, HOLD or RELEASED case PRESSED: switch(KEY) { // LMFD case 'y': sendDcsBiosMessage("LMFD_01", "1"); break; case 'z': sendDcsBiosMessage("LMFD_02", "1"); break; case '$': sendDcsBiosMessage("LMFD_03", "1"); break; case '&': sendDcsBiosMessage("LMFD_04", "1"); break; case 'u': sendDcsBiosMessage("LMFD_05", "1"); break; case 'v': sendDcsBiosMessage("LMFD_06", "1"); break; case 'w': sendDcsBiosMessage("LMFD_07", "1"); break; case 'x': sendDcsBiosMessage("LMFD_08", "1"); break; case 'q': sendDcsBiosMessage("LMFD_09", "1"); break; case 'r': sendDcsBiosMessage("LMFD_10", "1"); break; case 's': sendDcsBiosMessage("LMFD_11", "1"); break; case 't': sendDcsBiosMessage("LMFD_12", "1"); break; case 'm': sendDcsBiosMessage("LMFD_13", "1"); break; case 'n': sendDcsBiosMessage("LMFD_14", "1"); break; case 'o': sendDcsBiosMessage("LMFD_15", "1"); break; case 'p': sendDcsBiosMessage("LMFD_16", "1"); break; case 'i': sendDcsBiosMessage("LMFD_17", "1"); break; case 'j': sendDcsBiosMessage("LMFD_18", "1"); break; case 'k': sendDcsBiosMessage("LMFD_19", "1"); break; case 'l': sendDcsBiosMessage("LMFD_20", "1"); break; //Adjust case 'h': sendDcsBiosMessage("LMFD_ADJ", "0"); break; // R_ADJ_-dn case 'd': sendDcsBiosMessage("LMFD_ADJ", "2"); break; // R_ADJ_+up //Contrast case 'e': sendDcsBiosMessage("LMFD_CON", "0"); break; // R_CON_-dn case 'a': sendDcsBiosMessage("LMFD_CON", "2"); break; // R_CON+up //Display case 'c': sendDcsBiosMessage("LMFD_DSP", "2"); break; // R_DSP_+up case 'g': sendDcsBiosMessage("LMFD_DSP", "0"); break; // R_DSP_-dn //Brightness case 'b': sendDcsBiosMessage("LMFD_BRT", "2"); break; // R_BRT_+up case 'f': sendDcsBiosMessage("LMFD_BRT", "0"); break; // R_BRT_-dn }} switch (keypad.getState()){ // gives PRESSED, HOLD or RELEASED case RELEASED: // LMFD switch(KEY) { // Released OSBs or Neutral Rockers signal is sent case 'y': sendDcsBiosMessage("LMFD_01", "0"); break; case 'z': sendDcsBiosMessage("LMFD_02", "0"); break; case '$': sendDcsBiosMessage("LMFD_03", "0"); break; case '&': sendDcsBiosMessage("LMFD_04", "0"); break; case 'u': sendDcsBiosMessage("LMFD_05", "0"); break; case 'v': sendDcsBiosMessage("LMFD_06", "0"); break; case 'w': sendDcsBiosMessage("LMFD_07", "0"); break; case 'x': sendDcsBiosMessage("LMFD_08", "0"); break; case 'q': sendDcsBiosMessage("LMFD_09", "0"); break; case 'r': sendDcsBiosMessage("LMFD_10", "0"); break; case 's': sendDcsBiosMessage("LMFD_11", "0"); break; case 't': sendDcsBiosMessage("LMFD_12", "0"); break; case 'm': sendDcsBiosMessage("LMFD_13", "0"); break; case 'n': sendDcsBiosMessage("LMFD_14", "0"); break; case 'o': sendDcsBiosMessage("LMFD_15", "0"); break; case 'p': sendDcsBiosMessage("LMFD_16", "0"); break; case 'i': sendDcsBiosMessage("LMFD_17", "0"); break; case 'j': sendDcsBiosMessage("LMFD_18", "0"); break; case 'k': sendDcsBiosMessage("LMFD_19", "0"); break; case 'l': sendDcsBiosMessage("LMFD_20", "0"); break; //Adjust case 'h': sendDcsBiosMessage("LMFD_ADJ", "1"); break; // R_ADJ_-dn case 'd': sendDcsBiosMessage("LMFD_ADJ", "1"); break; // R_ADJ_+up //Contrast case 'e': sendDcsBiosMessage("LMFD_CON", "1"); break; // R_CON_-dn case 'a': sendDcsBiosMessage("LMFD_CON", "1"); break; // R_CON+up //Display case 'c': sendDcsBiosMessage("LMFD_DSP", "1"); break; // R_DSP_+up case 'g': sendDcsBiosMessage("LMFD_DSP", "1"); break; // R_DSP_-dn //Brightness case 'b': sendDcsBiosMessage("LMFD_BRT", "1"); break; // R_BRT_+up case 'f': sendDcsBiosMessage("LMFD_BRT", "1"); break; // R_BRT_-dn }} } A little clip for illustration; Sorry the poor light conditions Next task was to implement same for C-130 CDU. I quickly took the decision to leav two of the buttons out of the matrix since there were no more available pins on the Nano. Initially it didn’t work thus tried to get Master Caution light to run on pin13 LED. Didn’t work either and it turned out that the RS-487 chip was bad. Then I noticed that the sketch stopped working when using pin13. After some Google’ing I removed the LED connected to pin13 and it worked nicely. /* The following #define tells DCS-BIOS that this is a RS-485 slave device. It also sets the address of this slave device. The slave address should be between 1 and 126 and must be unique among all devices on the same bus. */ #define DCSBIOS_RS485_SLAVE 15 /* The Arduino pin that is connected to the /RE and DE pins on the RS-485 transceiver. */ #define TXENABLE_PIN 2 #include <Keypad.h> #include "DcsBios.h" /* paste code snippets from the reference documentation here */ const byte ROWS = 8; //four rows const byte COLS = 9; //three columns char keys[ROWS][COLS] = { {'!','"','#','c','%','F','L','R','X'}, {'&','E','K','Q','W','Z'}, {'|','D','J','P','V','Y','('}, {')','C','I','O','U','=','@','£','$'}, {'{','A','B','G','H','M','N','S','T'}, {':','3','6','9','[','>','/',',','*'}, {';','2','5','8','0','-','<','}','d'}, {'+',']','_','a','b','1','4','7','.'}, }; byte rowPins[ROWS] = {13, A0, A1, 12, A2, A3, A4, A5}; //connect to the row pinouts of the keypad byte colPins[COLS] = {11, 9, 7, 10, 8, 6, 5, 4, 3}; //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 50mS } void loop() { DcsBios::loop(); char key = keypad.getKey(); } void keypadEvent(KeypadEvent KEY){ switch (keypad.getState()) { // gives PRESSED, HOLD or RELEASED case PRESSED: // If someone finds a better solution as switch - case: Let me know, please :) switch(KEY) { // following commands are fired unique if PRESSED //CDU case 'A': sendDcsBiosMessage("CDU_A", "1"); break; case 'B': sendDcsBiosMessage("CDU_B", "1"); break; case 'C': sendDcsBiosMessage("CDU_C", "1"); break; case 'D': sendDcsBiosMessage("CDU_D", "1"); break; case 'E': sendDcsBiosMessage("CDU_E", "1"); break; case 'F': sendDcsBiosMessage("CDU_F", "1"); break; case 'G': sendDcsBiosMessage("CDU_G", "1"); break; case 'H': sendDcsBiosMessage("CDU_H", "1"); break; case 'I': sendDcsBiosMessage("CDU_I", "1"); break; case 'J': sendDcsBiosMessage("CDU_J", "1"); break; case 'K': sendDcsBiosMessage("CDU_K", "1"); break; case 'L': sendDcsBiosMessage("CDU_L", "1"); break; case 'M': sendDcsBiosMessage("CDU_M", "1"); break; case 'N': sendDcsBiosMessage("CDU_N", "1"); break; case 'O': sendDcsBiosMessage("CDU_O", "1"); break; case 'P': sendDcsBiosMessage("CDU_P", "1"); break; case 'Q': sendDcsBiosMessage("CDU_Q", "1"); break; case 'R': sendDcsBiosMessage("CDU_R", "1"); break; case 'S': sendDcsBiosMessage("CDU_S", "1"); break; case 'T': sendDcsBiosMessage("CDU_T", "1"); break; case 'U': sendDcsBiosMessage("CDU_U", "1"); break; case 'V': sendDcsBiosMessage("CDU_V", "1"); break; case 'W': sendDcsBiosMessage("CDU_W", "1"); break; case 'X': sendDcsBiosMessage("CDU_X", "1"); break; case 'Y': sendDcsBiosMessage("CDU_Y", "1"); break; case 'Z': sendDcsBiosMessage("CDU_Z", "1"); break; case '0': sendDcsBiosMessage("CDU_0", "1"); break; case '1': sendDcsBiosMessage("CDU_1", "1"); break; case '2': sendDcsBiosMessage("CDU_2", "1"); break; case '3': sendDcsBiosMessage("CDU_3", "1"); break; case '4': sendDcsBiosMessage("CDU_4", "1"); break; case '5': sendDcsBiosMessage("CDU_5", "1"); break; case '6': sendDcsBiosMessage("CDU_6", "1"); break; case '7': sendDcsBiosMessage("CDU_7", "1"); break; case '8': sendDcsBiosMessage("CDU_8", "1"); break; case '9': sendDcsBiosMessage("CDU_9", "1"); break; case '.': sendDcsBiosMessage("CDU_POINT", "1"); break; case '/': sendDcsBiosMessage("CDU_SLASH", "1"); break; case '!': sendDcsBiosMessage("CDU_LSK_3R", "1"); break; case '"': sendDcsBiosMessage("CDU_LSK_5R", "1"); break; case '#': sendDcsBiosMessage("CDU_LSK_7R", "1"); break; case 'c': sendDcsBiosMessage("CDU_LSK_9R", "1"); break; case '+': sendDcsBiosMessage("CDU_LSK_3L", "1"); break; case ']': sendDcsBiosMessage("CDU_LSK_5L", "1"); break; case '_': sendDcsBiosMessage("CDU_LSK_7L", "1"); break; case 'a': sendDcsBiosMessage("CDU_LSK_9L", "1"); break; case '[': sendDcsBiosMessage("CDU_PG", "2"); break; case 'd': sendDcsBiosMessage("CDU_PG", "0"); break; case '>': sendDcsBiosMessage("CDU_DATA", "2"); break; case '<': sendDcsBiosMessage("CDU_DATA", "0"); break; case 'b': sendDcsBiosMessage("CDU_SYS", "1"); break; case '{': sendDcsBiosMessage("CDU_NAV", "1"); break; case ')': sendDcsBiosMessage("CDU_WP", "1"); break; case '|': sendDcsBiosMessage("CDU_OSET", "1"); break; case '&': sendDcsBiosMessage("CDU_FPM", "1"); break; case '%': sendDcsBiosMessage("CDU_PREV", "1"); break; case '(': sendDcsBiosMessage("CDU_MK", "1"); break; case '}': sendDcsBiosMessage("CDU_CLR", "1"); break; case '=': sendDcsBiosMessage("CDU_BCK", "1"); break; case '@': sendDcsBiosMessage("CDU_SPC", "1"); break; case '$': sendDcsBiosMessage("CDU_FA", "1"); break; }} switch (keypad.getState()){ // gives PRESSED, HOLD or RELEASED case RELEASED: switch(KEY) { // Released KEYs or Neutral Rockers signal is sent //CDU case 'A': sendDcsBiosMessage("CDU_A", "0"); break; case 'B': sendDcsBiosMessage("CDU_B", "0"); break; case 'C': sendDcsBiosMessage("CDU_C", "0"); break; case 'D': sendDcsBiosMessage("CDU_D", "0"); break; case 'E': sendDcsBiosMessage("CDU_E", "0"); break; case 'F': sendDcsBiosMessage("CDU_F", "0"); break; case 'G': sendDcsBiosMessage("CDU_G", "0"); break; case 'H': sendDcsBiosMessage("CDU_H", "0"); break; case 'I': sendDcsBiosMessage("CDU_I", "0"); break; case 'J': sendDcsBiosMessage("CDU_J", "0"); break; case 'K': sendDcsBiosMessage("CDU_K", "0"); break; case 'L': sendDcsBiosMessage("CDU_L", "0"); break; case 'M': sendDcsBiosMessage("CDU_M", "0"); break; case 'N': sendDcsBiosMessage("CDU_N", "0"); break; case 'O': sendDcsBiosMessage("CDU_O", "0"); break; case 'P': sendDcsBiosMessage("CDU_P", "0"); break; case 'Q': sendDcsBiosMessage("CDU_Q", "0"); break; case 'R': sendDcsBiosMessage("CDU_R", "0"); break; case 'S': sendDcsBiosMessage("CDU_S", "0"); break; case 'T': sendDcsBiosMessage("CDU_T", "0"); break; case 'U': sendDcsBiosMessage("CDU_U", "0"); break; case 'V': sendDcsBiosMessage("CDU_V", "0"); break; case 'W': sendDcsBiosMessage("CDU_W", "0"); break; case 'X': sendDcsBiosMessage("CDU_X", "0"); break; case 'Y': sendDcsBiosMessage("CDU_Y", "0"); break; case 'Z': sendDcsBiosMessage("CDU_Z", "0"); break; case '0': sendDcsBiosMessage("CDU_0", "0"); break; case '1': sendDcsBiosMessage("CDU_1", "0"); break; case '2': sendDcsBiosMessage("CDU_2", "0"); break; case '3': sendDcsBiosMessage("CDU_3", "0"); break; case '4': sendDcsBiosMessage("CDU_4", "0"); break; case '5': sendDcsBiosMessage("CDU_5", "0"); break; case '6': sendDcsBiosMessage("CDU_6", "0"); break; case '7': sendDcsBiosMessage("CDU_7", "0"); break; case '8': sendDcsBiosMessage("CDU_8", "0"); break; case '9': sendDcsBiosMessage("CDU_9", "0"); break; case '.': sendDcsBiosMessage("CDU_POINT", "0"); break; case '/': sendDcsBiosMessage("CDU_SLASH", "0"); break; case '!': sendDcsBiosMessage("CDU_LSK_3R", "0"); break; case '"': sendDcsBiosMessage("CDU_LSK_5R", "0"); break; case '#': sendDcsBiosMessage("CDU_LSK_7R", "0"); break; case 'c': sendDcsBiosMessage("CDU_LSK_9R", "0"); break; case '+': sendDcsBiosMessage("CDU_LSK_3L", "0"); break; case ']': sendDcsBiosMessage("CDU_LSK_5L", "0"); break; case '_': sendDcsBiosMessage("CDU_LSK_7L", "0"); break; case 'a': sendDcsBiosMessage("CDU_LSK_9L", "0"); break; case '[': sendDcsBiosMessage("CDU_PG", "1"); break; case 'd': sendDcsBiosMessage("CDU_PG", "1"); break; case '>': sendDcsBiosMessage("CDU_DATA", "1"); break; case '<': sendDcsBiosMessage("CDU_DATA", "1"); break; case 'b': sendDcsBiosMessage("CDU_SYS", "0"); break; case '{': sendDcsBiosMessage("CDU_NAV", "0"); break; case ')': sendDcsBiosMessage("CDU_WP", "0"); break; case '|': sendDcsBiosMessage("CDU_OSET", "0"); break; case '&': sendDcsBiosMessage("CDU_FPM", "0"); break; case '%': sendDcsBiosMessage("CDU_PREV", "0"); break; case '(': sendDcsBiosMessage("CDU_MK", "0"); break; case '}': sendDcsBiosMessage("CDU_CLR", "0"); break; case '=': sendDcsBiosMessage("CDU_BCK", "0"); break; case '@': sendDcsBiosMessage("CDU_SPC", "0"); break; case '$': sendDcsBiosMessage("CDU_FA", "0"); break; }} } Pinout for C-130 CDU is here; https://forums.eagle.ru/showpost.php?p=2958104&postcount=109 Next task is to find a LCD that will work with the C-130 CDU before plugging it into the pit but I am quite please with this weekends work. Thanks Tekkx for inspiration and sharing your code. Helped me a lot Cheers Hans
-
Looks like you are off to a very good start there Mr. Burns. I like that they are done without use of cnc. Keep up the good work Sir. Cheers Hans
-
Holycat(IIAF) have you tried the example Ian did on Youtube? He did several other turtorials but I guess this may be the one suited for your request. Be advised though that the example is from an earlier version of DCS-BIOS so the initial sketch looks a little different. Cheers Hans
-
Good to see stuff from you again Romeokilo. With regard to the arming handle try and see this picture; If a push spring is attached to the end to the push rod then you should be able to achieve spring force while going from disarmed to armed and vice versus. Good to have you back, Sir. Cheers Hans
-
I made a quick test and re-read what Frederf had given of information a while back to me regarding altimeter. It appears that the altitude set in ME is Geometric altitude/GPS altitude. The altitude on your HUD and altimeter is barometric altitude. If you set your Aux. Avionics Panel Page knob to POSITION you can see the Geometric/GPS altitude. Tanker @16000ft according to ME Seen in bar of the screen A-10 at tanker level HUD and altimeter shows 15700ft but G ALT shows 16005ft Same A-10C from F2 view For more in depth information please check out the explanations by Frederf in this thread; https://forums.eagle.ru/showthread.php?t=189765 Cheers Hans
- 1 reply
-
- 2
-
-
An alternative solution is to buy them of Lynx instead of trying to produce them yourself; http://lynx.dk/product-category/products/flight-simulator-gear/a-10c-warthog/a-10c-switch-tops/ You may also be able to find the real ones on Ebay for a reasonable price but it takes time to monitor and you may not always get what you are looking for. Cheers Hans
-
Alright sorry for the delay but manage to make a quick proof of concept this evening. Running DCS-BIOS over RS-485. When the circuit breaker is in the IN position then DCS-BIOS energizes the output and thereby 12VDC is applied to the magnetic held toggle switch over MOSFET. /* The following #define tells DCS-BIOS that this is a RS-485 slave device. It also sets the address of this slave device. The slave address should be between 1 and 126 and must be unique among all devices on the same bus. */ #define DCSBIOS_RS485_SLAVE 100 /* The Arduino pin that is connected to the /RE and DE pins on the RS-485 transceiver. */ #define TXENABLE_PIN 2 #include "DcsBios.h" /* paste code snippets from the reference documentation here */ DcsBios::LED masterCaution(0x1012, 0x0800, 13); //AILERON DISC L Circuit Breaker DcsBios::LED cbpAileronDiscL(0x1138, 0x0400, 12); const byte cbpAileronDiscLPins[2] = {11, 10}; DcsBios::SwitchMultiPos cbp_ileronDiscL("CBP_AILERON_DISC_L", cbpAileronDiscLPins, 2); void setup() { DcsBios::setup(); } void loop() { DcsBios::loop(); } LED on pin 13 is just connected to the master caution just to confirm the Arduino is connected. Obviously the mag switch won't work as circuit breaker substitute, but servers the purpose the verify if it is possible to implement into the pit. Based on this test I would say yes it is possible. p.s. sorry for the poor recording Cheers Hans
-
Hi Hogtie, Very interesting question you have there. As for implementing circuit breakers into DCS-BIOS I agree with the description by Duckling. It should be possible to do it similar to the way you can implement magnetic held toggle switches e.g. https://forums.eagle.ru/showpost.php?p=3121287&postcount=148 According to DCS-BIOS advanced mode you have similar commands available which with good results made the mag switches work; const byte cbpAileronDiscLPins[2] = {PIN_0, PIN_1}; DcsBios::SwitchMultiPos cbpAileronDiscL("CBP_AILERON_DISC_L", cbpAileronDiscLPins, 2); DcsBios::LED cbpAileronDiscL(0x1138, 0x0400, PIN); The LED is the status of the position in the 3D cockpit i.e. in game, and could be used to energize a coil which releases the circuit breaker. Based upon the experience with the mag switches you need two inputs one for each of the circuit breakers positions, one for in and one for out position. This is a very expensive solution, http://www.simkits.com/product/circuit-breaker-for-flight-simulation/ but I imagine with 3D printer you can build something similar for less money I am not near pit at the moment but can try and see if I can replicate the intentions using a mag switch when I come home. Pretty sure I have one circuit board almost ready setup with MOSFET. Cheers Hans
-
Very nice work indeed mr_mojo97. Keep those pictures flowing Sir Cheers Hans