How to recover a “bricked” Raspberry Pi Pico 2 or other RP2350 board

Recover Bricked Raspberry Pi Pico 2 or RP2350 board with flash_nuke.uf2

In theory, it’s close to impossible to brick your Raspberry Pi Pico 2 or other RP2350 boards because the bootrom code (source code) is stored in the 32KB ROM of the microcontroller and is by definition “read-only memory”.  But I managed to “brick” my Raspberry Pi Pico 2 the other day, and even a blinky sample would not run on the board. So I’ll explain a simple method to recover/perform a factory reset of sorts. First, let me explain what happened. My board became unusable after I ran the following command while building RISC-V Linux for RP2035 and my Pico 2 was connected to the build machine:

At some point, it will copy a UF2 firmware binary designed for boards with PSRAM which the Raspberry Pi Pico 2 lacks:

After that, I could still see the Raspberry Pi Pico 2 board as an “RP2350” drive on my computer, […]

DietPi 9.7 and Armbian 24.8 released with improved support for Rockchip, Amlogic, and Allwinner SBCs

DietPi 9.7 Orange Pi 5 Plus

Armbian and DietPi are two separate projects that provide Linux-based OS images optimized for Arm-based single board computers. The last time we had a look at both projects was in June with the release of Armbian 24.5.1 and DietPi 9.4, but there have been several updates since then including the releases of the latest DietPi 9.7 and Armbian 24.8 Yelt just a few days ago. So let’s check out the latest changes. DietPi 9.7 DietPi is a lightweight Debian-based Linux distribution for SBCs and server systems that ships as a minimal image but users can install any packages they want, including the ones required for desktop environment, to match the requirements of the applications. It’s notably used by the Linamp project – a Raspberry Pi 4-based project that brings WinAMP to real life – that we covered a few weeks ago. DietPi 9.7 was released on August 25, 2024 with […]

Android support for 16KB page size boosts performance by up to 10 percent

Android 16KB page size

Most operating systems are set to use a 4KB page size since that’s what most CPUs support, but Android is often running on Arm CPUs that can support 16KB page size. So Google decided to enable 16 KB page size as a developer option in selected Android devices since it can deliver a 5 to 10% boost in performance, at the cost of using around 9% extra memory. Contrary to 32-bit/64-bit mode, a page size is not an Application Binary Interface (ABI), so once an application is fixed to be page size agnostic, it can run on both 4 KB and 16 KB devices without modifications. Apps written with Java or Kotlin don’t need modifications, but those that use native code (C/C++) or dependencies must be recompiled for compatibility with 16 KB page size devices. Google provides some details about the benefits of 16 KB page sizes on the developer […]

platform-espressif32 fork to enable PlatformIO support for ESP32-C6, ESP32-C5, ESP32-H2, and ESP32-P4 SoCs

PlatformIO ESP32-C6 ESP32-C5 ESP32-P4 ESP32-H2

When Espressif Systems released Arduino ESP32 Core 3.0.0 we noted that PlatformIO support was in doubt due to business issues between Espressif and Platform IO developers. There has been no progress since then, and PlatformIO is not even reviewing or merging community contributions to their platform-espressif32 library. So if you want software that’s officially supported by Espressif, you should stick to the Arduino ESP32 Core. But if you are a fan of PlatformIO for ESP32, there’s hope even for the newer chips like ESP32-C6, ESP32-H2, and ESP32-P4 among others, as pioarduino community members have now forked the platform-espressif32 library to keep the project alive. Users can still rely on the official PlatformIO repository for existing ESP32 boards and microcontrollers, but new ESP32-C6, ESP32-H2, ESP32-C5, ESP32-H4, and ESP32-P4 SoC will only be supported by the fork. pioarduino which stands for “people initiated optimized arduino” will maintain the fork, and currently, Arduino […]

Raspberry Pi Pico Arduino core 4.0 adds support for RP2350 boards

Raspberry Pi RP2350 Arduino

