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€ maximum. 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 Raphaël BOICHOT and Brian KHUU).
Want to buy a Retrospy Pixel Game Boy Printer emulator ? The product as sold is just the exact Arduino Printer emulator flashed on Arduino Nano and hidden in a 3D printed shell, with the exact same pinout (because yes, the license allows it as long as the author is cited, which nevertheless required a gentle reminder to the seller...). The PCBs proposed here are totally compatible for a fraction of the proposed price.
Last but not least: some Aliexpress sellers ship Arduino nanos defective out of the bag ("L" led flashes rapidely like if the bootloader was not installed but any attempt to update it with another Arduino or flash the board will fail), so better test them before soldering anything. You can flash the bare board with the printer emulator, it must at least flash briefly and return the welcome message on the serial console.
(yes, it is very fancy in blue but the green had faster shipping options)
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
- The Retrospy Pixel Game Boy Printer Emulator
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.
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
- The Retrospy Pixel Game Boy Printer Emulator
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.
RP2040 compatible PCB to connect cleanly:
- The Pico GB Printer
- The Pico GB Web Camera
- All the GB printer Arduino projects (see the sidenote for pinout)
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, just drop the last compiled uf2 rom to your Pi Pico. This is a version recompiled from the source that supports led and tear button of the current PCB.
Sidenotes: This board is also compatible with the Arduino based projects if you compile them with the Earle Philhower RP2040 core installed on Arduino IDE. Just route LED_STATUS_PIN to pin 8 instead of 13 and GBP_SO_PIN to 0 instead of 4. Due to the way the Pico hard resets the serial connection contrary to the Arduino in case of reboot, some automated parsers may have compatibility issues but it overall works using PuTTy for example.
The Waveshare RP2040 Zero is also equipped with a fancy WS2812 as internal LED which is not driven in the projects linked here, sadly. It's up to you to code a basic controller for it (like in the picture above).
I won't provide any PCB compatible with the Stackmashing's USB to GB Link Cable Adapter as there are some on Github and you can always recompile the codes if needed (good luck !). Do not ask me why the Pico GB printer and the Stackmashing's board are not directly compatible (they do not share the same pinout while being totally similar in function), I have no idea, I'm not author of any of these projects.