diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml
deleted file mode 100644
index 66126073..00000000
--- a/.github/FUNDING.yml
+++ /dev/null
@@ -1,3 +0,0 @@
-# These are supported funding model platforms
-
-github: [sandeepmistry]
diff --git a/.github/workflows/compile.yml b/.github/workflows/compile.yml
index 9efea657..c1a19b1c 100644
--- a/.github/workflows/compile.yml
+++ b/.github/workflows/compile.yml
@@ -22,6 +22,7 @@ jobs:
- Generic_nRF51822:chip=xxac
- Generic_nRF52832
- Generic_nRF52833
+ - nRF52840DK
- OSHChip
- STCT_nRF52_minidev
- PCA1000X:board_variant=pca10000
@@ -37,6 +38,7 @@ jobs:
- hackaBLE_v2
- Sinobit
- DWM1001-DEV
+ - DWM3001-CDK
- SeeedArchLink
- Beacon_PCA20006
- Waveshare_BLE400
@@ -67,11 +69,11 @@ jobs:
enable-deltas-report: true
platforms: |
# First we have to install this core so that the tooling is installed
- - name: "sandeepmistry:nRF5"
- source-url: "https://sandeepmistry.github.io/arduino-nRF5/package_nRF5_boards_index.json"
+ - name: "RMESS:nRF5"
+ source-url: "https://irit-rmess.github.io/arduino-nRF5/package_RMESS_nRF5boards_index.json"
version: latest
# Now, this will overwrite the core source to use the local version
- - name: "sandeepmistry:nRF5"
+ - name: "RMESS:nRF5"
source-path: .
- fqbn: "sandeepmistry:nRF5:${{ matrix.variant }}"
+ fqbn: "RMESS:nRF5:${{ matrix.variant }}"
sketch-paths: blinky
diff --git a/LICENSE b/LICENSE
index 776cdc00..2366eebd 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,5 +1,6 @@
Copyright (c) 2015 Arduino LLC. All right reserved.
Copyright (c) 2016 Sandeep Mistry All right reserved.
+Copyright (c) 2023 IRIT RMESS All right reserved.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/README.md b/README.md
index 0595d25f..d1adf600 100644
--- a/README.md
+++ b/README.md
@@ -1,82 +1,9 @@
# Arduino Core for Nordic Semiconductor nRF5 based boards
-[](https://github.com/sandeepmistry/arduino-nRF5/actions/workflows/compile.yml) [](#backers)
-[](#sponsors)
-
-
Program your [Nordic Semiconductor](https://www.nordicsemi.com) nRF51 or nRF52 board using the [Arduino](https://www.arduino.cc) IDE.
Does not require a custom bootloader on the device.
-## Backers
-
-Support us with a monthly donation and help us continue our activities. [[Become a backer](https://opencollective.com/arduino-nRF5#backer)]
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-## Sponsors
-
-Become a sponsor and get your logo on our README on Github with a link to your site. [[Become a sponsor](https://opencollective.com/arduino-nRF5#sponsor)]
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
## Supported boards
diff --git a/boards.txt b/boards.txt
index dbd04419..96a0de76 100644
--- a/boards.txt
+++ b/boards.txt
@@ -1,5 +1,6 @@
# Copyright (c) 2014-2015 Arduino LLC. All right reserved.
# Copyright (c) 2016 Sandeep Mistry All right reserved.
+# Copyright (c) 2023 IRIT RMESS All right reserved.
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
@@ -26,11 +27,11 @@ menu.board_variant=Board Variant
Generic_nRF52833.name=Generic nRF52833
-Generic_nRF52833.upload.tool=sandeepmistry:openocd
+Generic_nRF52833.upload.tool=RMESS:openocd
Generic_nRF52833.upload.target=nrf52
Generic_nRF52833.upload.maximum_size=524288
-Generic_nRF52833.bootloader.tool=sandeepmistry:openocd
+Generic_nRF52833.bootloader.tool=RMESS:openocd
Generic_nRF52833.build.mcu=cortex-m4
Generic_nRF52833.build.f_cpu=64000000
@@ -59,7 +60,7 @@ BBCmicrobitV2.name=BBC micro:bit V2
BBCmicrobitV2.vid.0=0x0d28
BBCmicrobitV2.pid.0=0x0204
-BBCmicrobitV2.upload.tool=sandeepmistry:openocd
+BBCmicrobitV2.upload.tool=RMESS:openocd
BBCmicrobitV2.upload.protocol=cmsis-dap
BBCmicrobitV2.upload.target=nrf52
BBCmicrobitV2.upload.maximum_size=524288
@@ -68,7 +69,7 @@ BBCmicrobitV2.upload.use_1200bps_touch=false
BBCmicrobitV2.upload.wait_for_upload_port=false
BBCmicrobitV2.upload.native_usb=false
-BBCmicrobitV2.bootloader.tool=sandeepmistry:openocd
+BBCmicrobitV2.bootloader.tool=RMESS:openocd
BBCmicrobitV2.build.mcu=cortex-m4
BBCmicrobitV2.build.f_cpu=64000000
@@ -92,11 +93,11 @@ BBCmicrobitV2.menu.softdevice.none.softdeviceversion=
Generic_nRF52832.name=Generic nRF52
-Generic_nRF52832.upload.tool=sandeepmistry:openocd
+Generic_nRF52832.upload.tool=RMESS:openocd
Generic_nRF52832.upload.target=nrf52
Generic_nRF52832.upload.maximum_size=524288
-Generic_nRF52832.bootloader.tool=sandeepmistry:openocd
+Generic_nRF52832.bootloader.tool=RMESS:openocd
Generic_nRF52832.build.mcu=cortex-m4
Generic_nRF52832.build.f_cpu=16000000
@@ -130,11 +131,11 @@ Generic_nRF52832.menu.lfclk.lfsynt.build.lfclk_flags=-DUSE_LFSYNT
bluey.name=Electronut labs bluey
-bluey.upload.tool=sandeepmistry:openocd
+bluey.upload.tool=RMESS:openocd
bluey.upload.target=nrf52
bluey.upload.maximum_size=524288
-bluey.bootloader.tool=sandeepmistry:openocd
+bluey.bootloader.tool=RMESS:openocd
bluey.build.mcu=cortex-m4
bluey.build.f_cpu=16000000
@@ -168,11 +169,11 @@ bluey.menu.lfclk.lfsynt.build.lfclk_flags=-DUSE_LFSYNT
hackaBLE.name=Electronut labs hackaBLE
-hackaBLE.upload.tool=sandeepmistry:openocd
+hackaBLE.upload.tool=RMESS:openocd
hackaBLE.upload.target=nrf52
hackaBLE.upload.maximum_size=524288
-hackaBLE.bootloader.tool=sandeepmistry:openocd
+hackaBLE.bootloader.tool=RMESS:openocd
hackaBLE.build.mcu=cortex-m4
hackaBLE.build.f_cpu=16000000
@@ -205,11 +206,11 @@ hackaBLE.menu.lfclk.lfsynt.build.lfclk_flags=-DUSE_LFSYNT
hackaBLE_v2.name=Electronut labs hackaBLE_v2
-hackaBLE_v2.upload.tool=sandeepmistry:openocd
+hackaBLE_v2.upload.tool=RMESS:openocd
hackaBLE_v2.upload.target=nrf52
hackaBLE_v2.upload.maximum_size=524288
-hackaBLE_v2.bootloader.tool=sandeepmistry:openocd
+hackaBLE_v2.bootloader.tool=RMESS:openocd
hackaBLE_v2.build.mcu=cortex-m4
hackaBLE_v2.build.f_cpu=16000000
@@ -244,7 +245,7 @@ Blend2.name=RedBear Blend 2
Blend2.vid.0=0x0204
Blend2.pid.0=0x0d28
-Blend2.upload.tool=sandeepmistry:openocd
+Blend2.upload.tool=RMESS:openocd
Blend2.upload.protocol=cmsis-dap
Blend2.upload.target=nrf52
Blend2.upload.maximum_size=524288
@@ -253,7 +254,7 @@ Blend2.upload.use_1200bps_touch=false
Blend2.upload.wait_for_upload_port=false
Blend2.upload.native_usb=false
-Blend2.bootloader.tool=sandeepmistry:openocd
+Blend2.bootloader.tool=RMESS:openocd
Blend2.build.mcu=cortex-m4
Blend2.build.f_cpu=16000000
@@ -284,7 +285,7 @@ BLENano2.name=RedBear BLE Nano 2
BLENano2.vid.0=0x0204
BLENano2.pid.0=0x0d28
-BLENano2.upload.tool=sandeepmistry:openocd
+BLENano2.upload.tool=RMESS:openocd
BLENano2.upload.protocol=cmsis-dap
BLENano2.upload.target=nrf52
BLENano2.upload.maximum_size=524288
@@ -293,7 +294,7 @@ BLENano2.upload.use_1200bps_touch=false
BLENano2.upload.wait_for_upload_port=false
BLENano2.upload.native_usb=false
-BLENano2.bootloader.tool=sandeepmistry:openocd
+BLENano2.bootloader.tool=RMESS:openocd
BLENano2.build.mcu=cortex-m4
BLENano2.build.f_cpu=16000000
@@ -324,7 +325,7 @@ nRF52DK.name=Nordic Semiconductor nRF52 DK
nRF52DK.vid.0=0x1366
nRF52DK.pid.0=0x1015
-nRF52DK.upload.tool=sandeepmistry:openocd
+nRF52DK.upload.tool=RMESS:openocd
nRF52DK.upload.protocol=jlink
nRF52DK.upload.target=nrf52
nRF52DK.upload.maximum_size=524288
@@ -333,7 +334,7 @@ nRF52DK.upload.use_1200bps_touch=false
nRF52DK.upload.wait_for_upload_port=false
nRF52DK.upload.native_usb=false
-nRF52DK.bootloader.tool=sandeepmistry:openocd
+nRF52DK.bootloader.tool=RMESS:openocd
nRF52DK.build.mcu=cortex-m4
nRF52DK.build.f_cpu=16000000
@@ -361,11 +362,11 @@ nRF52DK.menu.softdevice.s132.build.ldscript=armgcc_s132_nrf52832_xxaa.ld
STCT_nRF52_minidev.name=Taida Century nRF52 mini board
-STCT_nRF52_minidev.upload.tool=sandeepmistry:openocd
+STCT_nRF52_minidev.upload.tool=RMESS:openocd
STCT_nRF52_minidev.upload.target=nrf52
STCT_nRF52_minidev.upload.maximum_size=524288
-STCT_nRF52_minidev.bootloader.tool=sandeepmistry:openocd
+STCT_nRF52_minidev.bootloader.tool=RMESS:openocd
STCT_nRF52_minidev.build.mcu=cortex-m4
STCT_nRF52_minidev.build.f_cpu=16000000
@@ -396,11 +397,11 @@ STCT_nRF52_minidev.menu.softdevice.s132.build.ldscript=armgcc_s132_nrf52832_xxaa
Generic_nRF51822.name=Generic nRF51
-Generic_nRF51822.upload.tool=sandeepmistry:openocd
+Generic_nRF51822.upload.tool=RMESS:openocd
Generic_nRF51822.upload.target=nrf51
Generic_nRF51822.upload.maximum_size=262144
-Generic_nRF51822.bootloader.tool=sandeepmistry:openocd
+Generic_nRF51822.bootloader.tool=RMESS:openocd
Generic_nRF51822.build.mcu=cortex-m0
Generic_nRF51822.build.f_cpu=16000000
@@ -447,7 +448,7 @@ BBCmicrobit.name=BBC micro:bit
BBCmicrobit.vid.0=0x0d28
BBCmicrobit.pid.0=0x0204
-BBCmicrobit.upload.tool=sandeepmistry:openocd
+BBCmicrobit.upload.tool=RMESS:openocd
BBCmicrobit.upload.protocol=cmsis-dap
BBCmicrobit.upload.target=nrf51
BBCmicrobit.upload.maximum_size=262144
@@ -456,7 +457,7 @@ BBCmicrobit.upload.use_1200bps_touch=false
BBCmicrobit.upload.wait_for_upload_port=false
BBCmicrobit.upload.native_usb=false
-BBCmicrobit.bootloader.tool=sandeepmistry:openocd
+BBCmicrobit.bootloader.tool=RMESS:openocd
BBCmicrobit.build.mcu=cortex-m0
BBCmicrobit.build.f_cpu=16000000
@@ -493,7 +494,7 @@ CalliopeMini.name=Calliope mini
CalliopeMini.vid.0=0x0d28
CalliopeMini.pid.0=0x0204
-CalliopeMini.upload.tool=sandeepmistry:openocd
+CalliopeMini.upload.tool=RMESS:openocd
CalliopeMini.upload.protocol=cmsis-dap
CalliopeMini.upload.target=nrf51
CalliopeMini.upload.maximum_size=262144
@@ -502,7 +503,7 @@ CalliopeMini.upload.use_1200bps_touch=false
CalliopeMini.upload.wait_for_upload_port=false
CalliopeMini.upload.native_usb=false
-CalliopeMini.bootloader.tool=sandeepmistry:openocd
+CalliopeMini.bootloader.tool=RMESS:openocd
CalliopeMini.build.mcu=cortex-m0
CalliopeMini.build.f_cpu=16000000
@@ -539,7 +540,7 @@ CalliopeminiV3.name=Calliope mini V3
CalliopeminiV3.vid.0=0x0d28
CalliopeminiV3.pid.0=0x0204
-CalliopeminiV3.upload.tool=sandeepmistry:openocd
+CalliopeminiV3.upload.tool=RMESS:openocd
CalliopeminiV3.upload.protocol=cmsis-dap
CalliopeminiV3.upload.target=nrf52
CalliopeminiV3.upload.maximum_size=524288
@@ -548,7 +549,7 @@ CalliopeminiV3.upload.use_1200bps_touch=false
CalliopeminiV3.upload.wait_for_upload_port=false
CalliopeminiV3.upload.native_usb=false
-CalliopeminiV3.bootloader.tool=sandeepmistry:openocd
+CalliopeminiV3.bootloader.tool=RMESS:openocd
CalliopeminiV3.build.mcu=cortex-m4
CalliopeminiV3.build.f_cpu=64000000
@@ -568,11 +569,11 @@ CalliopeminiV3.menu.softdevice.none.softdeviceversion=
BluzDK.name=Bluz DK
-BluzDK.upload.tool=sandeepmistry:openocd
+BluzDK.upload.tool=RMESS:openocd
BluzDK.upload.target=nrf51
BluzDK.upload.maximum_size=262144
-BluzDK.bootloader.tool=sandeepmistry:openocd
+BluzDK.bootloader.tool=RMESS:openocd
BluzDK.build.mcu=cortex-m0
BluzDK.build.f_cpu=16000000
@@ -607,11 +608,11 @@ BluzDK.menu.softdevice.s130.build.ldscript=armgcc_s130_nrf51822_xxac.ld
PCA1000X.name=Nordic nRF51X22 Development Kit(PCA1000X)
-PCA1000X.upload.tool=sandeepmistry:openocd
+PCA1000X.upload.tool=RMESS:openocd
PCA1000X.upload.target=nrf51
PCA1000X.upload.maximum_size=262144
-PCA1000X.bootloader.tool=sandeepmistry:openocd
+PCA1000X.bootloader.tool=RMESS:openocd
PCA1000X.build.mcu=cortex-m0
PCA1000X.build.f_cpu=16000000
@@ -625,7 +626,7 @@ PCA1000X.build.ldscript=nrf51_xxaa.ld
PCA1000X.build.lfclk_flags=-DUSE_LFXO
-PCA1000X.upload.tool=sandeepmistry:openocd
+PCA1000X.upload.tool=RMESS:openocd
PCA1000X.upload.protocol=jlink
PCA1000X.upload.target=nrf51
PCA1000X.upload.maximum_size=262144
@@ -666,13 +667,13 @@ PCA1000X.menu.lfclk.lfsynt.build.lfclk_flags=-DUSE_LFSYNT
nRF51Dongle.name= Nordic nRF51 Dongle (PCA10031)
-nRF51Dongle.upload.tool=sandeepmistry:openocd
+nRF51Dongle.upload.tool=RMESS:openocd
nRF51Dongle.upload.protocol=cmsis-dap
nRF51Dongle.upload.target=nrf51
nRF51Dongle.upload.maximum_size=262144
nRF51Dongle.upload.setup_command=transport select swd;
-nRF51Dongle.bootloader.tool=sandeepmistry:openocd
+nRF51Dongle.bootloader.tool=RMESS:openocd
nRF51Dongle.build.mcu=cortex-m0
nRF51Dongle.build.f_cpu=16000000
@@ -709,11 +710,11 @@ nRF51Dongle.menu.softdevice.s130.build.ldscript=armgcc_s130_nrf51822_{build.chip
Beacon_PCA20006.name=Nordic Beacon Kit (PCA20006)
-Beacon_PCA20006.upload.tool=sandeepmistry:openocd
+Beacon_PCA20006.upload.tool=RMESS:openocd
Beacon_PCA20006.upload.target=nrf51
Beacon_PCA20006.upload.maximum_size=262144
-Beacon_PCA20006.bootloader.tool=sandeepmistry:openocd
+Beacon_PCA20006.bootloader.tool=RMESS:openocd
Beacon_PCA20006.build.mcu=cortex-m0
Beacon_PCA20006.build.f_cpu=16000000
@@ -747,14 +748,14 @@ Beacon_PCA20006.menu.softdevice.s130.build.ldscript=armgcc_s130_nrf51822_xxaa.ld
TinyBLE.name= TinyBLE
-TinyBLE.upload.tool=sandeepmistry:openocd
+TinyBLE.upload.tool=RMESS:openocd
TinyBLE.upload.protocol=cmsis-dap
TinyBLE.upload.target=nrf51
TinyBLE.upload.maximum_size=262144
TinyBLE.upload.setup_command=transport select swd;
-TinyBLE.bootloader.tool=sandeepmistry:openocd
+TinyBLE.bootloader.tool=RMESS:openocd
TinyBLE.build.mcu=cortex-m0
TinyBLE.build.f_cpu=16000000
@@ -789,11 +790,11 @@ TinyBLE.menu.softdevice.s130.build.ldscript=armgcc_s130_nrf51822_xxaa.ld
OSHChip.name=OSHChip
-OSHChip.upload.tool=sandeepmistry:openocd
+OSHChip.upload.tool=RMESS:openocd
OSHChip.upload.target=nrf51
OSHChip.upload.maximum_size=262144
-OSHChip.bootloader.tool=sandeepmistry:openocd
+OSHChip.bootloader.tool=RMESS:openocd
OSHChip.build.mcu=cortex-m0
OSHChip.build.f_cpu=16000000
@@ -828,13 +829,13 @@ OSHChip.menu.softdevice.s130.build.ldscript=armgcc_s130_nrf51822_xxac.ld
BLENano.name=RedBearLab BLE Nano
-BLENano.upload.tool=sandeepmistry:openocd
+BLENano.upload.tool=RMESS:openocd
BLENano.upload.protocol=cmsis-dap
BLENano.upload.target=nrf51
BLENano.upload.maximum_size=262144
BLENano.upload.setup_command=transport select swd;
-BLENano.bootloader.tool=sandeepmistry:openocd
+BLENano.bootloader.tool=RMESS:openocd
BLENano.build.mcu=cortex-m0
BLENano.build.f_cpu=16000000
@@ -874,13 +875,13 @@ BLENano.menu.softdevice.s130.build.ldscript=armgcc_s130_nrf51822_{build.chip}.ld
RedBearLab_nRF51822.name=RedBearLab nRF51822
-RedBearLab_nRF51822.upload.tool=sandeepmistry:openocd
+RedBearLab_nRF51822.upload.tool=RMESS:openocd
RedBearLab_nRF51822.upload.protocol=cmsis-dap
RedBearLab_nRF51822.upload.target=nrf51
RedBearLab_nRF51822.upload.maximum_size=262144
RedBearLab_nRF51822.upload.setup_command=transport select swd;
-RedBearLab_nRF51822.bootloader.tool=sandeepmistry:openocd
+RedBearLab_nRF51822.bootloader.tool=RMESS:openocd
RedBearLab_nRF51822.build.mcu=cortex-m0
RedBearLab_nRF51822.build.f_cpu=16000000
@@ -920,11 +921,11 @@ RedBearLab_nRF51822.menu.softdevice.s130.build.ldscript=armgcc_s130_nrf51822_{bu
Waveshare_BLE400.name=Waveshare BLE400
-Waveshare_BLE400.upload.tool=sandeepmistry:openocd
+Waveshare_BLE400.upload.tool=RMESS:openocd
Waveshare_BLE400.upload.target=nrf51
Waveshare_BLE400.upload.maximum_size=262144
-Waveshare_BLE400.bootloader.tool=sandeepmistry:openocd
+Waveshare_BLE400.bootloader.tool=RMESS:openocd
Waveshare_BLE400.build.mcu=cortex-m0
Waveshare_BLE400.build.f_cpu=16000000
@@ -964,11 +965,11 @@ Waveshare_BLE400.menu.softdevice.s130.build.ldscript=armgcc_s130_nrf51822_{build
ng_beacon.name=ng-beacon
-ng_beacon.upload.tool=sandeepmistry:openocd
+ng_beacon.upload.tool=RMESS:openocd
ng_beacon.upload.target=nrf51
ng_beacon.upload.maximum_size=262144
-ng_beacon.bootloader.tool=sandeepmistry:openocd
+ng_beacon.bootloader.tool=RMESS:openocd
ng_beacon.build.mcu=cortex-m0
ng_beacon.build.f_cpu=16000000
@@ -1006,7 +1007,7 @@ Sinobit.name=Sino:bit
Sinobit.vid.0=0x0d28
Sinobit.pid.0=0x0204
-Sinobit.upload.tool=sandeepmistry:openocd
+Sinobit.upload.tool=RMESS:openocd
Sinobit.upload.protocol=cmsis-dap
Sinobit.upload.target=nrf51
Sinobit.upload.maximum_size=262144
@@ -1015,7 +1016,7 @@ Sinobit.upload.use_1200bps_touch=false
Sinobit.upload.wait_for_upload_port=false
Sinobit.upload.native_usb=false
-Sinobit.bootloader.tool=sandeepmistry:openocd
+Sinobit.bootloader.tool=RMESS:openocd
Sinobit.build.mcu=cortex-m0
Sinobit.build.f_cpu=16000000
@@ -1047,50 +1048,52 @@ Sinobit.menu.softdevice.s130.upload.maximum_size=151552
Sinobit.menu.softdevice.s130.build.extra_flags=-DNRF51 -DS130 -DNRF51_S130
Sinobit.menu.softdevice.s130.build.ldscript=armgcc_s130_nrf51822_xxaa.ld
-DWM1001-DEV.name=decaWave DWM1001 Module Development Board
-DWM1001-DEV.upload.tool=sandeepmistry:openocd
-DWM1001-DEV.upload.protocol=jlink
-DWM1001-DEV.upload.target=nrf52
-DWM1001-DEV.upload.maximum_size=524288
-DWM1001-DEV.upload.setup_command=transport select swd;
-DWM1001-DEV.upload.use_1200bps_touch=false
-DWM1001-DEV.upload.wait_for_upload_port=false
-DWM1001-DEV.upload.native_usb=false
-DWM1001-DEV.bootloader.tool=sandeepmistry:openocd
+Yahu.name=Yahu
-DWM1001-DEV.build.mcu=cortex-m4
-DWM1001-DEV.build.f_cpu=16000000
-DWM1001-DEV.build.board=DWM1001_DEV
-DWM1001-DEV.build.core=nRF5
-DWM1001-DEV.build.variant=DWM1001-DEV
-DWM1001-DEV.build.variant_system_lib=
-DWM1001-DEV.build.extra_flags=-DNRF52
-DWM1001-DEV.build.float_flags=-mfloat-abi=hard -mfpu=fpv4-sp-d16
-DWM1001-DEV.build.ldscript=nrf52_xxaa.ld
+Yahu.upload.tool=RMESS:openocd
+Yahu.upload.protocol=jlink
+Yahu.upload.target=nrf52
+Yahu.upload.maximum_size=524288
+Yahu.upload.setup_command=transport select swd;
+Yahu.upload.use_1200bps_touch=false
+Yahu.upload.wait_for_upload_port=false
+Yahu.upload.native_usb=false
-DWM1001-DEV.build.lfclk_flags=-DUSE_LFXO
+Yahu.bootloader.tool=RMESS:openocd
-DWM1001-DEV.menu.softdevice.none=None
-DWM1001-DEV.menu.softdevice.none.softdevice=none
-DWM1001-DEV.menu.softdevice.none.softdeviceversion=
+Yahu.build.mcu=cortex-m4
+Yahu.build.f_cpu=16000000
+Yahu.build.board=YAHU
+Yahu.build.core=nRF5
+Yahu.build.variant=Yahu
+Yahu.build.variant_system_lib=
+Yahu.build.extra_flags=-DNRF52
+Yahu.build.float_flags=-mfloat-abi=hard -mfpu=fpv4-sp-d16
+Yahu.build.ldscript=nrf52_xxaa.ld
-DWM1001-DEV.menu.softdevice.s132=S132
-DWM1001-DEV.menu.softdevice.s132.softdevice=s132
-DWM1001-DEV.menu.softdevice.s132.softdeviceversion=2.0.1
-DWM1001-DEV.menu.softdevice.s132.upload.maximum_size=409600
-DWM1001-DEV.menu.softdevice.s132.build.extra_flags=-DNRF52 -DS132 -DNRF51_S132
-DWM1001-DEV.menu.softdevice.s132.build.ldscript=armgcc_s132_nrf52832_xxaa.ld
+Yahu.build.lfclk_flags=-DUSE_LFXO
+
+Yahu.menu.softdevice.none=None
+Yahu.menu.softdevice.none.softdevice=none
+Yahu.menu.softdevice.none.softdeviceversion=
+
+Yahu.menu.softdevice.s132=S132
+Yahu.menu.softdevice.s132.softdevice=s132
+Yahu.menu.softdevice.s132.softdeviceversion=2.0.1
+Yahu.menu.softdevice.s132.upload.maximum_size=409600
+Yahu.menu.softdevice.s132.build.extra_flags=-DNRF52 -DS132 -DNRF51_S132
+Yahu.menu.softdevice.s132.build.ldscript=armgcc_s132_nrf52832_xxaa.ld
SeeedArchLink.name=Seeed Arch Link
-SeeedArchLink.upload.tool=sandeepmistry:openocd
+SeeedArchLink.upload.tool=RMESS:openocd
SeeedArchLink.upload.target=nrf51
SeeedArchLink.upload.protocol=cmsis-dap
SeeedArchLink.upload.maximum_size=262144
-SeeedArchLink.bootloader.tool=sandeepmistry:openocd
+SeeedArchLink.bootloader.tool=RMESS:openocd
SeeedArchLink.build.mcu=cortex-m0
SeeedArchLink.build.f_cpu=16000000
@@ -1122,3 +1125,141 @@ SeeedArchLink.menu.softdevice.s130.upload.maximum_size=151552
SeeedArchLink.menu.softdevice.s130.build.extra_flags=-DNRF51 -DS130 -DNRF51_S130
SeeedArchLink.menu.softdevice.s130.build.ldscript=armgcc_s130_nrf51822_xxaa.ld
+
+
+nRF52840DK.name=nRF52840 DK
+
+nRF52840DK.vid.0=0x1366
+nRF52840DK.pid.0=0x1015
+
+nRF52840DK.upload.tool=RMESS:openocd
+nRF52840DK.upload.protocol=jlink
+nRF52840DK.upload.interface=jlink
+nRF52840DK.upload.target=nrf52
+nRF52840DK.upload.maximum_size=524288
+nRF52840DK.upload.setup_command=transport select swd;
+nRF52840DK.upload.use_1200bps_touch=false
+nRF52840DK.upload.wait_for_upload_port=false
+nRF52840DK.upload.native_usb=false
+
+nRF52840DK.bootloader.tool=RMESS:openocd
+
+nRF52840DK.build.mcu=cortex-m4
+nRF52840DK.build.f_cpu=16000000
+nRF52840DK.build.board=NRF52840_DK
+nRF52840DK.build.core=nRF5
+nRF52840DK.build.variant=nRF52840DK
+nRF52840DK.build.variant_system_lib=
+nRF52840DK.build.extra_flags=-DNRF52840 -DNRF52840_XXAA -DARDUINO_GENERIC
+nRF52840DK.build.float_flags=-mfloat-abi=hard -mfpu=fpv4-sp-d16
+#nRF52840DK.build.ldscript=nrf52_xxaa.ld
+
+nRF52840DK.menu.softdevice.none=None
+nRF52840DK.menu.softdevice.none.softdevice=none
+
+nRF52840DK.menu.softdevice.s132=S132
+nRF52840DK.menu.softdevice.s132.softdevice=s132
+nRF52840DK.menu.softdevice.s132.softdeviceversion=2.0.1
+nRF52840DK.menu.softdevice.s132.upload.maximum_size=409600
+nRF52840DK.menu.softdevice.s132.build.extra_flags=-DS132 -DNRF51_S132 -DNRF52840 -DNRF52840_XXAA -DARDUINO_GENERIC
+nRF52840DK.menu.softdevice.s132.build.ldscript=armgcc_s132_nrf52832_xxaa.ld
+
+nRF52840DK.menu.lfclk.lfxo=Crystal Oscillator
+nRF52840DK.menu.lfclk.lfxo.build.lfclk_flags=-DUSE_LFXO
+nRF52840DK.menu.lfclk.lfrc=RC Oscillator
+nRF52840DK.menu.lfclk.lfrc.build.lfclk_flags=-DUSE_LFRC
+nRF52840DK.menu.lfclk.lfsynt=Synthesized
+nRF52840DK.menu.lfclk.lfsynt.build.lfclk_flags=-DUSE_LFSYNT
+
+nRF52840DK.menu.board_variant.standard=Original nRF52840DK
+nRF52840DK.menu.board_variant.standard.compiler.libraries.ldflags_start=
+nRF52840DK.menu.board_variant.standard.compiler.libraries.ldflags_end=
+nRF52840DK.menu.board_variant.standard.build.ldscript=nrf52840_xxaa.ld
+
+nRF52840DK.menu.board_variant.uwbdwt=Qorvo UWB drivers support
+nRF52840DK.menu.board_variant.uwbdwt.build.extra_flags=-DNRF52840 -DNRF52840_XXAA -DARDUINO_GENERIC -DDWT_UWB_ARDUINO
+nRF52840DK.menu.board_variant.uwbdwt.compiler.libraries.ldflags_start=-Wl,--whole-archive
+nRF52840DK.menu.board_variant.uwbdwt.compiler.libraries.ldflags_end=-Wl,--no-whole-archive
+nRF52840DK.menu.board_variant.uwbdwt.build.ldscript=nrf52840_xxaa_dwt.ld
+
+
+
+DWM1001-DEV.name=Qorvo DWM1001-DEV
+
+DWM1001-DEV.upload.tool=RMESS:openocd
+DWM1001-DEV.upload.protocol=jlink
+DWM1001-DEV.upload.target=nrf52
+DWM1001-DEV.upload.maximum_size=524288
+DWM1001-DEV.upload.setup_command=transport select swd;
+DWM1001-DEV.upload.use_1200bps_touch=false
+DWM1001-DEV.upload.wait_for_upload_port=false
+DWM1001-DEV.upload.native_usb=false
+
+DWM1001-DEV.bootloader.tool=RMESS:openocd
+
+DWM1001-DEV.build.mcu=cortex-m4
+DWM1001-DEV.build.f_cpu=16000000
+DWM1001-DEV.build.board=DWM1001_DEV
+DWM1001-DEV.build.core=nRF5
+DWM1001-DEV.build.variant=DWM1001-DEV
+DWM1001-DEV.build.variant_system_lib=
+DWM1001-DEV.build.extra_flags=-DNRF52
+DWM1001-DEV.build.float_flags=-mfloat-abi=hard -mfpu=fpv4-sp-d16
+DWM1001-DEV.build.ldscript=nrf52_xxaa.ld
+
+DWM1001-DEV.build.lfclk_flags=-DUSE_LFXO
+
+DWM1001-DEV.menu.softdevice.none=None
+DWM1001-DEV.menu.softdevice.none.softdevice=none
+DWM1001-DEV.menu.softdevice.none.softdeviceversion=
+
+DWM1001-DEV.menu.softdevice.s132=S132
+DWM1001-DEV.menu.softdevice.s132.softdevice=s132
+DWM1001-DEV.menu.softdevice.s132.softdeviceversion=2.0.1
+DWM1001-DEV.menu.softdevice.s132.upload.maximum_size=409600
+DWM1001-DEV.menu.softdevice.s132.build.extra_flags=-DNRF52 -DS132 -DNRF51_S132
+DWM1001-DEV.menu.softdevice.s132.build.ldscript=armgcc_s132_nrf52832_xxaa.ld
+
+
+
+DWM3001-CDK.name=Qorvo DWM3001 CDK
+
+DWM3001-CDK.vid.0=0x1366
+DWM3001-CDK.pid.0=0x1015
+
+DWM3001-CDK.upload.tool=RMESS:openocd
+DWM3001-CDK.upload.protocol=jlink
+DWM3001-CDK.upload.target=nrf52
+DWM3001-CDK.upload.maximum_size=524288
+DWM3001-CDK.upload.setup_command=transport select swd;
+DWM3001-CDK.upload.use_1200bps_touch=false
+DWM3001-CDK.upload.wait_for_upload_port=false
+DWM3001-CDK.upload.native_usb=false
+
+DWM3001-CDK.bootloader.tool=RMESS:openocd
+
+DWM3001-CDK.build.mcu=cortex-m4
+DWM3001-CDK.build.f_cpu=64000000
+DWM3001-CDK.build.board=DWM3001_CDK
+DWM3001-CDK.build.core=nRF5
+DWM3001-CDK.build.variant=DWM3001CDK
+DWM3001-CDK.build.variant_system_lib=
+DWM3001-CDK.build.extra_flags=-DNRF52833_XXAA -DARDUINO_GENERIC -DDWM3001_CDK -DDWT_UWB_ARDUINO
+DWM3001-CDK.build.float_flags=-mfloat-abi=hard -mfpu=fpv4-sp-d16
+
+DWM3001-CDK.compiler.libraries.ldflags_start=-Wl,--whole-archive
+DWM3001-CDK.compiler.libraries.ldflags_end=-Wl,--no-whole-archive
+DWM3001-CDK.build.ldscript=nrf52833_xxaa_dwt.ld
+
+DWM3001-CDK.build.lfclk_flags=-DUSE_LFXO
+
+DWM3001-CDK.menu.softdevice.none=None
+DWM3001-CDK.menu.softdevice.none.softdevice=none
+DWM3001-CDK.menu.softdevice.none.softdeviceversion=
+
+DWM3001-CDK.menu.softdevice.s132=S132
+DWM3001-CDK.menu.softdevice.s132.softdevice=s132
+DWM3001-CDK.menu.softdevice.s132.softdeviceversion=2.0.1
+DWM3001-CDK.menu.softdevice.s132.upload.maximum_size=409600
+DWM3001-CDK.menu.softdevice.s132.build.extra_flags=-DNRF52833_XXAA -DS132 -DNRF51_S132 -DDWM3001_CDK
+DWM3001-CDK.menu.softdevice.s132.build.ldscript=armgcc_s132_nrf52832_xxaa.ld
diff --git a/cores/nRF5/SDK/components/toolchain/gcc/nrf52833_xxaa_dwt.ld b/cores/nRF5/SDK/components/toolchain/gcc/nrf52833_xxaa_dwt.ld
new file mode 100755
index 00000000..0fb6cc8f
--- /dev/null
+++ b/cores/nRF5/SDK/components/toolchain/gcc/nrf52833_xxaa_dwt.ld
@@ -0,0 +1,14 @@
+/* Linker script to configure memory regions. */
+
+SEARCH_DIR(.)
+GROUP(-lgcc -lc -lnosys)
+
+MEMORY
+{
+ FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 0x80000
+ RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x20000
+ CODE_RAM (rwx) : ORIGIN = 0x800000, LENGTH = 0x20000
+}
+
+
+INCLUDE "nrf52_common_dwt.ld"
diff --git a/cores/nRF5/SDK/components/toolchain/gcc/nrf52840_xxaa_dwt.ld b/cores/nRF5/SDK/components/toolchain/gcc/nrf52840_xxaa_dwt.ld
new file mode 100755
index 00000000..1a52d00d
--- /dev/null
+++ b/cores/nRF5/SDK/components/toolchain/gcc/nrf52840_xxaa_dwt.ld
@@ -0,0 +1,15 @@
+/* Linker script to configure memory regions. */
+
+SEARCH_DIR(.)
+GROUP(-lgcc -lc -lnosys)
+
+MEMORY
+{
+ FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 0x100000
+ EXTFLASH (rx) : ORIGIN = 0x12000000, LENGTH = 0x8000000
+ RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x40000
+ CODE_RAM (rwx) : ORIGIN = 0x800000, LENGTH = 0x40000
+}
+
+
+INCLUDE "nrf52_common_dwt.ld"
diff --git a/cores/nRF5/SDK/components/toolchain/gcc/nrf52_common_dwt.ld b/cores/nRF5/SDK/components/toolchain/gcc/nrf52_common_dwt.ld
new file mode 100755
index 00000000..e4fd2ab1
--- /dev/null
+++ b/cores/nRF5/SDK/components/toolchain/gcc/nrf52_common_dwt.ld
@@ -0,0 +1,178 @@
+/* Deprecated linker script for Nordic Semiconductor nRF52 devices,
+ * please use nrfx_common.ld. This version exists for backwards
+ * compatibility.
+ *
+ * Version: Sourcery G++ 4.5-1
+ * Support: https://support.codesourcery.com/GNUToolchain/
+ *
+ * Copyright (c) 2007, 2008, 2009, 2010 CodeSourcery, Inc.
+ *
+ * The authors hereby grant permission to use, copy, modify, distribute,
+ * and license this software and its documentation for any purpose, provided
+ * that existing copyright notices are retained in all copies and that this
+ * notice is included verbatim in any distributions. No written agreement,
+ * license, or royalty fee is required for any of the authorized uses.
+ * Modifications to this software may be copyrighted by their authors
+ * and need not follow the licensing terms described here, provided that
+ * the new terms are clearly indicated on the first page of each file where
+ * they apply.
+ */
+OUTPUT_FORMAT ("elf32-littlearm", "elf32-bigarm", "elf32-littlearm")
+
+/* Linker script to place sections and symbol values. Should be used together
+ * with other linker script that defines memory regions FLASH and RAM.
+ * It references following symbols, which must be defined in code:
+ * Reset_Handler : Entry of reset handler
+ *
+ * It defines following symbols, which code can use without definition:
+ * __exidx_start
+ * __exidx_end
+ * __etext
+ * __data_start__
+ * __preinit_array_start
+ * __preinit_array_end
+ * __init_array_start
+ * __init_array_end
+ * __fini_array_start
+ * __fini_array_end
+ * __data_end__
+ * __bss_start__
+ * __bss_end__
+ * __end__
+ * end
+ * __HeapBase
+ * __HeapLimit
+ * __StackLimit
+ * __StackTop
+ * __stack
+ */
+ENTRY(Reset_Handler)
+
+SECTIONS
+{
+ .text :
+ {
+ KEEP(*(.isr_vector))
+ *(.text*)
+
+ KEEP(*(.init))
+ KEEP(*(.fini))
+
+ /*** Qorvo UWB driver memory section ***/
+ . = ALIGN(4);
+ __dw_drivers_start = .;
+ KEEP(*(.dw_drivers))
+ __dw_drivers_end = .;
+ /*** END of Qorvo UWB driver memory section ***/
+
+ /* .ctors */
+ *crtbegin.o(.ctors)
+ *crtbegin?.o(.ctors)
+ *(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors)
+ *(SORT(.ctors.*))
+ *(.ctors)
+
+ /* .dtors */
+ *crtbegin.o(.dtors)
+ *crtbegin?.o(.dtors)
+ *(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors)
+ *(SORT(.dtors.*))
+ *(.dtors)
+
+ *(.rodata*)
+
+ KEEP(*(.eh_frame*))
+ } > FLASH
+
+ .ARM.extab :
+ {
+ *(.ARM.extab* .gnu.linkonce.armextab.*)
+ } > FLASH
+
+ __exidx_start = .;
+ .ARM.exidx :
+ {
+ *(.ARM.exidx* .gnu.linkonce.armexidx.*)
+ } > FLASH
+ __exidx_end = .;
+
+ . = ALIGN(4);
+ __etext = .;
+
+ .data : AT (__etext)
+ {
+ __data_start__ = .;
+ *(vtable)
+ *(.data*)
+
+ . = ALIGN(4);
+ /* preinit data */
+ PROVIDE_HIDDEN (__preinit_array_start = .);
+ KEEP(*(.preinit_array))
+ PROVIDE_HIDDEN (__preinit_array_end = .);
+
+ . = ALIGN(4);
+ /* init data */
+ PROVIDE_HIDDEN (__init_array_start = .);
+ KEEP(*(SORT(.init_array.*)))
+ KEEP(*(.init_array))
+ PROVIDE_HIDDEN (__init_array_end = .);
+
+
+ . = ALIGN(4);
+ /* finit data */
+ PROVIDE_HIDDEN (__fini_array_start = .);
+ KEEP(*(SORT(.fini_array.*)))
+ KEEP(*(.fini_array))
+ PROVIDE_HIDDEN (__fini_array_end = .);
+
+ KEEP(*(.jcr*))
+ . = ALIGN(4);
+ /* All data end */
+ __data_end__ = .;
+
+ } > RAM
+
+ .bss :
+ {
+ . = ALIGN(4);
+ __bss_start__ = .;
+ *(.bss*)
+ *(COMMON)
+ . = ALIGN(4);
+ __bss_end__ = .;
+ } > RAM
+
+ .heap (COPY):
+ {
+ __HeapBase = .;
+ __end__ = .;
+ PROVIDE(end = .);
+ KEEP(*(.heap*))
+ __HeapLimit = .;
+ } > RAM
+
+ /* .stack_dummy section doesn't contains any symbols. It is only
+ * used for linker to calculate size of stack sections, and assign
+ * values to stack symbols later */
+ .stack_dummy (COPY):
+ {
+ KEEP(*(.stack*))
+ } > RAM
+
+ /* Set stack top to end of RAM, and stack limit move down by
+ * size of stack_dummy section */
+ __StackTop = ORIGIN(RAM) + LENGTH(RAM);
+ __StackLimit = __StackTop - SIZEOF(.stack_dummy);
+ PROVIDE(__stack = __StackTop);
+
+ /* Check if data + heap + stack exceeds RAM limit */
+ ASSERT(__StackLimit >= __HeapLimit, "region RAM overflowed with stack")
+
+ /* Check if text sections + data exceeds FLASH limit */
+ DataInitFlashUsed = __bss_start__ - __data_start__;
+ CodeFlashUsed = __etext - ORIGIN(FLASH);
+ TotalFlashUsed = CodeFlashUsed + DataInitFlashUsed;
+ ASSERT(TotalFlashUsed <= LENGTH(FLASH), "region FLASH overflowed with .data and user data")
+
+}
diff --git a/cores/nRF5/SDK/components/toolchain/gcc/nrf_common_dwt.ld b/cores/nRF5/SDK/components/toolchain/gcc/nrf_common_dwt.ld
new file mode 100755
index 00000000..4b9038dc
--- /dev/null
+++ b/cores/nRF5/SDK/components/toolchain/gcc/nrf_common_dwt.ld
@@ -0,0 +1,176 @@
+/* Linker script for Nordic Semiconductor nRF devices
+ *
+ * Version: Sourcery G++ 4.5-1
+ * Support: https://support.codesourcery.com/GNUToolchain/
+ *
+ * Copyright (c) 2007, 2008, 2009, 2010 CodeSourcery, Inc.
+ *
+ * The authors hereby grant permission to use, copy, modify, distribute,
+ * and license this software and its documentation for any purpose, provided
+ * that existing copyright notices are retained in all copies and that this
+ * notice is included verbatim in any distributions. No written agreement,
+ * license, or royalty fee is required for any of the authorized uses.
+ * Modifications to this software may be copyrighted by their authors
+ * and need not follow the licensing terms described here, provided that
+ * the new terms are clearly indicated on the first page of each file where
+ * they apply.
+ */
+OUTPUT_FORMAT ("elf32-littlearm", "elf32-bigarm", "elf32-littlearm")
+
+/* Linker script to place sections and symbol values. Should be used together
+ * with other linker script that defines memory regions FLASH and RAM.
+ * It references following symbols, which must be defined in code:
+ * Reset_Handler : Entry of reset handler
+ *
+ * It defines following symbols, which code can use without definition:
+ * __exidx_start
+ * __exidx_end
+ * __etext
+ * __data_start__
+ * __preinit_array_start
+ * __preinit_array_end
+ * __init_array_start
+ * __init_array_end
+ * __fini_array_start
+ * __fini_array_end
+ * __data_end__
+ * __bss_start__
+ * __bss_end__
+ * __end__
+ * end
+ * __HeapBase
+ * __HeapLimit
+ * __StackLimit
+ * __StackTop
+ * __stack
+ */
+ENTRY(Reset_Handler)
+
+SECTIONS
+{
+ .text :
+ {
+ KEEP(*(.isr_vector))
+ *(.text*)
+
+ KEEP(*(.init))
+ KEEP(*(.fini))
+
+ /*** Qorvo UWB driver memory section ***/
+ . = ALIGN(4);
+ __dw_drivers_start = .;
+ KEEP(*(.dw_drivers))
+ __dw_drivers_end = .;
+ /*** END of Qorvo UWB driver memory section ***/
+
+ /* .ctors */
+ *crtbegin.o(.ctors)
+ *crtbegin?.o(.ctors)
+ *(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors)
+ *(SORT(.ctors.*))
+ *(.ctors)
+
+ /* .dtors */
+ *crtbegin.o(.dtors)
+ *crtbegin?.o(.dtors)
+ *(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors)
+ *(SORT(.dtors.*))
+ *(.dtors)
+
+ *(.rodata*)
+
+ KEEP(*(.eh_frame*))
+ } > FLASH
+
+ .ARM.extab :
+ {
+ *(.ARM.extab* .gnu.linkonce.armextab.*)
+ } > FLASH
+
+ __exidx_start = .;
+ .ARM.exidx :
+ {
+ *(.ARM.exidx* .gnu.linkonce.armexidx.*)
+ } > FLASH
+ __exidx_end = .;
+
+ . = ALIGN(4);
+ __etext = .;
+
+ .data : AT (__etext)
+ {
+ __data_start__ = .;
+ *(vtable)
+ *(.data*)
+
+ . = ALIGN(4);
+ /* preinit data */
+ PROVIDE_HIDDEN (__preinit_array_start = .);
+ KEEP(*(.preinit_array))
+ PROVIDE_HIDDEN (__preinit_array_end = .);
+
+ . = ALIGN(4);
+ /* init data */
+ PROVIDE_HIDDEN (__init_array_start = .);
+ KEEP(*(SORT(.init_array.*)))
+ KEEP(*(.init_array))
+ PROVIDE_HIDDEN (__init_array_end = .);
+
+
+ . = ALIGN(4);
+ /* finit data */
+ PROVIDE_HIDDEN (__fini_array_start = .);
+ KEEP(*(SORT(.fini_array.*)))
+ KEEP(*(.fini_array))
+ PROVIDE_HIDDEN (__fini_array_end = .);
+
+ KEEP(*(.jcr*))
+ . = ALIGN(4);
+ /* All data end */
+ __data_end__ = .;
+
+ } > RAM
+
+ .bss :
+ {
+ . = ALIGN(4);
+ __bss_start__ = .;
+ *(.bss*)
+ *(COMMON)
+ . = ALIGN(4);
+ __bss_end__ = .;
+ } > RAM
+
+ .heap (COPY):
+ {
+ __HeapBase = .;
+ __end__ = .;
+ PROVIDE(end = .);
+ KEEP(*(.heap*))
+ __HeapLimit = .;
+ } > RAM
+
+ /* .stack_dummy section doesn't contains any symbols. It is only
+ * used for linker to calculate size of stack sections, and assign
+ * values to stack symbols later */
+ .stack_dummy (COPY):
+ {
+ KEEP(*(.stack*))
+ } > RAM
+
+ /* Set stack top to end of RAM, and stack limit move down by
+ * size of stack_dummy section */
+ __StackTop = ORIGIN(RAM) + LENGTH(RAM);
+ __StackLimit = __StackTop - SIZEOF(.stack_dummy);
+ PROVIDE(__stack = __StackTop);
+
+ /* Check if data + heap + stack exceeds RAM limit */
+ ASSERT(__StackLimit >= __HeapLimit, "region RAM overflowed with stack")
+
+ /* Check if text sections + data exceeds FLASH limit */
+ DataInitFlashUsed = __bss_start__ - __data_start__;
+ CodeFlashUsed = __etext - ORIGIN(FLASH);
+ TotalFlashUsed = CodeFlashUsed + DataInitFlashUsed;
+ ASSERT(TotalFlashUsed <= LENGTH(FLASH), "region FLASH overflowed with .data and user data")
+
+}
diff --git a/cores/nRF5/WInterrupts.c b/cores/nRF5/WInterrupts.c
index 3ea3f1a9..7344b7ca 100644
--- a/cores/nRF5/WInterrupts.c
+++ b/cores/nRF5/WInterrupts.c
@@ -87,8 +87,8 @@ void attachInterrupt(uint32_t pin, voidFuncPtr callback, uint32_t mode)
channelMap[ch] = pin;
callbacksInt[ch] = callback;
- NRF_GPIOTE->CONFIG[ch] &= ~(GPIOTE_CONFIG_PSEL_Msk | GPIOTE_CONFIG_POLARITY_Msk);
- NRF_GPIOTE->CONFIG[ch] |= ((pin << GPIOTE_CONFIG_PSEL_Pos) & GPIOTE_CONFIG_PSEL_Msk) |
+ NRF_GPIOTE->CONFIG[ch] &= ~(GPIOTE_CONFIG_PORT_PIN_Msk | GPIOTE_CONFIG_POLARITY_Msk);
+ NRF_GPIOTE->CONFIG[ch] |= ((pin << GPIOTE_CONFIG_PSEL_Pos) & GPIOTE_CONFIG_PORT_PIN_Msk) |
((polarity << GPIOTE_CONFIG_POLARITY_Pos) & GPIOTE_CONFIG_POLARITY_Msk);
NRF_GPIOTE->CONFIG[ch] |= GPIOTE_CONFIG_MODE_Event;
diff --git a/cores/nRF5/WInterrupts.h b/cores/nRF5/WInterrupts.h
index 5d2b24a0..c39f8aa4 100644
--- a/cores/nRF5/WInterrupts.h
+++ b/cores/nRF5/WInterrupts.h
@@ -34,6 +34,14 @@ extern "C" {
#define DEFAULT 1
#define EXTERNAL 0
+#if defined(GPIOTE_CONFIG_PORT_Msk) || defined(__NRFX_DOXYGEN__)
+/** @brief Mask for covering port and pin bits in registers. */
+#define GPIOTE_CONFIG_PORT_PIN_Msk (GPIOTE_CONFIG_PORT_Msk | GPIOTE_CONFIG_PSEL_Msk)
+#else
+#define GPIOTE_CONFIG_PORT_PIN_Msk GPIOTE_CONFIG_PSEL_Msk
+#endif
+
+
typedef void (*voidFuncPtr)(void);
/*
diff --git a/docs/99-jlink.rules b/docs/99-jlink.rules
new file mode 100644
index 00000000..b9507495
--- /dev/null
+++ b/docs/99-jlink.rules
@@ -0,0 +1,367 @@
+#
+# This file is going to be stored at /etc/udev/rules.d on installation of the J-Link package
+# It makes sure that non-superuser have access to the connected J-Links, so JLinkExe etc. can be executed as non-superuser and can work with J-Link
+#
+#
+# Matches are AND combined, meaning: a==b,c==d,do stuff
+# results in: if (a == b) && (c == d) -> do stuff
+#
+ACTION!="add", SUBSYSTEM!="usb_device", GOTO="jlink_rules_end"
+#
+# Give all users read and write access.
+# Note: NOT all combinations are supported by J-Link right now. Some are reserved for future use, but already added here
+#
+# ATTR{filename}
+# Match sysfs attribute values of the event device. Trailing
+# whitespace in the attribute values is ignored unless the specified
+# match value itself contains trailing whitespace.
+#
+# ATTRS{filename}
+# Search the devpath upwards for a device with matching sysfs
+# attribute values. If multiple ATTRS matches are specified, all of
+# them must match on the same device. Trailing whitespace in the
+# attribute values is ignored unless the specified match value itself
+# contains trailing whitespace.
+#
+# How to find out about udev attributes of device:
+# Connect J-Link to PC
+# Terminal: cat /var/log/syslog
+# Find path to where J-Link device has been "mounted"
+# sudo udevadm info --query=all --attribute-walk --path=
+# sudo udevadm info --attribute-walk /dev/bus/usb// (extract and from "lsusb")
+# Reload udev rules after rules file change:
+# sudo udevadm control --reload-rules
+# sudo udevadm trigger
+#
+# [old format]
+# 0x0101 - J-Link (default) | Flasher STM8 | Flasher ARM | Flasher 5 PRO
+# 0x0102 - J-Link USBAddr = 1 (obsolete)
+# 0x0103 - J-Link USBAddr = 2 (obsolete)
+# 0x0104 - J-Link USBAddr = 3 (obsolete)
+# 0x0105 - CDC + J-Link
+# 0x0106 - CDC
+# 0x0107 - RNDIS + J-Link
+# 0x0108 - J-Link + MSD
+#
+ATTR{idProduct}=="0101", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="0102", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="0103", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="0104", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="0105", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="0107", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="0108", ATTR{idVendor}=="1366", MODE="666"
+#
+# Make sure that J-Links are not captured by modem manager service
+# as this service would try detect J-Link as a modem and send AT commands via the VCOM component which might not be liked by the target...
+#
+ATTR{idProduct}=="0101", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="0102", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="0103", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="0104", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="0105", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="0107", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="0108", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+#
+# J-Link Product-Id assignment:
+# 0x1000 +
+# Bit 0: MSD
+# Bit 1: RNDIS
+# Bit 2: CDC
+# Bit 3: HID
+# Bit 4: J-Link (BULK via SEGGER host driver)
+# Bit 5: J-Link (BULK via WinUSB driver. Needs to be enabled in J-Link config area)
+#
+# [new format]
+# 0x1001: MSD
+# 0x1002: RNDIS
+# 0x1003: RNDIS + MSD
+# 0x1004: CDC
+# 0x1005: CDC + MSD
+# 0x1006: RNDIS + CDC
+# 0x1007: RNDIS + CDC + MSD
+# 0x1008: HID
+# 0x1009: MSD + HID
+# 0x100a: RNDIS + HID
+# 0x100b: RNDIS + MSD + HID
+# 0x100c: CDC + HID
+# 0x100d: CDC + MSD + HID
+# 0x100e: RNDIS + CDC + HID
+# 0x100f: RNDIS + CDC + MSD + HID
+# 0x1010: J_LINK_SEGGER_DRV
+# 0x1011: J_LINK_SEGGER_DRV + MSD
+# 0x1012: J_LINK_SEGGER_DRV + RNDIS
+# 0x1013: J_LINK_SEGGER_DRV + RNDIS + MSD
+# 0x1014: J_LINK_SEGGER_DRV + CDC
+# 0x1015: J_LINK_SEGGER_DRV + CDC + MSD
+# 0x1016: J_LINK_SEGGER_DRV + CDC + RNDIS
+# 0x1017: J_LINK_SEGGER_DRV + CDC + RNDIS + MSD
+# 0x1018: J_LINK_SEGGER_DRV + HID
+# 0x1019: J_LINK_SEGGER_DRV + HID + MSD
+# 0x101a: J_LINK_SEGGER_DRV + HID + RNDIS
+# 0x101b: J_LINK_SEGGER_DRV + HID + RNDIS + MSD
+# 0x101c: J_LINK_SEGGER_DRV + HID + CDC
+# 0x101d: J_LINK_SEGGER_DRV + HID + CDC + MSD
+# 0x101e: J_LINK_SEGGER_DRV + HID + CDC + RNDIS
+# 0x101f: J_LINK_SEGGER_DRV + HID + CDC + RNDIS + MSD
+# 0x1020: J_LINK_WINUSB_DRV
+# 0x1021: J_LINK_WINUSB_DRV + MSD
+# 0x1022: J_LINK_WINUSB_DRV + RNDIS
+# 0x1023: J_LINK_WINUSB_DRV + RNDIS + MSD
+# 0x1024: J_LINK_WINUSB_DRV + CDC
+# 0x1025: J_LINK_WINUSB_DRV + CDC + MSD
+# 0x1026: J_LINK_WINUSB_DRV + CDC + RNDIS
+# 0x1027: J_LINK_WINUSB_DRV + CDC + RNDIS + MSD
+# 0x1028: J_LINK_WINUSB_DRV + HID
+# 0x1029: J_LINK_WINUSB_DRV + HID + MSD
+# 0x102a: J_LINK_WINUSB_DRV + HID + RNDIS
+# 0x102b: J_LINK_WINUSB_DRV + HID + RNDIS + MSD
+# 0x102c: J_LINK_WINUSB_DRV + HID + CDC
+# 0x102d: J_LINK_WINUSB_DRV + HID + CDC + MSD
+# 0x102e: J_LINK_WINUSB_DRV + HID + CDC + RNDIS
+# 0x102f: J_LINK_WINUSB_DRV + HID + CDC + RNDIS + MSD
+# 0x103x: J_LINK_SEGGER_DRV + J_LINK_WINUSB_DRV does not make any sense, therefore skipped
+# 0x1050: J_LINK_SEGGER_DRV + 2x CDC
+# 0x1051: J_LINK_SEGGER_DRV + 2x CDC + MSD
+# 0x1052: J_LINK_SEGGER_DRV + 2x CDC + RNDIS
+# 0x1053: J_LINK_SEGGER_DRV + 2x CDC + RNDIS + MSD
+# 0x1054: J_LINK_SEGGER_DRV + 3x CDC
+# 0x1055: J_LINK_SEGGER_DRV + 3x CDC + MSD
+# 0x1056: J_LINK_SEGGER_DRV + 3x CDC + RNDIS
+# 0x1057: J_LINK_SEGGER_DRV + 3x CDC + RNDIS + MSD
+# 0x1058: J_LINK_SEGGER_DRV + HID + 2x CDC
+# 0x1059: J_LINK_SEGGER_DRV + HID + 2x CDC + MSD
+# 0x105a: J_LINK_SEGGER_DRV + HID + 2x CDC + RNDIS
+# 0x105b: J_LINK_SEGGER_DRV + HID + 2x CDC + RNDIS + MSD
+# 0x105c: J_LINK_SEGGER_DRV + HID + 3x CDC
+# 0x105d: J_LINK_SEGGER_DRV + HID + 3x CDC + MSD
+# 0x105e: J_LINK_SEGGER_DRV + HID + 3x CDC + RNDIS
+# 0x105f: J_LINK_SEGGER_DRV + HID + 3x CDC + RNDIS + MSD
+# 0x1060: J_LINK_WINUSB_DRV + 2x CDC
+# 0x1061: J_LINK_WINUSB_DRV + 2x CDC + MSD
+# 0x1062: J_LINK_WINUSB_DRV + 2x CDC + RNDIS
+# 0x1063: J_LINK_WINUSB_DRV + 2x CDC + RNDIS + MSD
+# 0x1064: J_LINK_WINUSB_DRV + 3x CDC
+# 0x1065: J_LINK_WINUSB_DRV + 3x CDC + MSD
+# 0x1066: J_LINK_WINUSB_DRV + 3x CDC + RNDIS
+# 0x1067: J_LINK_WINUSB_DRV + 3x CDC + RNDIS + MSD
+# 0x1068: J_LINK_WINUSB_DRV + HID + 2x CDC
+# 0x1069: J_LINK_WINUSB_DRV + HID + 2x CDC + MSD
+# 0x106a: J_LINK_WINUSB_DRV + HID + 2x CDC + RNDIS
+# 0x106b: J_LINK_WINUSB_DRV + HID + 2x CDC + RNDIS + MSD
+# 0x106c: J_LINK_WINUSB_DRV + HID + 3x CDC
+# 0x106d: J_LINK_WINUSB_DRV + HID + 3x CDC + MSD
+# 0x106e: J_LINK_WINUSB_DRV + HID + 3x CDC + RNDIS
+# 0x106f: J_LINK_WINUSB_DRV + HID + 3x CDC + RNDIS + MSD
+#
+ATTR{idProduct}=="1001", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="1002", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="1003", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="1004", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="1005", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="1006", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="1007", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="1008", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="1009", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="100a", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="100b", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="100c", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="100d", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="100e", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="100f", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="1010", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="1011", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="1012", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="1013", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="1014", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="1015", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="1016", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="1017", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="1018", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="1019", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="101a", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="101b", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="101c", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="101d", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="101e", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="101f", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="1020", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="1021", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="1022", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="1023", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="1024", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="1025", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="1026", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="1027", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="1028", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="1029", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="102a", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="102b", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="102c", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="102d", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="102e", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="102f", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="1050", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="1051", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="1052", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="1053", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="1054", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="1055", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="1056", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="1057", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="1058", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="1059", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="105a", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="105b", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="105c", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="105d", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="105e", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="105f", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="1060", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="1061", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="1062", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="1063", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="1064", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="1065", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="1066", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="1067", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="1068", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="1069", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="106a", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="106b", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="106c", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="106d", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="106e", ATTR{idVendor}=="1366", MODE="666"
+ATTR{idProduct}=="106f", ATTR{idVendor}=="1366", MODE="666"
+#
+# Handle known CMSIS-DAP probes (taken from mbed website and OpenOCD):
+# VID 0x1366 (SEGGER)
+# PID 0x1008-100f, 0x1018-101f, 0x1028-102f, 0x1058-105f, 0x1068-106f (SEGGER J-Link)
+# We cover all of them via idProduct=10* and idVendor=1366
+#
+# VID 0xC251 (Keil)
+# PID 0xF001: (LPC-Link-II CMSIS_DAP)
+# PID 0xF002: (OpenSDA CMSIS_DAP Freedom Board)
+# PID 0x2722: (Keil ULINK2 CMSIS-DAP)
+# VID 0x0D28 (mbed)
+# PID 0x0204: MBED CMSIS-DAP
+#
+KERNEL=="hidraw*", ATTRS{idProduct}=="10*", ATTRS{idVendor}=="1366", MODE="666"
+KERNEL=="hidraw*", ATTRS{idProduct}=="f001", ATTRS{idVendor}=="c251", MODE="666"
+KERNEL=="hidraw*", ATTRS{idProduct}=="f002", ATTRS{idVendor}=="c251", MODE="666"
+KERNEL=="hidraw*", ATTRS{idProduct}=="2722", ATTRS{idVendor}=="c251", MODE="666"
+KERNEL=="hidraw*", ATTRS{idProduct}=="0204", ATTRS{idVendor}=="c251", MODE="666"
+KERNEL=="hidraw*", ATTRS{idProduct}=="f001", ATTRS{idVendor}=="0d28", MODE="666"
+KERNEL=="hidraw*", ATTRS{idProduct}=="f002", ATTRS{idVendor}=="0d28", MODE="666"
+KERNEL=="hidraw*", ATTRS{idProduct}=="2722", ATTRS{idVendor}=="0d28", MODE="666"
+KERNEL=="hidraw*", ATTRS{idProduct}=="0204", ATTRS{idVendor}=="0d28", MODE="666"
+#
+# Make sure that J-Links are not captured by modem manager service
+# as this service would try detect J-Link as a modem and send AT commands via the VCOM component which might not be liked by the target...
+#
+ATTR{idProduct}=="1001", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="1002", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="1003", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="1004", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="1005", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="1006", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="1007", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="1008", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="1009", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="100a", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="100b", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="100c", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="100d", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="100e", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="100f", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="1010", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="1011", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="1012", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="1013", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="1014", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="1015", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="1016", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="1017", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="1018", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="1019", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="101a", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="101b", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="101c", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="101d", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="101e", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="101f", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="1020", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="1021", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="1022", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="1023", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="1024", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="1025", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="1026", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="1027", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="1028", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="1029", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="102a", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="102b", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="102c", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="102d", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="102e", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="102f", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="1050", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="1051", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="1052", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="1053", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="1054", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="1055", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="1056", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="1057", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="1058", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="1059", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="105a", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="105b", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="105c", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="105d", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="105e", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="105f", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="1060", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="1061", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="1062", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="1063", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="1064", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="1065", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="1066", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="1067", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="1068", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="1069", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="106a", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="106b", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="106c", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="106d", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="106e", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="106f", ATTR{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1"
+#
+# Handle known CMSIS-DAP probes (taken from mbed website and OpenOCD):
+# VID 0xC251 (Keil)
+# PID 0xF001: (LPC-Link-II CMSIS_DAP)
+# PID 0xF002: (OpenSDA CMSIS_DAP Freedom Board)
+# PID 0x2722: (Keil ULINK2 CMSIS-DAP)
+# VID 0x0D28 (mbed)
+# PID 0x0204: MBED CMSIS-DAP
+#
+ATTR{idProduct}=="f001", ATTR{idVendor}=="c251", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="f002", ATTR{idVendor}=="c251", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="2722", ATTR{idVendor}=="c251", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="0204", ATTR{idVendor}=="c251", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="f001", ATTR{idVendor}=="0d28", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="f002", ATTR{idVendor}=="0d28", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="2722", ATTR{idVendor}=="0d28", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTR{idProduct}=="0204", ATTR{idVendor}=="0d28", ENV{ID_MM_DEVICE_IGNORE}="1"
+#
+# Make sure that VCOM ports of J-Links can be opened with user rights
+# We simply say that all devices from SEGGER which are in the "tty" domain are enumerated with normal user == R/W
+#
+SUBSYSTEM=="tty", ATTRS{idVendor}=="1366", MODE="0666", GROUP="dialout"
+SUBSYSTEM=="tty", ATTRS{idVendor}=="c251", MODE="0666", GROUP="dialout"
+SUBSYSTEM=="tty", ATTRS{idVendor}=="0d28", MODE="0666", GROUP="dialout"
+#
+# End of list
+#
+LABEL="jlink_rules_end"
diff --git a/docs/index.html b/docs/index.html
index f1afed9a..f6950616 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -1 +1 @@
-My Page
+Teneur de place
diff --git a/docs/package_RMESS_nRF5boards_index.json b/docs/package_RMESS_nRF5boards_index.json
new file mode 100644
index 00000000..9eefe4b1
--- /dev/null
+++ b/docs/package_RMESS_nRF5boards_index.json
@@ -0,0 +1,292 @@
+{
+ "packages": [
+ {
+ "name": "RMESS",
+ "maintainer": "Cassandre Vey",
+ "websiteURL": "https://github.com/irit-rmess/arduino-nRF5",
+ "email": "cassandre.vey@irit.fr",
+ "platforms": [
+ {
+ "name": "Nordic Semiconductor nRF5 Boards",
+ "architecture": "nRF5",
+ "version": "0.7.0-RMESS",
+ "category": "Contributed",
+ "url": "https://github.com/irit-rmess/arduino-nRF5/archive/refs/tags/0.7.0-RMESS.tar.gz",
+ "archiveFileName": "arduino-nRF52-0.7.0-RMESS.tar.gz",
+ "checksum": "MD5:6f7da7d2490d77cb631fa151ca4a8250",
+ "size": "1492072",
+ "boards": [
+ {"name": "BBC micro:bit"},
+ {"name": "BBC micro:bit v2"},
+ {"name": "Bluz DK"},
+ {"name": "Calliope mini"},
+ {"name": "decaWave DWM1001 Module Development Board"},
+ {"name": "Electronut labs bluey"},
+ {"name": "Electronut labs hackaBLE"},
+ {"name": "Electronut labs hackaBLE v2"},
+ {"name": "Generic nRF51822"},
+ {"name": "Generic nRF52823"},
+ {"name": "Generic nRF52833"},
+ {"name": "OSHChip"},
+ {"name": "ng-beacon"},
+ {"name": "nRF51 Dongle"},
+ {"name": "nRF51822 Development Kit"},
+ {"name": "nRF52 DK"},
+ {"name": "Nordic Beacon Kit"},
+ {"name": "RedBear BLE Nano 2"},
+ {"name": "RedBear Blend 2"},
+ {"name": "RedBearLab BLE Nano"},
+ {"name": "RedBearLab nRF51822"},
+ {"name": "Seeed Arch Link"},
+ {"name": "Sino:bit"},
+ {"name": "Taida Century nRF52 mini board"},
+ {"name": "TinyBLE"},
+ {"name": "Waveshare BLE400"},
+ {"name": "Yahu"}
+ ],
+ "toolsDependencies": [
+ {
+ "packager": "RMESS",
+ "name": "gcc-arm-none-eabi",
+ "version": "5_2-2015q4"
+ },
+ {
+ "packager": "RMESS",
+ "name": "openocd",
+ "version": "0.10.0-dev.nrf5"
+ }
+ ]
+ },
+ {
+ "name": "Nordic Semiconductor nRF5 Boards",
+ "architecture": "nRF5",
+ "version": "0.7.1-RMESS",
+ "category": "Contributed",
+ "url": "https://github.com/irit-rmess/arduino-nRF5/archive/refs/tags/0.7.1-RMESS.tar.gz",
+ "archiveFileName": "arduino-nRF52-0.7.1-RMESS.tar.gz",
+ "checksum": "MD5:50921d7bf46d630f28ca5a2b17b62782",
+ "size": "1492129",
+ "boards": [
+ {"name": "BBC micro:bit"},
+ {"name": "BBC micro:bit v2"},
+ {"name": "Bluz DK"},
+ {"name": "Calliope mini"},
+ {"name": "decaWave DWM1001 Module Development Board"},
+ {"name": "Electronut labs bluey"},
+ {"name": "Electronut labs hackaBLE"},
+ {"name": "Electronut labs hackaBLE v2"},
+ {"name": "Generic nRF51822"},
+ {"name": "Generic nRF52823"},
+ {"name": "Generic nRF52833"},
+ {"name": "OSHChip"},
+ {"name": "ng-beacon"},
+ {"name": "nRF51 Dongle"},
+ {"name": "nRF51822 Development Kit"},
+ {"name": "nRF52 DK"},
+ {"name": "Nordic Beacon Kit"},
+ {"name": "RedBear BLE Nano 2"},
+ {"name": "RedBear Blend 2"},
+ {"name": "RedBearLab BLE Nano"},
+ {"name": "RedBearLab nRF51822"},
+ {"name": "Seeed Arch Link"},
+ {"name": "Sino:bit"},
+ {"name": "Taida Century nRF52 mini board"},
+ {"name": "TinyBLE"},
+ {"name": "Waveshare BLE400"},
+ {"name": "Yahu"}
+ ],
+ "toolsDependencies": [
+ {
+ "packager": "RMESS",
+ "name": "gcc-arm-none-eabi",
+ "version": "5_2-2015q4"
+ },
+ {
+ "packager": "RMESS",
+ "name": "openocd",
+ "version": "0.10.0-dev.nrf5"
+ }
+ ]
+ },
+ {
+ "name": "Nordic Semiconductor nRF5 Boards",
+ "architecture": "nRF5",
+ "version": "0.8.0-RMESS",
+ "category": "Contributed",
+ "url": "https://github.com/irit-rmess/arduino-nRF5/archive/refs/tags/0.8.0-RMESS.tar.gz",
+ "archiveFileName": "arduino-nRF52-0.8.0-RMESS.tar.gz",
+ "checksum": "MD5:edfc2d60c5680c350ab96a4a7b497296",
+ "size": "1491189",
+ "boards": [
+ {"name": "BBC micro:bit"},
+ {"name": "BBC micro:bit v2"},
+ {"name": "Bluz DK"},
+ {"name": "Calliope mini"},
+ {"name": "Calliope mini V3"},
+ {"name": "Electronut labs bluey"},
+ {"name": "Electronut labs hackaBLE"},
+ {"name": "Electronut labs hackaBLE v2"},
+ {"name": "Generic nRF51822"},
+ {"name": "Generic nRF52823"},
+ {"name": "Generic nRF52833"},
+ {"name": "Generic nRF52840DK"},
+ {"name": "OSHChip"},
+ {"name": "ng-beacon"},
+ {"name": "Qorvo DWM1001-DEV"},
+ {"name": "Qorvo DWM3001 CDK"},
+ {"name": "nRF51 Dongle"},
+ {"name": "nRF51822 Development Kit"},
+ {"name": "nRF52 DK"},
+ {"name": "Nordic Beacon Kit"},
+ {"name": "RedBear BLE Nano 2"},
+ {"name": "RedBear Blend 2"},
+ {"name": "RedBearLab BLE Nano"},
+ {"name": "RedBearLab nRF51822"},
+ {"name": "Seeed Arch Link"},
+ {"name": "Sino:bit"},
+ {"name": "Taida Century nRF52 mini board"},
+ {"name": "TinyBLE"},
+ {"name": "Waveshare BLE400"},
+ {"name": "Yahu"}
+ ],
+ "toolsDependencies": [
+ {
+ "packager": "RMESS",
+ "name": "gcc-arm-none-eabi",
+ "version": "5_2-2015q4"
+ },
+ {
+ "packager": "RMESS",
+ "name": "openocd",
+ "version": "0.10.0-dev.nrf5"
+ }
+ ]
+ },
+ {
+ "name": "Nordic Semiconductor nRF5 Boards",
+ "architecture": "nRF5",
+ "version": "0.8.1-RMESS",
+ "category": "Contributed",
+ "url": "https://github.com/irit-rmess/arduino-nRF5/archive/refs/tags/0.8.1-RMESS.tar.gz",
+ "archiveFileName": "arduino-nRF52-0.8.1-RMESS.tar.gz",
+ "checksum": "MD5:d36fedfa7cdc1c8f14e524e3f020fab2",
+ "size": "1495017",
+ "boards": [
+ {"name": "BBC micro:bit"},
+ {"name": "BBC micro:bit v2"},
+ {"name": "Bluz DK"},
+ {"name": "Calliope mini"},
+ {"name": "Calliope mini V3"},
+ {"name": "Electronut labs bluey"},
+ {"name": "Electronut labs hackaBLE"},
+ {"name": "Electronut labs hackaBLE v2"},
+ {"name": "Generic nRF51822"},
+ {"name": "Generic nRF52823"},
+ {"name": "Generic nRF52833"},
+ {"name": "Generic nRF52840DK"},
+ {"name": "OSHChip"},
+ {"name": "ng-beacon"},
+ {"name": "Qorvo DWM1001-DEV"},
+ {"name": "Qorvo DWM3001 CDK"},
+ {"name": "nRF51 Dongle"},
+ {"name": "nRF51822 Development Kit"},
+ {"name": "nRF52 DK"},
+ {"name": "Nordic Beacon Kit"},
+ {"name": "RedBear BLE Nano 2"},
+ {"name": "RedBear Blend 2"},
+ {"name": "RedBearLab BLE Nano"},
+ {"name": "RedBearLab nRF51822"},
+ {"name": "Seeed Arch Link"},
+ {"name": "Sino:bit"},
+ {"name": "Taida Century nRF52 mini board"},
+ {"name": "TinyBLE"},
+ {"name": "Waveshare BLE400"},
+ {"name": "Yahu"}
+ ],
+ "toolsDependencies": [
+ {
+ "packager": "RMESS",
+ "name": "gcc-arm-none-eabi",
+ "version": "5_2-2015q4"
+ },
+ {
+ "packager": "RMESS",
+ "name": "openocd",
+ "version": "0.10.0-dev.nrf5"
+ }
+ ]
+ }
+ ],
+ "tools":[
+ {
+ "name": "gcc-arm-none-eabi",
+ "version": "5_2-2015q4",
+ "systems": [
+ {
+ "host": "i386-apple-darwin11",
+ "url": "https://github.com/sandeepmistry/arduino-nRF5/releases/download/tools/gcc-arm-none-eabi-5_2-2015q4-20151219-mac.tar.bz2",
+ "archiveFileName": "gcc-arm-none-eabi-5_2-2015q4-20151219-mac.tar.bz2",
+ "size": "96372129",
+ "checksum": "MD5:603bcce8e59683ac27054b3197a53254"
+ },
+ {
+ "host": "i686-linux-gnu",
+ "url": "https://github.com/sandeepmistry/arduino-nRF5/releases/download/tools/gcc-arm-none-eabi-5_2-2015q4-20151219-linux.tar.bz2",
+ "archiveFileName": "gcc-arm-none-eabi-5_2-2015q4-20151219-linux.tar.bz2",
+ "size": "92811866",
+ "checksum": "MD5:f88caac80b4444a17344f57ccb760b90"
+ },
+ {
+ "host": "x86_64-pc-linux-gnu",
+ "url": "https://github.com/sandeepmistry/arduino-nRF5/releases/download/tools/gcc-arm-none-eabi-5_2-2015q4-20151219-linux.tar.bz2",
+ "archiveFileName": "gcc-arm-none-eabi-5_2-2015q4-20151219-linux.tar.bz2",
+ "size": "92811866",
+ "checksum": "MD5:f88caac80b4444a17344f57ccb760b90"
+ },
+ {
+ "host": "i686-mingw32",
+ "url": "https://github.com/sandeepmistry/arduino-nRF5/releases/download/tools/gcc-arm-none-eabi-5_2-2015q4-20151219-win32.tar.bz2",
+ "archiveFileName": "gcc-arm-none-eabi-5_2-2015q4-20151219-win32.tar.bz2",
+ "size": "102981732",
+ "checksum": "MD5:32d950225b6c7c886f6225c1fc578934"
+ }
+ ]
+ },
+ {
+ "name": "openocd",
+ "version": "0.10.0-dev.nrf5",
+ "systems": [
+ {
+ "host": "i386-apple-darwin11",
+ "url": "https://github.com/sandeepmistry/arduino-nRF5/releases/download/tools/openocd-osx-0.10.0-dev-nrf5.tar.gz",
+ "archiveFileName": "openocd-osx-0.10.0-dev-nrf5.tar.gz",
+ "size": "1345243",
+ "checksum": "MD5:3ffaa4e7cd4b96770eec65002c5959e3"
+ },
+ {
+ "host": "i686-linux-gnu",
+ "url": "https://github.com/sandeepmistry/arduino-nRF5/releases/download/tools/openocd-linux32-0.10.0-dev-nrf5.tar.gz",
+ "archiveFileName": "openocd-linux32-0.10.0-dev-nrf5.tar.gz",
+ "size": "3585042",
+ "checksum": "MD5:02b3f4a3004cae86631bf13837c84504"
+ },
+ {
+ "host": "x86_64-pc-linux-gnu",
+ "url": "https://github.com/sandeepmistry/arduino-nRF5/releases/download/tools/openocd-linux32-0.10.0-dev-nrf5.tar.gz",
+ "archiveFileName": "openocd-linux32-0.10.0-dev-nrf5.tar.gz",
+ "size": "3585042",
+ "checksum": "MD5:02b3f4a3004cae86631bf13837c84504"
+ },
+ {
+ "host": "i686-mingw32",
+ "url": "https://github.com/sandeepmistry/arduino-nRF5/releases/download/tools/openocd-win32-0.10.0-dev-nrf5.tar.gz",
+ "archiveFileName": "openocd-win32-0.10.0-dev-nrf5.tar.gz",
+ "size": "5498373",
+ "checksum": "MD5:3acd3b08afda2bb09e75a0de5ac7c3cd"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
diff --git a/docs/package_nRF5_boards_index.json b/docs/package_nRF5_boards_index.json
deleted file mode 100644
index dc400b62..00000000
--- a/docs/package_nRF5_boards_index.json
+++ /dev/null
@@ -1,483 +0,0 @@
-{
- "packages": [
- {
- "name": "sandeepmistry",
- "maintainer": "Sandeep Mistry",
- "websiteURL": "https://github.com/sandeepmistry/arduino-nRF5",
- "email": "sandeep.mistry@gmail.com",
- "help": {
- "online": "https://github.com/sandeepmistry/arduino-nRF5/issues"
- },
- "platforms": [
- {
- "name": "Nordic Semiconductor nRF5 Boards",
- "architecture": "nRF5",
- "version": "0.1.0",
- "category": "Contributed",
- "help": {
- "online": "https://github.com/sandeepmistry/arduino-nRF5/issues"
- },
- "url": "https://github.com/sandeepmistry/arduino-nRF5/archive/0.1.0.tar.gz",
- "archiveFileName": "arduino-nRF52-0.1.0.tar.gz",
- "checksum": "MD5:1825f6420104225f5fee11b467923b7d",
- "size": "591297",
- "boards": [
- {"name": "nRF52 DK"},
- {"name": "Bluz DK"}
- ],
- "toolsDependencies": [
- {
- "packager": "sandeepmistry",
- "name": "gcc-arm-none-eabi",
- "version": "5_2-2015q4"
- },
- {
- "packager": "sandeepmistry",
- "name": "openocd",
- "version": "0.10.0-dev.nrf5"
- }
- ]
- },
- {
- "name": "Nordic Semiconductor nRF5 Boards",
- "architecture": "nRF5",
- "version": "0.2.0",
- "category": "Contributed",
- "help": {
- "online": "https://github.com/sandeepmistry/arduino-nRF5/issues"
- },
- "url": "https://github.com/sandeepmistry/arduino-nRF5/archive/0.2.0.tar.gz",
- "archiveFileName": "arduino-nRF52-0.2.0.tar.gz",
- "checksum": "MD5:1ed95ee9030e4ca1371665258a3cdee4",
- "size": "562847",
- "boards": [
- {"name": "nRF52 DK"},
- {"name": "Bluz DK"},
- {"name": "RedBearLab BLE Nano"},
- {"name": "RedBearLab nRF51822"},
- {"name": "BBC micro:bit"},
- {"name": "OSHChip"},
- {"name": "Generic nRF51822"}
- ],
- "toolsDependencies": [
- {
- "packager": "sandeepmistry",
- "name": "gcc-arm-none-eabi",
- "version": "5_2-2015q4"
- },
- {
- "packager": "sandeepmistry",
- "name": "openocd",
- "version": "0.10.0-dev.nrf5"
- }
- ]
- },
- {
- "name": "Nordic Semiconductor nRF5 Boards",
- "architecture": "nRF5",
- "version": "0.3.0",
- "category": "Contributed",
- "help": {
- "online": "https://github.com/sandeepmistry/arduino-nRF5/issues"
- },
- "url": "https://github.com/sandeepmistry/arduino-nRF5/archive/0.3.0.tar.gz",
- "archiveFileName": "arduino-nRF52-0.3.0.tar.gz",
- "checksum": "MD5:3308f42e982e96a7f4329524ef46f5f8",
- "size": "569306",
- "boards": [
- {"name": "BBC micro:bit"},
- {"name": "Bluz DK"},
- {"name": "Generic nRF51822"},
- {"name": "Generic nRF52823"},
- {"name": "OSHChip"},
- {"name": "ng-beacon"},
- {"name": "nRF51 Dongle"},
- {"name": "nRF51822 Development Kit"},
- {"name": "nRF52 DK"},
- {"name": "RedBear BLE Nano 2"},
- {"name": "RedBear Blend 2"},
- {"name": "RedBearLab BLE Nano"},
- {"name": "RedBearLab nRF51822"},
- {"name": "Waveshare BLE400"}
- ],
- "toolsDependencies": [
- {
- "packager": "sandeepmistry",
- "name": "gcc-arm-none-eabi",
- "version": "5_2-2015q4"
- },
- {
- "packager": "sandeepmistry",
- "name": "openocd",
- "version": "0.10.0-dev.nrf5"
- }
- ]
- },
- {
- "name": "Nordic Semiconductor nRF5 Boards",
- "architecture": "nRF5",
- "version": "0.4.0",
- "category": "Contributed",
- "help": {
- "online": "https://github.com/sandeepmistry/arduino-nRF5/issues"
- },
- "url": "https://github.com/sandeepmistry/arduino-nRF5/archive/0.4.0.tar.gz",
- "archiveFileName": "arduino-nRF52-0.4.0.tar.gz",
- "checksum": "MD5:E82DA39642AB48492A9FEDE8159871F5",
- "size": "573440",
- "boards": [
- {"name": "BBC micro:bit"},
- {"name": "Bluz DK"},
- {"name": "Electronut labs bluey"},
- {"name": "Generic nRF51822"},
- {"name": "Generic nRF52823"},
- {"name": "OSHChip"},
- {"name": "ng-beacon"},
- {"name": "nRF51 Dongle"},
- {"name": "nRF51822 Development Kit"},
- {"name": "nRF52 DK"},
- {"name": "Nordic Beacon Kit"},
- {"name": "RedBear BLE Nano 2"},
- {"name": "RedBear Blend 2"},
- {"name": "RedBearLab BLE Nano"},
- {"name": "RedBearLab nRF51822"},
- {"name": "Taida Century nRF52 mini board"},
- {"name": "TinyBLE"},
- {"name": "Waveshare BLE400"}
- ],
- "toolsDependencies": [
- {
- "packager": "sandeepmistry",
- "name": "gcc-arm-none-eabi",
- "version": "5_2-2015q4"
- },
- {
- "packager": "sandeepmistry",
- "name": "openocd",
- "version": "0.10.0-dev.nrf5"
- }
- ]
- },
- {
- "name": "Nordic Semiconductor nRF5 Boards",
- "architecture": "nRF5",
- "version": "0.5.0",
- "category": "Contributed",
- "help": {
- "online": "https://github.com/sandeepmistry/arduino-nRF5/issues"
- },
- "url": "https://github.com/sandeepmistry/arduino-nRF5/archive/0.5.0.tar.gz",
- "archiveFileName": "arduino-nRF52-0.5.0.tar.gz",
- "checksum": "MD5:BC732D8377244913AA7556083965FAA0",
- "size": "575959",
- "boards": [
- {"name": "BBC micro:bit"},
- {"name": "Bluz DK"},
- {"name": "Electronut labs bluey"},
- {"name": "Electronut labs hackaBLE"},
- {"name": "Generic nRF51822"},
- {"name": "Generic nRF52823"},
- {"name": "OSHChip"},
- {"name": "ng-beacon"},
- {"name": "nRF51 Dongle"},
- {"name": "nRF51822 Development Kit"},
- {"name": "nRF52 DK"},
- {"name": "Nordic Beacon Kit"},
- {"name": "RedBear BLE Nano 2"},
- {"name": "RedBear Blend 2"},
- {"name": "RedBearLab BLE Nano"},
- {"name": "RedBearLab nRF51822"},
- {"name": "Sino:bit"},
- {"name": "Taida Century nRF52 mini board"},
- {"name": "TinyBLE"},
- {"name": "Waveshare BLE400"}
- ],
- "toolsDependencies": [
- {
- "packager": "sandeepmistry",
- "name": "gcc-arm-none-eabi",
- "version": "5_2-2015q4"
- },
- {
- "packager": "sandeepmistry",
- "name": "openocd",
- "version": "0.10.0-dev.nrf5"
- }
- ]
- },
- {
- "name": "Nordic Semiconductor nRF5 Boards",
- "architecture": "nRF5",
- "version": "0.5.1",
- "category": "Contributed",
- "help": {
- "online": "https://github.com/sandeepmistry/arduino-nRF5/issues"
- },
- "url": "https://github.com/sandeepmistry/arduino-nRF5/archive/0.5.1.tar.gz",
- "archiveFileName": "arduino-nRF52-0.5.1.tar.gz",
- "checksum": "MD5:02F963846158BBB4B3B69C78801D5FCB",
- "size": "576878",
- "boards": [
- {"name": "BBC micro:bit"},
- {"name": "Bluz DK"},
- {"name": "Electronut labs bluey"},
- {"name": "Electronut labs hackaBLE"},
- {"name": "Generic nRF51822"},
- {"name": "Generic nRF52823"},
- {"name": "OSHChip"},
- {"name": "ng-beacon"},
- {"name": "nRF51 Dongle"},
- {"name": "nRF51822 Development Kit"},
- {"name": "nRF52 DK"},
- {"name": "Nordic Beacon Kit"},
- {"name": "RedBear BLE Nano 2"},
- {"name": "RedBear Blend 2"},
- {"name": "RedBearLab BLE Nano"},
- {"name": "RedBearLab nRF51822"},
- {"name": "Sino:bit"},
- {"name": "Taida Century nRF52 mini board"},
- {"name": "TinyBLE"},
- {"name": "Waveshare BLE400"}
- ],
- "toolsDependencies": [
- {
- "packager": "sandeepmistry",
- "name": "gcc-arm-none-eabi",
- "version": "5_2-2015q4"
- },
- {
- "packager": "sandeepmistry",
- "name": "openocd",
- "version": "0.10.0-dev.nrf5"
- }
- ]
- },
- {
- "name": "Nordic Semiconductor nRF5 Boards",
- "architecture": "nRF5",
- "version": "0.6.0",
- "category": "Contributed",
- "help": {
- "online": "https://github.com/sandeepmistry/arduino-nRF5/issues"
- },
- "url": "https://github.com/sandeepmistry/arduino-nRF5/archive/0.6.0.tar.gz",
- "archiveFileName": "arduino-nRF52-0.6.0.tar.gz",
- "checksum": "MD5:edee8046e7f58bb06c466bb1c67ac02f",
- "size": "577994",
- "boards": [
- {"name": "BBC micro:bit"},
- {"name": "Bluz DK"},
- {"name": "Calliope mini"},
- {"name": "Electronut labs bluey"},
- {"name": "Electronut labs hackaBLE"},
- {"name": "Generic nRF51822"},
- {"name": "Generic nRF52823"},
- {"name": "OSHChip"},
- {"name": "ng-beacon"},
- {"name": "nRF51 Dongle"},
- {"name": "nRF51822 Development Kit"},
- {"name": "nRF52 DK"},
- {"name": "Nordic Beacon Kit"},
- {"name": "RedBear BLE Nano 2"},
- {"name": "RedBear Blend 2"},
- {"name": "RedBearLab BLE Nano"},
- {"name": "RedBearLab nRF51822"},
- {"name": "Sino:bit"},
- {"name": "Taida Century nRF52 mini board"},
- {"name": "TinyBLE"},
- {"name": "Waveshare BLE400"}
- ],
- "toolsDependencies": [
- {
- "packager": "sandeepmistry",
- "name": "gcc-arm-none-eabi",
- "version": "5_2-2015q4"
- },
- {
- "packager": "sandeepmistry",
- "name": "openocd",
- "version": "0.10.0-dev.nrf5"
- }
- ]
- },
- {
- "name": "Nordic Semiconductor nRF5 Boards",
- "architecture": "nRF5",
- "version": "0.7.0",
- "category": "Contributed",
- "help": {
- "online": "https://github.com/sandeepmistry/arduino-nRF5/issues"
- },
- "url": "https://github.com/sandeepmistry/arduino-nRF5/archive/0.7.0.tar.gz",
- "archiveFileName": "arduino-nRF52-0.7.0.tar.gz",
- "checksum": "MD5:7316605161783e2b944e08fc44c7b6f8",
- "size": "1487463",
- "boards": [
- {"name": "BBC micro:bit"},
- {"name": "BBC micro:bit v2"},
- {"name": "Bluz DK"},
- {"name": "Calliope mini"},
- {"name": "decaWave DWM1001 Module Development Board"},
- {"name": "Electronut labs bluey"},
- {"name": "Electronut labs hackaBLE"},
- {"name": "Electronut labs hackaBLE v2"},
- {"name": "Generic nRF51822"},
- {"name": "Generic nRF52823"},
- {"name": "Generic nRF52833"},
- {"name": "OSHChip"},
- {"name": "ng-beacon"},
- {"name": "nRF51 Dongle"},
- {"name": "nRF51822 Development Kit"},
- {"name": "nRF52 DK"},
- {"name": "Nordic Beacon Kit"},
- {"name": "RedBear BLE Nano 2"},
- {"name": "RedBear Blend 2"},
- {"name": "RedBearLab BLE Nano"},
- {"name": "RedBearLab nRF51822"},
- {"name": "Seeed Arch Link"},
- {"name": "Sino:bit"},
- {"name": "Taida Century nRF52 mini board"},
- {"name": "TinyBLE"},
- {"name": "Waveshare BLE400"}
- ],
- "toolsDependencies": [
- {
- "packager": "sandeepmistry",
- "name": "gcc-arm-none-eabi",
- "version": "5_2-2015q4"
- },
- {
- "packager": "sandeepmistry",
- "name": "openocd",
- "version": "0.10.0-dev.nrf5"
- }
- ]
- },
- {
- "name": "Nordic Semiconductor nRF5 Boards",
- "architecture": "nRF5",
- "version": "0.8.0",
- "category": "Contributed",
- "help": {
- "online": "https://github.com/sandeepmistry/arduino-nRF5/issues"
- },
- "url": "https://github.com/sandeepmistry/arduino-nRF5/archive/0.8.0.tar.gz",
- "archiveFileName": "arduino-nRF52-0.8.0.tar.gz",
- "checksum": "MD5:84da4097f5518bcaa0752ff31927504f",
- "size": "1488561",
- "boards": [
- {"name": "BBC micro:bit"},
- {"name": "BBC micro:bit v2"},
- {"name": "Bluz DK"},
- {"name": "Calliope mini"},
- {"name": "Calliope mini V3"},
- {"name": "decaWave DWM1001 Module Development Board"},
- {"name": "Electronut labs bluey"},
- {"name": "Electronut labs hackaBLE"},
- {"name": "Electronut labs hackaBLE v2"},
- {"name": "Generic nRF51822"},
- {"name": "Generic nRF52823"},
- {"name": "Generic nRF52833"},
- {"name": "OSHChip"},
- {"name": "ng-beacon"},
- {"name": "nRF51 Dongle"},
- {"name": "nRF51822 Development Kit"},
- {"name": "nRF52 DK"},
- {"name": "Nordic Beacon Kit"},
- {"name": "RedBear BLE Nano 2"},
- {"name": "RedBear Blend 2"},
- {"name": "RedBearLab BLE Nano"},
- {"name": "RedBearLab nRF51822"},
- {"name": "Seeed Arch Link"},
- {"name": "Sino:bit"},
- {"name": "Taida Century nRF52 mini board"},
- {"name": "TinyBLE"},
- {"name": "Waveshare BLE400"}
- ],
- "toolsDependencies": [
- {
- "packager": "sandeepmistry",
- "name": "gcc-arm-none-eabi",
- "version": "5_2-2015q4"
- },
- {
- "packager": "sandeepmistry",
- "name": "openocd",
- "version": "0.10.0-dev.nrf5"
- }
- ]
- }
- ],
- "tools":[
- {
- "name": "gcc-arm-none-eabi",
- "version": "5_2-2015q4",
- "systems": [
- {
- "host": "i386-apple-darwin11",
- "url": "https://github.com/sandeepmistry/arduino-nRF5/releases/download/tools/gcc-arm-none-eabi-5_2-2015q4-20151219-mac.tar.bz2",
- "archiveFileName": "gcc-arm-none-eabi-5_2-2015q4-20151219-mac.tar.bz2",
- "size": "96372129",
- "checksum": "MD5:603bcce8e59683ac27054b3197a53254"
- },
- {
- "host": "i686-linux-gnu",
- "url": "https://github.com/sandeepmistry/arduino-nRF5/releases/download/tools/gcc-arm-none-eabi-5_2-2015q4-20151219-linux.tar.bz2",
- "archiveFileName": "gcc-arm-none-eabi-5_2-2015q4-20151219-linux.tar.bz2",
- "size": "92811866",
- "checksum": "MD5:f88caac80b4444a17344f57ccb760b90"
- },
- {
- "host": "x86_64-pc-linux-gnu",
- "url": "https://github.com/sandeepmistry/arduino-nRF5/releases/download/tools/gcc-arm-none-eabi-5_2-2015q4-20151219-linux.tar.bz2",
- "archiveFileName": "gcc-arm-none-eabi-5_2-2015q4-20151219-linux.tar.bz2",
- "size": "92811866",
- "checksum": "MD5:f88caac80b4444a17344f57ccb760b90"
- },
- {
- "host": "i686-mingw32",
- "url": "https://github.com/sandeepmistry/arduino-nRF5/releases/download/tools/gcc-arm-none-eabi-5_2-2015q4-20151219-win32.tar.bz2",
- "archiveFileName": "gcc-arm-none-eabi-5_2-2015q4-20151219-win32.tar.bz2",
- "size": "102981732",
- "checksum": "MD5:32d950225b6c7c886f6225c1fc578934"
- }
- ]
- },
- {
- "name": "openocd",
- "version": "0.10.0-dev.nrf5",
- "systems": [
- {
- "host": "i386-apple-darwin11",
- "url": "https://github.com/sandeepmistry/arduino-nRF5/releases/download/tools/openocd-osx-0.10.0-dev-nrf5.tar.gz",
- "archiveFileName": "openocd-osx-0.10.0-dev-nrf5.tar.gz",
- "size": "1345243",
- "checksum": "MD5:3ffaa4e7cd4b96770eec65002c5959e3"
- },
- {
- "host": "i686-linux-gnu",
- "url": "https://github.com/sandeepmistry/arduino-nRF5/releases/download/tools/openocd-linux32-0.10.0-dev-nrf5.tar.gz",
- "archiveFileName": "openocd-linux32-0.10.0-dev-nrf5.tar.gz",
- "size": "3585042",
- "checksum": "MD5:02b3f4a3004cae86631bf13837c84504"
- },
- {
- "host": "x86_64-pc-linux-gnu",
- "url": "https://github.com/sandeepmistry/arduino-nRF5/releases/download/tools/openocd-linux32-0.10.0-dev-nrf5.tar.gz",
- "archiveFileName": "openocd-linux32-0.10.0-dev-nrf5.tar.gz",
- "size": "3585042",
- "checksum": "MD5:02b3f4a3004cae86631bf13837c84504"
- },
- {
- "host": "i686-mingw32",
- "url": "https://github.com/sandeepmistry/arduino-nRF5/releases/download/tools/openocd-win32-0.10.0-dev-nrf5.tar.gz",
- "archiveFileName": "openocd-win32-0.10.0-dev-nrf5.tar.gz",
- "size": "5498373",
- "checksum": "MD5:3acd3b08afda2bb09e75a0de5ac7c3cd"
- }
- ]
- }
- ]
- }
- ]
-}
diff --git a/extras/ide-tools/nRF5FlashSoftDevice.java b/extras/ide-tools/nRF5FlashSoftDevice.java
index c8377fd8..b574f719 100644
--- a/extras/ide-tools/nRF5FlashSoftDevice.java
+++ b/extras/ide-tools/nRF5FlashSoftDevice.java
@@ -1,4 +1,4 @@
-package com.github.sandeepmistry.arduino.nRF5;
+package com.github.RMESS.arduino.nRF5;
import cc.arduino.packages.Uploader;
import cc.arduino.packages.uploaders.SerialUploader;
@@ -82,7 +82,7 @@ public void run() {
}
String programmer = PreferencesData.get("programmer");
- if (programmer == null || !programmer.startsWith("sandeepmistry:")) {
+ if (programmer == null || !programmer.startsWith("RMESS:")) {
editor.statusError("Unsupported programmer!");
return;
}
diff --git a/libraries/Wire/Wire_nRF52.cpp b/libraries/Wire/Wire_nRF52.cpp
old mode 100755
new mode 100644
index a54c201e..9df86999
--- a/libraries/Wire/Wire_nRF52.cpp
+++ b/libraries/Wire/Wire_nRF52.cpp
@@ -401,7 +401,7 @@ void TwoWire::onService(void)
}
}
-TwoWire Wire(NRF_TWIM1, NRF_TWIS1, SPIM1_SPIS1_TWIM1_TWIS1_SPI1_TWI1_IRQn, PIN_WIRE_SDA, PIN_WIRE_SCL);
+TwoWire Wire(NRF_TWIM0, NRF_TWIS0, SPIM0_SPIS0_TWIM0_TWIS0_SPI0_TWI0_IRQn, PIN_WIRE_SDA, PIN_WIRE_SCL);
#if WIRE_INTERFACES_COUNT > 0
extern "C"
diff --git a/platform.txt b/platform.txt
index bf767bf5..45717158 100644
--- a/platform.txt
+++ b/platform.txt
@@ -1,5 +1,6 @@
# Copyright (c) 2014-2015 Arduino LLC. All right reserved.
# Copyright (c) 2016 Sandeep Mistry All right reserved.
+# Copyright (c) 2023 IRIT RMESS All right reserved.
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
@@ -65,6 +66,10 @@ compiler.ar.extra_flags=
compiler.elf2bin.extra_flags=
compiler.elf2hex.extra_flags=
+# Add support of precompiled Archives (Can be overriden)
+compiler.libraries.ldflags=
+compiler.libraries.ldflags_start=
+compiler.libraries.ldflags_end=
# Compile patterns
# ----------------
@@ -82,7 +87,7 @@ recipe.S.o.pattern="{compiler.path}{compiler.S.cmd}" {compiler.S.flags} -DF_CPU=
recipe.ar.pattern="{compiler.path}{compiler.ar.cmd}" {compiler.ar.flags} {compiler.ar.extra_flags} "{archive_file_path}" "{object_file}"
## Combine gc-sections, archives, and objects
-recipe.c.combine.pattern="{compiler.path}{compiler.c.elf.cmd}" "-L{build.path}" {compiler.c.elf.flags} {compiler.c.elf.extra_flags} "-L{nrf.sdk.path}/components/toolchain/gcc/" "-L{nrf.sdk.path}/components/softdevice/{softdevice}/toolchain/armgcc/" "-T{build.ldscript}" "-Wl,-Map,{build.path}/{build.project_name}.map" --specs=nano.specs --specs=nosys.specs {compiler.ldflags} -o "{build.path}/{build.project_name}.elf" {object_files} -Wl,--start-group -lm "{build.path}/{archive_file}" -Wl,--end-group
+recipe.c.combine.pattern="{compiler.path}{compiler.c.elf.cmd}" "-L{build.path}" {compiler.c.elf.flags} {compiler.c.elf.extra_flags} "-L{nrf.sdk.path}/components/toolchain/gcc/" "-L{nrf.sdk.path}/components/softdevice/{softdevice}/toolchain/armgcc/" "-T{build.ldscript}" "-Wl,-Map,{build.path}/{build.project_name}.map" --specs=nano.specs --specs=nosys.specs {compiler.ldflags} -o "{build.path}/{build.project_name}.elf" {object_files} -Wl,--start-group {compiler.libraries.ldflags_start} {compiler.libraries.ldflags} {compiler.libraries.ldflags_end} -lm "{build.path}/{archive_file}" -Wl,--end-group
## Create output (bin file)
recipe.objcopy.bin.pattern="{compiler.path}{compiler.elf2bin.cmd}" {compiler.elf2bin.flags} {compiler.elf2bin.extra_flags} "{build.path}/{build.project_name}.elf" "{build.path}/{build.project_name}.bin"
diff --git a/variants/DWM1001-DEV/variant.cpp b/variants/DWM1001-DEV/variant.cpp
index c5790a28..fe2db199 100644
--- a/variants/DWM1001-DEV/variant.cpp
+++ b/variants/DWM1001-DEV/variant.cpp
@@ -21,8 +21,8 @@
const uint32_t g_ADigitalPinMap[] = {
// D0 - D8
- 12,
- 27,
+ 12, // I2C address LSB for accelerometer and barometer in DWM1003
+ 27, // CS/I2C enable for magnetometer in DWM1003
23,
13,
15,
@@ -59,8 +59,8 @@ const uint32_t g_ADigitalPinMap[] = {
// LEDS
14,
22,
- 30,
- 31,
+ 30, // accelerometer CS/I2C enable in dwm1003
+ 31, // barometer CS/I2C enable in dwm1003
// BTN
2
diff --git a/variants/DWM1001-DEV/variant.h b/variants/DWM1001-DEV/variant.h
index 78a8d3d1..d4058170 100644
--- a/variants/DWM1001-DEV/variant.h
+++ b/variants/DWM1001-DEV/variant.h
@@ -16,6 +16,7 @@
#ifndef _VARIANT_DWM1001_DEV_
#define _VARIANT_DWM1001_DEV_
+#include "../DWM1001/variant.h"
/** Master clock frequency */
#define VARIANT_MCK (64000000ul)
@@ -39,11 +40,13 @@ extern "C"
// LEDs
#define PIN_LEDRT (22)
+#define PIN_LEDR (22)
#define PIN_LEDRB (23)
#define PIN_LEDG (24)
#define PIN_LEDB (25)
#define LED_BUILTIN PIN_LEDRT
static const uint8_t LED_RED_TOP = PIN_LEDRT ;
+static const uint8_t LED_RED = PIN_LEDR ;
static const uint8_t LED_RED_BOT = PIN_LEDRB ;
static const uint8_t LED_GREEN = PIN_LEDG ;
static const uint8_t LED_BLUE = PIN_LEDB ;
@@ -53,6 +56,12 @@ static const uint8_t LED_BLUE = PIN_LEDB ;
static const uint8_t BTN = PIN_BUTTON ;
+// DWM1003 peripherals
+#define PIN_DWM1003_I2C_LSB_ACC_BAR (0)
+#define PIN_DWM1003_I2C_ENABLE_MAG (1)
+#define PIN_DWM1003_I2C_ENABLE_ACC (24)
+#define PIN_DWM1003_I2C_ENABLE_BAR (25)
+
/*
* Analog pins
*/
@@ -63,66 +72,6 @@ static const uint8_t A0 = PIN_A0 ; // AIN2
static const uint8_t A1 = PIN_A1 ; // AIN1
#define ADC_RESOLUTION 14
-/*
- * Serial interfaces
- */
-// Serial
-#define PIN_SERIAL_RX (13)
-#define PIN_SERIAL_TX (14)
-
-/*
- * SPI Interfaces
- */
-#define SPI_INTERFACES_COUNT 2
-
-#define PIN_SPI_MISO (8)
-#define PIN_SPI_MOSI (7)
-#define PIN_SPI_SCK (PIN_A0)
-
-static const uint8_t SS = PIN_A1 ;
-static const uint8_t MOSI = PIN_SPI_MOSI ;
-static const uint8_t MISO = PIN_SPI_MISO ;
-static const uint8_t SCK = PIN_SPI_SCK ;
-
-#define PIN_SPI1_SS (15)
-#define PIN_SPI1_MISO (16)
-#define PIN_SPI1_MOSI (17)
-#define PIN_SPI1_SCK (18)
-
-static const uint8_t SS1 = PIN_SPI1_SS ;
-static const uint8_t MOSI1 = PIN_SPI1_MOSI ;
-static const uint8_t MISO1 = PIN_SPI1_MISO ;
-static const uint8_t SCK1 = PIN_SPI1_SCK ;
-
-/*
- * Wire Interfaces
- */
-#define WIRE_INTERFACES_COUNT 1
-
-#define PIN_WIRE_SDA (11)
-#define PIN_WIRE_SCL (12)
-
-static const uint8_t SDA = PIN_WIRE_SDA;
-static const uint8_t SCL = PIN_WIRE_SCL;
-
-/*
- * Reset Button at P0.21
- */
-#define RESET_PIN 21
-
-/*
- * Other DWM1001 internal IOs
- */
-#define PIN_DW_RST (19)
-#define PIN_DW_IRQ (20)
-
-static const uint8_t DW_RST = PIN_DW_RST;
-static const uint8_t DW_IRQ = PIN_DW_IRQ;
-
-#define PIN_ACC_IRQ (21)
-
-static const uint8_t ACC_IRQ = PIN_ACC_IRQ;
-
#ifdef __cplusplus
}
#endif
diff --git a/variants/DWM1001/variant.h b/variants/DWM1001/variant.h
new file mode 100644
index 00000000..e4695ef4
--- /dev/null
+++ b/variants/DWM1001/variant.h
@@ -0,0 +1,104 @@
+/*
+ Copyright (c) 2014-2015 Arduino LLC. All right reserved.
+ Copyright (c) 2016 Sandeep Mistry All right reserved.
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU Lesser General Public License for more details.
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+*/
+
+#ifndef _VARIANT_DWM1001_
+#define _VARIANT_DWM1001_
+#define UWB_MODULE_DWM1001
+
+/** Master clock frequency */
+#define VARIANT_MCK (64000000ul)
+
+/*----------------------------------------------------------------------------
+ * Headers
+ *----------------------------------------------------------------------------*/
+
+#include "WVariant.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif // __cplusplus
+
+/*
+ * Serial interfaces
+ */
+// Serial
+#define PIN_SERIAL_RX (13)
+#define PIN_SERIAL_TX (14)
+
+/*
+ * SPI Interfaces
+ */
+#define SPI_INTERFACES_COUNT 2
+
+#define PIN_SPI_MISO (8)
+#define PIN_SPI_MOSI (7)
+#define PIN_SPI_SCK (9)
+#define PIN_SPI_SS (10)
+
+static const uint8_t SS = PIN_SPI_SS ;
+static const uint8_t MOSI = PIN_SPI_MOSI ;
+static const uint8_t MISO = PIN_SPI_MISO ;
+static const uint8_t SCK = PIN_SPI_SCK ;
+
+#define PIN_SPI1_SS (15)
+#define PIN_SPI1_MISO (16)
+#define PIN_SPI1_MOSI (17)
+#define PIN_SPI1_SCK (18)
+
+static const uint8_t SS1 = PIN_SPI1_SS ;
+static const uint8_t MOSI1 = PIN_SPI1_MOSI ;
+static const uint8_t MISO1 = PIN_SPI1_MISO ;
+static const uint8_t SCK1 = PIN_SPI1_SCK ;
+
+/*
+ * Wire Interfaces
+ */
+#define WIRE_INTERFACES_COUNT 1
+
+#define PIN_WIRE_SDA (11)
+#define PIN_WIRE_SCL (12)
+
+static const uint8_t SDA = PIN_WIRE_SDA;
+static const uint8_t SCL = PIN_WIRE_SCL;
+
+/*
+ * Reset Button at P0.21
+ */
+#define RESET_PIN 21
+
+/*
+ * Other DWM1001 internal IOs
+ */
+#define PIN_DW_RST (19)
+#define PIN_DW_IRQ (20)
+
+static const uint8_t DW_RST = PIN_DW_RST;
+static const uint8_t DW_IRQ = PIN_DW_IRQ;
+
+#define PIN_ACC_IRQ (21)
+
+static const uint8_t ACC_IRQ = PIN_ACC_IRQ;
+
+#ifdef __cplusplus
+}
+#endif
+
+/*----------------------------------------------------------------------------
+ * Arduino objects - C++ only
+ *----------------------------------------------------------------------------*/
+
+#endif
diff --git a/variants/DWM3001CDK/pins_arduino.h b/variants/DWM3001CDK/pins_arduino.h
new file mode 100644
index 00000000..3ef4d4a9
--- /dev/null
+++ b/variants/DWM3001CDK/pins_arduino.h
@@ -0,0 +1,17 @@
+/*
+ Copyright (c) 2014-2015 Arduino LLC. All right reserved.
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU Lesser General Public License for more details.
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+*/
+
+// API compatibility
+#include "variant.h"
diff --git a/variants/DWM3001CDK/variant.cpp b/variants/DWM3001CDK/variant.cpp
new file mode 100644
index 00000000..3e4a052e
--- /dev/null
+++ b/variants/DWM3001CDK/variant.cpp
@@ -0,0 +1,50 @@
+/*
+ Copyright (c) 2014-2015 Arduino LLC. All right reserved.
+ Copyright (c) 2016 Sandeep Mistry All right reserved.
+ Copyright (c) 2023 IRIT RMESS All right reserved.
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+*/
+
+#include "variant.h"
+
+#define NRF_GPIO_PIN_MAP(port, pin) ((port << 5) | (pin & 0x1F))
+
+const uint32_t g_ADigitalPinMap[] = {
+ // D9 - D12 (LEDS)
+ NRF_GPIO_PIN_MAP(0,4), // D9
+ NRF_GPIO_PIN_MAP(0,5), // D10
+ NRF_GPIO_PIN_MAP(0,22), // D11
+ NRF_GPIO_PIN_MAP(0,14), // D12
+
+ // User button
+ NRF_GPIO_PIN_MAP(0,2), // Button 2
+
+ // RX TX
+ NRF_GPIO_PIN_MAP(0,15), // RX
+ NRF_GPIO_PIN_MAP(0,19), // TX
+
+ // SPI
+ NRF_GPIO_PIN_MAP(1,6), // CS
+ NRF_GPIO_PIN_MAP(0,3), // CLK
+ NRF_GPIO_PIN_MAP(0,8), // MOSI
+ NRF_GPIO_PIN_MAP(0,29), // MISO
+
+ // Others
+ NRF_GPIO_PIN_MAP(0,25), // DW RESET
+ NRF_GPIO_PIN_MAP(1,2), // DW IRQ
+ NRF_GPIO_PIN_MAP(1,19), // DW WAKEUP
+
+};
diff --git a/variants/DWM3001CDK/variant.h b/variants/DWM3001CDK/variant.h
new file mode 100644
index 00000000..7130643d
--- /dev/null
+++ b/variants/DWM3001CDK/variant.h
@@ -0,0 +1,94 @@
+/*
+ Copyright (c) 2014-2015 Arduino LLC. All right reserved.
+ Copyright (c) 2016 Sandeep Mistry All right reserved.
+ Copyright (c) 2023 IRIT RMESS All right reserved.
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU Lesser General Public License for more details.
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+*/
+
+#ifndef _VARIANT_DWM3001CDK_
+#define _VARIANT_DWM3001CDK_
+
+/** Master clock frequency */
+#define VARIANT_MCK (64000000ul)
+
+
+/*----------------------------------------------------------------------------
+ * Headers
+ *----------------------------------------------------------------------------*/
+
+#include "WVariant.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif // __cplusplus
+
+
+// Number of pins defined in PinDescription array
+#define PINS_COUNT (14u)
+#define NUM_DIGITAL_PINS (14u)
+#define NUM_ANALOG_INPUTS (0u)
+#define NUM_ANALOG_OUTPUTS (0u)
+
+// LEDs
+#define PIN_LED_GREEN (0)
+#define PIN_LED_BLUE (1)
+#define PIN_LED_RED_TOP (2)
+#define PIN_LED_RED_BOT (3)
+
+static const uint8_t GREEN_LED = PIN_LED_GREEN;
+static const uint8_t BLUE_LED = PIN_LED_BLUE;
+static const uint8_t RED_LED_BOT = PIN_LED_RED_TOP;
+static const uint8_t RED_LED_TOP = PIN_LED_RED_BOT;
+static const uint8_t RED_LED = PIN_LED_RED_BOT;
+
+#define LED_BUILTIN PIN_LED_GREEN
+
+
+// User buttons
+#define PIN_BUTTON (4)
+
+static const uint8_t USER_BUTTON = PIN_BUTTON ;
+
+
+// Serial UART
+#define PIN_SERIAL_RX (5)
+#define PIN_SERIAL_TX (6)
+
+
+
+// SPI interface
+#define SPI_INTERFACES_COUNT 1
+
+// SPI to DW
+#define PIN_SPI_MISO (10)
+#define PIN_SPI_MOSI (9)
+#define PIN_SPI_SCK (8)
+#define PIN_SPI_CS (7)
+
+static const uint8_t SS = PIN_SPI_CS ;
+static const uint8_t MOSI = PIN_SPI_MOSI ;
+static const uint8_t MISO = PIN_SPI_MISO ;
+static const uint8_t SCK = PIN_SPI_SCK ;
+
+// Other (DW module I/O)
+#define PIN_DWM_RESET (11)
+#define PIN_DWM_IRQ (12)
+#define PIN_DWM_WAKEUP (13)
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // _VARIANT_NRF52840DK_
diff --git a/variants/Yahu/pins_arduino.h b/variants/Yahu/pins_arduino.h
new file mode 100644
index 00000000..3ef4d4a9
--- /dev/null
+++ b/variants/Yahu/pins_arduino.h
@@ -0,0 +1,17 @@
+/*
+ Copyright (c) 2014-2015 Arduino LLC. All right reserved.
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU Lesser General Public License for more details.
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+*/
+
+// API compatibility
+#include "variant.h"
diff --git a/variants/Yahu/variant.cpp b/variants/Yahu/variant.cpp
new file mode 100644
index 00000000..0e52e388
--- /dev/null
+++ b/variants/Yahu/variant.cpp
@@ -0,0 +1,53 @@
+/*
+ Copyright (c) 2014-2015 Arduino LLC. All right reserved.
+ Copyright (c) 2016 Sandeep Mistry All right reserved.
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+*/
+
+#include "variant.h"
+
+const uint32_t g_ADigitalPinMap[] = {
+ // D0 - D8
+ 12, // Arduino pin #0 LED_GREEN
+ 27, // Arduino pin #1
+ 23, // Arduino pin #2
+ 13, // Arduino pin #3 LED_BLUE
+ 15, // Arduino pin #4 (LoRa shield IRQ)
+ 8, // Arduino pin #5 LED_RED
+ 26, // Arduino pin #6
+ 6, // Arduino pin #7 EXTERNAL SPI MOSI
+ 7, // Arduino pin #8 EXTERNAL SPI MISO
+ 4, // Arduino pin #9 EXTERNAL SPI SCK, A0, AIN2,
+ 3, // Arduino pin #10 EXTERNAL SPI SS, A1, AIN1,
+ 29, // Arduino pin #11 I2C SDA
+ 28, // Arduino pin #12 I2C SCL
+ 11, // Arduino pin #13 Serial RX
+ 5, // Arduino pin #14 Serial TX
+ 17, // Arduino pin #15 DWM1000 SPI SS1
+ 18, // Arduino pin #16 DWM1000 SPI MISO1
+ 20, // Arduino pin #17 DWM1000 SPI MOSI1
+ 16, // Arduino pin #18 DWM1000 SPI SCK1
+ 24, // Arduino pin #19 DWM1000 RESET
+ 19, // Arduino pin #20 DWM1000 IRQ
+ 25, // Arduino pin #21 ACCEL IRQ
+ 9, // Arduino pin #22
+ 10, // Arduino pin #23
+ 2, // Arduino pin #24
+ 14, // Arduino pin #25
+ 31, // Arduino pin #26
+ 30, // Arduino pin #27
+ 22 // Arduino pin #28
+};
diff --git a/variants/Yahu/variant.h b/variants/Yahu/variant.h
new file mode 100644
index 00000000..939dfbe9
--- /dev/null
+++ b/variants/Yahu/variant.h
@@ -0,0 +1,68 @@
+/*
+ Copyright (c) 2014-2015 Arduino LLC. All right reserved.
+ Copyright (c) 2016 Sandeep Mistry All right reserved.
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU Lesser General Public License for more details.
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+*/
+
+#ifndef _VARIANT_YAHU_
+#define _VARIANT_YAHU_
+#include "../DWM1001/variant.h"
+
+/** Master clock frequency */
+#define VARIANT_MCK (64000000ul)
+
+/*----------------------------------------------------------------------------
+ * Headers
+ *----------------------------------------------------------------------------*/
+
+#include "WVariant.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif // __cplusplus
+
+// Number of pins defined in PinDescription array
+#define PINS_COUNT (27u)
+#define NUM_DIGITAL_PINS (11u)
+#define NUM_ANALOG_INPUTS (2u)
+#define NUM_ANALOG_OUTPUTS (0u)
+
+// LEDs
+#define PIN_LEDR (5)
+#define PIN_LEDG (0)
+#define PIN_LEDB (3)
+#define LED_BUILTIN PIN_LEDB
+static const uint8_t LED_RED = PIN_LEDR ;
+static const uint8_t LED_GREEN = PIN_LEDG ;
+static const uint8_t LED_BLUE = PIN_LEDB ;
+
+/*
+ * Analog pins
+ */
+#define PIN_A0 (9)
+#define PIN_A1 (10)
+
+static const uint8_t A0 = PIN_A0 ; // AIN2
+static const uint8_t A1 = PIN_A1 ; // AIN1
+#define ADC_RESOLUTION 14
+
+#ifdef __cplusplus
+}
+#endif
+
+/*----------------------------------------------------------------------------
+ * Arduino objects - C++ only
+ *----------------------------------------------------------------------------*/
+
+#endif
diff --git a/variants/nRF52840DK/pins_arduino.h b/variants/nRF52840DK/pins_arduino.h
new file mode 100644
index 00000000..3ef4d4a9
--- /dev/null
+++ b/variants/nRF52840DK/pins_arduino.h
@@ -0,0 +1,17 @@
+/*
+ Copyright (c) 2014-2015 Arduino LLC. All right reserved.
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU Lesser General Public License for more details.
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+*/
+
+// API compatibility
+#include "variant.h"
diff --git a/variants/nRF52840DK/variant.cpp b/variants/nRF52840DK/variant.cpp
new file mode 100644
index 00000000..417d0a37
--- /dev/null
+++ b/variants/nRF52840DK/variant.cpp
@@ -0,0 +1,105 @@
+/*
+ Copyright (c) 2014-2015 Arduino LLC. All right reserved.
+ Copyright (c) 2016 Sandeep Mistry All right reserved.
+ Copyright (c) 2023 IRIT RMESS All right reserved.
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+*/
+
+#include "variant.h"
+
+#define NRF_GPIO_PIN_MAP(port, pin) ((port << 5) | (pin & 0x1F))
+
+const uint32_t g_ADigitalPinMap[] = {
+ // D0 - D7 (P3)
+ NRF_GPIO_PIN_MAP(1,1), // D0
+ NRF_GPIO_PIN_MAP(1,2), // D1
+ NRF_GPIO_PIN_MAP(1,3), // D2
+ NRF_GPIO_PIN_MAP(1,4), // D3
+ NRF_GPIO_PIN_MAP(1,5), // D4
+ NRF_GPIO_PIN_MAP(1,6), // D5
+ NRF_GPIO_PIN_MAP(1,7), // D6
+ NRF_GPIO_PIN_MAP(1,8), // D7
+
+ // D8 - D13 (P4)
+ NRF_GPIO_PIN_MAP(1,10), // D8
+ NRF_GPIO_PIN_MAP(1,11), // D9
+ NRF_GPIO_PIN_MAP(1,12), // D10
+ NRF_GPIO_PIN_MAP(1,13), // D11
+ NRF_GPIO_PIN_MAP(1,14), // D12
+ NRF_GPIO_PIN_MAP(1,15), // D13
+
+ // SDA - SCL (P4)
+ NRF_GPIO_PIN_MAP(0,26), // SDA
+ NRF_GPIO_PIN_MAP(0,27), // SCL
+
+ // AREF (P4)
+ NRF_GPIO_PIN_MAP(0,2), // AREF
+
+ // A0 - A5 (P2)
+ NRF_GPIO_PIN_MAP(0,3), // A0
+ NRF_GPIO_PIN_MAP(0,4), // A1
+ NRF_GPIO_PIN_MAP(0,28), // A2
+ NRF_GPIO_PIN_MAP(0,29), // A3
+ NRF_GPIO_PIN_MAP(0,30), // A4
+ NRF_GPIO_PIN_MAP(0,31), // A5
+
+ // NFC Ports (P6)
+ NRF_GPIO_PIN_MAP(0,9), // NFC1
+ NRF_GPIO_PIN_MAP(0,10), // NFC2
+
+ // UART Ports (P6)
+ NRF_GPIO_PIN_MAP(0,8), // RXD
+ NRF_GPIO_PIN_MAP(0,7), // CTS
+ NRF_GPIO_PIN_MAP(0,6), // TXD
+ NRF_GPIO_PIN_MAP(0,5), // RTS
+
+ // 37.768kHz crystal oscillator (NOT AVAILABLE ON CONNECTORS just FYI) (P6)
+ //NRF_GPIO_PIN_MAP(0,0),
+ //NRF_GPIO_PIN_MAP(0,1),
+
+ // LEDS port (P24)
+ NRF_GPIO_PIN_MAP(0,13), // LED1
+ NRF_GPIO_PIN_MAP(0,14), // LED2
+ NRF_GPIO_PIN_MAP(0,15), // LED3
+ NRF_GPIO_PIN_MAP(0,16), // LED4
+
+ // External memory (P24)
+ NRF_GPIO_PIN_MAP(0,17), // QSPI_CS
+ NRF_GPIO_PIN_MAP(0,19), // QSPI_CLK
+ NRF_GPIO_PIN_MAP(0,20), // QSPI_DIO0
+ NRF_GPIO_PIN_MAP(0,21), // QSPI_DIO1
+ NRF_GPIO_PIN_MAP(0,22), // QSPI_DIO2
+ NRF_GPIO_PIN_MAP(0,23), // QSPI_DIO3
+
+ // Buttons (P24)
+ NRF_GPIO_PIN_MAP(0,11), // Button 1 | TRACE DATA 2
+ NRF_GPIO_PIN_MAP(0,12), // Button 2 | TRACE DATA 1
+ NRF_GPIO_PIN_MAP(0,24), // Button 3
+ NRF_GPIO_PIN_MAP(0,25), // Button 4
+
+ // Misc Pins (P24)
+ NRF_GPIO_PIN_MAP(0,18), // RESET
+ NRF_GPIO_PIN_MAP(1,0), // TRACE DATA 0
+ NRF_GPIO_PIN_MAP(1,9), // TRACE DATA 3
+
+ // Misc Pins (P5)
+ NRF_GPIO_PIN_MAP(1,14), // PIN 1
+ NRF_GPIO_PIN_MAP(1,15), // PIN 3
+ NRF_GPIO_PIN_MAP(1,13) // PIN 4
+
+
+// 49 usable pins
+};
diff --git a/variants/nRF52840DK/variant.h b/variants/nRF52840DK/variant.h
new file mode 100644
index 00000000..31622cb2
--- /dev/null
+++ b/variants/nRF52840DK/variant.h
@@ -0,0 +1,181 @@
+/*
+ Copyright (c) 2014-2015 Arduino LLC. All right reserved.
+ Copyright (c) 2016 Sandeep Mistry All right reserved.
+ Copyright (c) 2023 IRIT RMESS All right reserved.
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU Lesser General Public License for more details.
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+*/
+
+#ifndef _VARIANT_NRF52840DK_
+#define _VARIANT_NRF52840DK_
+
+/** Master clock frequency */
+#ifdef NRF52
+#define VARIANT_MCK (64000000ul)
+#else
+#define VARIANT_MCK (16000000ul)
+#endif
+
+/*----------------------------------------------------------------------------
+ * Headers
+ *----------------------------------------------------------------------------*/
+
+#include "WVariant.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif // __cplusplus
+
+
+// Number of pins defined in PinDescription array
+#define PINS_COUNT (49u)
+#define NUM_DIGITAL_PINS (49u)
+#define NUM_ANALOG_INPUTS (6u)
+#define NUM_ANALOG_OUTPUTS (0u)
+
+// LEDs
+#define PIN_LED_1 (29)
+#define PIN_LED_2 (30)
+#define PIN_LED_3 (31)
+#define PIN_LED_4 (32)
+
+static const uint8_t LED_1 = PIN_LED_1;
+static const uint8_t LED_2 = PIN_LED_2;
+static const uint8_t LED_3 = PIN_LED_3;
+static const uint8_t LED_4 = PIN_LED_4;
+#define LED_BUILTIN PIN_LED_1
+
+
+ // Analog pins
+#define PIN_ANALOG_0 (17)
+#define PIN_ANALOG_1 (18)
+#define PIN_ANALOG_2 (19)
+#define PIN_ANALOG_3 (20)
+#define PIN_ANALOG_4 (21)
+#define PIN_ANALOG_5 (22)
+
+static const uint8_t A0 = PIN_ANALOG_0 ;
+static const uint8_t A1 = PIN_ANALOG_1 ;
+static const uint8_t A2 = PIN_ANALOG_2 ;
+static const uint8_t A3 = PIN_ANALOG_3 ;
+static const uint8_t A4 = PIN_ANALOG_4 ;
+static const uint8_t A5 = PIN_ANALOG_5 ;
+
+#ifdef NRF52
+#define ADC_RESOLUTION 14
+#else
+#define ADC_RESOLUTION 10
+#endif
+
+
+// Digital pins
+#define PIN_DIGITAL_0 (0)
+#define PIN_DIGITAL_1 (1)
+#define PIN_DIGITAL_2 (2)
+#define PIN_DIGITAL_3 (3)
+#define PIN_DIGITAL_4 (4)
+#define PIN_DIGITAL_5 (5)
+#define PIN_DIGITAL_6 (6)
+#define PIN_DIGITAL_7 (7)
+#define PIN_DIGITAL_8 (8)
+#define PIN_DIGITAL_9 (9)
+#define PIN_DIGITAL_10 (10)
+#define PIN_DIGITAL_11 (11)
+#define PIN_DIGITAL_12 (12)
+#define PIN_DIGITAL_13 (13)
+
+static const uint8_t D0 = PIN_DIGITAL_0 ;
+static const uint8_t D1 = PIN_DIGITAL_1 ;
+static const uint8_t D2 = PIN_DIGITAL_2 ;
+static const uint8_t D3 = PIN_DIGITAL_3 ;
+static const uint8_t D4 = PIN_DIGITAL_4 ;
+static const uint8_t D5 = PIN_DIGITAL_5 ;
+static const uint8_t D6 = PIN_DIGITAL_6 ;
+static const uint8_t D7 = PIN_DIGITAL_7 ;
+static const uint8_t D8 = PIN_DIGITAL_8 ;
+static const uint8_t D9 = PIN_DIGITAL_9 ;
+static const uint8_t D10 = PIN_DIGITAL_10 ;
+static const uint8_t D11 = PIN_DIGITAL_11 ;
+static const uint8_t D12 = PIN_DIGITAL_12 ;
+static const uint8_t D13 = PIN_DIGITAL_13 ;
+
+// User buttons
+#define PIN_BUTTON_1 (39)
+#define PIN_BUTTON_2 (40)
+#define PIN_BUTTON_3 (41)
+#define PIN_BUTTON_4 (42)
+
+static const uint8_t BUTTON_1 = PIN_BUTTON_1 ;
+static const uint8_t BUTTON_2 = PIN_BUTTON_2 ;
+static const uint8_t BUTTON_3 = PIN_BUTTON_3 ;
+static const uint8_t BUTTON_4 = PIN_BUTTON_4 ;
+
+
+// Serial UART
+#define PIN_SERIAL_RX (25)
+#define PIN_SERIAL_TX (27)
+#define PIN_SERIAL_CTS (26)
+#define PIN_SERIAL_RTS (28)
+
+
+// SPI interface
+#define SPI_INTERFACES_COUNT 1
+
+// Fist standard SPI (Arduino compatible)
+#define PIN_SPI_MISO (12) // P1.14
+#define PIN_SPI_MOSI (11) // P1.13
+#define PIN_SPI_SCK (13) // P1.15
+#define PIN_SPI_CS (10) // P1.12
+
+static const uint8_t SS = PIN_SPI_CS ;
+static const uint8_t MOSI = PIN_SPI_MOSI ;
+static const uint8_t MISO = PIN_SPI_MISO ;
+static const uint8_t SCK = PIN_SPI_SCK ;
+
+// Second SPI interface for external memory (Quad SPI)
+#define PIN_QSPI_SCK (34) // P0.19
+#define PIN_QSPI_CS (33) // P0.17
+#define PIN_QSPI_DIO0 (35) // P0.20
+#define PIN_QSPI_DIO1 (36) // P0.21
+#define PIN_QSPI_DIO2 (37) // P0.22
+#define PIN_QSPI_DIO3 (38) // P0.23
+
+static const uint8_t QSS = PIN_QSPI_CS ;
+static const uint8_t QSCK = PIN_QSPI_SCK ;
+static const uint8_t QDI0 = PIN_QSPI_DIO0 ;
+static const uint8_t QDI1 = PIN_QSPI_DIO1 ;
+static const uint8_t QDI2 = PIN_QSPI_DIO2 ;
+static const uint8_t QDI3 = PIN_QSPI_DIO3 ;
+
+// Wires interface
+#define WIRE_INTERFACES_COUNT 1
+
+#define PIN_WIRE_SDA (14) // P0.20
+#define PIN_WIRE_SCL (15) // P0.21
+
+static const uint8_t SDA = PIN_WIRE_SDA;
+static const uint8_t SCL = PIN_WIRE_SCL;
+
+// NFC intefaces
+#define PIN_NFC_1 (23)
+#define PIN_NFC_2 (24)
+
+static const uint8_t NFC1 = PIN_NFC_1;
+static const uint8_t NFC2 = PIN_NFC_2;
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // _VARIANT_NRF52840DK_