The Raspberry Pi Pico SDK 2.1.1 has just been released with official 200 MHz clock support for the Raspberry Pi RP2040 MCU, several new boards mostly from Waveshare, but also one from Sparkfun, as well as new code samples, and other small changes.
Raspberry Pi RP2040 gets official 200 MHz clock support
When the Raspberry Pi RP2040 was first released along with Raspberry Pi Pico in 2021, we were told the default frequency was 48 MHz, but the microcontroller could also run up to 133 MHz. Eventually, I think the Cortex-M0+ cores were clocked at 125 MHz by default, although some projects (e.g. PicoDVI) would boost the frequency up to 252 MHz.
Frequencies higher than 133 Mhz were not officially supported so far, but the Pico SDK 2.1.1 changes that since the Raspberry Pi RP2040 has now been certified to run at a system clock of 200MHz when using a regulator voltage of at least 1.15 volts.
If you want to make use of the new 200MHz clock simply set SYS_CLK_MHZ=200 via the preprocessor define and the regulator voltage will automatically be raised if necessary. Raspberry Pi did not change the default values in the Pico SDK meaning SYS_CLK_MHZ is set to 125 (MHz) for the RP2040 and 150 (MHz) for the RP2350 since the different may break some programs that make assumptions about the operating frequency. Another way to make sure your program always uses the maximum frequency whether for RP2040, RP2350, or future RP2xxx microcontroller is to define PICO_USE_FASTEST_SUPPORTED_CLOCK=1 via CMake variable or as a preprocessor define.
New boards supported by Pico SDK 2.1.1
The SDK also adds support for new RP2040/RP2350 boards:
- SparkFun IoT Node for LoRaWAN RP2350
- Waveshare Pico CAM A
- Waveshare RP2040-BLE, ETH, GEEK, Matrix, Pi Zero, Power Management HAT (B), Tiny, Touch-LCD-1.28
- Waveshare RP2350-ETH, GEEK, LCD-0.96, LCD-1.28, ONE, Plus-4MB, Plus-16MB, Tiny, Touch-LCD-1.28, Zero
Some other boards have had their configuration slightly updated.
New C code samples
As mentioned in the introduction new code samples were added to 2.1.1 (and 2.1.0):
- binary_info
- blink_any – Uses bi_ptr variables to create a configurable blink binary
- hello_anything – Uses bi_ptr variables to create a configurable hello_world binary
- i2c/slave_mem_i2c_burst – i2c slave example where the slave implements a 256-byte memory.
- pico_w/wifi
- picow_blink_slow_clock – Blinks the on-board LED (which is connected via the WiFi chip) with a slower system clock to show how to reconfigure communication with the WiFi chip at run time under those circumstances
- picow_blink_fast_clock – Same as above but with a faster system clock
- picow_http_client – Demonstrates how to make HTTP and HTTPS requests
- picow_http_client_verify – Demonstrates how to make an HTTPS request with server authentication
- mqtt/picow_mqtt_client – Demonstrates how to implement an MQTT client application
- freertos/picow_freertos_http_client_sys – Demonstrates how to make an HTTPS request in NO_SYS=0 (i.e. full FreeRTOS integration)
- universal
- blink – Same as the blink example, but universal.
- nuke_universal – Same as the flash/nuke example, but universal. On RP2350 runs as a packaged SRAM binary, so it is written to flash and copied to SRAM by the bootloader
- pio/uart_pio_dma – Send and receive data from a UART implemented using the PIO and DMA
- usb/device/dev_multi_cdc – A USB CDC device example with two serial ports, one of which is used for standard SDK stdio. The example exposes two serial ports over USB to the host. The first port is used for stdio, and the second port is used for a simple echo loopback
You’ll find those in the pico-examples repository.
The full release notes can be found in the announcement on the GitHub repo.
Via Hackster.io

Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.
Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress