Skip to content

Commit

Permalink
Add support for Nordic Semiconductor nRF5 based boards
Browse files Browse the repository at this point in the history
This patch is in-sync with the patch at ricaun/ArduinoUniqueID#30,
which adds support for getting unique ID for Nordic Semiconductor
nRF5 based boards, including the BBC Micro:bit.

Signed-off-by: Ricky Cheung <[email protected]>
  • Loading branch information
Ricky Cheung committed Jan 10, 2025
1 parent 3a38e3e commit b7bf627
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 1 deletion.
10 changes: 10 additions & 0 deletions Arduino_Code/uniqueID.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -183,6 +183,16 @@ ArduinoUniqueID::ArduinoUniqueID()
id[7] = SIGROW.SERNUM7;
id[8] = SIGROW.SERNUM8;
id[9] = SIGROW.SERNUM9;
#elif defined(NRF51_SERIES) || defined(NRF52_SERIES) || defined(NRF53_SERIES)
NRF_FICR_Type ficr = *NRF_FICR;
id[0] = ficr.DEVICEID[0] >> 24;
id[1] = ficr.DEVICEID[0] >> 16;
id[2] = ficr.DEVICEID[0] >> 8;
id[3] = ficr.DEVICEID[0];
id[4] = ficr.DEVICEID[1] >> 24;
id[5] = ficr.DEVICEID[1] >> 16;
id[6] = ficr.DEVICEID[1] >> 8;
id[7] = ficr.DEVICEID[1];
#endif
}

Expand Down
6 changes: 5 additions & 1 deletion Arduino_Code/uniqueID.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,9 @@
#elif defined(ARDUINO_ARCH_MBED_RP2040) || defined(ARDUINO_ARCH_RP2040)
//#include <pico/unique_id.h>
#elif defined(ARDUINO_ARCH_MEGAAVR)
#elif defined(NRF51_SERIES) || defined(NRF52_SERIES) || defined(NRF53_SERIES)
#else
#error "ArduinoUniqueID only works on AVR, SAM, SAMD, STM32, Teensy, megaAVR and ESP Architecture"
#error "ArduinoUniqueID only works on AVR, SAM, SAMD, STM32, Teensy, megaAVR, nRF5 and ESP Architecture"
#endif

#if defined(ARDUINO_ARCH_AVR)
Expand Down Expand Up @@ -63,6 +64,9 @@
#elif defined(ARDUINO_ARCH_MEGAAVR)
#define UniqueIDsize 10
#define UniqueIDbuffer 10
#elif defined(NRF51_SERIES) || defined(NRF52_SERIES) || defined(NRF53_SERIES)
#define UniqueIDsize 8
#define UniqueIDbuffer 8
#endif

#define UniqueID8 (_UniqueID.id + UniqueIDbuffer - 8)
Expand Down

0 comments on commit b7bf627

Please sign in to comment.