PicoZ80 – Drop-In Z80 Replacement
5 hours ago
- #retro-computing
- #embedded-systems
- #Z80-emulation
- The picoZ80 is a drop-in Z80 replacement using an RP2350 microcontroller with PIO state machines for cycle-accurate bus timing, enabling faster CPU, more memory, and virtual devices in legacy Z80 systems.
- It features an ESP32 co-processor for WiFi, Bluetooth, SD card storage, and a web-based management interface, with all configuration driven by a JSON file on the SD card.
- Hardware includes a custom PCB fitting DIP-40 sockets, with an RP2350B (dual-core Cortex-M33), 8MB PSRAM, 16MB Flash, ESP32-S3, USB hub, and power supply from the Z80's 5V pin.
- Architecture uses dual-core design: Core 1 handles real-time Z80 emulation via PIO bus interface, while Core 0 manages non-real-time tasks like USB, file I/O, and ESP32 communication.
- A three-tier memory model with RP2350 SRAM, PSRAM, and Flash supports configurable memory blocks (e.g., PHYSICAL, RAM, ROM, FUNC) in 512-byte granularity for flexible memory mapping.
- Machine personas (e.g., for Sharp MZ series) provide virtual drivers like floppy/QuickDisk emulation, ROM Filing System (RFS), and TranZPUter Filing System (TZFS) via JSON configuration.
- Build and flashing processes involve CMake, ARM GCC, Docker for ESP32, and debugging via SWD for RP2350 and USB-JTAG for ESP32, with OTA updates through a web interface.
- The web interface includes pages for status, config editing, file management, persona selection, firmware updates, and WiFi management, all accessible via a Bootstrap-based UI.
- Licensing restricts commercial use: hardware designs are CC BY-NC-SA 4.0, firmware is GPL v3, and commercial licensing requires permission from the author.