Jump to content

A-10c CDU Tabletop Build


Recommended Posts

Hello all,

 

With the exciting new release/update of the new A-10c II, I have decided it is time to build a functional CDU with an AAP as a single unit to place on my desk. I have long been interested in building a home cockpit but as of now lack the time to take on such an ambitious project, maybe one day!

 

To kick start this project, I decided to purchase a set of the brilliant acrylic backlit panels and buttons available from pcflights.com for the CDU, AAP and also the new ARC-210 radio panel (which will be a future project!).

 

The first task was to make a sloped enclosure for the CDU and AAP which was quickly made from scraps of aluminium I had laying around and sprayed black, next was to acquire all the switches and things needed for the job.

 

Perhaps the biggest challenge for this project is finding a way to mount all the 67 pushbuttons on the CDU to a rigid surface and then wiring it all up. after some thought I decided the best and only practical way to do this would be to have a custom PCB made for it. I took many precise measurements of the panel and made an accurate drawing for laying out the PCB and when I was happy, sent the files off to be manufactured a minimum quantity of 5 for £15 total, bargain!. It took some time but when they eventually arrived I was very impressed at the quality of manufacturing and quickly got on with the long process of soldering everything together with close observation of polarities!, the result:

 

1242814637_CDUv11copy.thumb.png.c0325e09515fce38bd68b33174235f8a.png IMG_1686.thumb.jpeg.130b14dc31a69f39cf62b0e94353f9f3.jpeg

IMG_1688.thumb.jpeg.1194035941fad20b22afaae01d24b355.jpeg

 

And a test of the lamps: (note: the V key isn't lit in this image but it turned out to be a single missed solder joint, always one!)

IMG_1695.thumb.jpeg.64ef7f2e8ebf14b6f175804ad341efd3.jpeg

IMG_1699.thumb.jpeg.459c5130a40c63c97c1ba6220648a3da.jpeg

 

I plan to use DCSBios to interface with the module, as for the screen.. I am still figuring that one out 😄

 

More updates soon!, feel free to ask questions/give suggestions!

IMG_1695.thumb.jpeg.be0233b10e62c00ae6dd7c41118dee75.jpeg

IMG_1688.thumb.jpeg.85d0e9ca7a27408ab243448cd4f4561e.jpeg

 

The latest redrawn PCB and Arduino code (version 66) are published to the following GitHub link:

------------------------------------------------------------------------

https://github.com/crosshairs2230/A10C-CDU-PANEL.git

------------------------------------------------------------------------

Note: The zip file provided should be able to directly import into JLCPCB fabrication service, I am unsure about other fabrication services but would imagine them to be very similar. Let me know of any issues no matter how small


Edited by Crosshairs
Added Github link to redrawn PCB and Arduino code
  • Like 3
Link to comment
Share on other sites

Very good looking CDU.

 

For the screen, you can do DCS BIOS as well. it will save you from exporting the viewport, although that solution is little bit more involved. take a look at this old thread

I managed to misplace the memory card i had in that raspberry pi so at some point I will be retracing my own steps to recreate this again

  • Like 1

Anton.

 

My pit build thread .

Simple and cheap UFC project

Link to comment
Share on other sites

Thanks for all the replies already! :idiot:

 

I have spent some time creating a mount for an Arduino mega, and connecting the wiring harness from the AAP. The standoffs from the PCB shown below serve as both a mounting plate for the Arduino, and to make the PCB flex less when the middle keypad buttons are pressed.

 

IMG_1694.thumb.jpeg.482ce71772991451ab09451e710ab15d.jpegIMG_1702.thumb.jpeg.5a20da6904cf6b57b141d578711d0bb4.jpeg

One slight oversight was the lack of clearance for the usb connector. Rather than change the position of the Arduino I desolderered the bulky old USB connector and replaced it with a panel mounted usb socket on the rear of the unit:

 

IMG_1706.thumb.jpeg.8c42fa4a0709c40030f337f98b40b6bc.jpegIMG_1707.thumb.jpeg.28e57b6efa73fcbed0567fb96bec9d52.jpegIMG_1712.thumb.jpeg.b119021f868f627806deabd5ad8ce575.jpeg

 

Very interesting that you can use DCS BIOS for the display as well, that will be something to investigate further, it would definitely be preferable and a more elegant solution as opposed to screen exports. Let me know how it goes! I have plenty of space to mount a raspberry pi though I do have a question regarding it. Can the DCS-RPi interfacing program be set to automatically run on power up (much like an Arduino), or is it a program you would need to execute from the Pi desktop space? as you can probably tell I don't know much about them.

Link to comment
Share on other sites

Looks amazing! How did you manufacture key caps? They look perfect. I am doing now MFD for JF-17 but using standard round keycaps, because making custom caps seems quite complicated.

 

Hi zippoa, the panels come as kits from the following link, though it is left up to the user to make all the electronics and enclosures etc. They are really high quality :)

