How to drive a F/A-18D Replica Up-Front Control (UFC) Panel?

Status
Not open for further replies.
Designed a F/A-18D replica UFC for use in my flight simulator project. Trying to figure out how to drive it - I'm really not much of a electronics guy. I can do basic breakout boards in Altium.

My first thought is to have multiple Teensy++2.0 modules, with a powered hub inside the HUD box.

Here is what I have to drive:

  • 22X 16 seg alphanumeric LED Displays
  • 11X 7 seg displays
  • 6X Output LEDs
  • 15X Backlighting LEDs.
  • 19X Tact switches
  • 3X Rotary Encoders
  • 1X 3POS Toggle

Any thoughts or ideas would be greatly appreciated.
 
Wow, that's a LOT of stuff to connect. It'll take at least a few Teensy++ 2.0 boards.

You're using X-Plane, right? Hopefully you know which datarefs or commands you want each device to use.

A good way to get started would be one or two boards and start with the most basic example (probably the transponder blink) just to get a feel for how it all works, and make sure you have Arduino and the X-Plane plugin set up correctly.

You might then try the simpler things first, like the LEDs and momentary buttons. Once you get up and running, it's pretty easy to wire in a few more buttons, and add a few more "if (button.fallingEdge())" checks to send commands or write to datarefs, building the large system up piece by piece.
 
Wow, that's a LOT of stuff to connect. It'll take at least a few Teensy++ 2.0 boards.

You're using X-Plane, right? Hopefully you know which datarefs or commands you want each device to use.

A good way to get started would be one or two boards and start with the most basic example (probably the transponder blink) just to get a feel for how it all works, and make sure you have Arduino and the X-Plane plugin set up correctly.

You might then try the simpler things first, like the LEDs and momentary buttons. Once you get up and running, it's pretty easy to wire in a few more buttons, and add a few more "if (button.fallingEdge())" checks to send commands or write to datarefs, building the large system up piece by piece.

Nope, using DCS. The F/A-18C is pending release, I'm just building the full double cockpit (D model) so my 5 year old can be my WSO. ;) Every switch and display is fully functional in the sim though. I do plan on interfacing to the simulator via Helios for the simulator software to physical hardware interface, but I'll need to write a layer for the teensy to PC I/O.
 
Some early renders. The UFC is the panel directly in front of the "pilots" face.

My models are much more complete now, but I can't access the renders from work.

image.png

image.png

image.png

image.png
 
If you're thinking about using multiple Teensy's, I suggest thinking hard about how you will communicate among them, I found EasyTransfer from Bill Porter to be an excellent means of moving data. Next, how quickly does the system have to communicate among the different CPUs... how independently can these CPUs work from one another? My suggestion would be to dedicate one unit to the displays and another to the inputs. Then you have a limited amount of data that must be shared between the two teensy's.

For the backlights, I believe multiplexing LED-driving chips have been developed, i.e. chips that are specialized in terms of driving arrays of LEDs. I'd check them out.
 
If you're thinking about using multiple Teensy's, I suggest thinking hard about how you will communicate among them, I found EasyTransfer from Bill Porter to be an excellent means of moving data. Next, how quickly does the system have to communicate among the different CPUs... how independently can these CPUs work from one another? My suggestion would be to dedicate one unit to the displays and another to the inputs. Then you have a limited amount of data that must be shared between the two teensy's.

For the backlights, I believe multiplexing LED-driving chips have been developed, i.e. chips that are specialized in terms of driving arrays of LEDs. I'd check them out.

Do I need to talk between them? Why not just treat them as separate I/O devices as far as PC side is concerned?

Was going to do dedicated output/input teensys, but great suggestion. (Apparently warped minds really do think alike.)

I am looking more at multiplexing ICs, and the MAX6954 looks VERY promising. They are SPI devices, so I could make quite a few of them. They will drive my 16 and 7 seg displays, but they are kind of pricy - I'd be looking at around 90 bucks in ICs alone for the UFC. Ouch,

3212Fig01.gif
 

Attachments

  • 3212Fig01.gif
    3212Fig01.gif
    47.3 KB · Views: 320
Last edited:
Hi Jrsteensen,

A friend and I are starting our plans to build F-18C cockpits for DCS as well. We have been flying Falcon BMS and had planned on starting viper pits but DCS offers more options for the future and he is a big fan of the F-18 (navy pilot, currently flies 737s for Southwestern).

I have been using the Teensy++2.0 for input boards on other simpit projects (have a few F-16 ICP modules near completion) but would very much like to follow, or work along with you, on your project.

I am a cabinet maker and own my own small shop. The CNC machine in the shop has been and is a great tool for simpit building. As far as structure we are well off, in programming we are sadly lacking.

Please do continue to post your progress. Although I have no experience with programming if there is any assistance that I might give please contact me.
 
Designed a F/A-18D replica UFC for use in my flight simulator project. Trying to figure out how to drive it - I'm really not much of a electronics guy. I can do basic breakout boards in Altium.

My first thought is to have multiple Teensy++2.0 modules, with a powered hub inside the HUD box.

Here is what I have to drive:

  • 22X 16 seg alphanumeric LED Displays
  • 11X 7 seg displays
  • 6X Output LEDs
  • 15X Backlighting LEDs.
  • 19X Tact switches
  • 3X Rotary Encoders
  • 1X 3POS Toggle

Any thoughts or ideas would be greatly appreciated.

Actually, if it was me I would only use 1 (one) Teensy++ board to drive it all. The program and data memory is huge, and I only managed to fill 18% program and 510 Byte data memory with my CMC Nighthawk ICP code...

Also, don't forget, that real UFC-s or ICP-s or call them whatever you would like to have multiple meanings assigned to the numerical buttons, and you actually type in commands to it, that it has too interpret and then send to the simulator.
For example in the F16 ICP if you want to set the autopilot airspeed to 250 knots you would have to type [9](A-CAL select)[2][5][0][ENTER].
Setting the altitude hold to 35000 feet would be [5](CRUS select)[3][5][0][0][0][ENTER]

The switches can be tied to a keyboard matrix, so you will only use up 9 pins for that (4 rows and 5 colums).
The Rotaries only need up and down, so you can get direction sensing non-positioned rotaries for those.

For the LED displays and stuff: The Micrel MM5451 is a single state 35 output LED driver that can also be used to switch logic output to any LED driver IC you want to address. So basically you can drive all your IC-s from like 3 pins? You need a clock pin, a TX pin for output to the MM5451 that will drive your logic switching board, and a TX pin for communicating with virtually any number of LED drivers you can imagine.

See? Making one of these is easy as goblin pie...
 
.... the MAX6954 looks VERY promising. They are SPI devices, so I could make quite a few of them.

SPI can be tricky for long wires and many devices. You might need buffers and/or series resistors to control ringing and other signal quality issues.

I don't want to discourage you, and indeed this should be possible. Just know it's pushing pretty far beyond the typical SPI usage of 1 to 4 chips located fairly close together on the same circuit board.
 
Status
Not open for further replies.
Back
Top