NRF52840: Difference between revisions

From RevSpace
Jump to navigation Jump to search
No edit summary
No edit summary
Line 15: Line 15:
* built-in support for quadrature counting
* built-in support for quadrature counting
* looks like it can run arduino too
* looks like it can run arduino too
== Hardware ==
The boards I have are the "promicro" and "supermini".


Links:
Links:

Revision as of 19:49, 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

Hardware

The boards I have are the "promicro" and "supermini".

Links:

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

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?

Getting 'circuitpython' to work: