Skip to the content
PCBKitNew board
4 layers65 × 25 mmZerofrank, the printed circuit board in 3D

RP2350 Based Hardware Emulation Platform

Size
65 × 25 mm
Copper layers
4
Thickness
1 mm
Parts
93
Nets
103
Pads
375
Tracks, vias
656, 125
Pours
4
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
20 Aug 2024
Updated
8 Oct 2026

Overview

Zerofrank is an open-source printed circuit board by rh1tech, from the rh1tech/frank repository on GitHub, published under the GPL-3.0 licence. It is a 4-layer board of 65 × 25 mm with 93 parts on 103 nets, routed with 656 tracks and 125 vias.

It is built around the RP2350A, LM358 and W25Q128JVSIQ, with the AMS1117-3.3, USBLC6-2SC6 and USB4215-03-A among its other parts. Its parts include 33 capacitors, 32 resistors, 7 ICs, 7 connectors and 2 switches. It belongs with the retro computing and games boards and the RP2350 boards of this library.

Main components

8

README

README.md

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

Ten maintained boards and one published prototype, each with its own KiCad project, gerbers, BOM and assembly drawings, plus two add-on modules (TurboSound and Hecate) and three retro-CPU boards.

BoardRenderPCB sizeComputeBest for
FRANK NextFRANK Next99.0 × 53.98 mmRP2350B + RP2350A, both on-boardFlagship. Two RP2350 dies, on-board ESP8266EX WiFi, CH343P console, three USB-A host ports.
MegaFRANKMegaFRANK149.9 × 99.5 mmPimoroni PGA2350 (RP2350B module)Maximal board — every output plus on-board dual-AY TurboSound, DS3231 RTC and dual power input.
FRANK PGAFRANK PGA99.5 × 83.1 mmPimoroni PGA2350 (RP2350A module)Every output on one PCB, native USB host with multiplexer, ESD-protected.
FRANKFRANK99.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.
Old Skool FRANKOld Skool FRANK100.0 × 79.0 mmPimoroni PGA2350 (RP2350B module)The retro-connector board: HDMI and VGA, hardware PS/2, DB9 gamepad. Only 2-layer design, easiest to hand-assemble.
MiniFRANKMiniFRANK85.6 × 53.98 mmRP2350A QFN, on-boardCompact full-feature board with WiFi, VGA, HDMI and one gamepad port.
FRANK Core 2UFRANK Core 2U67.0 × 55.0 mmRP2350B + RP2350A, both on-boardSmallest usable dual-die board. Video, sound, storage and USB only — no WiFi, no RTC.
FRANK Core 2 ProtoFRANK Core 2 Proto55.0 × 55.0 mmRP2350B + RP2350A, both on-boardPrototype. Core 2U without the USB host side — the dual-die topology at its smallest.
MicroFRANKMicroFRANK32 × 74 mmRP2350A QFN, on-boardSmallest single-die board. HDMI only, no hardware PS/2 or DB9 gamepad. Keyboards, mice and gamepads connect over the stacked USB host.
ZeroFRANKZeroFRANK65 × 25 mmRP2350A QFN, on-boardSmallest RP2350A board. HDMI only, USB host for input, on-board flash + PSRAM + I²S audio.
NyxNyx51 × 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). FRANK Next, Core 2U and Core 2 Proto are the exception: they carry two RP2350 dies and firmware must be built for that split, or the slave simply sits idle. 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: full-size boards

