Building a physical KX165 panel đź”—

Posted by MĂ©dĂ©ric Ribreux 🗓 In projects/flightgear/

#electronic #flightgear


BendixKing KX165 is a COM/NAV radio console with which you can configure what COM and NAV stations you would like to use for communications and IFR. In this project, we'd like to build two stacks of KX165: one for COM1 and NAV1 and the other for COM2/NAV2.

I'd like to say that I have never seen a real KX165 before trying to build a physical console for it.


Console outputs

One stack of KX165 just shows four 5-digits 7-segments to display the frequencies of COM and NAV. For COM, two frequencies are displayed: the used frequency and the standby one. On the NAV side, there is also two frequencies that are displayed but you can also display (and set) the OBS radial by pushing the frequency knob.

For output, we just need 4 5-digits or 2 10-digits of 7-segments per stack. Since we want to build two stacks, we need 8 5-digits or 4 10-digits.

Console inputs

One stack of KX165 have lots of input commands:

We can add a potentiometer to regulate 7-segments LEDS dimming.

But, after a bit of part searching, I've found that double rotary encoders are really expensives compared to single shaft units (15€ each vs 2€). We are going to use one rotary encoder to set main part frequency and another rotary encoder (with switch button for NAV) for the dot part of the standby frequency setting.

Remember that those parts are only for one stack of KX165.

Communication with the computer

We will use a USB port on the fligthsim computer to interact with the console. We need to have a microcontroller which will be able to "speak" USB easily.

Microcontrollers dimensioning


We need to be careful about the number of pins, so we need to try to determine how many pins are necessary to take care of inputs and outputs. Furthermore, we need to have a gross vision of the memory consumption (RAM), so we will have to list all of the needed live data.

Output Pins requirements

We need 5-digits 7-segments LED display. I have sourced the LDP-N564RI on Mouser site.

We can pilot a 10 digits or a 5 digits with multiplexing to reduce pin requirements (actually, it is a pre-requisite). To pilot a 5-digits 7-segments we need 13 pins even if there is 14 pins (last pin is for the last dot which we don't care about).

A full stack of KX165 needs 4x5-digits displays which means we need 4x13 pins = 52 pins. Actually, it can be greatly reduced. We need 8 pins to power the LED of one 7-segments. But we can connect all those output pins to the other 5-digits displays as long as there is enough pin to control the multiplexing. the main drawback of this method is that you have to share the µcontroller cycles between n displays instead of just one. As multiplexing is just to draw a 7-segment at a time, distributing the power with the input pins (common cathode).

=> minimum of two ATTiny with 24 pins at minimum.


Command pins

For one stack of KX165:

Total of 15 command pins per stack.

Central unit

A dedicated µcontroller for:

Total of 40 pins: 30 I/O lines, 2 power, 2 Serial TX/RX (I/O lines), 4 SPI, 2 crystal.

Ports descriptions:

Cost for a commercial KX165 console

In France, you can buy a new Saitek Pro Flight Radio Panel for about 150€. We need to maintain the BOM under this cost otherwise, buying consumer electronic device would be easier and cheaper.


Bill of materials