Close
0%
0%

picoZ80: RP2350 Drop-in Z80 Replacement

Replaces the Z80 in any DIP-40 socket: an RP2350 runs the bus via PIO, with banked RAM, virtual disks and USB and/or WiFi networking.

Similar projects worth following
The picoZ80 drops into the Z80 socket of a vintage computer and replaces the CPU. Its RP2350B's PIO state machines run every bus transaction in real time, so the host sees exactly the timing of a real Z80, while the second core, 8 MB PSRAM and 16 MB Flash add accelerated execution, banked memory, virtual floppy, QuickDisk and cassette drives, and complete machine personas. An ESP32 provides the SD card and networking over USB (a virtual Ethernet adapter on the PC) and/or WiFi, serving a browser-based management interface, and everything is configured from one JSON file.

What it does

  • Drop-in Z80 replacement for any DIP-40 socket; the host sees normal Z80 bus timing
  • 8 MB PSRAM as 64 × 64 KB banks, mapped in 512-byte blocks as ROM, RAM, physical host memory or virtual devices
  • Tested in real machines: the Sharp MZ-80K, MZ-80A, MZ-80B, MZ-700, MZ-800, MZ-1500, MZ-2000, MZ-2200 and MZ-2500, the Sharp X1 Turbo II, the Tatung Einstein TC-01, the Amstrad PCW-8256 and PCW-9512, and the RC2014 Micro. Machine personas cover these hosts, and an OpenZ80 persona covers boards of your own
  • Virtual floppy (WD1773), QuickDisk and a waveform-level cassette deck, each switchable live between virtual and the machine's real hardware
  • Thirteen virtual peripheral chips (Z80 DMA, CTC, PIO, DART; 8253/8254, 8255, 8251, 68B50; WD1773; MSM5832 RTC; printer port; latch) wired together by a netlist, with no soldering
  • ROM Filing System and TranZPUter Filing System, including floppy and QuickDisk boot from TZFS
  • 65-command ICE debug shell over USB: breakpoints, single step, trace, Z80 disassembler and assembler
  • Networking over USB and/or WiFi: on USB the board appears to the PC as a network adapter (USB NCM, web interface at 192.168.7.1, address assigned automatically); WiFi works as an access point or a client. The ESP32 firmware can be built for WiFi only, WiFi + USB, or USB only with no radio at all
  • Eight-page web interface over either link: dashboard, configuration GUI and editor, file manager, personas, OTA updates, WiFi manager

Hardware

v2.6d: a 6-layer board inside the DIP-40 footprint. RP2350B, ESP32-S3-PICO-1, 8 MB PSRAM, 16 MB Flash, a CH334F USB hub, a micro-SD socket and a TLV62569 buck converter powered from the socket. The v2.6 boards drive the host bus through 74AHCT buffers at true 5V levels. The board fits the CPU socket on two 20-pin round-pin headers.

Files and documentation

Files on this page: schematic (PDF), interactive BOM, Gerbers and drill files, BOM (CSV).

Everything else: full documentation, User Manual, Technical Guide and Developer's Guide at eaw.app/picoz80; firmware source and KiCad project at git.eaw.app/eaw/pico.

Licences: hardware CC BY-NC-SA 4.0 (non-commercial; contact for commercial licensing), firmware GPL v3.

ibom_picoZ80_v2.6d.zip

Interactive BOM: unzip and open the HTML in a browser for a component placement viewer, picoZ80 v2.6d. Also linked from the eaw.app picoZ80 page.

Zip Archive - 147.36 kB - 10/31/2026 at 21:22

Download

picoZ80_v2.6d_schematic.pdf

Complete schematic, picoZ80 v2.6d (5 sheets: RP2350B, ESP32, Z80 interface, power supply, USB hub).

Adobe Portable Document Format - 567.68 kB - 10/31/2026 at 21:22

Preview

picoZ80_v2.6d_gerbers.zip

Gerber and drill files, picoZ80 v2.6d, 6-layer board. The KiCad project is in the Gitea repository linked on the project page.

Zip Archive - 559.74 kB - 10/31/2026 at 21:22

Download

picoZ80_v2.6d_bom.csv

Bill of materials, picoZ80 v2.6d, grouped by value and footprint.

Comma-Separated Values - 2.70 kB - 10/31/2026 at 21:22

Download

  • 1 × RP2350B Raspberry Pi dual Cortex-M33 microcontroller, QFN-80 (U4)
  • 1 × ESP32-S3-PICO-1-N8R8 WiFi/Bluetooth module: SD card, web server, OTA (U3)
  • 1 × APS6404L-3SQR-SN 8 MB PSRAM, SOP-8 (U5)
  • 1 × W25Q128JVPIQ 16 MB SPI Flash, WSON-8 (U2)
  • 3 × 74AHCT244BQ Logic ICs / Buffers, Drivers, Transceivers

View all 16 components

  • picoZ80 v2.6d: 5V buffered bus, new socket headers

    psmart • 6 hours ago • 0 comments

    A picoZ80 is installed and tested in every one of these machines: the Sharp MZ-80K, MZ-80A, MZ-80B, MZ-700, MZ-800, MZ-1500, MZ-2000, MZ-2200 and MZ-2500, the Sharp X1 Turbo II, the Tatung Einstein TC-01, the Amstrad PCW-8256 and PCW-9512, and the RC2014 Micro. This project page brings it to hackaday.io alongside its 6502 sibling. Full documentation lives at eaw.app and the source, firmware and KiCad project on git.eaw.app.

    The current board is v2.6d. Up to v2.5 the 5V host bus was driven straight from the RP2350's 3.3V GPIOs through series resistors. The v2.6 boards add 74AHCT244/245 buffers, so the host sees true 5V logic levels. With current firmware the 3.3V and 5V boards behave the same on every machine tested, but the buffered board is the electrically authentic one.

    v2.6d changes two things from v2.6a: the board now plugs into the CPU socket on two 20-pin round-pin headers instead of a single DIP-40 pin footprint (the arrangement now shared with the pico6502, pico6510 and pico6809), and a 6.8 nH inductor is removed from the ESP32 sheet. The v2.6d schematic, Gerbers, BOM and interactive BOM are in the Files section.

View project log

Enjoy this project?

Share

Discussions

Does this project spark your interest?

Become a member to follow this project and never miss any updates