100%
frank amp view
Description

Imported from GitHub: rh1tech/frank · commit cf176cb · license GPL-3.0

Description

RP2350 Based Hardware Emulation Platform

README

FRANK

FRANK is a hardware emulation platform built around the Raspberry Pi RP2350 (Pico 2 modules and RP2350A QFN). RP2040 / Pico still works in FRANK's socket, but in practice only a handful of firmware (mainly the older ZX Spectrum cores) still targets RP2040. Everything modern (IBM PC, NES, SNES, Genesis, the DOOM / id Tech 1 ports, FRANK OS, and so on) is RP2350-only.

It started as a fork of the Murmulator project by Alex Ekb. Over time it picked up extra video outputs, audio paths, USB and WiFi support, and several form factors.

The name comes from "Frankenstein". The board is stitched together from parts of different projects, so the name stuck.

Looking for an older board?

This repository now ships only the boards under hardware/ that are actively maintained. The accessories/ and archive/ directories are gone. Older revisions, retired boards, and accessory adapters such as HDMI2VGA and USB2PS2 live in rh1tech/frank-archive.

Experimental and work-in-progress designs live in rh1tech/frank-lab.

The boards in this repo

Seven maintained boards, each with its own KiCad project, gerbers, BOM and assembly drawings, plus two add-on modules (TurboSound and Hecate).

BoardRenderPCB sizeComputeBest for
MegaFRANK149.9 × 99.5 mmPimoroni PGA2350 (RP2350B module)Maximal board — every output plus on-board dual-AY TurboSound, DS3231 RTC and dual power input.
FRANK PGA99.5 × 83.1 mmPimoroni PGA2350 (RP2350A module)Every output on one PCB, native USB host with multiplexer, ESD-protected.
FRANK99.5 × 83.1 mmRaspberry Pi Pico / Pico 2 (socket) + RP2040-ZeroSocketed alternative. Easiest to solder, swap Pico modules at will, USB-to-PS/2 helper on board.
MiniFRANK85.6 × 53.98 mmRP2350A QFN, on-boardCompact full-feature board with WiFi, VGA, HDMI and one gamepad port.
MicroFRANK32 × 74 mmRP2350A QFN, on-boardSmallest board. HDMI only, no hardware PS/2 or DB9 gamepad. Keyboards, mice and gamepads connect over the stacked USB host.
ZeroFRANK65 × 25 mmRP2350A QFN, on-boardSmallest RP2350A board. HDMI only, USB host for input, on-board flash + PSRAM + I²S audio.
Nyx51 × 21 mmRP2350B QFN, on-boardOpen-source Pico 2 clone with built-in PSRAM. Drop-in replacement for Pico Plus 2 in the FRANK socket.

The full-size and compact boards use the M2 GPIO layout, so any firmware build for M2 runs on them (subject to the feature differences below). Nyx is a compute module — it plugs into the FRANK socket and provides the RP2350B, flash and PSRAM; the FRANK motherboard provides all the I/O.

Comparison table

FeatureMegaFRANKFRANK PGAFRANKMiniFRANKMicroFRANKZeroFRANK
Compute modulePimoroni PGA2350Pimoroni PGA2350Pico / Pico 2 (socket)RP2350A QFN on-boardRP2350A QFN on-boardRP2350A QFN on-board
On-board flashvia modulevia modulevia moduleW25Q128 (16 MB)W25Q128 (16 MB)W25Q128 (16 MB)
On-board PSRAMvia modulevia modulevia module8 MB8 MB8 MB
HDMI outputYesYesYesYesYesYes
VGA outputYesYesYesYes
Composite (RCA)YesYesYes
TFT display headerYesYesYes
Hardware PS/2 portYesYesYesYes
USB-emulated PS/2 (RP2040-Zero)Yes
Gamepad ports (DB9)2221
Stacked USB Type-A hostYesYesYesYesYes— (USB-C PIO host)
MW7211A USB hubYesYesYesYesYes
USB host multiplexer74HC4052D74HC4052DTS3USB221TS3USB221
USBLC6 ESD protectionYesYesYesYesYes
ESP-01S WiFi socketYesYesYesYes
Tape input (3.5mm)YesYesYesYes
Audio output3.5mm jack3.5mm jack3.5mm jack3.5mm jack3.5mm jack3.5mm jack
TDA1387 DACYesYesYesYesYesYes
PAM8403 speaker ampYesYesYes
Power inputDC barrel jack (×2)DC barrel jackDC barrel jackUSB-CUSB-CUSB-C
Voltage regulatorMP1584 buck + AMS1117 LDOMP1584 buck + AMS1117 LDOMP1584 buck + AMS1117 LDOAMS1117 LDOME6211 LDOAMS1117 LDO
Power switchSlideSlideSlideSlideSlide
Mounting holes4 × 2.7 mm4 × 2.7 mm4 × 2.7 mm4 × 2.7 mm4 × 2.7 mm4 × 2.7 mm

