A lot happened since my last update on the simpit – under it’s hood. Function wise it changed not so much so the older demonstration video is still better for a quick demo. I still assembled a new video from clips of the first evening with the new hardware:
So what changed? I got rid of the CY-822A USB joystick controller that, while good, was also limiting. Especially in inputs and how they would react. The Raspberry Pi, that I used to drive the status indicators, is also gone. This is all replaced by one single Arduino Mega that is connected via serial over USB.
A custom joystick daemon written in Rust is listening for data from the #Arduino and feeds back the flags of Elite Dangerous to drive the blinken lights. I also extended the source to add me some rotary encoders (with push button function) and I’m very happy with the result of this. That makes a whopping amount of 48 buttons and 6 axis (where 2 axis make one hat). And it feels _so good_ to have e.g. self destruct or eject cargo save under a protective cover now 😀
![](https://beko.famkos.net/wp-content/uploads/2022/08/simpit-sc-pewpew-all-those-missiles.jpg)
![](https://beko.famkos.net/wp-content/uploads/2022/08/simpit-sc-pewpew-close-missile.jpg)
![](https://beko.famkos.net/wp-content/uploads/2022/08/simpit-sc-pewpew-limping-home.jpg)
![](https://beko.famkos.net/wp-content/uploads/2022/08/simpit-sc-pewpew.jpg)
The panel also got an external PSU with enough ampere to drive as many LED as I may imagine so I no longer abuse a phone charger for that or risk frying of the PCB / USB.
![](https://beko.famkos.net/wp-content/uploads/2022/04/simpit-psu-1024x576.jpg)
With all that in place I streamlined my pre-flight check-list quite a lot because way less hardware is involved and most of this is automated by now. It wasn’t all fun n giggles tho and while the new hard- and software “just worked” in e.g. #StarCitizen it was #EliteDangerous that gave me a hard time to actually use most of the new buttons.
![](https://beko.famkos.net/wp-content/uploads/2022/08/simpit-button-madness-1024x213.jpg)
Turns out it had no idea about the device and model identifiers reported by the joystick daemon and that the kernel assumed a gamepad based on declaring e.g. ButtonNorth via the more recent xinput system really didn’t help – because that limited the amount of read buttons via xinput severe! In the end I set it’s identifier to a “vJoy” device. That I found in the DeviceMappings.xml of Elite and since this could be basically anything I gave it a try (and removed all “offending” magic gamepad buttons from the code) and sure enough Elite started accepting the inputs as expected and from there it was smooth sailing – got even the hat working.
Oh and for everyone who is wondering what exactly they are seeing on the “MFD” when I’m playing Elite: That’s basically a Website using the #Arwes FUI framework. Find a quick demo video here. Without the cardboard covering up parts of the screen it looks basically like this:
![](https://beko.famkos.net/wp-content/uploads/2022/08/elite-dangerous-mfd-website-in-arwes-game-part-1024x576.jpg)
![](https://beko.famkos.net/wp-content/uploads/2022/08/elite-dangerous-mfd-website-in-arwes-1024x574.jpg)
I also started doodles for a version 2 – now that I have an idea what I really want.
![](https://beko.famkos.net/wp-content/uploads/2022/07/macross-simpit-doodles-1024x576.jpg)
@bekopharm I just googled arduino mega and fuuuck that thing is huge, I need that in my life!
@viktorTheBoar I can relate: https://social.tchncs.de/@bekopharm/108000636997234391 🤓
@bekopharm This is a crazy level of dedication… Amazing…
@vidar yes, positive crazy 😜 Thanks 🙂