Is there a functional difference between Platformio's "framework-arduinoadafruitnrf52" firmware and arduino's official firmware

PlatformIO copies the Arduino cores as its own seperate package, since it does its own package management. So e.g., we have the PlatformIO package framework-arduinoadafruitnrf52 of the latest version 1.2100.201028 which means it maps to version 0.21.0 release of Adafruit’s nRF52 core release.

Every Arduino core that PlatformIO can build for is managed in its own framework-arduinox package and the platform (nordicnrf52) has to have explicit code support for being able to build a specific Arduino core.

Currently for nRF52, the supported cores are

Each core supports its own set of boards and its own set of APIs and are not necessarily compatible between each other – a firmware written against one core may not work on another core if different libraries are APIs are used which don’t exist equivalently in the other core.

From that you can also see that PlatformIO does not currently implement this “ArduinoCore-primo” core with that Arduino Primo (nRF52832 based) baord. Since both that core and that board are deprecated, I don’t think official support will come either. A custom user-made implementation was referenced in this issue if you still want to try it out.

If the main goal is just using the Arduino Primo board I’d just recommend to use any other board with a nRF52832, like e.g. board = adafruit_feather_nrf52832, and with it Adafruit’s core, and try and program it with that; Just be aware that the pin labels “D1” etc do not map correctly to that board then, but you can still reference “absolute” pinnames like P1.12.

1 Like