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.

Share this:

Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress

ROCK 5 ITX RK3588 mini-ITX motherboard
Notify of
The comment form collects your name, email and content to allow us keep track of the comments placed on the website. Please read and accept our website Terms and Privacy Policy to post a comment.
Georgi Angelov
3 years ago

… you haven’t tried

3 years ago

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

Khadas VIM4 SBC