Close

All Parts Together - Wiring Finished and Now workin!

A project log for Ultimate Brick Game: A Childhood Icon Rewired

The infamous “9999-in-1” handheld was never real — so I rebuilt it with a Pi Zero, a 2.8 TFT display, and a 4800mAh battery

jorisclaytonJorisclayton 07/06/2025 at 19:460 Comments

This is my first working version of the console. I'm using it to figure out what should stay and what needs improvement in the final build — but it's already fully functional. I added a 50x50mm aluminum heatsink, and noticed that I’ll need a 0.5mm thermal pad to get good contact with the CPU. I also tried adding a 6300 µF capacitor on the main power line, but turns out it’s not really necessary — the audio was fine without it. On the other hand, I had some issues with the headphone jack connection and I’ll need to redesign that part.

The internal layout uses custom 3D-printed parts. All electronics are mounted on those pieces, held in place with M2 machine screws. The screen and the Raspberry Pi Zero W are fixed together in a single printed frame, which is then attached to a second frame that holds the audio amp (PAM8403), power button, RC filter, volume knob, and 3.5mm audio jack. All buttons — both front and rear — are also mounted on dedicated printed structures.

The 18650 cells are held by springs, which makes them easy to replace. If I had access to a spot welder, I’d probably go with nickel strip and fixed terminals instead. The only parts glued to the shell are the ones that physically change the case — mainly the section I had to expand to fit the dual 18650s. I still managed to reuse the original battery cover, which gives a nice translucent look to the cells.

It was a tight fit. I used wires that were way too thick, which made assembly harder than it needed to be. For the next version, I’ll use thinner, more flexible wires. I also had to trim the TFT display edges to make it fit the front shell, which made the cable connection a bit tricky — but it works fine.

On the software side, I made a few changes that I’ll explain in detail later. I used specific drivers for the SPI display, configured GPIOs for both audio (PWM) and button input, and implemented two different config.txt files at boot — one for handheld mode (with the TFT screen) and another for RCA output when connected to a TV. I have to reboot to switch modes because the current driver setup can’t handle both at once. The charging port is still micro USB, but I’ll probably switch to USB-C next time.

Rear buttons are not mapped yet, but in the next revision I plan to include full L1/L2/R1/R2 support with better positioning. The original speaker was terrible — I replaced it with a smaller but stronger one that sounds much better.

The console uses very little power. With a light overclock to 1200 MHz, it still runs for over 8 hours on a full charge with two 18650s, and doesn’t overheat. The passive 50x50mm heatsink is enough — I won’t use an active fan anymore. The RCA+USB video output module is working fine. When I plug it in and reboot, it disables the TFT and enables RCA automatically, since I can’t run both displays simultaneously with the current configuration.

Discussions