F16 Flight Control Grip Movement & Position Sensor

A work colleague was about 90% of the way through building his own F16 flight sim cockpit, and from what I saw, the whole project was built from the ground up with the highest of care and attention to detail. From the individual control panels to the different displays and other physical aspects. Better yet, it was all DIY. Everything was a near replica of that in real life, and his final hurdle was to design/build something to interface with a High G Flight Control Grip. They are known as High G as the grip has very limited movement on each axis (less than 10mm). Unlike most conventional aircraft,  the grip is located directly and comfortably in front of the right hand (photo of a cockpit). Here's what one looks like in real life on its own;


Notice the bottom of the grip, its not what you would usually expect to see. The avionics package to interface with the above grip costs $$$ and he was not prepared to fork out almost what he had paid for the entire project to date on a single item. We got talking about it at work and went through a number of different designs. From potentiometers to air pressure, they were the first thoughts, and then I put it to him to use light.

Mapping the light shadow over such a small range of movement would not only be simple, but also involve no moving/wearing parts. Gav (the work colleague) is very good with locally manufacturing metal adaptors/parts, and he made/modified the mating adaptor that would connect the grip to a sturdy enclosure;


Notice the heavy duty silastic under the adaptor, this provides part of the stiff resistance to ensure limited movement. Within the enclosure contained the rest of the assembly, including sturdy springs (to ensure the grip always returned to center) and the LED enclosure;


The image above also displays the lower part of the LED enclosure. This is where a high powered LED is mounted along with paper sealing the lower opening (not displayed). This resulted in a vibrant bright white square of light that would shine directly down (more on that in a minute). Now that we had a way of transmitting positional information, it was time to get to work on the reception side. A rather simplistic Light Dependant Resistor (LDR) approach was used. With two LDR's, both X and Y axis information could be mapped and converted into real positional data to send to a standard Joystick Controller. Here's a picture of the LDR's in place ready to be mounted;


They were painted and aligned in such a way so that either axis could move without the adjacent one being modified. Keep in mind that the full swing deflection of the light square was only about 8mm, much less then the available cutouts above. Here's the completed unit in operation (without the side panel fitted);


Looking at the image above might help explain the operation. Imagine the stick moving from the left of your screen to the right. The LDR on the left of your screen will adjust in resistance accordingly, however, the LDR closest to you will maintain the same amount of light the entire time. This is how axis separation is implemented, simple and effective.

The software behind the unit will run through a calibration upon first power up. From there on, all cal data is stored in the EEPROM of the PIC, and can be re-calerbrated at any time. To ensure maximum resolution, the calibration procedure involves setting the ADC -Vref and +Vref. It's actually a pretty neat little program and while its directly related to this project, I don't want to take away from the focus I intended with this article - positional sensing via light. With that said, here's the completed unit ready for installation;


Update: I later made a PCB for the project to clean up the appearance (there are a few components on this one after all). Here's the transformation;


The protoboard did prove useful and naturally underwent a few modifications while a proof of concept was being made. Here's the board layout for Gav's reference;


The source code can be downloaded here.

Forum Activity

Member Access