Back in 2004 I started to think about how I could build a real airliner cockpit entirely based on Linux. I At the end of 2017 (and with a grown family) this idea has evolved into a fun project. The way to that goal is still a long and a very creative one. But today I can share first of all a few specifications of how I proceeded with it and you will find a few images documenting the current status of my Boeing 737-800 (NG) home cockpit.
The first thing to think about when running linux is which flight simulator to pick. The number of candidates is barely countable … For entirely open source fanatics Flight Gear would be the way to go. However, X-Plane was my choice because of its highly sophisticated aerodynamics and visual simulation quality. And X-Plane is extendable on just about every side.
The second thing to think about is how to connect hardware to your Linux box and to the flight simulator itself, and then, which hardware to pick (or vice versa). Hardware there is much. But all available software interfaces are written for Windows-based flight simulators and most of them again for the Microsoft Flight Simulator itself. I have chosen the famous OpenCockpits set of I/O cards for my project and extended it with Leo Bodnar‘s even ore famous joystick and I/O cards.
The way to go was to invent my own interface to OpenCockpits and Leo Bodnar’s I/O cards. I call it xpiocards and it is managed as open source together with my colleague Hans who joins my linux home cockpit fate with his Airbus A320 cockpit. The difficult part was to reverse engineer the not-so-open Open Cockpits hardware communication (the blueprints are open, but the communication protocol is not). This yielded a highly stable USB communication to the client application usbiocards and to a even more stable TCP/IP communication to the xpserver server plugin in X-Plane. Since all the code is custom made I have full control over all issues and can correct bugs on the fly. This is not the case if you build a home cockpit with proprietary flight software. Isn’t it fun to have control over something so complex which is only enjoyable if your flight experience is free of glitches … especially at the last 100 feet prior to a difficult landing?
The great part of the current server client I/O application is that there is no need to manually edit plugin-side dataref list which is exchanged with the clients (in FSUIPC language: defining a list of offsets). The client (in fact any number of clients) simply subscribe to their specific datarefs which are then sent to them in regular intervals. In fact they are only sent if they are updated on the flight simulator side or updated on the client side. Isn’t this a marvellous idea? No need to exchange unnessesary data …
It all started with a few X-Plane datarefs being exchanged between X-Plane and a simple NAV radio panel based on OpenCockpits hardware. I have bought the I/O cards and panels and built the electronics myself. The weak part of OpenCockpits is the uneven backlighting capability and the “not so open” communication protocol of their I/O Cards.
A big progress has happened once my colleague Torsten from CockpitForYou has delivered the motorized B737 Throttle Quadrant. The package was huge and I had to get it from the cargo company office … since I do not own a car the picture above tells you how it can be done with our kids trailer: it is also a cargo bike!
The next great step forward was to complete the full B737 pedestal. For this Lausitz Aviation delivered a highly professional pedestal case in which I could mount the Open Cockpits panels and the underlying electronics.
The current final task was to mount a 55″ TV and also integrate and further develop the outdated OpenGC code into a fully functional Boeing 737 Primary Flight Display (PFD), Navigation Display (NAV) and Engine Indication and Crew Alterting System (EICAS) set of displays on a second monitor.
And yes: the best of all. My colleague Benedikt Stratmann from EADT is building the same beautiful plane with its full functionality by software as I am by hardware. So here you go: a big applause for EADT and their famous x737. You see the airplane above with the Air Greenland livery stationed at the Marina di Campo airport on the Elba island.
So here you get a list on the current hardware / software setup:
- Tuxedo Computers XUX_Cube
- CPU I4790
- 16 GB DDR RAM
- 256 GB SSD
- NVIDIA GTX 970
- Debian Stretch
- X-Plane 10.51 (X-Plane 11 in testing, but stability is more important for me than features)
- Boeing 737 NG from Benedikt Stratmann (x737 @ eadt.eu)
- CockpitForYou Motorized B737 Throttle Quadrant
- Lausitz Aviation Pedestal case with custom made panel holes drilled by my great colleague K.
- 2 original Boeing 727 seats (anyone has the rails to them?) from e-bay
- Open Cockpits USB Expansion Card and 3 Master Cards (2 Master Cards for Pedestal and 1 Master Card for MCP / EFIS Panels)
- Logitech Z623 Speakers and Subwoofer
- 55″ NEC Multisync E556 for Visuals
- 23″ Apple Cinema Display for Glass Cockpit and System
- Trustmaster Joystick and a set of CH Pedals
- Two old but highly stable Melcher Power Supplies (5V and 12V)
- A heater for winter and a ventilator for summer: the home cockpit is currently mounted just under our roof in a non-insulated area.
And watch out for more. The flight controls are in progress …