FeatureMegaFRANKFRANK PGAFRANKOld Skool
ComputePimoroni PGA2350Pimoroni PGA2350Pico / Pico 2 (socket)Pimoroni PGA2350
Copper layers4442
On-board flashvia modulevia modulevia modulevia module
On-board PSRAMvia modulevia modulevia modulevia module
HDMI outputYesYesYesYes
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 hostYesYesYesYes
USB hubMW7211AMW7211AMW7211AMW7211A
USB host multiplexer74HC4052D74HC4052D—74HC4052
USBLC6 ESD protectionYesYes——
WiFiESP-01S socketESP-01S socketESP-01S socketESP-01S socket
Real-time clockDS3231———
Tape input (3.5mm)YesYesYesYes
Audio DACTDA1387TDA1387TDA1387TDA1545A + LM358
PAM8403 speaker ampYesYesYes—
Power inputDC barrel jack (×2)DC barrel jackDC barrel jackUSB-C / USB-B
Voltage regulatorMP1584 buck + AMS1117 LDOMP1584 buck + AMS1117 LDOMP1584 buck + AMS1117 LDOAMS1117 LDO
Mounting holes4 × 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. Old Skool FRANK is the only 2-layer board in the repo, which makes it the friendliest to hand-assembly and rework.

Comparison: compact boards

FeatureFRANK NextMiniFRANKCore 2UCore 2 ProtoMicroFRANKZeroFRANK
ComputeRP2350B + RP2350ARP2350A QFNRP2350B + RP2350ARP2350B + RP2350ARP2350A QFNRP2350A QFN
On-board flash2 × W25Q128W25Q1282 × W25Q1282 × W25Q128W25Q128W25Q128
On-board PSRAM2 × 8 MB8 MB2 × 8 MB2 × 8 MB8 MB8 MB
HDMI outputYesYesYesYesYesYes
VGA output—Yes————
Hardware PS/2 port—Yes————
Gamepad ports (DB9)—1————
USB Type-A host ports32 (stacked)2—2 (stacked)— (USB-C PIO host)
USB hubCH334FMW7211AMW7211A—MW7211A—
USB host multiplexerTS3USB221 × 2TS3USB221TS3USB221—TS3USB221—
USB serial bridgeCH343P—————
WiFiESP8266EX on-boardESP-01S socket————
Real-time clockDS3231MZ—————
Tape input (3.5mm)YesYesYes———
Audio DACTLV320DAC3100TDA1387TDA1387T + LM358TDA1387T + LM358TDA1387TDA1387
Power inputUSB-CUSB-CUSB-CUSB-C × 2USB-CUSB-C
Voltage regulatorSY8089 buckAMS1117 LDOAMS1117 LDOAMS1117 LDOME6211 LDOAMS1117 LDO
Mounting holes4 × 2.5 mm plated4 × 2.7 mm4 × 2.5 mm plated4 × 2.5 mm plated4 × 2.7 mm4 × 2.7 mm

FRANK Next, Core 2U and Core 2 Proto share the dual-RP2350 architecture: an RP2350B master for emulation and an RP2350A slave for USB host, audio and housekeeping. Core 2U and Core 2 Proto come from a different subsystem generation than FRANK Next — ESP-PSRAM64H memory, a discrete TDA1387T audio chain instead of the TLV320DAC3100 codec, an AMS1117 LDO instead of a switching buck, and no WiFi or RTC. Core 2 Proto is Core 2U minus its host side: same two dies, no hub, no USB-A, no tape input and no power switch.

Retro CPU boards

These are not emulation boards. Each carries a real vintage CPU in a DIP-40 socket, with an RP2350B acting as the chipset — memory, video, storage and I/O. They do not run the FRANK emulation firmware; each has its own chipset firmware.

BoardRenderPCB sizeCPUNotes
XT8086 AlphaXT8086 Alpha99.9 × 78.0 mmIntel 8086 (minimum mode)The earlier 8086 design: PGA2350 module, VGA and composite outputs. Superseded by XT8086 Beta, now in frank-lab.

Modules

Two add-on modules ship alongside the boards:

ModuleRenderPCB sizeWhat it is
TurboSoundTurboSound42 × 79.5 mmDual YM2149 / AY-3-8910 sound expansion (socketed DIP-40). Currently supported only by MiniFRANK via its expansion header.
HecateHecate53 × 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:

  • FRANK Next, Core 2U and Core 2 Proto: 8 MB PSRAM per die, both dies on-board. Nothing to do.
  • MiniFRANK, MicroFRANK and ZeroFRANK: PSRAM is already on-board (8 MB). Nothing to do.
  • FRANK PGA, MegaFRANK and Old Skool FRANK: 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

