Request to add PlatformIO support for Earle Philhower's Arduino-Pico (Raspberry Pi Pico SDK)

Hi @ivankravets, @maxgerhardt, and @valeros,

Currently, for Raspberry Pi RP2040, we have two repos that use the Arduino ecosystem.

  1. The Official ArduinoCore-mbed from Arduino that is based on Arduino APIs running on top of Mbed OS.

  2. Earle Philhower's Arduino-Pico based on the Arduino APIs and uses the Official Raspberry Pi Pico SDK and a custom GCC 10.3/Newlib 4.0 toolchain.

At the moment only the Official ArduinoCore-mbed is supported by PlatformIO.

I don’t know how much of an effort it would be to add PlatformIO support for the Earle Philhower's Arduino-Pico as an additional RP2040 framework but it would make a great addition.

I suspect (and hope) that since the Arduino-Pico core is based on the Arduino ecosystem, the integration may not be too involved.

The Raspberry PI Pico SDK based Arduino-Pico core has a number of potential advantages over the Official ArduinoCore-mbed core. The chief being that as Raspberry Pi Organisation updates their SDK, we can leverage the new features, PIO enhancements, as well as existing SDK features that may not necessarily be in the Official ArduinoCore-mbed core.

At the same, the Arduino-Pico can use the same Arduino APIs as the Official ArduinoCore-mbed` except for the specific Mbed-OS features.

I’m sure a lot of Raspberry PI RP2040 users would, very much, welcome PlatformIO to support the Raspberry Pi Pico SDK. The best of both worlds!

Further down the line, we’ll get RP2040 Zephyr-RTOS support. There is already an early alpha for the Raspberry Pi RP2040 in zephyrproject-rtos/zephyr. Although there has been a demo of the hello_world running on a Adafruit_qt_py_rp2040 under Zephyr v2.5.0, there is much to do on the devicetree & soc. No doubt, we’ll get Zephyr onto the RP2040.

What are your thoughts on adding PlatformIO support for Earle Philhower’s Arduino-Pico? Please review for consideration. Thank you.

1 Like

The Arduino-Pico core already supports nearly all the current crop of RP2040 boards from the leading vendors - Raspberry Pi Org, Adafruit, Arduino, SparkFun, Generic, etc.

The Official ArduinoCore-mbed core has yet to fully support the RP2040 from some of the vendors like Adafruit and SparkFun, although the generic support exists.

Also, it appears that LadyAda at Adafruit has largely endorsed the Earle Philhower's Arduino-Pico core, as observed on the Adafruit forums/videos and the fact that all of their RP2040 boards are supported.

Given the level of GitHub commit activity for the two repos, I expect both will thrive in parallel. Of course, I would certainly like to see PlatformIO support theArduino-Pico core.

1 Like

Would be a good feature. I’ve opened a feature request issue at Add support for alternative Arduino core earlephilhower/arduino-pico · Issue #13 · platformio/platform-raspberrypi · GitHub.

Thank you. It’s much appreciated.

Any news about? I would also like to use Earle Philhower’s Arduino-Pico instead of the mbed based core.

Integration is in the PR queue at https://github.com/earlephilhower/arduino-pico/pull/250 with an example at GitHub - maxgerhardt/pio-pico-core-earlephilhower-test: Test firmware that uses the earlephilhower Arduino core..

1 Like

Good progress! Thanks.

When is this core likely to be officially added as a platform to PlatformIO?
Can we use jlink for debug or Are debug issues still outstanding?
Thanks.

Debug issues are still outstanding. Outstandingly black magic. I’ll have to ask the Raspberrypi for help about why it doesn’t work the way I imagine it would.

Thank you for the update.

while i use the pico core from earle I do not use PlattformIO (yet).
I recently came accross some problems with debugging the core and had some findings - maybe this helps tracking that down?!

and also OpenOCD cannot find libgcc_s_dw2-1.dll · earlephilhower/arduino-pico · Discussion #456 · GitHub

Hi @maxgerhardt, Are Pico debug issues still outstanding?
Is it a case of no debug support at all or partially working? Thanks.

Working for ArduinoCore-mbed, partially working with weird, really non-usable hacks in Arduino-Pico. Recently someone independently ran into the same problem as me (breakpoints are just not hit) in Breakpoints not hit while debugging · Discussion #457 · earlephilhower/arduino-pico · GitHub, and I don’t see any solutions in there. Seems I have to go back to the raspberry pi people.

Hello @maxgerhardt. Thank you for the update. It’s much appreciated. It looks like approaching Raspberry Pi folks may be the best route.