This website uses cookies. By using this site, you consent to the use of cookies. For more information, please take a look at our Privacy Policy.
Home > Wiki encyclopedia > ZPUino


The ZPUino is a 32 bit processor running at 100Mhz with a library of Wishbone peripherals. Everything is controlled by a sketch and easy Arduino style libraries. It is an Arduino compatible Soft Processor on steroids!

The ZPUino is the ZPU soft processor adapted for use with the Arduino IDE and it was conceived of and developed by Alvaro Lopes.



32 bit soft processor running at 96Mhz.

Uses a modified version of the Arduino IDE to load sketches.

Wishbone bus for connecting peripherals such as the following:

Commodore 64 SID Audio Chip

YM2149 Audio Chip

POKEY Audion Chip


ZX Spectrum VGA

HQVGA with 8-bit color





SigmaDelta DAC

Actively maintained and developed by Alvaro Lopes.


ZPUino System On Chip

The ZPUino is intended to make it easy to make System on Chip FPGA designs by adding Wishbone Peripherals to the ZPUino Wishbone slots. The RetroCade Synth is an example of a ZPUino System on Chip design.

RetroCade Block Diagram.png

ZPUino Bootloader

The ZPUino uses a bootloader that bootstraps code from SPI Flash into internal Block Ram for the Papilio One and external SDRAM for the Papilio Pro. Every ZPUino variant has a special mode that allows code to be programmed to SPI Flash to be run at the next reset. The ZAP IDE sends a special command at a specific baud rate to trigger the programming mode. After code is loaded to SPI Flash a reset is triggered and the bootloader shadows code from SPI FLash into the appropriate RAM location. This is why a ZPUino variant needs to be loaded to the Papilio board before a sketch is uploaded.

ZPUino Variants

A ZPUino variant is a custom ZPUino System on Chip design that we have pre-synthesized for a specific purpose. It contains all of the Wishbone peripherals that will be useful for a specific task, such as VGA output. A ZPUino variant is normally named after a deity from Greek Mythology which roughly indicates what type of peripherals it includes. For example the Hyperion variant includes the VGA peripheral and is named after Hyperion the "Lord of Light". Check out the ZPUino variant reference page to see all the pre-synthesized ZPUino variants that are currently available.

Upload to RAM

It is possible to speed up the process of writing sketches to the Papilio board by uploading to RAM instead of SPI Flash. To do this hold down the left shift button while pressing the Upload icon. SmallFS files will not be updated and the code changes will not persist after a power down.


FPGA Tutorial Lattice FPGA
Need Help?


If you have any questions about the product and related issues, Please contact us.