Arduino Core mbed 2.0 supports Raspberry Pi Pico & Arduino Nano RP2040 Connect

Last week, we noted and tried the unofficial Raspberry Pi Pico Arduino Core that works on RP2040 boards, including Raspberry Pi Pico. Everything was super early to set up and the blink sample worked just fine.

But Arduino recently tweeted about the Arduino Core mbed 2.0 release that adds for Raspberry Pi RP2040 boards including Arduino Nano RP2040 Connect and Raspberry Pi Pico boards.

Arduino first used mbed for their Arduino Nano 33 BLE board as they didn’t have an official Arduino core for the Nordic nRF52840 Cortex-M4 microcontroller, and it appears they’ve done the same for Raspberry Pi RP2040 whose mbed implementation itself relies on the C SDK.

Let’s have a try, how hard can it be? We can find the release and changelog on Github with some instructions on the main Github.

First, we can clone the repo in the sketchbook directory (See Arduino IDE’s preferences) which in my case was ~/Arduino:

We’ll also need to clone the ArduinoCore-API:

I could then go to the Boards Manager, look for mbed, and I installed “Arduino Mbed OS RP2040 Boards”

Arduino mBed OS RP2040 boards

I could then select Raspberry Pi Pico board in the menu, as well as the port to which it is connected: /dev/ttyACM0.

Raspberry Pi Pico Arduino mBed

The blink sample could build, but the sample fails to upload to the board.

Raspberry Pi Pico Upload Error

I tried with two Raspberry Pi Pico boards and both fail the same way, while they worked just fine with the unofficial Arduino Core port. Looking at the kernel log in Ubuntu 20.04 after connecting the board:

The ttyACM0 device is properly detected:

But attempting to flash the firmware to the board, reboots it in BOOT mode, and the serial port is gone, while the Pico partition (RPI-RP2) is mounted:

At this point, the Arduino IDE should copy the UF2 file to the partition, but this does not happen. But I found a workaround on Raspberry Pi forum. I located the uf2 file in /tmp/arduino*:

and copied it to the drive:

And I got the LED blinking on the board. So that’s a preliminary port, and may explain why Arduino just tweeted about it, rather than write a blog post to announce the release of Arduino Core mbed 2.0 for RP2040 boards.

Support CNX Software! Donate via PayPal or cryptocurrencies, become a Patron on Patreon, or buy review samples

Notify of
Georgi Angelov
27 days ago

… you haven’t tried

27 days ago

Why not just use mbed then?, its not that much harder to learn then Arduino.