NRF52840: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
|||
| Line 34: | Line 34: | ||
== Hardware == | == Hardware == | ||
The boards I have are the "promicro" and "supermini". | The boards I have are the "promicro" and "supermini". | ||
These boards look basically identical hardware-wise. | |||
There is a 4-pad connector to program it using SWD (VDD/SWD/SDC/GND). | There is a 4-pad connector to program it using SWD (VDD/SWD/SDC/GND). | ||
This can be used to write the bootloader for example. | This can be used to write the bootloader for example. | ||
The pads have a spacing of 1.5mm. | The pads have a spacing of 1.5mm. | ||
=== promicro === | |||
The INFO_UF2.TXT says (after double-tap reset): | |||
UF2 Bootloader 0.6.0 lib/nrfx (v2.0.0) lib/tinyusb (0.10.1-41-gdf0cda2d) lib/uf2 (remotes/origin/configupdate-9-gadbb8c7) | |||
Model: nice!nano | |||
Board-ID: nRF52840-nicenano | |||
SoftDevice: S140 version 6.1.1 | |||
Date: Jun 19 2021 | |||
=== supermini === | |||
The bag that it came in, says "Nice Nano V2.0" and "Pro Micro". | |||
The INFO_UF2.TXT says: | |||
UF2 Bootloader 0.6.0 lib/nrfx (v2.0.0) lib/tinyusb (0.10.1-41-gdf0cda2d) lib/uf2 (remotes/origin/configupdate-9-gadbb8c7) | |||
Model: nice!nano | |||
Board-ID: nRF52840-nicenano | |||
SoftDevice: S140 version 6.1.1 | |||
Date: Jun 19 2021 | |||
== Software == | == Software == | ||
Revision as of 20:16, 29 November 2025
| Project NRF52840 | |
|---|---|
| File:Nopicture.jpg | |
| Investigating Arduino on inexpensive NRF52840 boards | |
| Status | In progress |
| Contact | bertrik |
| Last Update | 2025-11-29 |
Intro
NRF52840 is potentially a very nice platform:
- low-power. quick wake-up
- inexpensive
- decent amount of flash (1024k), RAM (256k) and CPU cycles (64 MHz)
- support various radio protocols like zigbee, ble, thread, matter, enhanced shockburst
- built-in support for quadrature counting
- looks like it can run arduino too
However the eco-system of inexpensive boards is a complicated landscape:
- AliExpress sellers offer "promicro" and "supermini" board with unclear characteristics
- LEDs are often swapped (blue = hardware charge, red = software led?)
- Various firmware upload interface options (which one to use?):
- Using nrfutil, sends a .zip file containing various parts
- Serial DFU, used by nrfutil?
- Mass storage UF2, possibly activated using the double-reset
- SWD debug interface (requires soldering!)
- Confusing situation regarding bootloaders:
- Most boards seem to come with a modified version of a bootloader meant for another type of board
- Type of bootloader depends on type of firmware you want to run, "ZMK", Arduino using Arduino IDE, Arduino using platformio
- Space for "SoftDevice" needs to be reserved, what is this?
- Risk of accidentally overwriting the bootloader, with UF2 flash offsets sometimes being absolute, sometimes being relative
- Even multiple levels of bootloader? Like the normal one during application and another one using the double-reset method?
Hardware
The boards I have are the "promicro" and "supermini". These boards look basically identical hardware-wise.
There is a 4-pad connector to program it using SWD (VDD/SWD/SDC/GND). This can be used to write the bootloader for example. The pads have a spacing of 1.5mm.
promicro
The INFO_UF2.TXT says (after double-tap reset):
UF2 Bootloader 0.6.0 lib/nrfx (v2.0.0) lib/tinyusb (0.10.1-41-gdf0cda2d) lib/uf2 (remotes/origin/configupdate-9-gadbb8c7) Model: nice!nano Board-ID: nRF52840-nicenano SoftDevice: S140 version 6.1.1 Date: Jun 19 2021
supermini
The bag that it came in, says "Nice Nano V2.0" and "Pro Micro".
The INFO_UF2.TXT says:
UF2 Bootloader 0.6.0 lib/nrfx (v2.0.0) lib/tinyusb (0.10.1-41-gdf0cda2d) lib/uf2 (remotes/origin/configupdate-9-gadbb8c7) Model: nice!nano Board-ID: nRF52840-nicenano SoftDevice: S140 version 6.1.1 Date: Jun 19 2021
Software
Links:
- Nordic technical documentation: https://docs.nordicsemi.com/category/nrf52840-category
- Here is a wiki full of useful information on specific boards: https://github.com/joric/nrfmicro/wiki
- Specifically the supermini https://github.com/joric/nrfmicro/wiki/Alternatives#supermini-nrf52840
- See also https://github.com/pdcook/nRFMicro-Arduino-Core
- https://github.com/ICantMakeThings/Nicenano-NRF52-Supermini-PlatformIO-Support
My promicro board currently has bootloader 0.6.0:
UF2 Bootloader 0.6.0 lib/nrfx (v2.0.0) lib/tinyusb (0.10.1-41-gdf0cda2d) lib/uf2 (remotes/origin/configupdate-9-gadbb8c7) Model: nice!nano Board-ID: nRF52840-nicenano SoftDevice: not found Date: Jun 19 2021
My supermini board came with bootloader 0.6.0:
UF2 Bootloader 0.6.0 lib/nrfx (v2.0.0) lib/tinyusb (0.10.1-41-gdf0cda2d) lib/uf2 (remotes/origin/configupdate-9-gadbb8c7) Model: nice!nano Board-ID: nRF52840-nicenano SoftDevice: not found Date: Jun 19 2021
Getting 'circuitpython' to work:
- Here's a page on making it work on nicenano: https://circuitpython.org/board/nice_nano/
- HOWEVER, it also says "On nRF boards, CircuitPython 8.2.0 and later require UF2 bootloader version 0.6.1 or later. Older bootloaders cannot load the firmware. See Update UF2 Bootloader below.". Guess what bootloader came with my board ... 0.6.0
- They point you to https://github.com/adafruit/Adafruit_nRF52_Bootloader/releases/tag/0.9.2 but now what!?!!!