Board

Seeed XIAO RP2040 simulator, the Pico’s chip on a thumbnail

The XIAO RP2040 is the Pico’s RP2040, a Cortex-M0+, on a board 21 by 17.5 mm with fourteen pads. Its D0 to D10 are the XIAO family’s numbers, not GPIOs. It has a red, green and blue user LED, each lit LOW, and a NeoPixel that GPIO 11 powers, and both work here as they do on the board.

Start building free
  • 7peripheral areas modeled
  • 2projects ready to run
  • Real timeon your own machine
Seeed XIAO RP2040: 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
The eleven D pads, with the XIAO’s names defined as GPIO numbers
ADC
A0 to A3, on D0 to D3, ten bits against 3.3 V by default
PWM
On any pad
The user LED
Red on GPIO 17 (LED_BUILTIN), green on 16, blue on 25, each lit when its pin is LOW
The NeoPixel
A WS2812 on GPIO 12, powered from GPIO 11, so Adafruit_NeoPixel works
UART0
Wired to the serial monitor

Not modeled

  • The pads on the back: the SWD pair, RUN and the battery pads. The power LED is not modeled either.
  • RESET and BOOT as pins. They are buttons, with no pin.
  • 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 XIAO RP2040

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 D4 (SDA) and D5 (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.

Is D0 GPIO 0?

No. D0 is GPIO 26, and D6 is GPIO 0. A bare number is a GPIO here, so digitalWrite(0, HIGH) drives D6. Use the D names in your sketch; they are defined for this board.

Why does my NeoPixel stay dark?

Its supply comes from GPIO 11. Drive NEOPIXEL_POWER HIGH in setup() before you send it colors, as Seeed’s examples do. Without that it stays dark here, and on the real board too.

Why does the LED light when I write LOW?

The three user LEDs are wired from 3.3 V to their pins, so each lights when its pin is LOW. digitalWrite(LED_BUILTIN, LOW) turns the red one on.

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.