Because 99.9% of the non success when building a Game Boy Printer emulator based on Arduino or Pi Pico is just inversion between SIN and SOUT, because cutting original cables is a shame, because cutting Aliexpress cables anyway requires a multimeter as you cannot trust any wire color (and ends as more or less janky designs depending on your soldering skill), here are PCBs cheap and easy to populate that avoid all these hassles.
PCB designs can be edited with EasyEDA Standard Edition. Schematics follows the associated projects, so refer to them and to the PCB source files to get the pinout. All these boards must be used with a GB/GBC compatible link cable. GBA only (purple cables) are not pinout compatible with the proposed socket (even if they fit as the only sockets available online in 2024 are the GBA compatible version). These boards have been tested IRL with GB/GBA/GBC/GB Boy Colour (as long as the cable is GB/GBC compatible).
Eu citizens are advised to order PCBs at JLCPCB to avoid additional prohibitive taxes with customs (taxes paid at order). I've never had any quality issue with them. Just drop the gerber to their site and order with default parameters (the cheapest by default). Considering that you yet have very basic soldering hardware (and skill), each populated PCB should cost you about 10€. You will save a multimeter too as it will work first try.
You can modify and copy the source files or sell these PCBs bare or populated as long as you respect the license terms (in brief, cite me).
(yes, it is very fancy in blue)
Arduino Uno compatible PCB to connect cleanly different projects around the Game Boy Printer:
- The original Game Boy Printer Emulator
- The GBCamera Android Manager
- The direct PC to Game Boy Printer interface
- The Arduino SD Game Boy Printer
- The Game Boy Printer paper simulator
Parts needed:
- An Arduino Uno, the cheaper the better;
- A generic microSD shield if needed, check the pinout to match with PCB;
- Some GBA/GBC serial sockets. Spare GBA link plugs are common while GB/GBC ones are impossible to source, both are pinout compatible for this application;
- Some male pin headers. The clearance with the Arduino Uno shield is tight, but by triming pins below the PCB regular 11 mm pin headers are OK;
- The custom PCB, any thickness, any finish, any color. Order at JLCPCB;
- A regular 5 mm LEDs and a through hole resistor of about 220 Ohms (low value = high brighness). The device works without the LED and resistor (but is is less cool).
If you use SD card based project, LED will flash when SD card is accessed as it is connected to CLK. For non SD based projects, just left the SD stuff unpopulated. The "Analog in" rows of pins can also be let without pin header if you want to spare some, it is never used here. The Arduino Uno is overall the most reliable device for playing with the Game Boy/Game Boy Printer.
Arduino Nano compatible PCB to connect cleanly different projects around the Game Boy Printer:
- The original Game Boy Printer Emulator
- The GBCamera Android Manager
- The direct PC to Game Boy Printer interface
- The Game Boy Printer paper simulator
I must admit that the Arduino Nano is particularly fancy as Game Boy Printer emulator device (cute and flashy as I like). The device works without the LED and resistor.
Parts needed:
- An Arduino Nano, the cheaper the better;
- Some GBA/GBC serial sockets. Spare GBA link plugs are common while GB/GBC ones are impossible to source, both are pinout compatible for this application;
- Some regular male pin headers;
- The custom PCB, any thickness, any finish, any color. Order at JLCPCB;
- A regular 5 mm LEDs and a through hole resistor of about 220 Ohms (low value = high brighness).
It is advised to trim the pins as short as possible on the back side in order to get a clean finish.
RP2040 compatible PCB to connect cleanly:
Parts needed:
- An Waveshare RP2040 Zero (or copy), with pin header (or add some);
- Some GBA/GBC serial sockets. Spare GBA link plugs are common while GB/GBC ones are impossible to source, both are pinout compatible for this application;
- A 4 gates bidirectionnal level shifters. Any similar one in another seller will do the job.
- The custom PCB, any thickness, any finish, any color. Order at JLCPCB;
- A regular 5 mm LEDs and a through hole resistor of about 100 Ohms (low value = high brighness).
- A 6x6 push button whatever height, that can be harvested on any dead electronic suff so it is common.
It is advised to trim the pins as short as possible on the back side in order to get a clean finish.
For full support with the pico-gb-printer, you have to recompile the code to activate the external LED and the "paper tearing" functions. LED is indeed routed by default to GPIO25 which is the internal one (if any...) and "paper tearing" is routed by default to GPIO23 which is not reachable on a regular board. The device works anyway with the default build, tearing paper button and LED are just optional (and installing the Pico SDK was a real hassle on my side so just dropping the .uf2 and play with it is an option to consider seriously).
Sidenote: This board id also partly compatible with the Arduino based projects if you compile them with the Earle Philhower RP2040 core installed on Arduino IDE. Just route LED to pin D8 instead of D13 and GBP_SO_PIN to D0 instead of D4. However, the serial output format is not exactly the same (not sure why, apparently just a CR+LF issue) and the code probably needs a bit of rewrite to be directly compatible with the various image decoders. Anyway, I won't make any further attempt but it looks possible to use this board with other Game Boy Printer emulators without too much effort.
The Waveshare RP2040 Zero is equipped with a fancy WS2812 as internal LED which is not driven in the project linked here, sadly. It's up to you to code a basic controller for it (like in the picture above).