Skip to content

An open-source RP2040-based flash cart for the Mega Duck aka Cougar Boy.

License

Notifications You must be signed in to change notification settings

zwenergy/picoDuck

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 Single ROM FW

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.

Software Side Multi ROM FW

You can also find a basic multi ROM FW in this repo with 10 slots by default. It uses the Mega Duck cart menu by bbbbbr. All slots have a fixed size of 131072 bytes.

A pre-compiled base FW UF2 file for the 10 slot multi ROM FW with the cart menu can be find in the releases tab. Use the online patcher tool to insert ROMs and set labels in the menu.

Hardware Side

BOM

Reference Value Links
U2, U3, U4, U5 TXB0108PWR LCSC
U6 Raspberry Pi Pico
Q1 N-Channel MOSFET (SOT-23) LCSC
R1 1 kOhm resistor (0805) LCSC
R2 470 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.

About

An open-source RP2040-based flash cart for the Mega Duck aka Cougar Boy.

Resources

License

Stars

Watchers

Forks

Packages

No packages published