hardware/rp2040-pico.md

RP2040 / Raspberry Pi Pico

Model Info (from USB detection)

  • Detected as: RP2 Boot (Raspberry Pi)
  • Serial: E0C9125B0D9B
  • Mode: BOOTSEL (mass storage bootloader)
  • Volume: RPI-RP2 — mounts as FAT16 drive (/dev/disk4)
  • Board: Plain Raspberry Pi Pico (not Pico W — no wireless)

Bought 3 of these.

How to Program

1. Arduino IDE (easiest, sketch-like)

  1. Install the Raspberry Pi Pico/RP2040 board package:
    • Arduino IDE → Boards Manager → search "pico"
    • Install Earle Philhower's core or the official Arduino RP2040 core
  2. Write your sketch as usual
  3. Export compiled binary → outputs a .uf2 file
  4. Drag the .uf2 file onto the RPI-RP2 volume
  5. Pico auto-resets and runs the code

Gotchas:

  • RP2040 is 3.3V only — no 5V tolerant pins. Use level shifters for 5V sensors.
  • No built-in WiFi (this is plain Pico, not Pico W)
  • Some Arduino libraries need tweaks (timers, analogWrite, PIO)

2. C/C++ SDK (full power)

  • Raspberry Pi's official Pico SDK
  • CMake-based setup
  • Full access to PIO, dual-core, DMA

3. MicroPython / CircuitPython

  • Flash once with the MicroPython .uf2
  • Then edit .py files on the board
  • Easiest for prototyping

Notes

  • BOOTSEL mode = hold BOOTSEL button while plugging in, or while pressing RESET
  • Drag-and-drop .uf2 flashing works on macOS natively (no extra tools needed)
  • If it shows up as a serial port instead of a drive, it's running user code (not in BOOTSEL)