Cockpit: The plan

July 9, 2024

I grew up around military aircraft, if I close my eyes I can hear them flying by and see their imposing figure right in front of me. They always take me back to my childhood, so I've decided to bring a part of them to my job.

There is an absolute ton of stuff I need to have on hand to be even remotely good at what I do and I kept thinking about getting a macropad or a streamdeck, hook up some bash scripts and leave it at that. But then I wouldn't have a story to tell, nor would I have had any fun...

This was going nowhere, up until I stumbled on this:

It's a replica straight from an F-18 cockpit. Not only does it look cool but it looks far more versatile than any macropad I've seen. But there is an issue...

There is exactly 0 linux support for it. That's not a dealbreaker but it does mean that I will have to write the driver myself. No problem, you just read through the technical specification about how it transmits/receives data and implement it. Yeah, right... The manufacturer provides no such thing.

Not all hope is lost but things are getting increasingly difficult (or interesting). The first option is to decompile the windows driver they provide and try to learn something from there. Option two is to reverse engineer this by plugging in the device, pressing a bunch of buttons and looking at what comes out the other side of the cable.

Funnily enough, even though option 2 sounds more like a shot in the dark, I think it's going to get me some results faster. The only thing that might not come easy is switching the LEDs on the panels on/off. After the driver is working, there is still the problem of managing the functionality. Knobs, switches that likely affect everything around them, this thing has state and it's gonna get messy.

Anyway, this is what's to come, a deep dive into driver development in linux. I haven't touched C since I left university and it's time I brush up on it... Don't worry though, I'll find a place to fit some lisp in there!