Board

Raspberry Pi Pico W simulator, and what it will not pretend

The Pico W is the Raspberry Pi Pico with a CYW43439 beside it. Mokxi models the RP2040 exactly as it models a Pico (same core, same forty pins). For an Arduino sketch it models that chip not at all: WiFi is simulated instead, the Arduino API over a network of ours, with no radio behind it, and real internet when you sign in and switch it on. The on-board LED works, and not off GP25: on this board it hangs off the wireless chip, and the runtime drives it down the same path. MicroPython and CircuitPython boot the official Pico W firmware, and for them the CYW43439 is modeled from its pins, so network.WLAN and wifi.radio join the same simulated network. This page is where all of it is written down.

Start building free
  • 9peripheral areas modeled
  • 53projects ready to run
  • Real timeon your own machine
Raspberry Pi Pico W: blinklive0.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
Cortex-M0+ (ARMv6-M) at 125 MHz, with the datasheet cycle count of every instruction
SIO GPIO
Real register offsets on IO_BANK0, PADS_BANK0 and SIO, with the 55 k pad pulls
TIMER
A 64-bit microsecond counter with four alarms, which park the core during delay()
UART0
Paced at the configured baud rate, wired to the serial monitor
UART1
Serial2 on GP4 and GP5, or another UART1 pair from setTX() and setRX(): real frames on the wire, bit by bit
PWM slices
Eight slices, two channels each, so analogWrite works on every GPIO pin
The header
All forty pins in the board’s own order, the same names, the same rails
The on-board LED
Not on GP25 here: LED_BUILTIN goes to the wireless chip’s own GPIO 0, the way the Arduino core drives it on the real board. On or off, with no PWM behind it
WiFi, simulated
WiFi.h, HTTPClient.h and WebServer.h over a network written in software: no radio, no 802.11, and real internet only when you sign in and switch it on

Not modeled

  • A radio of any kind, and Bluetooth in every form. No 802.11, no LE, no GATT, and for an Arduino sketch no CYW43439. WiFi is simulated instead (WiFi.h, HTTPClient.h and WebServer.h over a network written in software, which reaches the real internet only when you sign in and switch it on), and every page that mentions it says so. A sketch that reaches for Bluetooth will not compile, because the runtime does not declare it.
  • GP25 as the LED. On a Pico W it is WL_CS, and driving it high lights nothing here and nothing on a real Pico W. LED_BUILTIN is the lamp, and it goes to the wireless chip, but there is no PWM on that link, so analogWrite on it does nothing and a breathing LED wants a header pin.
  • GP24 as VBUS sense and GP23 as the regulator mode pin. On this board both belong to the CYW43, so nothing drives them.
  • Everything the Pico model leaves out as well: the second core, PIO, DMA, the ADC, SPI, I2C, USB and the clock tree.
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 Pico W

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.

Can it connect to WiFi?

To a simulated one, yes, and it says plainly that it is simulated. Your sketch uses the real Arduino calls (WiFi.begin, WiFi.status, HTTPClient, WebServer), and the board joins a network, fetches a page and serves one. Underneath there is no CYW43439 and no 802.11. Four made-up addresses under .mokxi answer inside this tab. Signed in, you can switch on Real internet in the Cloud panel, and HTTP and HTTPS requests to real hosts go out through Mokxi’s gateway. Bluetooth is not simulated at all.

Does it run MicroPython or CircuitPython?

Both. Pick MicroPython (main.py) or CircuitPython (code.py) in the board’s Firmware panel and Run boots the official Pico W firmware. Its CYW43439 is modeled from its pins, so Pin("LED") or board.LED lights the lamp, and network.WLAN or wifi.radio joins the simulated access point and fetches the .mokxi sites. Bluetooth, the access point mode’s clients and TLS are not simulated.

Why does the on-board LED never light?

Because on a Pico W GP25 is WL_CS, not the LED. The lamp is on the wireless chip’s own GPIO 0, and digitalWrite(LED_BUILTIN, HIGH) gets there: the runtime sends it over the same path the Arduino core uses on the real board. Writing 25 lights nothing here and nothing on a desk.

Is the firmware different from a Pico’s?

No. Same chip, same memory map, same ELF. A program built for a Pico runs here unchanged, and the editor uses the same compiler and the same runtime for both.

Which should I pick?

If your circuit does not need real wireless, either. Pick the Pico W when that is the board on your desk, so the pinout, the LED and the WiFi code match what you will find.

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.