Everything nRF52840
-
Here is the datasheet of the actual Bluetooth module on the Arduino 33 BLE (PDF):
https://www.u-blox.com/sites/default/files/NINA-B3_DataSheet_(UBX-17052099).pdfHere is a list of Bluetooth profiles:
https://en.wikipedia.org/wiki/List_of_Bluetooth_profilesMesh networking profile details (PDF):
https://www.bluetooth.org/docman/handlers/downloaddoc.ashx?doc_id=429634I'm trying to figure out:
- Can these Arduino's even present themselves as a specific Bluetooth profile? E.g. as a bicycle cadence sensor, or a smart lamp, etc.
- Can these Arduino's be programmed via Bluetooth?
the Mesh profile would be interesting:
Mesh Profile Specification[10] allows for many-to-many communication over Bluetooth radio. It supports data encryption, message authentication and is meant for building efficient smart lighting systems and IoT networks. Application layer for Bluetooth Mesh has been defined in a separate Mesh Model Specification.[11] As of release 1.0 lighting, sensors, time, scenes and generic devices has been defined.The Bluetooth module documentation says it has hardware support for mesh networking. Nothing else though.
The Bluetooth mesh networking spec only seems to support very basic things like lamps though. No advanced things like thermostats.
Other interesting things:
According to this blogpost, Arduino exposes the full MBED options.
Apparently you double-tap the reset button to be able to access the bootloader. Nothing about wireless upload of sketches via bluetooth though.
Here are some examples from Arduino on what you can make:
https://github.com/arduino-libraries/ArduinoBLE/tree/master/examples/Peripheral -
Here is the datasheet of the actual Bluetooth module on the Arduino 33 BLE (PDF):
https://www.u-blox.com/sites/default/files/NINA-B3_DataSheet_(UBX-17052099).pdfHere is a list of Bluetooth profiles:
https://en.wikipedia.org/wiki/List_of_Bluetooth_profilesMesh networking profile details (PDF):
https://www.bluetooth.org/docman/handlers/downloaddoc.ashx?doc_id=429634I'm trying to figure out:
- Can these Arduino's even present themselves as a specific Bluetooth profile? E.g. as a bicycle cadence sensor, or a smart lamp, etc.
- Can these Arduino's be programmed via Bluetooth?
the Mesh profile would be interesting:
Mesh Profile Specification[10] allows for many-to-many communication over Bluetooth radio. It supports data encryption, message authentication and is meant for building efficient smart lighting systems and IoT networks. Application layer for Bluetooth Mesh has been defined in a separate Mesh Model Specification.[11] As of release 1.0 lighting, sensors, time, scenes and generic devices has been defined.The Bluetooth module documentation says it has hardware support for mesh networking. Nothing else though.
The Bluetooth mesh networking spec only seems to support very basic things like lamps though. No advanced things like thermostats.
Other interesting things:
According to this blogpost, Arduino exposes the full MBED options.
Apparently you double-tap the reset button to be able to access the bootloader. Nothing about wireless upload of sketches via bluetooth though.
Here are some examples from Arduino on what you can make:
https://github.com/arduino-libraries/ArduinoBLE/tree/master/examples/Peripheral@alowhum said in Everything nRF52840:
Can these Arduino's even present themselves as a specific Bluetooth profile? E.g. as a bicycle cadence sensor, or a smart lamp, etc.
Bluetooth profiles are nothing more than just a set of rules how to structure software ofluetooth profile means that your device provides attributes to read/write described in that specific profile. You can present your device as specific prfoile but not implement its requirements, but in that case other devices will not work properly with yours. So the answer is yes - its just the mater of the software.
-
@rozpruwacz Indeed. This example sketch of a bluetooth battery monitor looks pretty cool:
Lots of new Arduino functions to manage services are described here:
https://www.arduino.cc/en/Reference/ArduinoBLEBLEbeginAnd here's a list of possible characteristics:
https://www.bluetooth.com/specifications/gatt/characteristics/
E.g. Gust Factor, Heart Rate Max, Last Name, Latitude, etcLooking at that list I don't see a lot of overlap with MySensors :-(
Also, bluetooth mesh does not seem to support BLE long range mode. The mesh aspect is technically outside of the official bluetooth spec.
-
@rozpruwacz Indeed. This example sketch of a bluetooth battery monitor looks pretty cool:
Lots of new Arduino functions to manage services are described here:
https://www.arduino.cc/en/Reference/ArduinoBLEBLEbeginAnd here's a list of possible characteristics:
https://www.bluetooth.com/specifications/gatt/characteristics/
E.g. Gust Factor, Heart Rate Max, Last Name, Latitude, etcLooking at that list I don't see a lot of overlap with MySensors :-(
Also, bluetooth mesh does not seem to support BLE long range mode. The mesh aspect is technically outside of the official bluetooth spec.
@alowhum With the arrival of the Arduino nano BLE, I'm hoping that some easy-to-use Arduino BLE libraries will become available. In the meantime, Nordic's Bluetooth stack is certainly available and free to use. It didn't look especially easy the last time I looked at it, but that was quite a while ago. Maybe by now either Nordic or someone else has simplified it? For mainstream uses, it certainly should be easy to use without having to know every little detail about the Bluetooth standard. And since Arduino doesn't seem interested in the proprietary modes, I should think there would be pressure for developing such Bluetooth libraries. After all, it's very name is "nano BLE". Therefore, it's reasonable for people who buy it to expect it to be Bluetooth capable. :wink:
-
@alowhum With the arrival of the Arduino nano BLE, I'm hoping that some easy-to-use Arduino BLE libraries will become available. In the meantime, Nordic's Bluetooth stack is certainly available and free to use. It didn't look especially easy the last time I looked at it, but that was quite a while ago. Maybe by now either Nordic or someone else has simplified it? For mainstream uses, it certainly should be easy to use without having to know every little detail about the Bluetooth standard. And since Arduino doesn't seem interested in the proprietary modes, I should think there would be pressure for developing such Bluetooth libraries. After all, it's very name is "nano BLE". Therefore, it's reasonable for people who buy it to expect it to be Bluetooth capable. :wink:
At the very least, I would expect Bluetooth to be a useful complement to mysensors. For example, outputting diagnostic println's to a simple Bluetooth terminal app on your tablet or cell phone. And if it can do even just that minimal amount, it could be leveraged to do a lot more too.
-
There seems to be https://github.com/sandeepmistry/arduino-BLEPeripheral library. I tried it some time ago, it was working pretty straightforward. I mean it's not ideal, obviously, but it works for a start.
-
anybody seen this new Nordic IoT MCU:
https://www.nordicsemi.com/Products/Low-power-short-range-wireless/nRF5340So far only a DK board for 49$ is available. Has BLE 5.1 (incl. long range).
I guess it will take some time till it is supported by Arduiono, Platformio etc.I'm still striggling with the nRF52840 and the low power sleep. So far I'm far away from the 1.5 to 5uA in sleep mode. Maybe someone has a good example for a sleep, internal timer wake-up.
The mysensors project I'm using has 1,5mA in sleep and 15mA during sensor read and send. That is not usable for battery mode. -
anybody seen this new Nordic IoT MCU:
https://www.nordicsemi.com/Products/Low-power-short-range-wireless/nRF5340So far only a DK board for 49$ is available. Has BLE 5.1 (incl. long range).
I guess it will take some time till it is supported by Arduiono, Platformio etc.I'm still striggling with the nRF52840 and the low power sleep. So far I'm far away from the 1.5 to 5uA in sleep mode. Maybe someone has a good example for a sleep, internal timer wake-up.
The mysensors project I'm using has 1,5mA in sleep and 15mA during sensor read and send. That is not usable for battery mode.@heinzv try powering off all peripherals that was used before sleep.
The best source of information concerning nrf5 chips is Nordic's devzone. For example look at this thread: https://devzone.nordicsemi.com/f/nordic-q-a/45355/how-optimize-high-current-consumption-in-sleep-mode-using-nrf52840.
As far as I'm concerned nrf52 library for Arduino contains Nordic SDK, so every function mentioned in Nordic's tutorials and examples should work with Arduino IDE. -
@heinzv try powering off all peripherals that was used before sleep.
The best source of information concerning nrf5 chips is Nordic's devzone. For example look at this thread: https://devzone.nordicsemi.com/f/nordic-q-a/45355/how-optimize-high-current-consumption-in-sleep-mode-using-nrf52840.
As far as I'm concerned nrf52 library for Arduino contains Nordic SDK, so every function mentioned in Nordic's tutorials and examples should work with Arduino IDE.@monte thanks for your hints. I have actually no peripherals attached during my test. The only external peripheral is a Sensirion sensor (not attched during the power save test) has an auto switch off, but no explicit and it gets down to nano amps.(at least far less than 1uA).
I did a lot of research in the Nordic DevZone but was not successfull. It looks like that the mySensors sleep functions for the nRF52 family does not work as I have expected (I'm using the MyBoardNRF5.h/cpp which includes some kind of Nordic power save features). It might have something doto with the UART switchoff which might not works or ...
I'll also try other nRF52840 moduls to ensure it is not because of one product. I'm using a bare nRF52840 from RFstar which has no LED or any other consumer on it.
https://www.aliexpress.com/item/32921970101.html?spm=a2g0o.productlist.0.0.33f77b08ivGnJC&algo_pvid=834cd241-fead-40dd-a423-762eeaad1e6b&algo_expid=834cd241-fead-40dd-a423-762eeaad1e6b-29&btsid=7de062ad-ecfb-4619-bea6-f9bc99c99996&ws_ab_test=searchweb0_0,searchweb201602_8,searchweb201603_52 -
anybody seen this new Nordic IoT MCU:
https://www.nordicsemi.com/Products/Low-power-short-range-wireless/nRF5340So far only a DK board for 49$ is available. Has BLE 5.1 (incl. long range).
I guess it will take some time till it is supported by Arduiono, Platformio etc.I'm still striggling with the nRF52840 and the low power sleep. So far I'm far away from the 1.5 to 5uA in sleep mode. Maybe someone has a good example for a sleep, internal timer wake-up.
The mysensors project I'm using has 1,5mA in sleep and 15mA during sensor read and send. That is not usable for battery mode.@heinzv said in Everything nRF52840:
anybody seen this new Nordic IoT MCU:
https://www.nordicsemi.com/Products/Low-power-short-range-wireless/nRF5340Looks like NRF52832 is replaced with nrf52833 also, 128K RAM and same radio than nrf52840 allowing the same protocols (zigbee/thread), the same max input voltage (5.5V) and adding bluetooth 5.1. Interesting if it can replace nrf52832 in existing modules.
-
@monte thanks for your hints. I have actually no peripherals attached during my test. The only external peripheral is a Sensirion sensor (not attched during the power save test) has an auto switch off, but no explicit and it gets down to nano amps.(at least far less than 1uA).
I did a lot of research in the Nordic DevZone but was not successfull. It looks like that the mySensors sleep functions for the nRF52 family does not work as I have expected (I'm using the MyBoardNRF5.h/cpp which includes some kind of Nordic power save features). It might have something doto with the UART switchoff which might not works or ...
I'll also try other nRF52840 moduls to ensure it is not because of one product. I'm using a bare nRF52840 from RFstar which has no LED or any other consumer on it.
https://www.aliexpress.com/item/32921970101.html?spm=a2g0o.productlist.0.0.33f77b08ivGnJC&algo_pvid=834cd241-fead-40dd-a423-762eeaad1e6b&algo_expid=834cd241-fead-40dd-a423-762eeaad1e6b-29&btsid=7de062ad-ecfb-4619-bea6-f9bc99c99996&ws_ab_test=searchweb0_0,searchweb201602_8,searchweb201603_52@heinzv by peripherals I mean UART, SPI, I2C and other modules, that can be switched off in NRF52840. Going to sleep mode doesn't disable them, they will still drain current. And as you mentioned by yourself Mysensors sleep function can't be trusted either for doing this for you. I think the best practice will be writing your own sleep function using Nordic's macroses. This way you can be sure everything that needs to be turned off is turned off.
Try reading this thread: https://devzone.nordicsemi.com/f/nordic-q-a/1657/how-to-minimize-current-consumption-for-ble-application-on-nrf51822. -
Andreas Spiess recently gave his review on on the two new Arduino "nano" 33 BLE offerings (which use the nRF2840):
https://www.youtube.com/watch?v=8GLXSebQVCEHe seems cautiously optimistic about the BLE 33s. From his perspective, now that the hardware is being sold, the onus is on Arduino to make the Arduino hardware libraries run on it in a transparent way, just like all the other Arduino's that we're all familiar with. Hopefully that does happen. In the meantime, and even if it doesn't, there are the mBed libraries.
The only reasons he gives for preferring the ESP32 over the Arduino BLE 33's are the ESP32's faster speed, larger memory, and the ability to do OTA firmware updates. As for where the nRF52840 scores big over the ESP32, the things he mentioned were that it consumes much less power and it can be a USB host.
I'm hoping that BLE 33 OTA firmware updates will be solved by somebody soon and made available as part of the Arduino IDE, just as it eventually was for the ESP8266. I mean Nordic already has a highly secure FOTA, so it just needs to be exposed in a way that people can easily use it through the Arduino IDE. If that never happens, then I'd wager the lack of it will kill the BLE 33. Likewise, if it does happen, it may very well propel BLE 33's success.
Interestingly, Andreas points to a $5 nRF52 Ebyte module as a cost equalizer, so he doesn't seem to see cost as a discriminator, especially not in the long term.
By the way, and unrelated to the above, there is now yet another radio standard vying for IOT adoption. This one, made by Radiocraft: https://www.digikey.com/en/articles/techzone/2019/sep/how-to-quickly-start-low-power-wireless-iot-sensing The energy performance specs sound maybe better than LoRa or SigFox, so who knows? It can do OTA firmware updates by the way. With the marketplace becoming more crowded, FOTA is now an important must-have for being taken seriously. Why do I say that? Any vendor who has a FOTA is devoting at least one entire slide to it in their marketing presentations.
-
@NeverDie Thanks for the summary :-)
Andreas Spiess also never takes things like privacy, and to a lesser degree security, into consideration when he talks about things. For that reason I boycott anything that uses IoT and Wifi in the same sentence.
-
I found a good place to do range testing.... too bad I didn't bring the gear!

-
The nRF53840 PDK announced: https://www.mouser.com/pdfDocs/nRF5340PDKPB.pdf
However, so far I haven't seen even a preliminary datasheet for the nRF53840. The closest I've seen is what's in the above PDF. Based on that, it will be a dual processor arrangement, with the faster processor having 512K RAM. It describes the network processor as "ultra low power," which is also how it describes the 2.4ghz radio. So, it sounds as though the theme will mainly be utilizing less power than the nRF52840.
-
Found this repo: https://github.com/xriss/nrfx. It has standalone nrf peripheral drivers extracted from an SDK so they can be used in any project without using actual Nordic SDK.
Now with release of a PineTime (opensource smart watch based on nrf52832) we can expect many wonderful opensource projects with our beloved MCU :) -
Found this repo: https://github.com/xriss/nrfx. It has standalone nrf peripheral drivers extracted from an SDK so they can be used in any project without using actual Nordic SDK.
Now with release of a PineTime (opensource smart watch based on nrf52832) we can expect many wonderful opensource projects with our beloved MCU :) -
@monte Is PineTime the best of the currently available nRF52 watch options? If so, since it's offered at $24.99, I think I may want to order one.
@monte said in Everything nRF52840:
Found this repo: https://github.com/xriss/nrfx
Gone already ...
@NeverDie said in Everything nRF52840:
@monte Is PineTime the best of the currently available nRF52 watch options? If so, since it's offered at $24.99, I think I may want to order one.
A very interesting project, too bad they are using NRF52832 and not NRF52840, the max SPI speed on ...32 is too low (8MHz) and I'm afraid the LCD refresh will be annoyingly slow :(
-
@monte said in Everything nRF52840:
Found this repo: https://github.com/xriss/nrfx
Gone already ...
@NeverDie said in Everything nRF52840:
@monte Is PineTime the best of the currently available nRF52 watch options? If so, since it's offered at $24.99, I think I may want to order one.
A very interesting project, too bad they are using NRF52832 and not NRF52840, the max SPI speed on ...32 is too low (8MHz) and I'm afraid the LCD refresh will be annoyingly slow :(