A-10C CDU PANEL | Thunderbolt Cockpit Panels | Warthog Cockpit Panels

Link to comment
Share on other sites

Im impressed with the illuminated lines along the keys, it seems like it is possible to get a fairly decent illumination despite the pcb being so close to the panel. There's some spots near the corners that are dimmer but it seems like careful positioning of the leds is possible

Link to comment
Share on other sites

That's impressive, I've just brought one of those kits, I'm glad your impressed with the quality. Would you be willing to share you pcb file if you have it? Also how do you plan to run the CDU keys? Keyboard controller? Thanks in advance:)

 

Hi Smerlin, I would be happy to share the files after some issues have been resolved, just be aware that the PCB is designed around my own personal setup but it should be able to work with yours. Initially I had some extra surface mount LEDs on the board to illuminate the lines, though had some issues getting them to work with the LEDs within the switches, in the end I decided to just remove them. After I can get mine working as intended I'll publish the Gerber files, wouldn't want to waste peoples time and money with a broken PCB!

 

For the controller, it is just an Arduino mega and DCSbios, going this route will restrict the usage exclusively to DCS world though I don't see myself using such a unique item in any other sim. I have seen some examples of people using the micro controllers from USB keyboards which would also work though you would need to figure out the pins.

Link to comment
Share on other sites

Okay so I think I have run into my first issue :shocking:

 

I have been trying to get the code working in Arduino using the keypad library, I have it 95% working apart from column 1 which is really confusing me. After doing the first obvious step of checking the physical components for errors in soldering, I was convinced that the error was to do with a diode soldered the wrong way around as in the picture below, yet the error persists after fixing the polarity!

 

337301736_Screenshot2020-11-14at15_01_39.thumb.png.fd05aaff67e4551ed0579bfa9fc63780.png

The code is just a modified sketch of one of the keypad examples and is still quite a way from being augmented into DCSbios, my test code is below; any input from someone more adept at Arduino coding would be very helpful :)

 

 

 

 

#include <Keypad.h>

/*

( :BLANK 1

) :BLANK 2

< :BLANK ROCK LEFT

> :BLANK ROCK RIGHT

 

* :CLR

~ :FA

- :BCK

_ :SPC

! :MK

 

' ' :NOT USED

 

- : DIM

+ :BRT

 

*/

const byte ROWS = 8;

const byte COLS = 9;

 

//define the symbols on the buttons of the keypads

char hexaKeys[ROWS][COLS] = {

// C1 |C2 |C3 |C4 |C5 |C6 |C7 |C8 |C9 |

// 30 |32 |34 |36 |38 |40 |42 |44 |46 |

// | | | | | | | | |

{'b','j','2','5','8','0','(','!','0'}, //31 R1

{'c','k','3','6','9','/',')','?','1'}, //33 R2

{'d','l','A','G','M','S','-','<','2'}, //35 R3

{'e','m','B','H','N','T','_','>','3'}, //37 R4

{'f','n','C','I','O','U','Y','*','4'}, //39 R5

{'g','-','D','J','P','V','Z','~','5'}, //41 R6

{'h','+','E','K','Q','W','[',']','6'}, //43 R7

{'-',' ','F','L','R','X',' ',' ','7'}, //45 R8

};

byte rowPins[COLS] = {30, 32, 34, 36, 38, 40, 42, 44, 46};// connect to the column pinouts of the keypad

byte colPins[ROWS] = {31, 33 ,35, 37, 39, 41, 43, 45};//connect to the row pinouts of the keypad

 

 

//initialize an instance of class NewKeypad

Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);

 

void setup(){

Serial.begin(9600);

}

 

void loop(){

char customKey = customKeypad.getKey();

 

if (customKey){

Serial.println(customKey);

}

}

 

 

On a more positive note, I have managed to find a perfect-fitting screen designed for the raspberry pi, which I eventually want to use to control the screen text, the only thing I had to do to make it fit was extend the GPIO pins as pictured:

 

1802261462_Screenshot2020-11-14at15_24_02.thumb.png.d0e395c187c37c0bb71b612ccc09bb8a.png

 

IMG_1723.thumb.jpeg.8a472cc83265840a13d7c0c75c9cc6b2.jpeg

IMG_1726.thumb.jpeg.7ffe17b2635ab140f4956be862898c0d.jpegwAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

Note: Unfortunately no front pics because without the PCB installed, all the keys fall out when tipped upright as I've tragically found out a few times!

Now to get back to problem solving :D

1047082725_Screenshot2020-11-14at15_24_02.thumb.png.0f0912f73b2a1c1eb0a74d24fe902a20.png

