Home

Awesome

picoDuck

An open-source RP2040-based flash cart for the Mega Duck aka Cougar Boy. The RP2040 acts as the ROM chip of the cart.

Software Side

In order to load a game onto the cartridge, you first have a "convert" a ROM to a UF2 file.

Using the Online Patcher

You can use the online patcher tool to patch in a ROM into the ROM-less base UF2 firmware. You can find the latest ROM-less base UF2 firmware in the releases tab. Use this as the UF2 file and any Mega Duck ROM in the ROM file (max. ROM file size is 131072 bytes).

Building a FW from Scratch

Requirements:

  1. Python
  2. CMake
  3. RP2040 C SDK installed and paths set up

Single ROM

Steps:

  1. Use the bin2c.py script to convert a ROM file to a C-array. Usage: bin2c.py ROMFILE rom.h. Place the genereated rom.h file in the root of code directory, beside main.c.
  2. Run make in the code directory.
  3. Connect the Raspberry Pi Pico to the computer while holding down the BOOTSEL button.
  4. Drag and drop the newly generated .uf2 file onto the Pico.

Hardware Side

BOM

ReferenceValueLinks
U2, U3, U4, U5TXB0108PWRLCSC
U6Raspberry Pi Pico
Q1N-Channel MOSFET (SOT-23)LCSC
R11 kOhm resistor (0805)LCSC
R2470 kOhm resistor (0805)LCSC

PCB

The PCB can be ordered using the Gerber files. A width of 1.2 mm should be chosen with ENIG surface.

Shell

A 3D printable shell for the cart can be found in the folder "shell".

Disclaimer

Use the files and/or schematics to build your own board at your own risk. This board works fine for me, but it's a simple hobby project, so there is no liability for errors in the schematics and/or board files. Use at your own risk.