This is the second control box I built almost one year ago and it’s still the box I use the most. Its job is to make pushing between frequencies a much easier task: the Ka-50 has two radio, the R-800L1 and the R-828; the former is tuned by operating four knobs, the latter requires one. Each knob can be rotated CW and CCW for a total of 10 functions, plus the “tune” button required on the R828. It’s quite a number of buttons and during a mission, when maintaining close formation, scanning for targets or avoiding obstacles going head-down on the radio panel to tune the correct frequency is definitely not something you want to do!
But why are radios so important? SP pilots probably rarely use their radio but in MP is different, especially when flying in a group that uses SRS or UR. Any training session or mission in the 132nd Virtual Wing has one or more human controllers. The R-828 is used for intra-flight comms, therefore is usually just once wheres the R-800L1 instead is tuned to:
- ATIS, for the latest information about weather and QNH;
- Ground, to check-in and requesting taxi to runway;
- Tower, for departure;
- Control, after departure, en-route towards the AO;
- Additional controllers, such as JTAC or AWACS.
As you can see, a dedicated control box starts making sense 🙂
Radio Box V1: Buttons matrix + encoders
The first version of the control box was very simple: the 6 encoders use a total of 12 pins. The remaining formed a 3×3 button matrix.
The second row of encoders sported the pushbutton function; top-left there were 2x 3-way momentary switches.
The use was simple: top row of encoders for the R-800L1, bottom-right encoder for the R828 (push for tuning); bottom-left encoder for the Kneeboard (push for toggling visibility). The big round button centers the Track IR by sending a keyboard command and the others were used for controlling lights.
Radio Box V2: Latched 3-way switches
While I was planning my next control box I got stuck into the problem of latched 3-way switches. There are a number of ways to deal with the issue and I decided to use voltage dividers. Voltage diverders are a very easy solution with a number of applications; in our case they will allow our Arduino Board to understand the position of the 3-way switch by effecting the reading of the analog pins.
The concept is simple (I will write a dedicate Arduino Pill about it at some point): each end of the switch is connected to either GND or Vcc each through a resistor therefore the position of the lever changes the value read on the analog pin in an unique way (alright, let’s pretend noise doens’t exist for a moment). Code-wise, a simple series of cascading IFs will associate the value to the correct button and fire the appropriate Joystick.setButton() event.
As you can see, this approach is very simple and straight-forward but has a major flaw: the number of analog pins on a board is limited therefore if more than four 3-way latched switches are required, different solutions must be used.
In this image you can see the small board hosting the four resistor required to control the 2x 3-way latched switches. I have also added 2-way latched switch and left the three remaining pins for the encoders’ pushbutton function and the Track IR. The final result can be seen in any picture of my updated setup.