text
hardware/      Board KiCad projects (frank_next, megafrank, frank_pga, frank,
               oldskool, minifrank, frank_core2u, frank_core2_proto, microfrank,
               zerofrank, nyx), the retro-CPU board xt8086_alpha, 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, xtreme@rh1.tech

GPL v3. See LICENSE.

Parts

93
QtyValueFootprintReferences
19100nFRANK:C_0603_1608MetricC2, C4, C5, C11, C14, C15, C16, C17, C18, C19, C20, C21, C22, C24, C32, C33 +3
810KFRANK:R_0603_1608MetricR12, R13, R22, R23, R24, R25, R26, R27
710uFRANK:C_0603_1608MetricC23, C25, C26, C27, C28, C30, C31
422RFRANK:R_0603_1608MetricR5, R6, R9, R10
44.7uFRANK:C_0603_1608MetricC9, C10, C12, C13
45.1KFRANK:R_0603_1608MetricR2, R3, R7, R8
4Hole 2.7mmFRANK:MountingHole_2.7mmH1, H2, H3, H4
31KFRANK:R_0603_1608MetricR4, R15, R16
2100RFRANK:R_0603_1608MetricR19, R32
220KFRANK:R_0603_1608MetricR30, R31
222uFRANK:CP_Tantalum_3528-12C1, C3
2270RFRANK:R_Array_4x0603RN1, RN2
227RFRANK:R_0603_1608MetricR17, R18
2470RFRANK:R_0603_1608MetricR20, R21
247KFRANK:R_0603_1608MetricR28, R29
2RP ResetFRANK:KMR_2S1, S2
2USB4215-03-AFRANK:USB_C_ReceptacleJ3, J4
10475710001FRANK:MicroSD_SMD_ShortJ7
10RFRANK:R_0603_1608MetricR11
11.5KFRANK:R_0603_1608MetricR1
110uFRANK:CP_Tantalum_3528-12C29
11N5819WSFRANK:D_SOD-323D1
13.3uFRANK:L_pol_2016L2
1330RFRANK:L_0603_1608MetricL1
133RFRANK:R_0603_1608MetricR14
1AMS1117-3.3FRANK:SOT-89-3U1
1ASE-12MHzFRANK:Oscillator_SMD_4Pin_3.2x2.5mmY1
1BlueFRANK:LED_0603_1608MetricLD2
1DC3RX19JA2FRANK:HDMI_FemaleJ5
1DEBUGFRANK:JST_SH_1x03_P1.00mm_VerticalJ2
1ESP-PSRAM64HFRANK:SO-8U3
1GreenFRANK:LED_0603_1608MetricLD1
1LM358FRANK:SO-8U7
1PJ-320DFRANK:AudioJack_3.5mm_PJ320D_AudioOutJ6
1RP2350FRANK:QFN-60_RP2350AU5
1TDA1387TFRANK:SO-8U6
1UARTFRANK:JST_SH_1x03_P1.00mm_VerticalJ1
1USBLC6-2SC6FRANK:SOT-23-6U2
1W25Q128JVSFRANK:SOIC-8U4

Questions

How big is the Zerofrank PCB?

It measures 65 × 25 mm and has 4 copper layers, 1 mm thick.

What parts does the Zerofrank use?

93 parts, built around the RP2350A, LM358, W25Q128JVSIQ and AMS1117-3.3. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Zerofrank KiCad files?

From the rh1tech/frank repository on GitHub, at the commit this page was made from: the board is hardware/zerofrank/zerofrank.kicad_pcb and its schematic hardware/frank/amp.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Zerofrank design in my own project?

Its repository publishes it under the GPL-3.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

More from rh1tech/frank

