Skip to the content
2 layers82.5 × 136.7 mmGameboy dmg, the printed circuit board in 3D

PCB for Gameboy DMG with audio and GPIO expander to provide I2C interface to push buttons

Size
82.5 × 136.7 mm
Copper layers
2
Thickness
1.6 mm
Parts
95
Nets
103
Pads
302
Tracks, vias
524, 76
Pours
2
Routed
Yes
KiCad
KiCad 5 (file 20171130)
Created
26 Mar 2020
Updated
17 Apr 2020

Overview

Gameboy dmg is an open-source printed circuit board by alxhoff, from the alxhoff/gameboy-dmg-pcb repository on GitHub, published under the GPL-3.0 licence. It is a 2-layer board of 82.5 × 136.7 mm with 95 parts on 103 nets, routed with 524 tracks and 76 vias.

It is built around the MT3608, PAM8302AASCR and FS312F-G, with the FS8205, TP4056 and S8050 among its other parts. Its parts include 15 resistors, 12 capacitors, 8 connectors, 7 ICs and 4 diodes. It belongs with the retro computing and games boards of this library.

Main components

7

README

README.md

Gameboy DMG Raspberry Pi Board

My revived Corona project, work in progress. The idea of this board is to be a single board drop in for the Gameboy DMG case that is readily availble from all the normal places (eBay, AliExpress etc.) to provide easy game emulation using a Raspberry Pi Zero with distros such as RetroPie. The whole style of the board is that the PCB itself is self explanitory and doesn't require you to go through the schematics, something almost anyone with a bit of soldering knowledge can put together. Many features of the board can be enabled/disabled or changed using the many solder jumper pads.

The board is made in two variants:

  • A cheaper to produce <100mm x <100mm board that can be very cheaply produced from manufactureres such as JLC and PCBWay.
  • A full size (complete case utilization) board that places everything on the same motherboard

Common components to both implementation

Both boards implement the core required features for creating a portable handheld device. The big difference is that the full size board can make use of the power switches and case cutouts that are more than 100mm from the bottom of the case, as well as being able to place the screen on the motherboard and not require a screen breakout to be used.

Lipo charger and boost converter

The core component of a handheld device is that is can be battery powered. As such, and to avoid using prefab shields, the board has an onboard Lipo charger and battery protection that then feeds a boost converter to provide the rest of the board with the required 5V to power the RPi, screen and audio.

The Lipo charger is based around a TP4056 charger and a FS312F-G & FS8205 protection IC combo, this feeds the MT3608 boost converter. The board has two through hole battery connections where a standard single cell 4.2v Lipo battery should be connected. The front side of the PCB also has charging status SMD LEDs that can be optionally connected by jumping the appropriate jumper.

Buttons

The board uses the standard default button layout of the Gameboy DMG also providing eight extra button connections that can be made use of through the through hole connections. The buttons are to connectied to the RPi through an MCP23017 GPIO expander, for which I will write a Linux kernel driver once the hardware is complete, it will be linked here once I am done.

Audio

The board utilizes the PWM audio output of the RPi, providing both a simple low-pass RC filter as well as a 2.5W mono audio amplifier so that the board can actually produce a decent, and audiable, sound output. A compatible speaker 29mm 0.25W speaker should be attached to the appropriate through hole connectors.

Screen breakout

The board utilizes the 240 x 320 ILI9341 TFT screens which are a breeze to use with Raspberry Pis through framebuffer copy drivers, such as this one. The smaller board provides a through hole breakout where you can connect, via ribbon cable, the screen's breakout board. I am using a 2.4" screen which requires no modification to the case but larger screens can be placed with minimal modification to the case, these breakouts are available on the larger board, connecting the ribbon cable directly to the board. The larger board uses an elongated footprint to give you complete freedom as to where you solder the board along the horizonal axis.

Small board

The small PCB provides an exact copy of the pinout found on the common LCD breakout boards such as 3.2" MSP3218, 2.8" MSP2807, 2.4" MSP2402, and 2.2" MSP2202.

These common breakouts also provide a NPN transisor current driver circuit that allow for PWM control on the backlight. The larger board has this on the motherboard.

FunctionHeader Pin
MISO1
BACKLIGHT/LED2
SCK3
MOSI4
DC5
RESET6
CS7
GND8
3.3V9

Large board

The large board uses a header for the ribbon cable to be connected directly. The pinout is as follows. Also see the relevant datasheets for the pinout

