
In the late 1980s and 1990s, the Game Boy redefined handheld entertainment. With its chunky buttons, monochrome screen, and pocket-sized design, it evolved from a toy into a cultural icon (see Fig. 1). For many, it was the first glimpse into portable electronics, sparking curiosity about gaming and the technology behind it. Decades later, the Game Boy continues to captivate retro gamers, engineers, and hobbyists, inspiring makers and hackers to reinvent its legacy.
Building on that legacy, the Smallest Portable Game Boy Retro Console and Wi-Fi Hacking Device (see Fig. 1) unites retro gaming charm with modern embedded technology. Powered by the ESP12F Wi-Fi module (ESP8266), it enables retro-style gaming, Wi-Fi scanning, deauthentication, and Wi-Fi penetration testing. Its compact 4.5cm round PCB packs all essentials—an LDO regulator, capacitors, resistors, a battery connector with power switch, and tactile control buttons.
Display options include an OLED SSD1306 for a classic 90s look or a TFT LCD for modern visuals. Supported by open source libraries, the device allows development of custom games or deployment of prebuilt hacking tools, making it a versatile, retro-inspired, future-ready device for makers and security researchers.
The ESP12F chip delivers the processing power required for running Game Boy games while supporting Wi-Fi hacking, making it ideal for dual-use designs. It provides sufficient I/O, memory, and a compact footprint that aligns with system requirements.
The design also offers flexibility in display options. Users can select an OLED display (over I²C) or a colour display such as the ST7789V round-edge, GC9A01, or any other compatible module. Both types can operate simultaneously, with OLED on I²C and colour displays on SPI. Power regulation is managed by an LDO regulator, ensuring stable operation across all components.


All components are SMD to maintain a small, compact form factor, with only the buttons using through-hole footprints. Fig. 1 shows the author’s prototype, while Fig. 2 compares the market-available Game Boy with the author’s design. Required components are listed in the Bill of Materials (Table 1).
| Table 1: Bill of Materials | |||||
| Name | Designator | Footprint | Quantity | Manufacturer Part | Manufacturer |
| 6X6-PUSH BUTTON COPY | BUT1, BUT2, BUT3, BUT4 | 6X6-PUSH BUTTON |
4 | ||
| 100nF | C1 | C0402 | 1 | GRM155R71H104KE14D | muRata |
| 1µF | C2, C3 | C0402 | 2 | CL05A105KP5NNNC | SAMSUNG |
| SM02B-SRSS-TB (LF)(SN) | CN1 | CONN-SMD_2P-P1.00_SM02B-SRSS-TB-LF-SN | 1 | SM02B-SRSS-TB (LF)(SN) | JST |
| OLED DISPLAY | LCD1 | SSD1306-OLED-128X64-I2C | 1 | ||
| ESP-12F | MOD1 | WIFIM-SMD_ESP-12F-ESP8266MOD | 1 | ESP-12F (ESP8266MOD) | Ai-Thinker |
| 10kΩ | R1, R2 | R0603 | 2 | RC0603FR-0710KL | YAGEO |
| MK-11C04-G013 | SW2 | SW-SMD_MK-11C04-G013 | 1 | MK-11C04-G013 | G-Switch |
| St7789v | U1 | 1.28-inch Round Edge Display | 1 | 19192 | Waveshare |
| USB 2.0 Solder Pad | U3 | USB SOLDER PADS | 1 | ||
| SK6018CD4-28 | U4 | DFN-4_L1.0-W1.0-P0.65-BL-EP | 1 | SK6018CD4-28 | suntek |
Design
The primary requirement of the device is a power supply capable of operating the entire system. The ESP12F supports an operating voltage range of 3.0V to 3.3V, and the display operates within the same range. Therefore, a 3.3V regulated supply is required to provide a stable voltage, regardless of whether the input source is a 3.7V Li-ion/LiPo battery, a 5V or 7V battery, or USB 5V power. The regulator ensures a clean and stable 3.3V output for the entire system.
An LDO regulator is employed for this purpose. While a common AMS1117-3.3 or similar 3.3V LDO could be used, the SK6018CD4-28 was selected to maintain a compact form factor. It comes in a very small DFN-4 (1mm×1mm) package, saving PCB space. The datasheet specifies an input voltage range of 1.2V to 5.5V, delivering an output current of up to 600mA (VIN ≥2.3V with EN enabled). This is sufficient to power the ESP12F during peak processing and Wi-Fi transmission, as well as the display module. Table 2 shows an extract from the SK6018CD4-28 datasheet.

