Raspberry Pi Pico is Raspberry Pi’s first microcontroller board, designed especially for physical computing. Microcontrollers are a different type of device than Single Board Computers (like the Raspberry Pi 4 and previous generations of Pi), they don’t run an operating system and they are typically programmed to do just one task – though that task can be pretty intricate and exciting! They’re perfect for experimenting with hardware and using as the brains of custom devices, machines and inventions.
It can be easily reprogrammed over USB from a Raspberry Pi or other computer using the C/C++ SDK or the official MicroPython port. The landing page is the best place to get started, or scroll down for links to the technical documentation for both the Raspberry Pi Pico microcontroller board and the RP2040 microcontroller chip.
Specification #
- RP2040 microcontroller chip designed by Raspberry Pi in the United Kingdom
- Dual-core ARM Cortex M0+ processor, flexible clock running up to 133 MHz
- 264kB of SRAM, and 2MB of on-board Flash memory
- Castellated module allows soldering direct to carrier boards
- USB 1.1 Host and Device support
- Low-power sleep and dormant modes
- Drag & drop programming using mass storage over USB
- 26 multi-function GPIO pins
- 2×SPI, 2×I2C, 2×UART, 3×12-bit ADC, 16×controllable PWM channels
- Accurate clock and timer on-chip
- Temperature sensor
- Accelerated floating point libraries on-chip
- 8×Programmable IO (PIO) state machines for custom peripheral support
- CYW43439 wireless chip (supports IEEE 802.11 b/g/n wireless LAN, and Bluetooth 5.2; of these, only wireless LAN is supported at launch.)
- Voor alle specificaties en voorbeeldprojecten, zie ook de Pico-website: https://pico.raspberrypi.org/getting-started/
Pinout #
WiFi chip #
The Pico W supports 2.4 Ghz 802.11n wireless networking. For MicroPython, we can use a MicroPython library built around the lwip TCP/IP stack. This stack is accessible using the MicroPython network functions.
The WiFi chip used is the Infineon CYW43439 chip. This chip also uses an ARM architecture and has extensive support for Bluetooth wireless communication.
You can read more about the capabilities of the WiFi/Bluetooth chip by reading the Infineon CYW43439 Datasheet. I found it interesting that the CYW43439 chip has 512KB of SRAM – almost double what the RP2040 chip contains!
Compatibility with Prior Code #
The Pico W code is very similar to prior versions of the Pico with a few small exceptions. One of these is the fact that we must now use a symbolic label called an alias such as Pin("LED")
instead of Pin(25)
to access the LED pin, not a hardwired PIN number. This allows us to keep our code more portable as the underlying hardware changes.
from machine import Pin, Timer
# was Pin(25)
led = Pin("LED", Pin.OUT)
tim = Timer()
def tick(timer):
global led
led.toggle()
tim.init(freq=2.5, mode=Timer.PERIODIC, callback=tick)
Datasheet #
RP2040 datasheet (raspberry pi).pdf #
Fritzing model #
PicoW-Fritzing-THT.fzpz #
source: https://forums.raspberrypi.com/viewtopic.php?t=327209