Board

Waveshare RP2040-Zero simulator, the Pico’s chip on a tiny board

The RP2040-Zero is the Pico’s RP2040, a Cortex-M0+, on a board 23.5 by 18 mm with twenty-three pins named by GPIO and a NeoPixel on GP16. There is no plain LED. Mokxi runs the chip and the NeoPixel, and this page says what the model leaves out.

Start building free
  • 6peripheral areas modeled
  • 2projects ready to run
  • Real timeon your own machine
Waveshare RP2040-Zero: neopixellive0.000 s 0.00x
Click to open it in the editor
The board is running real firmware right now. Click it to open the circuit in the editor.
The model

What is modeled

Taken from the board's own contract document and put in plain words, with what is missing beside it.

Modeled

Core
The RP2040’s Cortex-M0+, the Pico model whole
GPIO
GP0 to GP15 and GP26 to GP29, with the silkscreen numbers as the GPIO numbers
ADC
A0 to A3, on GP26 to GP29, ten bits against 3.3 V by default
PWM
On any pin
The NeoPixel
A WS2812 on GP16, so Adafruit_NeoPixel works
UART0 and UART1
Serial wired to the serial monitor, and Serial2 on GP8 and GP9

Not modeled

  • The nine solder pads on the back, GP17 to GP25, and the power LED.
  • RESET and BOOT as pins. They are buttons, with no pin.
  • A plain user LED: the board has none, so there is no LED_BUILTIN.
  • The RP2040’s second core, PIO, DMA, its own I2C and SPI blocks (Wire and SPI run in software), the USB controller and the RTC.
Start here

Open one and press Run

Each of these opens in the editor exactly as it is drawn here.

Projects

Every built-in project on the RP2040-Zero

Each has its own page with the circuit running, the code and a parts list.

Libraries

Arduino libraries that compile as they are

Paste a tutorial that includes one of these and it builds. For any other library, the build names the Mokxi header that does the same job.

Servo.h
attach, write, writeMicroseconds, read, detach, on any pin
Wire.h
I2C as a master; Wire.begin() puts it on GP4 (SDA) and GP5 (SCL)
SPI.h
transfer and transactions, on the board’s usual SPI pins
EEPROM.h
read, write, update, get, put and EEPROM[i], kept in 4 KB of RAM, which a reset clears: this board has no EEPROM to write
LiquidCrystal_I2C.h
the 16x2 LCD behind its I2C backpack
Adafruit_GFX.h and Adafruit_SSD1306.h
the 128x64 I2C OLED: text, pixels, lines, rectangles, circles, triangles and bitmaps
Adafruit_NeoPixel.h
WS2812 strips and panels
DHT.h
the DHT11 and DHT22: temperature, humidity and the heat index, as floats you can print

And 15 more, 23 in all: OneWire.h and DallasTemperature.h; Adafruit_BME280.h, Adafruit_BMP280.h and SparkFunBME280.h; RTClib.h; Adafruit_SHT31.h; Adafruit_PCF8591.h; Adafruit_ADXL345_U.h; LedControl.h; Adafruit_LEDBackpack.h; Adafruit_TCS34725.h; Adafruit_SGP30.h; Adafruit_INA219.h; Adafruit_ADS1X15.h; Adafruit_MCP23X17.h; Bounce2.h; HX711.h.

Learn

Tutorials that use this board

Each one ends in a running circuit, on this same board.

Questions

Is it free?

Yes. Every board and every part is on the free plan, with no account needed.

Why does Blink not compile?

Because the board has no plain LED, so LED_BUILTIN is not defined. Wire an LED to a pin, or color the NeoPixel on GP16; the built-in Blink uses GP0.

Can I push it into a breadboard?

Not safely. Its five bottom pins sit in one column, so GP9 and GP10 land in the same strip and short together, in Mokxi as on the bench. Keep it beside the breadboard and use jumpers, as the starter does.

Does Adafruit_NeoPixel work?

Yes. The NeoPixel is a WS2812 model of its own on GP16. Use PIN_NEOPIXEL as the pin and NEO_GRB + NEO_KHZ800 as the type.

Try it on your own firmware

What you build here runs on the board on your desk, unchanged. Nothing to install and no account needed.