Tindie waitlist is live!
PCB Design Files on GitHub
Firmware on GitHub
Part 2 video is in progress!
Full instructions for the build are in progress!
Goals
- ✔ Must fit inside the official LEGO Game Boy Kit with minimal changes
- ✔ Plays Game Boy ROMs from microSD card
- ✔ D-pad, A, B, Start and Select buttons should work correctly
- ✔ Powered by an internal rechargeable LiPo
- ✔ Must have sound via on-board speaker
- ✔ Can be re-flashed and charged via USB-C
- ✔ Needs a way to access the emulator menu without removing any LEGO
Design
The main PCB has been designed to fit in the available space inside the LEGO Game Boy, where the cartridge normally fits. This main board has the screen attached to the back and hosts all of the components other than the buttons. The buttons and D-pad are made functional via additional mini PCBs, membrane conductive pads, and some 3D printed spacers.
Due to space limitations, a 300mAh battery was chosen.
LEGO Changes
Some small changes were made to accommodate the electronics. Mainly removal of some parts, and a small number of substitutions which I'll document shortly.
Main Components (v1)
| Component | Purpose |
| Main PCB | Holds the main electronics |
| ButtonBoard PCBs x3 | For locating underneath the 3 sets of buttons |
| JST SUR Wire Assembly (8-pin and 3-pin) | Connects the Main PCB to the ButtonBoards PCBs |
| ESP32-S3-WROOM-1-N16R8 | Main SoC for running emulators, GPIO input for buttons |
| ER-TFT024-3 50-pin 2.4" LCD Screen | Colour Screen |
| BQ24040DSQR, TLV75801PDRV | Battery Charger + Voltage Regulator |
| ESD7104MUTAG | ESD protection |
| MAX98357A + CMS-160903-18SP-X8 | Sound Amplifier, Speaker |
| 300mAh LiPO Battery with PH connector | Battery |
| 3D printed parts | See below |
| Various tact switches | Emulator menu button, D-Pad, Select + Start |
| Silicon membrane x2 | For A+B buttons to feel right |
| MicroSD socket | For loading ROMs |
| USB-C socket | Charging, updating firmware |
Full BOM
Firmware
The project utilises the excellent and very customisable Retro-Go firmware, which has support for Game Boy emulation and the ESP32-S3 SOC already built in. The main code changes are to map the GPIO pins correctly and set up the external DAC for the speaker. Some modifications are also needed to configure the touch screen and to add a volume control to the emulation menu, since we don't have dedicated controls for this. A final touch is to ensure that if only one ROM file exists on the SD card, it's automatically loaded boot, instead of a menu.
3D Printed Parts
3 Small 3D printed parts are needed to hold the A+B PCB in position, the select+start button spacers, and the emulator menu button. Those parts are here.
Tindie Kit
The Tindie Upgrade Kit (currently waitlist-only until I have some ready) contains the following:
- Fully populated Main PCB, flashed with latest firmware & emulators, tested
- Buttonboard PCBs with connection wires pre-soldered
- 300mAh Battery
- Screen
- Speaker
- All required additional LEGO parts to make space for the buttonboards
- Links to build instructions (no soldering required)
- USB-C internal extension cable
- Custom 3D printed parts for holding ButtonBoards in place
- Custom 3D printed part for holding USB-C socket
The kit does NOT include a microSD card (FAT32 formatted), or a USB-C cable
Theremin Hero
Arnov Sharma
sjm4306