12
  • 2 layers149.9 × 99.5 mmMegafrank, the printed circuit board in 3D

    Megafrank

    rh1tech/frank

    RP2350 Based Hardware Emulation Platform

    262 parts66GPL-3.0
  • 4 layers99 × 54 mmFrank next, the printed circuit board in 3D

    Frank next

    rh1tech/frank

    RP2350 Based Hardware Emulation Platform

    253 parts66GPL-3.0
  • 2 layers99.5 × 83.1 mmFrank pga, the printed circuit board in 3D

    Frank pga

    rh1tech/frank

    RP2350 Based Hardware Emulation Platform

    175 parts66GPL-3.0
  • 2 layers99.5 × 83.1 mmFrank, the printed circuit board in 3D

    Frank

    rh1tech/frank

    RP2350 Based Hardware Emulation Platform

    166 parts66GPL-3.0
  • 4 layers67 × 55 mmFrank core2u, the printed circuit board in 3D

    Frank core2u

    rh1tech/frank

    RP2350 Based Hardware Emulation Platform

    150 parts66GPL-3.0
  • 4 layers85.6 × 54 mmMinifrank, the printed circuit board in 3D

    Minifrank

    rh1tech/frank

    RP2350 Based Hardware Emulation Platform

    143 parts66GPL-3.0
  • 4 layers55 × 55 mmFrank core2 proto, the printed circuit board in 3D

    Frank core2 proto

    rh1tech/frank

    RP2350 Based Hardware Emulation Platform

    133 parts66GPL-3.0
  • 2 layers100 × 79 mmOldskool, the printed circuit board in 3D

    Oldskool

    rh1tech/frank

    RP2350 Based Hardware Emulation Platform

    104 parts66GPL-3.0
  • 4 layers32 × 74 mmMicrofrank, the printed circuit board in 3D

    Microfrank

    rh1tech/frank

    RP2350 Based Hardware Emulation Platform

    103 parts66GPL-3.0
  • 2 layers99.9 × 78 mmXt8086 alpha, the printed circuit board in 3D

    Xt8086 alpha

    rh1tech/frank

    RP2350 Based Hardware Emulation Platform

    84 parts66GPL-3.0
  • 2 layers42 × 79.5 mmTurbosound, the printed circuit board in 3D

    Turbosound

    rh1tech/frank

    RP2350 Based Hardware Emulation Platform

    64 parts66GPL-3.0
  • 2 layers53 × 29 mmHecate, the printed circuit board in 3D

    Hecate

    rh1tech/frank

    RP2350 Based Hardware Emulation Platform

    58 parts66GPL-3.0

Similar boards

  • 4 layers32 × 74 mmFrankless, the printed circuit board in 3D

    Frankless

    arlaneenalra/pi-pico-boards

    A place to keep various pi-pico-board experiments

    124 parts
  • 4 layers85.8 × 85.8 mmMinifrank rm1p2h, the printed circuit board in 3D

    Minifrank rm1p2h

    rh1tech/frank-archive

    Archive of FRANK Boards

    204 parts3
  • 4 layers85.6 × 54 mmFrank air, the printed circuit board in 3D

    Frank air

    rh1tech/frank-lab

    FRANK Board Laboratory (work-in-progress board prototopyes)

    184 parts4GPL-3.0
  • 4 layers99.5 × 65 mmEcho, the printed circuit board in 3D

    Echo

    rh1tech/echo

    Echo: ESP32-Based VGA Board

    181 parts4
  • 4 layers51 × 21 mmNyx2, the printed circuit board in 3D

    Nyx2

    rh1tech/nyx

    Enhanced open source Raspberry Pi Pico / Raspberry Pi Pico 2 clone

    48 parts2MIT
  • 2 layers99.6 × 49.8 mmStasis badge, the printed circuit board in 3D

    Stasis badge

    MeghanaM4/stasis-badge

    74 parts2
  • 2 layers57.5 × 42.8 mmBlack Body Heater Control, the printed circuit board in 3D

    Black Body Heater Control

    DylanLockyer/Black_Body

    Electrical system for black body MKID tester

    52 parts1MIT
  • 4 layers74 × 36.3 mmLoudcardsdevice, the printed circuit board in 3D

    Loudcardsdevice

    gelotek-com/Anki-In-Hardware

    Building a physical flashcard device inspired by Anki and spaced repetition.

    87 parts2