IMG_1726.thumb.jpeg.bfb8c024168e9091b5b81ef5ce8119fe.jpeg

Link to comment
Share on other sites

Brilliant, thanks for that, I like the RPI idea for the screen, I'll have to look into that - I have a couple of them laying about. I eventually want to build a whole cockpit, I'm just getting into Arduino myself, I intend to build a rs485 network and have alot of slaves running off a Mega as the master. It's probably a year's work in reality but that's half the fun????.

Link to comment
Share on other sites

After a fair bit of troubleshooting, I have found the problem and a fine example of why you should NEVER trust the auto-router... :doh:

 

As this picture shows, it has placed a via on the circuit board which is way too close to the LSK2 diode anode, the signal it was carrying is from column 1, after my manual soldering job meant that column 1 and column 2 were shorted together, a quick reflow fixed this and now the board is working fully as intended! this will have to be designed out and I intend to completely redo the PCB traces manually as there are several more places where this kind of error could happen.

 

mess.png

 

Besides this, I have been working on the coding side of things and have successfully made the keypad matrix interface with DCSbios on my test rig!

Capture.thumb.JPG.dbc2c1bb9440e4de1531fc877170e154.JPG

Still need to interface the AAP though this should be pretty easy, and then theres the display module and power supply and intensity control for the backlighting, still a long way to go. There are a few examples floating around of people using these Rasberry Pis and an ethernet connection to send the CDU display data to a mini screen, I too want to investigate this further but know very little about networking or RPis, lol.


Edited by Crosshairs
Link to comment
Share on other sites

Small update, the AAP panel has been fully programmed and tested. I powered the screen up using the raspberry pi and installed the necessary drivers to get it working, the problem now is getting a reliable setup to display the data on the CDU, I have been following y2kiah's GitHub guide but have run into lots of problems with the pi-blaster-mqtt installation stage when trying to execute the make command, for now this is as far as I can get. The display itself is somewhat of a disappointment, from the angle that it the CDU meant to be viewed at you get some crazy colour distortion to an unacceptable degree, I just hope this is less obvious when it is not drawing any other colour than the green and black of the CDU terminal...

 

IMG_1727.thumb.jpeg.d2ced92e734f09fbd66b2150f839e94b.jpeg

 

Still todo:

 

- Get a reliable CDU picture on the display

- Add AAP panel backlighting

- Design and build power supply and backlight dimming circuit

- Clean up CDU keypad code

- Redraw PCB traces and fix other PCB problems

- Tidy up the enclosure with 3D printed back cover

  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...

PCB 2 - Electric boogaloo

I have redone the PCB traces manually. It uses substantially less vias all of which are all checked for best placement. It should be okay to solder and has passed DRC runs, though I must say that it is built at your own risk, I am no expert at PCB design!

 

Also added/changed:

- Added polygon pour to PCB top and bottom copper to make it more rigid.

- Added silkscreen pinout annotations on top and bottom layer.

- Changed key annotation from “SLASH” to “/“ to avoid confusion

 

The design uses x67 1N4148WS diodes (which are SMT so will be hard to solder for beginners!), x67 6x6x7mm Green LED illuminated momentary tactile switches, as well as a dual header 20 position connector on the back of the PCB which can be cut to size or built from 2 rows of single header strips. Builders of this project should pay close attention to the polarity of both the diodes AND the tactile switches, remember, the LEDs are diodes too!

 

Connector pinout: (NOTE: VCC is NOT 5V, it needs only about 1.8V to illuminate the panel, I am most likely going to add some resistors on the board to protect the LEDs in the not too distant future)

Screenshot 2020-12-11 at 10.04.03.png

Front:

CDU_PCB v15.png

Back:

CDU_PCB v152.png

The PCB and Arduino code are published to the following GitHub link:

------------------------------------------------------------------------

https://github.com/crosshairs2230/A10C-CDU-PANEL.git

------------------------------------------------------------------------

Note: The zip file provided should be able to directly import into JLCPCB fabrication service, I am unsure about other fabrication services but would imagine them to be very similar. Let me know of any issues no matter how small


Edited by Crosshairs
Link to comment
Share on other sites

15 hours ago, Myrsnipe said:

I enjoy seeing this coming along Crosshairs, going to design my own cdu based around a keypad scanner like the TCA8418 that im experimenting with, but it's always interesting to learn from others experiences. 

Thanks, and that's a chip I had never heard of until now, looks very promising! Also looks like there are some arduino libraries already made for it, so it hopefully should be a lot simpler to get working with DCSBios, let me know how it goes 🙂.

 

On another note, I have hit somewhat of a brick wall with the display side of things, it is looking like ill need the help of an actual programmer friend to make an ethernet based comms link for the display terminal, something I wouldnt know where to start at designing. It's either that or go back to square one and waste my graphics card time exporting to a tiny 320x480 display, decisions... 😄