Earle F. Philhower, III has just released the Raspberry Pi Pico Arduino core 4.0 with support for a range of Raspberry Pi RP2350 boards beside the official Raspberry Pi Pico 2. Shortly after the RP2040-based Raspberry Pi Pico board was released, we got two Arduino SDKs, the first being the community-supported Raspberry Pi Pico Arduino core maintained by Earle, and the second being the official Arduino Core Mbed 2.0 for boards as such as Arduino Nano Connect RP2040. We are again likely to have two Arduino SDKs for the RP2350 starting with the Raspberry Pi Pico Arduino core. Key changes in Raspberry Pi Pico Arduino core 4.0: Adds Raspberry Pi RP2350 support (Arm only; RISC-V cores are not supported at this stage) Migrates to Pico SDK 2.0 since it is required for RP2350 support and includes a new OpenOCD and Picotool. Tested features: SPI, I2C, LittleFS, EEPROM, PWMAudio, LWIP-based networking, […]

Arduino Core for ESP32 gets a Zigbee wrapper library

Arduino ESP32 Zigbee

Some of the newer Espressif Systems wireless SoCs such as the ESP32-H2 and ESP32-C6 support Zigbee through their built-in 802.15.4 radio. It’s been working since the release of the ESP-IDF 5.1 framework along with the ESP-Zigbee-SDK for a while, but Arduino support was less straightforward. But this is about to change as an Espressif engineer nicknamed P-R-O-C-H-Y has recently added a Zigbee wrapper library for the ESP-Zigbee-SDK to Arduino Core for ESP32 that works with ESP32-C6 and ESP32-H2 as standalone nodes and other SoC can be used as radio co-processor attached to an RPC (802.15.4 radio layer). The wrapper library currently supports the following: Zigbee classes and all Zigbee roles Zigbee network scanning Allow multiple endpoints on the same Zigbee device (not tested yet) Supported Home Assistant devices On/off light + switch Color Dimmable light + switch Setting Manufacturer and model name Other tasks currently planned include supporting “Temperature sensor […]

A closer look at Raspberry Pi RP2350’s HSTX high-speed serial transmit interface

Raspberry Pi RP2530 HSTX interface

The Raspberry Pi RP2350 microcontroller adds an HSTX (High-Speed Serial Transmit) interface adding the PIOs (Programmable IOs) introduced on the Raspberry Pi RP2040 three years ago. The RP2350 MCU now has three PIOs and one HSTX interface going over 8x GPIOs. So let’s try to better understand what HSTX is exactly, what it is used for, and how it differs from PIOs. We’ll also check out some programming examples in C and MicroPython. The high-speed serial transmit (HSTX) interface is detailed in the RP2350 datasheet starting on page 1118 where it reads “The high-speed serial transmit (HSTX) interface streams data from the system clock domain to up to 8 GPIOs at a rate independent of the system clock”. Reading further, we also learn that it runs at 150 MHz enabling up to 300 Mbps per pin with DDR output operation, or a combined 2,400 Mbps over 8 pins if I […]

Google Pigweed SDK now supports Raspberry Pi RP2350 microcontroller

Raspberry Pi Pico 2 (RP2350) with Enviro+ pack hat.

Google Pigweed, a collection of open-source libraries for embedded software development, now supports the Raspberry Pi RP2350 MCU and comes as a software development kit (Google Pigweed SDK). These libraries, also called modules, are building blocks that make embedded software development faster and more reliable. It targets tiny 32-bit microcontrollers such as STMicro STM32L452, Nordic Semi nRF52832, and the Raspberry Pi Pico line of microcontrollers. The library components have shipped in Google Pixels, Nest thermostats, robots, satellites, and drones. On August 8, the Pigweed project was released as a software development kit (SDK) in developer preview with official support for Raspberry Pi RP2350 and the associated Pico 2 development board. The new release uses the Bazel build system – a feature upstreamed into the Pico SDK by the Google Pigweed team – and a complete, open-source Clang/LLVM toolchain. The Google Pigweed SDK includes sample code, modules, and a comprehensive tutorial […]