Pico SDK
Official C/C++ SDK (headers, libraries, CMake build system) for RP-series microcontrollers.
framework
also known as pico-sdk, Raspberry Pi Pico SDK
Knowledge about Pico SDK
- FreeRTOS SMP on RP2040 and RP2350: Raspberry Pi's port, CMake import and known limitsguide · unverified · Raspberry Pi's FreeRTOS-Kernel fork provides SMP ports for RP2040 and RP2350 that run tasks on either or both cores and interoperate with Pico SDK synchronisation primitives. Tickless idle is untested on the RP2040 port, and a single-core app is likely better served by the non-SMP kernel.
- Minimal Pico SDK project: CMake setup, PICO_BOARD, and printf over USB instead of UARTcode · unverified · Import the SDK in CMakeLists.txt, call pico_sdk_init(), build with -DPICO_BOARD for anything but the original Pico, and choose stdio over USB or UART with pico_enable_stdio_usb / pico_enable_stdio_uart.
- PIO on RP2040/RP2350: build your own peripheral (WS2812, 1-Wire, extra UARTs) instead of bit-bangingguide · unverified · Programmable I/O blocks run tiny state-machine programs independently of the CPU. Use them for timing-critical protocols the chip lacks in hardware; pico-examples has ready-made PIO programs for WS2812 LEDs, 1-Wire (DS18B20), UARTs, SPI, I2C, quadrature encoders and more.
- Pico W / Pico 2 W: the on-board LED is not GP25 — it hangs off the wireless chipwarning · unverified · On Pico and Pico 2 the LED is on GP25. On Pico W and Pico 2 W it is on WL_GPIO0 of the Infineon CYW43439 wireless chip, so blink code must initialise the CYW43 driver and use cyw43_arch_gpio_put.
- RP2350 RISC-V mode: build with PICO_PLATFORM=rp2350-riscv and know what you give upguide · unverified · RP2350 can boot its Hazard3 RISC-V cores instead of the Cortex-M33 cores. Build with a RISC-V toolchain and PICO_PLATFORM=rp2350-riscv; all features except some security features and the double-precision floating-point accelerator are available.