On-board TurboSound (dual YM2149), a DS3231 real-time clock and a DS2401 silicon serial number are unique to MegaFRANK.

Modules

Two add-on modules ship alongside the boards:

ModuleRenderPCB sizeWhat it is
TurboSound42 × 79.5 mmDual YM2149 / AY-3-8910 sound expansion (socketed DIP-40). Currently supported only by MiniFRANK via its expansion header.
Hecate53 × 29 mmStandalone RP2040 USB-to-PS/2 bridge board. Runs the Hecate firmware; presents USB keyboards and mice as PS/2 devices.

Supported software

Over thirty emulators and native ports run on FRANK boards.

Console emulators

FirmwarePlatformRepositoryPSRAM required
frank-nesNES / Famicom (Dendy)frank-nesYes (8 MB)
frank-snesSNES / Super Famicomfrank-snesYes (8 MB)
frank-genesisSega Genesis / Mega Drivefrank-genesisYes (8 MB)
frank-c64Commodore 64frank-c64Yes (8 MB)
frank-appleApple IIefrank-appleOptional
frank-msxMSX / MSX2 / MSX2+ (fMSX core)frank-msxYes (8 MB)

PC emulation

FirmwarePlatformRepositoryPSRAM required
frank-386IBM PC i386 (DOS, Windows 3.x/95, Linux)frank-386Yes (8 MB)

Game engine ports

