Skip to content

Commit b7bf627

Browse files
author
Ricky Cheung
committed
Add support for Nordic Semiconductor nRF5 based boards
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 <rcheung844@gmail.com>
1 parent 3a38e3e commit b7bf627

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-1
lines changed

Arduino_Code/uniqueID.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,16 @@ ArduinoUniqueID::ArduinoUniqueID()
183183
id[7] = SIGROW.SERNUM7;
184184
id[8] = SIGROW.SERNUM8;
185185
id[9] = SIGROW.SERNUM9;
186+
#elif defined(NRF51_SERIES) || defined(NRF52_SERIES) || defined(NRF53_SERIES)
187+
NRF_FICR_Type ficr = *NRF_FICR;
188+
id[0] = ficr.DEVICEID[0] >> 24;
189+
id[1] = ficr.DEVICEID[0] >> 16;
190+
id[2] = ficr.DEVICEID[0] >> 8;
191+
id[3] = ficr.DEVICEID[0];
192+
id[4] = ficr.DEVICEID[1] >> 24;
193+
id[5] = ficr.DEVICEID[1] >> 16;
194+
id[6] = ficr.DEVICEID[1] >> 8;
195+
id[7] = ficr.DEVICEID[1];
186196
#endif
187197
}
188198

Arduino_Code/uniqueID.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,9 @@
2222
#elif defined(ARDUINO_ARCH_MBED_RP2040) || defined(ARDUINO_ARCH_RP2040)
2323
//#include <pico/unique_id.h>
2424
#elif defined(ARDUINO_ARCH_MEGAAVR)
25+
#elif defined(NRF51_SERIES) || defined(NRF52_SERIES) || defined(NRF53_SERIES)
2526
#else
26-
#error "ArduinoUniqueID only works on AVR, SAM, SAMD, STM32, Teensy, megaAVR and ESP Architecture"
27+
#error "ArduinoUniqueID only works on AVR, SAM, SAMD, STM32, Teensy, megaAVR, nRF5 and ESP Architecture"
2728
#endif
2829

2930
#if defined(ARDUINO_ARCH_AVR)
@@ -63,6 +64,9 @@
6364
#elif defined(ARDUINO_ARCH_MEGAAVR)
6465
#define UniqueIDsize 10
6566
#define UniqueIDbuffer 10
67+
#elif defined(NRF51_SERIES) || defined(NRF52_SERIES) || defined(NRF53_SERIES)
68+
#define UniqueIDsize 8
69+
#define UniqueIDbuffer 8
6670
#endif
6771

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

0 commit comments

Comments
 (0)