FunctionHeader Pin
GND1
RESET2
SCK3
DC4
CS5
MOSI6
MISO7
GND8
3.3V9
BACKLIGHT LED Anode10
BACKLIGHT LED Cathode11 - 14

Small board

The small board must provide headers for items that are found outside of the PCB's bounds, such as power switch, power LED etc. All of the headers should be labelled as to what they do.

There are a number of labeled jumpers that enable/disable functionality of external parts such as disabling the external power switch by bridging the boost supply's outbut stright to the 5V rail.

The following jumpers can be found on the board.

NameReferenceDescriptionDefault StateNotes & WARNINGS!
Charging LEDsJP11Enables the two onboard SMD LEDs that provide the status of charging from the TP4056 chargerOpen
Connect BoostJP9Connects the battery charger/battery to the boost charger that then supplies the 5V railOpen
Power switchJP8Shorts out the power switch, making the boost supply and the 5V rail always connectedOpen
Volume potentiometerJP10 & JP14Will fix the audio input to the PAM8302 audio amp to the differential signal between the LP audio filter's output and ground, removing ability to control volume in hardwareOpen
PAM8302 Supply 3.3VJP12Allows for the powering of the audio amplifier from 3.3V instead of the default 5VOpen
PAM8302 Supply 3.3VJP13Allows for the disconnecting of the audio amplifier from its default 5V supplyClosedNEVER should both jumpers be connects and the device powered
GPIO Expander I2CJP2 - JP4The GPIO expander responsible for the onboard Gameboy buttons is by default not attached to the RPiOpen
TFT BacklightJP6 & JP7The backlight for the LCD can be either driven by the GPIO pins (allowing PWM) or from a constant 3.3V rail, By default the screen is driven from the 3.3V rail, thus disabling PWM capabilities of the FB driverOpen & Closer respectivleyBoth pins shouldn't be connected at the same time
RPi Audio OutJP1By default the PWM audio output of the PRi's GPIO 13 is not connected to the audio pre-amp, amp and speaker, this must be enabled by the userOpen

Large board

todo

RPi header

The RPi Zero connects directly to the PCB, enough said :P

TODO

Large board needs to be branched from small board once it is finished

Small board/both

  • Before first fab check micro USB placement.
  • Expand board to provide mounting holdes for 2.4" TFT breakout.

Large board

  • Horizontal power switch in to fit the native power switch at the top of the device.
  • Horizontal trim pot placement to make use of the existing screen contrast cutout.
  • Screen placement to support 2.4", 2.8" and 3.2" screens.

Parts

95
QtyValueFootprintReferences
12SolderJumper_2_OpenJumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mmJP1, JP2, JP3, JP4, JP5, JP6, JP8, JP9, JP10, JP11, JP12, JP14
6SW_Pushpad:GAMEBOY_BUTTON_PAD-D6MMA1, B1, DOWN1, LEFT1, RIGHT1, UP1
41KResistor_SMD:R_0603_1608MetricR1, R4, R5, R10
3100RResistor_SMD:R_0603_1608MetricR7, R11, R12
3LEDLED_SMD:LED_0603_1608MetricD1, D3, D4
210uCapacitor_SMD:C_0603_1608MetricC5, C9
21uCapacitor_SMD:C_0603_1608MetricC7, C8
2220pCapacitor_SMD:C_0603_1608MetricC10, C11
222uCapacitor_SMD:C_1210_3225MetricC4, C6
22KResistor_SMD:R_0603_1608MetricR6, R8
2Conn_01x02Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ1, J8
2SW_Pushpad:GAMEBOY_BUTTON_PAD-DUAL_D4MMSELECT1, START1
2SolderJumper_2_BridgedJumper:SolderJumper-2_P1.3mm_Bridged_RoundedPad1.0x1.5mmJP7, JP13
10.1uCapacitor_SMD:C_0603_1608MetricC3
1100nCapacitor_SMD:C_0603_1608MetricC12
110KResistor_SMD:R_0603_1608MetricR13
110RResistor_SMD:R_0603_1608MetricR15
110uFCapacitor_THT:CP_Radial_D5.0mm_P2.00mmC2
1150RResistor_SMD:R_0603_1608MetricR3
11kResistor_SMD:R_0603_1608MetricR14
122uHInductor_SMD:L_7.3x7.3_H3.5L1
1270RResistor_SMD:R_0603_1608MetricR2
133nFCapacitor_SMD:C_0603_1608MetricC1
17K5Resistor_SMD:R_0603_1608MetricR9
1Conn_01x04Connector_PinHeader_1.27mm:PinHeader_1x04_P1.27mm_VerticalJ4
1Conn_01x08Connector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_VerticalJ3
1FS312F-GPackage_TO_SOT_SMD:SOT-23-6U3
1FS8205Package_TO_SOT_SMD:SOT-23-6U4
1LOGOpad:TuxG***
1LOGOpad:RetroPie_logoG***
1MCP23017_SOPackage_SO:SOIC-28W_7.5x17.9mm_P1.27mmU1
1MSP_TFT_LCDpad:MSP_TFT_LCDLCD1
1MT3608Package_TO_SOT_SMD:SOT-23-6U5
1PAM8302AASPackage_SO:MSOP-8_3x3mm_P0.65mmU6
1RK10J_POTpad:R503_POTP1
1Raspberry_Pi_2_3Connector_PinHeader_2.54mm:PinHeader_2x20_P2.54mm_VerticalJ5
1S8050Package_TO_SOT_SMD:SOT-23Q1
1SS310Diode_SMD:D_SMAD5
1SW_DPDT_x2pad:SS12F23SW1
1TP4056Package_SO:SOP-8_3.9x4.9mm_P1.27mmU2
1USB_AConnector_USB:USB_A_Stewart_SS-52100-001_HorizontalJ2
1USB_B_MicroConnector_USB:USB_Micro-B_Molex-105017-0001J7
1XC6206PxxxMRPackage_TO_SOT_SMD:SOT-23U7

