It’s like a Rube Goldberg machine from Looney Tunes or Wallace and Gromit, and we think it also crosses the boundary into modern art too. Nick says he hates to throw away electronics, and likes to repurpose them if he can’t fix them, which has resulted in this interesting fix.
What a fix
“After gutting the arcade cabinet, I installed a new 320×240 LCD display of the same size as the original,” Nick reveals. “The display, along with the joystick and buttons, are wired to a Raspberry Pi 4 computer that fits inside the casing. Raspberry Pi runs fbcp-ili9341 to use the LCD as its main display. It also runs a custom Python script which handles input from the joystick and buttons.
“The arcade operates in two modes – ‘drive’ and ‘game’, which are toggled by the ‘Start’ button. In drive mode, the script sends HTTP requests to a laptop that issues ROS 2 commands over Wi-Fi that control the movements of the robot. In game mode, HTTP requests are sent to an Arduino Nano 33 IoT attached to a Raspberry Pi 3, running RetroPie and emulating Galaga, that acts as a keyboard emulator. This allows remote key-strokes to be sent to control the action in the game.”
The robot has an Espressif ESP-EYE camera board connected to ESP32 MJPEG streaming server which allows for sub-second video streaming delays – very impressive and also fairly necessary for the experience to feel as organic as possible.
Remote control
With all this tech, was Nick able to fix his Galaga machine? Yes, as he explains.
“It works surprisingly well in some respects. The game is clearly visible on the display screen, and the lag is only about 200 milliseconds, which is acceptable for most retro games — nothing happens much faster than that in games of that era,” Nick says. “As for the robot, the controls are smooth and it is easy to get around without bumping into obstacles.”
We look forward to the explosion of arcade cabinet repair kits with streaming robot cameras at their core.