FirmwareGameRepositoryPSRAM required
frank-idtech1DOOM, Heretic, Hexen, Strife (all-in-one)frank-idtech1Yes (8 MB)
frank-doomDOOM (standalone)frank-doomYes (8 MB)
frank-hereticHereticfrank-hereticYes (8 MB)
frank-wolf3dWolfenstein 3Dfrank-wolf3dYes (8 MB)
frank-duke3dDuke Nukem 3Dfrank-duke3dYes (8 MB)
frank-princePrince of Persiafrank-princeYes (8 MB)
frank-diggerDigger Remasteredfrank-diggerNo
frank-questScummVM (AGI, SCI, SCUMM v1–v7, GOB, KYRA — King's Quest, Monkey Island, Day of the Tentacle, Full Throttle, Gobliiins, Kyrandia and more)frank-questYes (8 MB)

OS and utilities

FirmwareDescriptionRepositoryPSRAM required
frank-osFull desktop OS (Windows 95-style GUI, apps, built-in emulators)frank-osYes (8 MB)
frank-kickstartUF2 firmware launcher with SD card browserfrank-kickstartOptional
frank-manulText-mode web browser (HTTP/HTTPS via ESP-01 WiFi)frank-manulYes (8 MB)
frank-netcardAT modem firmware for the ESP-01 WiFi modulefrank-netcardNo

Murmulator firmware

The original Murmulator project provides additional firmware that runs on FRANK boards as well:

ZX Spectrum cores: ZX Spectrum 48K / 128K / +3e (tecnocat, pico-spec, frut-bat, ZX Speccy P, murmulator), ZX Elf (pico-alf).

Other cross-platform emulators: MS-DOS IBM PC XT 8088, BK-0010 / BK-0011M, Radio 86RK, Macintosh, Atari 800, NES / Famicom / Dendy, Sega Master System / Game Gear, NEC PC Engine / TurboGrafx-16, Nintendo GameBoy / GameBoy Color, Watara Supervision, Atari Lynx, Bandai Wonderswan / Wonderswan Color, NeoGeo Pocket Color, Gamate, Game & Watch / Elektronika.

Tools and applications: MurmulatorOS, Picomite MMBasic, VersaTerm, the original Murmulator bootloader.

Other compatible boards

Most firmware also runs on:

  • Murmulator (M1 and M2)
  • Olimex PICO-PC (some firmware)
  • Waveshare RP2350-PiZero (some firmware)

Getting started

  1. Order or fab the PCB (gerbers are in each board's gerbers/ directory).
  2. Source the components using the BOM (hardware/<board>/docs/<rev>/bom.html).
  3. Solder following the board-specific guide, starting with the smallest passives and working outwards.
  4. Flash firmware: hold BOOTSEL on the RP chip, plug USB, release, copy a .uf2 file to the drive that appears (or use picotool load).
  5. Insert an SD card with ROMs, WADs or disk images.
  6. Plug in a display (HDMI or VGA), keyboard (PS/2 or USB) and gamepad.

For quick switching between firmware, flash frank-kickstart first. It gives you a graphical launcher that re-flashes from SD without touching BOOTSEL again.

PSRAM

Most modern firmware (frank-os, frank-quest, frank-386, frank-genesis, frank-snes, frank-msx, frank-idtech1, frank-doom and so on) needs 8 MB of PSRAM. Some firmware refuses to boot without it: frank-quest installs a custom dlmalloc backed entirely by external PSRAM (drivers/psram_init.c, drivers/dlmalloc.c), because the runtime (heap-allocated game state, decoded resources, mixer ring buffers, font caches) does not fit in the RP2350's 520 KB of SRAM.

How you get PSRAM depends on the board:

  • MiniFRANK and MicroFRANK: PSRAM is already on-board (8 MB ESP-PSRAM64H). Nothing to do.
  • FRANK PGA: the Pimoroni PGA2350 module already includes 8 MB PSRAM. Nothing to do.
  • FRANK: the socketed Pico 2 has no PSRAM by default. Three ways to fix this:
    1. Pimoroni Pico Plus 2 (recommended). A ready-made Pico 2 with 8 MB PSRAM. Drop it into the socket and you are done.
    2. Build a Nyx, an open-source RP2350B board with integrated 16 MB flash and 8 MB PSRAM. Same form factor as Pico 2, drops straight into the socket.
    3. Solder a PSRAM chip on top of the flash chip of an RP2350 clone. SOP-8 flash chips are mostly only on clones (typically the black boards), not on a genuine Pico 2.

Repo layout

hardware/      Board KiCad projects (megafrank, frank_pga, frank, minifrank,
               microfrank, zerofrank, nyx) plus the turbosound and hecate modules
docs/          Shared component datasheets and assembly notes
software/      Pre-built UF2s. Currently ships Hecate, the USB-to-PS/2 bridge
               firmware for FRANK's on-board RP2040-Zero. Once flashed, a USB
               keyboard or mouse appears on the hardware PS/2 lines.
               Source: https://github.com/rh1tech/hecate

Documentation

Each board and module has its own assembly and usage guide:

The hardware/<board>/docs/ directories also contain auto-generated BOMs (bom.html) and assembly drawings (assembly.pdf, schematics.pdf) for each PCB revision.

Links

Firmware repositories

Console emulators:

PC emulation:

  • frank-386 — IBM PC i386 (DOS, Windows 3.x/95, Linux)

Game engine ports:

OS and utilities:

Author

Mikhail Matveev — software engineer and hardware developer based in Thessaloniki, Greece. Background in software architecture, QA and open-source development. Builds retro computing hardware and writes firmware for fun. More projects at rh1.tech.

License

© 2026 Mikhail Matveev, [email protected]

GPL v3. See LICENSE.

Comments
Sign in to comment

No comments yet. Be the first to ask about this board.