Official Arduino Core for the nRF52840 is out with a surprise

459 views
Skip to first unread message

Massimo Banzi

unread,
Jul 31, 2019, 10:56:40 AM7/31/19
to Arduino Developers
Hello all


The new official Arduino Core for the nRF52840 is available now with a nice surprise.
It’s actually based on MbedOS so Arduino is now running transparently on this RTOS


Our ArduinoBLE API are available too, ported on top of the open source Cordio Bluetooth Stack!

For the adventurous between you, there is https://github.com/arduino/ArduinoCore-nRF528x-mbedos/blob/master/mbed-os-to-arduino which allows you to port this code to probably all the boards supported by MbedOS :)

As usual amazing work from the team lead by Martino with Cristian and Sandeep (and many others)

Let us know what you think :-)

PS: martino has written a blog post about the port, I’ll link it here when it’s out!

m

--

Massimo Banzi
Co-Founder



Phillip Torrone

unread,
Jul 31, 2019, 2:37:03 PM7/31/19
to devel...@arduino.cc
this is really exciting. we've used the softdevice, while it's very compact, it's not open-source. if cordio can do everything that softdevice can, including central and peripheral, it's *great* news.

questions for you massimo!

1) why did arduino pick mbedOS vs something like zephyr? the blog post does not really say (https://blog.arduino.cc/2019/07/31/why-we-chose-to-build-the-arduino-nano-33-ble-core-on-mbed-os/).

2) is arduino using mbed just for the wireless stack, or for all peripherals as well? (we had a few issues with peripherals on mbed being a little buggy for the SAMD series).

thanks,
pt

Alex Albino

unread,
Jul 31, 2019, 2:38:57 PM7/31/19
to devel...@arduino.cc
Wow! Excellent work! I'm excited to test it out, as I'm sure everyone else is too!

- Alex Albino

--
You received this message because you are subscribed to the Google Groups "Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to developers+...@arduino.cc.
To view this discussion on the web visit https://groups.google.com/a/arduino.cc/d/msgid/developers/F3EFF789-67A2-412C-80C5-C108CD2AEA5B%40adafruit.com.

Luca Cipriani

unread,
Aug 1, 2019, 11:14:56 AM8/1/19
to devel...@arduino.cc
First working example created by the community:

And the whole article about it:

Luca Cipriani

CIO & Cloud Business Manager

+39 3420105456

ARDUINO.CC


| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |


This message is confidential and may be legally privileged or otherwise protected from disclosure;

you must not copy or disclose the contents of this message or any attachment to any other person.




William Westfield

unread,
Feb 21, 2020, 1:53:44 AM2/21/20
to devel...@arduino.cc

The new official Arduino Core for the nRF52840 is available now with a nice surprise.
It’s actually based on MbedOS so Arduino is now running transparently on this RTOS

I was just looking at some nRF52 issues, and I’m noticing that there are at least three dramatically different cores:

1) The Sandeep Mistry core, which I guess was the original Nordic-based core, aimed at Micro:Bit
    This uses the Nordic SoftDevices code (not open source, I guess), and relies on … manual calls to
    the Nordic code to do any background tasks (??)

2) The Adafruit nRF52 core, based on Sandeep’s, and still using soft devices, but adding FreeRTOS to handle the multitasking.

3) The Arduino core, based on mBedOS, and avoiding the closed-source…

So…  Are there any design documents describing how these work internally, what chip-scale peripherals are used (and how), and so on?  This sort of thing is pretty easy to figure out for something like an AVR or SAMD chip, but digging down through abstracted Arduino, followed by an RTOS that is highly abstracted/portable, followed by a less familiar chip is a lot tougher.

For example, the Mistry and Adafruit cores apparently run the OS clock tick off of the RTC peripheral (Using the CM4 SysTick timer wouldn’t permit powering down the CPU during delay.)  But it seems that micros() is just math based on the low-speed RTC clock (1kHz in the case of the Adafruit core), and so it has horrible resolution if you’re actually trying to time things on a sub-millisecond basis.  There are other timers, but it’s obscure how enabling things at the chip level is going to interfere (if at all) with the RTOS and its attempts to run in low-power modes.

BillW/WestfW

Matthew Ford

unread,
Feb 21, 2020, 8:01:43 PM2/21/20
to Developers

As a 4th alternative, I have hacked Sandeep's implementation to provide a true low power implementation

The biggest problem with the Nordic based approach is that Nordic keep changing their softdevice API so updating to later version with say mesh support involves noticeable work.

matthew

kpe...@blinksoft.com

unread,
Feb 21, 2020, 11:00:11 PM2/21/20
to devel...@arduino.cc

Can you tell me if the Nordic MDBT42Q - nRF52832  BLE based chip.

is supported by one of the board packages in Arduino IDE. 

 

Ken

--

You received this message because you are subscribed to the Google Groups "Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to developers+...@arduino.cc.

Timon

unread,
Feb 22, 2020, 8:52:39 AM2/22/20
to devel...@arduino.cc

The Adafruit Core supports nRF52832. The feather uses the same module even afaik.

Reply all
Reply to author
Forward
0 new messages