The 74 most common of 95 parts.

More from alxhoff/gameboy-dmg-pcb

1
  • 2 layers82.5 × 87.5 mmGameboy dmg, the printed circuit board in 3D

    Gameboy dmg

    alxhoff/gameboy-dmg-pcb

    PCB for Gameboy DMG with audio and GPIO expander to provide I2C interface to push buttons

    83 parts4GPL-3.0

Similar boards

  • 2 layers308.7 × 241.8 mmOTTOtact, the printed circuit board in 3D

    OTTOtact

    cester-ino/OTTO-hardware

    those specs refer to the tactile buttons version, but a led backlight button version is in the works too.

    229 parts49GPL-3.0
  • 2 layers100 × 73.3 mmPride Badge, the printed circuit board in 3D

    Pride Badge

    aziraphale/pride-badge-v1

    🌈⚡Pride badge PCB with LEDs, STM32, and 3D printed diffuser+case!

    136 parts
  • 2 layers35.1 × 23.6 mmUsb BBC, the printed circuit board in 3D

    Usb BBC

    FrizzyElectronics/Usb-BBC

    Lipo Charger With a Boost Converter

    25 parts
  • 2 layers44.8 × 15.8 mmLiPo BoardV1-2019, the printed circuit board in 3D

    LiPo BoardV1-2019

    Jajaho/LiPo-Board

    Lipo battery charge, protection and 5V boost converter.

    26 parts
  • 2 layersLipo charger booster, the printed circuit board in 3D

    Lipo charger booster

    ideocentric/ribbon-synth

    Ribbon Synthesizer using Daisy Seed.

    11 parts1MIT
  • 2 layers41.8 × 31.8 mm403 charger v2, the printed circuit board in 3D

    403 charger v2

    EE403-CapStone/Power

    Design files of power

    23 parts
  • 2 layers100 × 100 mmPCB BatteryCharger, the printed circuit board in 3D

    PCB BatteryCharger

    sercami97/EstacionMeteorologica

    Open source proyect for low cost weather station

    55 parts
  • 2 layers25 × 18 mmBatt, the printed circuit board in 3D

    Batt

    HarkonenBade/batt

    A 1S lipo charge/protect board based on the TP4056 and the FS312F

    20 parts3CC-BY-SA-4.0

Questions

How big is the Gameboy dmg PCB?

It measures 82.5 × 136.7 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Gameboy dmg use?

95 parts, built around the MT3608, PAM8302AASCR, FS312F-G and FS8205. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Gameboy dmg KiCad files?

From the alxhoff/gameboy-dmg-pcb repository on GitHub, at the commit this page was made from: the board is gameboy-dmg-big/gameboy-dmg.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Gameboy dmg design in my own project?

Its repository publishes it under the GPL-3.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).