Raspberry Pi Pico SDK is a C/C++ development kit that provides headers, libraries, and build infrastructure for writing programs for RP-series microcontrollers such as the Raspberry Pi Pico and Pico 2.
The SDK addresses the need to program microcontroller hardware without requiring developers to work directly with register addresses or low-level hardware details. It presents a conventional programming model where applications start with a standard main() function and can use familiar C and C++ standard libraries. The tool abstracts hardware access through higher-level APIs for timers, synchronization, networking (Wi-Fi and Bluetooth), USB, and multicore programming, while still providing complete register definition headers for developers who need direct hardware control. This design allows the same SDK to support simple applications, complex runtime environments like MicroPython, and even low-level bootrom software.
Developers should adopt this SDK if they are building applications for RP-series microcontrollers and want a programming environment that bridges embedded and non-embedded C development practices. The tool suits projects ranging from simple embedded programs to sophisticated multi-core applications with networking capabilities. The SDK is designed to minimize the need for direct register access in application code, making it accessible to developers less experienced with embedded systems while remaining powerful enough for advanced use cases.
The project maintains both a stable master branch and a develop branch for testing upcoming features. Development activity shows consistent engagement with the codebase through regular updates and maintenance of the core SDK functionality. The project provides comprehensive documentation covering setup, hardware configuration, and API usage, alongside example code repositories demonstrating SDK capabilities. Support infrastructure includes Visual Studio Code integration and command-line tooling for multiple platforms, indicating attention to developer experience across different environments.