The LDO requires two 1µF ceramic capacitors (one between VIN and GND, and one between VOUT and GND) to ensure stability and proper filtering. SMD ceramic capacitors are used to maintain compactness. Refer to Fig. 3 for the LDO voltage regulator circuit.
Game Boy Core ESP12F Design
According to the datasheet, the ESP12F provides 22 GPIO pins, including three strapping pins (GPIO0, GPIO2, and GPIO15) that determine the boot configuration. For normal boot mode, GPIO15 must be pulled to GND via a resistor. During programming or firmware upload, GPIO0 must be pulled low; a jumper is provided to force this pin low only during upload, while it remains pulled high during normal operation. The EN (CH_PD) pin is pulled up to VCC via a resistor to keep the chip enabled.
For Stable Booting
To ensure stable booting, follow these steps:
- Pull GPIO15 down to GND for normal boot using R1 (10kΩ).
- Pull GPIO0 low only during programming to enable firmware upload; in normal operation, it remains high.
- Keep GPIO2 pulled up to ensure the correct boot configuration.
- Pull EN (CH_PD) up to 3.3V using R2 (10kΩ) to keep the chip enabled.
A decoupling capacitor, C1 (100nF), should be placed close to VCC and GND to filter high-frequency noise and stabilise the power rail during Wi-Fi transmission bursts. The module features dedicated VCC (3.3V) and GND pins. With appropriate pull-up, pull-down, and decoupling networks, the ESP12F operates reliably as the core of the portable device.
Peripheral connections use the remaining GPIOs and are routed for either an OLED display (I²C: SDA, SCL) or SPI colour displays (MOSI, SCLK, CS, DC) along with button inputs for user control. Fig. 4 shows the ESP12F footprint and pinout, and Fig. 5 shows the chip configuration.



Complete Circuit
Fig. 6 shows the complete circuit diagram of the portable Game Boy and Wi‑Fi hacking device. For clarity, the circuit is divided into subsections.

Keypad buttons
Four tactile push-buttons provide game controls, menu selection, and basic UI navigation. Buttons are mapped to available GPIO pins; the design is expandable, for instance, via an I²C-based touch keypad. Refer to Fig. 7 for the complete circuit.
Battery connector
A SM02B-SRSS-TB connector accepts a single-cell Li‑ion or LiPo battery. The connector routes BAT and GND to the LDO regulator, providing a stable 3.3V supply to the ESP12F and the display, supporting a compact, wearable form factor.
USB to TTL programming pad
A USB 2.0 solder pad exposes VIN, RX, TX, and GND for connection to an external USB-to-TTL adaptor (FTDI/CP2102/CH340), enabling firmware flashing and debugging without additional hardware.
Power switch
A slide switch (SW2–MK-51C04-G013) is placed between the 3.3V regulator output and the battery input to disconnect the battery when not in use, thereby preventing unnecessary drain.
I/O and power pins
Unused GPIOs (IO0, IO2, IO9, IO10, IO12, IO13, IO15, TX, RX) plus 3.3V and GND are routed to a header for expansion with external modules, sensors, or additional controls. This extends functionality beyond gaming to prototyping and IoT applications.
PCB Design
The ESP12F module is placed on the bottom layer with the USB footprint and discrete components; the OLED header is on the top side. SPI headers for a colour display are located to the left, and tactile buttons sit below the display. When Wi‑Fi is required, the ESP12F antenna must be positioned outward with a PCB cutout to ensure optimal signal performance and reduce interference from surrounding components. A revised layout includes an antenna cutout and proper module placement. Fig. 7 illustrates the PCB layout with the antenna cutout as well as the manufactured PCB.

SMT Soldering
After PCB fabrication, perform SMT soldering, install the tactile buttons, and mount the display. The device is then ready for testing. Fig. 8 shows the ESP12F SMT placement and the assembled board.

Software
Custom games can be developed and deployed to the device. Example recreations include Flappy Bird, Pong, and Tetris. Source code and resources are available via the QR code in this article.
Setup steps:
- Install the TFT_eSPI library and the ESP8266 board package in the Arduino IDE
- Configure User_Setup.h for the chosen display (see [TFT_eSPI documentation](https://doc-tft-espi.readthedocs.io/starting))
- Place the board in download mode by connecting GPIO0 to GND. Connect RX, TX, and power via the USB solder pads to an FTDI adaptor, then upload the sketch
- Optionally, enable OTA updates to upload games over Wi‑Fi

Testing

After uploading the code and assembling the device, connect the battery and test the games. The device can also be repurposed with Wi‑Fi Deauther firmware or other Wi‑Fi tools for experimentation. Users must observe applicable laws and ethical guidelines. Fig. 10 shows the console running a game.
Bonus: You can watch the video of the tutorial for this DIY project below:

