| .github/workflows | ||
| arch | ||
| frontend | ||
| include | ||
| makefsdata | ||
| src | ||
| .editorconfig | ||
| .gitignore | ||
| .gitmodules | ||
| CMakeLists.txt | ||
| device.jpg | ||
| LICENSE | ||
| PCB.png | ||
| Pi_Zero_shield.jpg | ||
| Pi_Zero_shield_remote.jpg | ||
| pico_sdk_import.cmake | ||
| README.md | ||
| regen-fsdata.sh | ||
| schematics.png | ||
| screenshot.png | ||
| usage.png | ||
Pico GameBoy printer

Based on the original webserver for the PI Pico repo: https://github.com/maxnet/pico-webserver
Webserver example that came with TinyUSB slightly modified to run on a Raspberry Pi Pico. Lets the Pico pretend to be a USB Ethernet device. Runs the webinterface at http://192.168.7.1/
Special thanks to Raphael-Boichot, please check this repo: https://github.com/Raphael-Boichot/The-Arduino-SD-Game-Boy-Printer
Schematics
You will need a Raspberry Pi, 1/2 of the game boy link cable and a four-channel 5v to 3.3v level shifter. Connect parts as shown:

This is the example of the ready-to-use device:

As finding which is SIN and SOUT is sometimes tricky as signals are crossed within the serial cable, you can also make your own PCB with a Pi Zero and a GBC/GBA serial socket following the guide here. The PCBs come in two flavors: one simple and small with only one pushbutton for shutter or a larger version featuring a full remote control for Photo!
Simple PCB with a single pushbutton (small)
Full remote control version (large)
Build dependencies
On Debian:
sudo apt install git build-essential cmake gcc-arm-none-eabi
Your Linux distribution does need to provide a recent CMake (3.13+). If not, compile CMake from source first.
On OSX:
brew install cmake doxygen
brew tap ArmMbed/homebrew-formulae
brew install arm-none-eabi-gcc
- Install the Pi Pico SDK and make sure to add the location to your path.
On Windows:
Windows is not a friendly system to compile the pico sdk. Unless you want to loose your precious time, use the following method:
- Install WSL (Windows Subsystem for Linux) (Ubuntu is default install) and update it
sudo apt update && sudo apt full-upgrade
- Install the pico SDK by following the "Quick Pico Setup" You can use the installation script written for Raspberry Pi, it works. Your computer may require a boot at this step.
- Continue installation like below.
Build instructions
git clone --depth 1 https://github.com/untoxa/pico-gb-printer
cd pico-gb-printer
git submodule update --init
mkdir -p build
cd build
cmake ..
make
Copy the resulting pico_gb_printer.uf2 file to the Pi Pico mass storage device manually. Webserver will be available at http://192.168.7.1/
Developing the Frontend
Frontend code development requires node.js (>=20)
- Navigate to the
frontendfolder. - run
npm installto install all dependencies - run
npm run devto start a local dev server on 127.0.0.1:3000. The server also does proxy the/status.jsonand/downloadendpoints from a Pico which must be connected to the same machine. - run
npm run buildto build the static files (html/css/js). Files will be built to./fs - When building the rom file locally, also run
./regen-fsdata.sh