Link to comment
Share on other sites

Awesome work, looks like it’s coming along well! I’ve ordered a pcb as my cdu panel has just arrived. Hopefully get it out together sometime over Xmas. I’m unsure of what to do for the screen at the moment, I’d like a solution without having to export the display if possible. I’m also building my CMSC panel as well and then creating a rs485 network. 
thanks for the files, you’ve saved me a lot of time, especially as I’m pretty new to programming and con design👌

Link to comment
Share on other sites

Hi Smerlin, Happy to see you got your panels! You are the pinoneer of this new PCB design but I am 99% sure it will work fine, without any physical testing there is always that nagging uncertainty, let me know of any issues or help you may need 🙂

 

This may be a challenge for beginners to soldering due to the use of many SMT parts (surface mounted), make sure to double check the polarity of the diodes AND the tactile switches, the pack of tactile switches I got had the LED anode pin denoted by a small green dot which was hard to spot! I have attached an example of what I mean, you can only just make out a red mark on the anode lead which is red in this case since it will be a red LED;

 

Screenshot 2020-12-23 132405.png

Another important note to repeat from earlier, VCC is NOT 5V, I did some experiments with my bench power supply and found that in my case it lit up brightly at around 1.9-2V at 20mA, I would not want to take it any higher than this for risk of burning out the LEDs, I hope this makes sense 🙂

Link to comment
Share on other sites

Crosshairs,

 

Are the latest version of the gerber files for the CDU PCB v66?  I see that you have two links for the files.  I've downloaded a zip file that is titled "CDU_PCB v66_2020-12-11".  Just wondering if it is the latest and does it have the corrections you made incorporated into it.  Awesome design form the pics.

Link to comment
Share on other sites

Hi Hawgmech,

Yes v66 is the latest.

The link at the top of the page goes to the same place, I just coped it yesterday to make it easier to access so its not buried within the thread. I can see how this could be confusing though so I'll try to edit it, and cheers 🙂

Link to comment
Share on other sites

Hi Crosshairs, 

I managed to have my CDU up and running with the help of your arduino sketch. BUt there are still some buttons I cant convince to be pushed in game (e.g. LSK 3_L, DIM, BRT). Did you experience any similar problem at a certain stage of development? I checked all switches for continuity, everything was fine. I then double checked the input pins, changed the input pins and the sketch accordingly,  even changed the switch for a new one.

No ideas left.

 

Happy New Year in advance!

sharkfin out!

Support your local AirTransportWing !

NEW RIG:

RYZEN 7  5800X3D~ AORUS GTX 1080Ti ~ AORUS X570S Elite AX ~64 GB Corsair Venegance DDR-4 3600 ~ BeQuiet AIO Silent loop 2 360  watercooled ~ Samsung 890 Pro M.2 (2TB) + 870 EVO (1TB) SSD ~ WIN 10 64-bit ~ AOC 31.5" Gaming 144Hz Display ~ DelanClip@TrackIR 5 ~ TM Warthog no.2 ~Saitek rudder pedals~ 2 TM MFDs on 2nd 27"display ~ Buddyfox A-10 UFC ~ CDU/AAP panel via DCSBios ~ ARC-210 (soldering WIP)

 

Link to comment
Share on other sites

OK, figured it out myself. It seems the sketch file has some typo in it, the CDU's brightness keys (special character "+" and "-") where changed in the loop portion of the sketch with "<" and ">". Also the Data + and - keys for switching the waypoints didn't work. 

 

Last thing is that the brightness rocker switch makes the display brighter when the "-" (left key/ DIM) is pressed. I tried to change it within the matrix portion of the sketch by changing the position of + and -, didn't work. But I can easily live with that.

I will paste my *.ino later on for the people who have the same problems. 

 

Anyway, credits for the Arduino sketch go to you, Crosshairs, thank for your outstanding work.

 

(LSK key was faulty or bad soldered, changed it, now it works again.


Edited by sharkfin61

sharkfin out!

Support your local AirTransportWing !

NEW RIG:

RYZEN 7  5800X3D~ AORUS GTX 1080Ti ~ AORUS X570S Elite AX ~64 GB Corsair Venegance DDR-4 3600 ~ BeQuiet AIO Silent loop 2 360  watercooled ~ Samsung 890 Pro M.2 (2TB) + 870 EVO (1TB) SSD ~ WIN 10 64-bit ~ AOC 31.5" Gaming 144Hz Display ~ DelanClip@TrackIR 5 ~ TM Warthog no.2 ~Saitek rudder pedals~ 2 TM MFDs on 2nd 27"display ~ Buddyfox A-10 UFC ~ CDU/AAP panel via DCSBios ~ ARC-210 (soldering WIP)

 

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...