From 64a5e2b1cb45f09fb12a02b9e45f21f0514598af Mon Sep 17 00:00:00 2001 From: h2zero Date: Wed, 10 Sep 2025 13:57:54 -0600 Subject: [PATCH] Update bootloader options --- boards/BT5032A_TB.json | 29 +++++++++++++--- boards/adafruit_clue_nrf52840.json | 32 ++++++++++++++++-- boards/adafruit_cplaynrf52840.json | 32 ++++++++++++++++-- boards/adafruit_feather_nrf52832.json | 29 +++++++++++++--- boards/adafruit_feather_nrf52840.json | 32 ++++++++++++++++-- boards/adafruit_feather_nrf52840_sense.json | 32 ++++++++++++++++-- boards/adafruit_itsybitsy_nrf52840.json | 32 ++++++++++++++++-- boards/bluey.json | 27 ++++++++++++++- boards/generic_nrf52832.json | 27 ++++++++++++++- boards/generic_nrf52833.json | 27 ++++++++++++++- boards/generic_nrf52840.json | 35 ++++++++++++++++++- boards/hackaBLE.json | 26 ++++++++++++++- boards/hackaBLE_v2.json | 27 ++++++++++++++- boards/nrf52832_dk.json | 27 ++++++++++++++- boards/nrf52833_dk.json | 27 ++++++++++++++- boards/nrf52840_dk.json | 35 ++++++++++++++++++- boards/redbear_blenano2.json | 27 ++++++++++++++- boards/redbear_blend2.json | 27 ++++++++++++++- boards/seeed_xiao_nrf52840_sense.json | 37 +++++++++++++-------- builder/frameworks/arduino/nrf5.py | 30 ++++++++++------- examples/BLE-client-test/platformio.ini | 12 +++---- examples/BLE-server-test/platformio.ini | 12 +++---- platform.json | 2 +- 23 files changed, 549 insertions(+), 74 deletions(-) diff --git a/boards/BT5032A_TB.json b/boards/BT5032A_TB.json index 126c8ee..69f9dde 100644 --- a/boards/BT5032A_TB.json +++ b/boards/BT5032A_TB.json @@ -10,9 +10,27 @@ "mcu": "nrf52832_xxaa", "variant": "BT5032A_TB" }, - "bootloaders": { - "adafruit": "0x7F000" - }, + "bootloaders": [ + { + "name": "adafruit_s132_v6", + "bootloader_file": "nrf52832_s132_v6_adabl.hex", + "linker_script": "nrf52832_s132_v6_adabl.ld", + "flags": "-DUSE_ADA_BL -DADA_SD_BL", + "max_size": 303104, + "max_ram_size": 51712 + }, + { + "name": "adafruit_serial", + "bootloader_file": "nrf52832_serial_adabl.hex", + "linker_script": "nrf52832_serial_adabl.ld", + "flags": "-DUSE_ADA_BL", + "max_size": 454656, + "max_ram_size": 65528 + } + ], + + "default_bootloader": "none", + "connectivity": [ "bluetooth" ], @@ -36,7 +54,10 @@ "stlink", "cmsis-dap", "blackmagic" - ] + ], + "use_1200bps_touch": false, + "require_upload_port": false, + "wait_for_upload_port": false }, "url": "https://www.ebyte.com/en/product-view-news.html?id=956", "vendor": "Ebyte" diff --git a/boards/adafruit_clue_nrf52840.json b/boards/adafruit_clue_nrf52840.json index 3d32a1c..1f9f4ca 100644 --- a/boards/adafruit_clue_nrf52840.json +++ b/boards/adafruit_clue_nrf52840.json @@ -25,9 +25,35 @@ "mcu": "nrf52840_xxaa", "variant": "clue_nrf52840" }, - "bootloaders": { - "adafruit": "0xFF000" - }, + "bootloaders": [ + { + "name": "adafruit_s140_v6", + "bootloader_file": "nrf52840_s140_v6_adabl.hex", + "linker_script": "nrf52840_s140_v6_adabl.ld", + "flags": "-DUSE_ADA_BL -DADA_SD_BL", + "max_size": 827392, + "max_ram_size": 237568 + }, + { + "name": "adafruit_s140_v7", + "bootloader_file": "nrf52840_s140_v7_adabl.hex", + "linker_script": "nrf52840_s140_v7_adabl.ld", + "flags": "-DUSE_ADA_BL -DADA_SD_BL", + "max_size": 823296, + "max_ram_size": 237568 + }, + { + "name": "adafruit_serial", + "bootloader_file": "nrf52840_serial_adabl.hex", + "linker_script": "nrf52840_serial_adabl.ld", + "flags": "-DUSE_ADA_BL", + "max_size": 978944, + "max_ram_size": 262136 + } + ], + + "default_bootloader": "adafruit_s140_v6", + "connectivity": [ "bluetooth" ], diff --git a/boards/adafruit_cplaynrf52840.json b/boards/adafruit_cplaynrf52840.json index 8aed876..311c165 100644 --- a/boards/adafruit_cplaynrf52840.json +++ b/boards/adafruit_cplaynrf52840.json @@ -25,9 +25,35 @@ "mcu": "nrf52840_xxaa", "variant": "circuitplayground_nrf52840" }, - "bootloaders": { - "adafruit": "0xFF000" - }, + "bootloaders": [ + { + "name": "adafruit_s140_v6", + "bootloader_file": "nrf52840_s140_v6_adabl.hex", + "linker_script": "nrf52840_s140_v6_adabl.ld", + "flags": "-DUSE_ADA_BL -DADA_SD_BL", + "max_size": 827392, + "max_ram_size": 237568 + }, + { + "name": "adafruit_s140_v7", + "bootloader_file": "nrf52840_s140_v7_adabl.hex", + "linker_script": "nrf52840_s140_v7_adabl.ld", + "flags": "-DUSE_ADA_BL -DADA_SD_BL", + "max_size": 823296, + "max_ram_size": 237568 + }, + { + "name": "adafruit_serial", + "bootloader_file": "nrf52840_serial_adabl.hex", + "linker_script": "nrf52840_serial_adabl.ld", + "flags": "-DUSE_ADA_BL", + "max_size": 978944, + "max_ram_size": 262136 + } + ], + + "default_bootloader": "adafruit_s140_v6", + "connectivity": [ "bluetooth" ], diff --git a/boards/adafruit_feather_nrf52832.json b/boards/adafruit_feather_nrf52832.json index 6ad2992..5209b76 100644 --- a/boards/adafruit_feather_nrf52832.json +++ b/boards/adafruit_feather_nrf52832.json @@ -10,9 +10,27 @@ "mcu": "nrf52832_xxaa", "variant": "feather_nrf52832" }, - "bootloaders": { - "adafruit": "0x7F000" - }, + "bootloaders": [ + { + "name": "adafruit_s132_v6", + "bootloader_file": "nrf52832_s132_v6_adabl.hex", + "linker_script": "nrf52832_s132_v6_adabl.ld", + "flags": "-DUSE_ADA_BL -DADA_SD_BL", + "max_size": 303104, + "max_ram_size": 51712 + }, + { + "name": "adafruit_serial", + "bootloader_file": "nrf52832_serial_adabl.hex", + "linker_script": "nrf52832_serial_adabl.ld", + "flags": "-DUSE_ADA_BL", + "max_size": 454656, + "max_ram_size": 65528 + } + ], + + "default_bootloader": "adafruit_s132_v6", + "connectivity": [ "bluetooth" ], @@ -36,7 +54,10 @@ "stlink", "cmsis-dap", "blackmagic" - ] + ], + "use_1200bps_touch": true, + "require_upload_port": true, + "wait_for_upload_port": true }, "url": "https://www.adafruit.com/product/3406", "vendor": "Adafruit" diff --git a/boards/adafruit_feather_nrf52840.json b/boards/adafruit_feather_nrf52840.json index e60aa92..fb0d5c2 100644 --- a/boards/adafruit_feather_nrf52840.json +++ b/boards/adafruit_feather_nrf52840.json @@ -29,9 +29,35 @@ "mcu": "nrf52840_xxaa", "variant": "feather_nrf52840_express" }, - "bootloaders": { - "adafruit": "0xFF000" - }, + "bootloaders": [ + { + "name": "adafruit_s140_v6", + "bootloader_file": "nrf52840_s140_v6_adabl.hex", + "linker_script": "nrf52840_s140_v6_adabl.ld", + "flags": "-DUSE_ADA_BL -DADA_SD_BL", + "max_size": 827392, + "max_ram_size": 237568 + }, + { + "name": "adafruit_s140_v7", + "bootloader_file": "nrf52840_s140_v7_adabl.hex", + "linker_script": "nrf52840_s140_v7_adabl.ld", + "flags": "-DUSE_ADA_BL -DADA_SD_BL", + "max_size": 823296, + "max_ram_size": 237568 + }, + { + "name": "adafruit_serial", + "bootloader_file": "nrf52840_serial_adabl.hex", + "linker_script": "nrf52840_serial_adabl.ld", + "flags": "-DUSE_ADA_BL", + "max_size": 978944, + "max_ram_size": 262136 + } + ], + + "default_bootloader": "adafruit_s140_v6", + "connectivity": [ "bluetooth" ], diff --git a/boards/adafruit_feather_nrf52840_sense.json b/boards/adafruit_feather_nrf52840_sense.json index c5d9191..48b1712 100644 --- a/boards/adafruit_feather_nrf52840_sense.json +++ b/boards/adafruit_feather_nrf52840_sense.json @@ -29,9 +29,35 @@ "mcu": "nrf52840_xxaa", "variant": "feather_nrf52840_sense" }, - "bootloaders": { - "adafruit": "0xFF000" - }, + "bootloaders": [ + { + "name": "adafruit_s140_v6", + "bootloader_file": "nrf52840_s140_v6_adabl.hex", + "linker_script": "nrf52840_s140_v6_adabl.ld", + "flags": "-DUSE_ADA_BL -DADA_SD_BL", + "max_size": 827392, + "max_ram_size": 237568 + }, + { + "name": "adafruit_s140_v7", + "bootloader_file": "nrf52840_s140_v7_adabl.hex", + "linker_script": "nrf52840_s140_v7_adabl.ld", + "flags": "-DUSE_ADA_BL -DADA_SD_BL", + "max_size": 823296, + "max_ram_size": 237568 + }, + { + "name": "adafruit_serial", + "bootloader_file": "nrf52840_serial_adabl.hex", + "linker_script": "nrf52840_serial_adabl.ld", + "flags": "-DUSE_ADA_BL", + "max_size": 978944, + "max_ram_size": 262136 + } + ], + + "default_bootloader": "adafruit_s140_v6", + "connectivity": [ "bluetooth" ], diff --git a/boards/adafruit_itsybitsy_nrf52840.json b/boards/adafruit_itsybitsy_nrf52840.json index e509cca..27b3de5 100644 --- a/boards/adafruit_itsybitsy_nrf52840.json +++ b/boards/adafruit_itsybitsy_nrf52840.json @@ -29,9 +29,35 @@ "mcu": "nrf52840_xxaa", "variant": "itsybitsy_nrf52840_express" }, - "bootloaders": { - "adafruit": "0xFF000" - }, + "bootloaders": [ + { + "name": "adafruit_s140_v6", + "bootloader_file": "nrf52840_s140_v6_adabl.hex", + "linker_script": "nrf52840_s140_v6_adabl.ld", + "flags": "-DUSE_ADA_BL -DADA_SD_BL", + "max_size": 827392, + "max_ram_size": 237568 + }, + { + "name": "adafruit_s140_v7", + "bootloader_file": "nrf52840_s140_v7_adabl.hex", + "linker_script": "nrf52840_s140_v7_adabl.ld", + "flags": "-DUSE_ADA_BL -DADA_SD_BL", + "max_size": 823296, + "max_ram_size": 237568 + }, + { + "name": "adafruit_serial", + "bootloader_file": "nrf52840_serial_adabl.hex", + "linker_script": "nrf52840_serial_adabl.ld", + "flags": "-DUSE_ADA_BL", + "max_size": 978944, + "max_ram_size": 262136 + } + ], + + "default_bootloader": "adafruit_s140_v6", + "connectivity": [ "bluetooth" ], diff --git a/boards/bluey.json b/boards/bluey.json index a813f2c..9d9a12c 100644 --- a/boards/bluey.json +++ b/boards/bluey.json @@ -10,6 +10,27 @@ "mcu": "nrf52832_xxaa", "variant": "bluey" }, + "bootloaders": [ + { + "name": "adafruit_s132_v6", + "bootloader_file": "nrf52832_s132_v6_adabl.hex", + "linker_script": "nrf52832_s132_v6_adabl.ld", + "flags": "-DUSE_ADA_BL -DADA_SD_BL", + "max_size": 303104, + "max_ram_size": 51712 + }, + { + "name": "adafruit_serial", + "bootloader_file": "nrf52832_serial_adabl.hex", + "linker_script": "nrf52832_serial_adabl.ld", + "flags": "-DUSE_ADA_BL", + "max_size": 454656, + "max_ram_size": 65528 + } + ], + + "default_bootloader": "none", + "connectivity": [ "bluetooth" ], @@ -28,10 +49,14 @@ "protocols": [ "jlink", "nrfjprog", + "adafruit-nrfutil", "stlink", "cmsis-dap", "blackmagic" - ] + ], + "use_1200bps_touch": false, + "require_upload_port": false, + "wait_for_upload_port": false }, "url": "https://electronut.in/portfolio/bluey/", "vendor": "Electronut Labs" diff --git a/boards/generic_nrf52832.json b/boards/generic_nrf52832.json index 49e1880..f46e7de 100644 --- a/boards/generic_nrf52832.json +++ b/boards/generic_nrf52832.json @@ -10,6 +10,27 @@ "mcu": "nrf52832_xxaa", "variant": "Generic" }, + "bootloaders": [ + { + "name": "adafruit_s132_v6", + "bootloader_file": "nrf52832_s132_v6_adabl.hex", + "linker_script": "nrf52832_s132_v6_adabl.ld", + "flags": "-DUSE_ADA_BL -DADA_SD_BL", + "max_size": 303104, + "max_ram_size": 51712 + }, + { + "name": "adafruit_serial", + "bootloader_file": "nrf52832_serial_adabl.hex", + "linker_script": "nrf52832_serial_adabl.ld", + "flags": "-DUSE_ADA_BL", + "max_size": 454656, + "max_ram_size": 65528 + } + ], + + "default_bootloader": "none", + "connectivity": [ "bluetooth" ], @@ -28,10 +49,14 @@ "protocols": [ "jlink", "nrfjprog", + "adafruit-nrfutil", "stlink", "cmsis-dap", "blackmagic" - ] + ], + "use_1200bps_touch": false, + "require_upload_port": false, + "wait_for_upload_port": false }, "url": "https://www.nordicsemi.com/Products/Bluetooth-Low-Energy", "vendor": "Generic" diff --git a/boards/generic_nrf52833.json b/boards/generic_nrf52833.json index 7975487..e9c8e60 100644 --- a/boards/generic_nrf52833.json +++ b/boards/generic_nrf52833.json @@ -10,6 +10,27 @@ "mcu": "nrf52833_xxaa", "variant": "Generic" }, + "bootloaders": [ + { + "name": "adafruit_s140_v7", + "bootloader_file": "nrf52833_s140_v7_adabl.hex", + "linker_script": "nrf52833_s140_v7_adabl.ld", + "flags": "-DUSE_ADA_BL -DADA_SD_BL", + "max_size": 262144, + "max_ram_size": 106496 + }, + { + "name": "adafruit_serial", + "bootloader_file": "nrf52833_serial_adabl.hex", + "linker_script": "nrf52833_serial_adabl.ld", + "flags": "-DUSE_ADA_BL", + "max_size": 454656, + "max_ram_size": 131064 + } + ], + + "default_bootloader": "none", + "connectivity": [ "bluetooth" ], @@ -28,10 +49,14 @@ "protocols": [ "jlink", "nrfjprog", + "adafruit-nrfutil", "stlink", "cmsis-dap", "blackmagic" - ] + ], + "use_1200bps_touch": true, + "require_upload_port": true, + "wait_for_upload_port": true }, "url": "https://www.nordicsemi.com/Products/Bluetooth-Low-Energy", "vendor": "Generic" diff --git a/boards/generic_nrf52840.json b/boards/generic_nrf52840.json index 4dc7bbd..82c0869 100644 --- a/boards/generic_nrf52840.json +++ b/boards/generic_nrf52840.json @@ -10,6 +10,35 @@ "mcu": "nrf52840_xxaa", "variant": "Generic" }, + "bootloaders": [ + { + "name": "adafruit_s140_v6", + "bootloader_file": "nrf52840_s140_v6_adabl.hex", + "linker_script": "nrf52840_s140_v6_adabl.ld", + "flags": "-DUSE_ADA_BL -DADA_SD_BL", + "max_size": 827392, + "max_ram_size": 237568 + }, + { + "name": "adafruit_s140_v7", + "bootloader_file": "nrf52840_s140_v7_adabl.hex", + "linker_script": "nrf52840_s140_v7_adabl.ld", + "flags": "-DUSE_ADA_BL -DADA_SD_BL", + "max_size": 823296, + "max_ram_size": 237568 + }, + { + "name": "adafruit_serial", + "bootloader_file": "nrf52840_serial_adabl.hex", + "linker_script": "nrf52840_serial_adabl.ld", + "flags": "-DUSE_ADA_BL", + "max_size": 978944, + "max_ram_size": 262136 + } + ], + + "default_bootloader": "none", + "connectivity": [ "bluetooth" ], @@ -28,10 +57,14 @@ "protocols": [ "jlink", "nrfjprog", + "adafruit-nrfutil", "stlink", "cmsis-dap", "blackmagic" - ] + ], + "use_1200bps_touch": true, + "require_upload_port": true, + "wait_for_upload_port": true }, "url": "https://www.nordicsemi.com/Products/Bluetooth-Low-Energy", "vendor": "Generic" diff --git a/boards/hackaBLE.json b/boards/hackaBLE.json index 41a2f9f..6b96cbd 100644 --- a/boards/hackaBLE.json +++ b/boards/hackaBLE.json @@ -10,6 +10,26 @@ "mcu": "nrf52832_xxaa", "variant": "hackaBLE" }, + "bootloaders": [ + { + "name": "adafruit_s132_v6", + "bootloader_file": "nrf52832_s132_v6_adabl.hex", + "linker_script": "nrf52832_s132_v6_adabl.ld", + "flags": "-DUSE_ADA_BL -DADA_SD_BL", + "max_size": 303104, + "max_ram_size": 51712 + }, + { + "name": "adafruit_serial", + "bootloader_file": "nrf52832_serial_adabl.hex", + "linker_script": "nrf52832_serial_adabl.ld", + "flags": "-DUSE_ADA_BL", + "max_size": 454656, + "max_ram_size": 65528 + } + ], + + "default_bootloader": "none", "connectivity": [ "bluetooth" ], @@ -28,10 +48,14 @@ "protocols": [ "jlink", "nrfjprog", + "adafruit-nrfutil", "stlink", "cmsis-dap", "blackmagic" - ] + ], + "use_1200bps_touch": false, + "require_upload_port": false, + "wait_for_upload_port": false }, "url": "https://electronut.in/portfolio/hackaBLE/", "vendor": "Electronut Labs" diff --git a/boards/hackaBLE_v2.json b/boards/hackaBLE_v2.json index 17e3c50..3bd6f05 100644 --- a/boards/hackaBLE_v2.json +++ b/boards/hackaBLE_v2.json @@ -10,6 +10,27 @@ "mcu": "nrf52832_xxaa", "variant": "hackaBLE_v2" }, + "bootloaders": [ + { + "name": "adafruit_s132_v6", + "bootloader_file": "nrf52832_s132_v6_adabl.hex", + "linker_script": "nrf52832_s132_v6_adabl.ld", + "flags": "-DUSE_ADA_BL -DADA_SD_BL", + "max_size": 303104, + "max_ram_size": 51712 + }, + { + "name": "adafruit_serial", + "bootloader_file": "nrf52832_serial_adabl.hex", + "linker_script": "nrf52832_serial_adabl.ld", + "flags": "-DUSE_ADA_BL", + "max_size": 454656, + "max_ram_size": 65528 + } + ], + + "default_bootloader": "none", + "connectivity": [ "bluetooth" ], @@ -28,10 +49,14 @@ "protocols": [ "jlink", "nrfjprog", + "adafruit-nrfutil", "stlink", "cmsis-dap", "blackmagic" - ] + ], + "use_1200bps_touch": false, + "require_upload_port": false, + "wait_for_upload_port": false }, "url": "https://electronut.in/portfolio/hackaBLE/", "vendor": "Electronut Labs" diff --git a/boards/nrf52832_dk.json b/boards/nrf52832_dk.json index 0ecc2b5..7c55abb 100644 --- a/boards/nrf52832_dk.json +++ b/boards/nrf52832_dk.json @@ -10,6 +10,27 @@ "mcu": "nrf52832_xxaa", "variant": "nRF52832_DK" }, + "bootloaders": [ + { + "name": "adafruit_s132_v6", + "bootloader_file": "nrf52832_s132_v6_adabl.hex", + "linker_script": "nrf52832_s132_v6_adabl.ld", + "flags": "-DUSE_ADA_BL -DADA_SD_BL", + "max_size": 303104, + "max_ram_size": 51712 + }, + { + "name": "adafruit_serial", + "bootloader_file": "nrf52832_serial_adabl.hex", + "linker_script": "nrf52832_serial_adabl.ld", + "flags": "-DUSE_ADA_BL", + "max_size": 454656, + "max_ram_size": 65528 + } + ], + + "default_bootloader": "none", + "connectivity": [ "bluetooth" ], @@ -35,10 +56,14 @@ "protocols": [ "jlink", "nrfjprog", + "adafruit-nrfutil", "stlink", "blackmagic", "cmsis-dap" - ] + ], + "use_1200bps_touch": false, + "require_upload_port": false, + "wait_for_upload_port": false }, "url": "https://www.nordicsemi.com/Products/Development-hardware/nRF52-DK/", "vendor": "Nordic" diff --git a/boards/nrf52833_dk.json b/boards/nrf52833_dk.json index b29ddad..cf99e3e 100644 --- a/boards/nrf52833_dk.json +++ b/boards/nrf52833_dk.json @@ -10,6 +10,27 @@ "mcu": "nrf52833_xxaa", "variant": "nRF52833_DK" }, + "bootloaders": [ + { + "name": "adafruit_s140_v7", + "bootloader_file": "nrf52833_s140_v7_adabl.hex", + "linker_script": "nrf52833_s140_v7_adabl.ld", + "flags": "-DUSE_ADA_BL -DADA_SD_BL", + "max_size": 262144, + "max_ram_size": 106496 + }, + { + "name": "adafruit_serial", + "bootloader_file": "nrf52833_serial_adabl.hex", + "linker_script": "nrf52833_serial_adabl.ld", + "flags": "-DUSE_ADA_BL", + "max_size": 454656, + "max_ram_size": 131064 + } + ], + + "default_bootloader": "none", + "connectivity": [ "bluetooth" ], @@ -35,10 +56,14 @@ "protocols": [ "jlink", "nrfjprog", + "adafruit-nrfutil", "stlink", "blackmagic", "cmsis-dap" - ] + ], + "use_1200bps_touch": true, + "require_upload_port": true, + "wait_for_upload_port": true }, "url": "https://www.nordicsemi.com/Products/Development-hardware/nrf52833-dk/", "vendor": "Nordic" diff --git a/boards/nrf52840_dk.json b/boards/nrf52840_dk.json index dc5859d..a954cd7 100644 --- a/boards/nrf52840_dk.json +++ b/boards/nrf52840_dk.json @@ -10,6 +10,35 @@ "mcu": "nrf52840_xxaa", "variant": "nRF52840_DK" }, + "bootloaders": [ + { + "name": "adafruit_s140_v6", + "bootloader_file": "nrf52840_s140_v6_adabl.hex", + "linker_script": "nrf52840_s140_v6_adabl.ld", + "flags": "-DUSE_ADA_BL -DADA_SD_BL", + "max_size": 827392, + "max_ram_size": 237568 + }, + { + "name": "adafruit_s140_v7", + "bootloader_file": "nrf52840_s140_v7_adabl.hex", + "linker_script": "nrf52840_s140_v7_adabl.ld", + "flags": "-DUSE_ADA_BL -DADA_SD_BL", + "max_size": 823296, + "max_ram_size": 237568 + }, + { + "name": "adafruit_serial", + "bootloader_file": "nrf52840_serial_adabl.hex", + "linker_script": "nrf52840_serial_adabl.ld", + "flags": "-DUSE_ADA_BL", + "max_size": 978944, + "max_ram_size": 262136 + } + ], + + "default_bootloader": "none", + "connectivity": [ "bluetooth" ], @@ -35,10 +64,14 @@ "protocols": [ "jlink", "nrfjprog", + "adafruit-nrfutil", "stlink", "blackmagic", "cmsis-dap" - ] + ], + "use_1200bps_touch": true, + "require_upload_port": true, + "wait_for_upload_port": true }, "url": "https://www.nordicsemi.com/Products/Development-hardware/nRF52840-DK", "vendor": "Nordic" diff --git a/boards/redbear_blenano2.json b/boards/redbear_blenano2.json index dd5b6e4..2fcf8c6 100644 --- a/boards/redbear_blenano2.json +++ b/boards/redbear_blenano2.json @@ -10,6 +10,27 @@ "mcu": "nrf52832_xxaa", "variant": "RedBear_BLENano2" }, + "bootloaders": [ + { + "name": "adafruit_s132_v6", + "bootloader_file": "nrf52832_s132_v6_adabl.hex", + "linker_script": "nrf52832_s132_v6_adabl.ld", + "flags": "-DUSE_ADA_BL -DADA_SD_BL", + "max_size": 303104, + "max_ram_size": 51712 + }, + { + "name": "adafruit_serial", + "bootloader_file": "nrf52832_serial_adabl.hex", + "linker_script": "nrf52832_serial_adabl.ld", + "flags": "-DUSE_ADA_BL", + "max_size": 454656, + "max_ram_size": 65528 + } + ], + + "default_bootloader": "none", + "connectivity": [ "bluetooth" ], @@ -31,10 +52,14 @@ "protocols": [ "jlink", "nrfjprog", + "adafruit-nrfutil", "stlink", "blackmagic", "cmsis-dap" - ] + ], + "use_1200bps_touch": false, + "require_upload_port": false, + "wait_for_upload_port": false }, "url": "https://redbear.cc/product/ble-nano-2-soldered.html", "vendor": "RedBearLab" diff --git a/boards/redbear_blend2.json b/boards/redbear_blend2.json index c4aa223..41e944c 100644 --- a/boards/redbear_blend2.json +++ b/boards/redbear_blend2.json @@ -10,6 +10,27 @@ "mcu": "nrf52832_xxaa", "variant": "RedBear_Blend2" }, + "bootloaders": [ + { + "name": "adafruit_s132_v6", + "bootloader_file": "nrf52832_s132_v6_adabl.hex", + "linker_script": "nrf52832_s132_v6_adabl.ld", + "flags": "-DUSE_ADA_BL -DADA_SD_BL", + "max_size": 303104, + "max_ram_size": 51712 + }, + { + "name": "adafruit_serial", + "bootloader_file": "nrf52832_serial_adabl.hex", + "linker_script": "nrf52832_serial_adabl.ld", + "flags": "-DUSE_ADA_BL", + "max_size": 454656, + "max_ram_size": 65528 + } + ], + + "default_bootloader": "none", + "connectivity": [ "bluetooth" ], @@ -31,10 +52,14 @@ "protocols": [ "jlink", "nrfjprog", + "adafruit-nrfutil", "stlink", "blackmagic", "cmsis-dap" - ] + ], + "use_1200bps_touch": false, + "require_upload_port": false, + "wait_for_upload_port": false }, "url": "https://redbear.cc/product/ble/blend-2.html", "vendor": "RedBearLab" diff --git a/boards/seeed_xiao_nrf52840_sense.json b/boards/seeed_xiao_nrf52840_sense.json index 6e67e56..7fd2d68 100644 --- a/boards/seeed_xiao_nrf52840_sense.json +++ b/boards/seeed_xiao_nrf52840_sense.json @@ -1,7 +1,7 @@ { "build": { "arduino": { - "ldscript": "nrf52840_s140_v7_seeed.ld" + "ldscript": "nrf52840_xxaa.ld" }, "core": "nRF5", "cpu": "cortex-m4", @@ -19,23 +19,34 @@ ], "mcu": "nrf52840", "variant": "Seeed_XIAO_nRF52840_Sense", - "softdevice": { - "sd_flags": "-DS140", - "sd_name": "s140", - "sd_version": "7.3.0", - "sd_fwid": "0x0123" - }, "usb_product": "XIAO nRF52840 Sense" }, - "bootloaders": { - "adafruit": "0xFF000" - }, + "bootloaders": [ + { + "name": "adafruit_s140_v7", + "bootloader_file": "nrf52840_s140_v7_adabl.hex", + "linker_script": "nrf52840_s140_v7_adabl.ld", + "flags": "-DUSE_ADA_BL -DADA_SD_BL", + "max_size": 823296, + "max_ram_size": 237568 + }, + { + "name": "adafruit_serial", + "bootloader_file": "nrf52840_serial_adabl.hex", + "linker_script": "nrf52840_serial_adabl.ld", + "flags": "-DUSE_ADA_BL", + "max_size": 978944, + "max_ram_size": 262136 + } + ], + + "default_bootloader": "adafruit_s140_v7", + "connectivity": [ "bluetooth" ], "debug": { "jlink_device": "nRF52840_xxAA", - "openocd_target": "nrf52.cfg", "svd_path": "nrf52840.svd" }, "frameworks": [ @@ -43,8 +54,8 @@ ], "name": "Seeed XIAO BLE Sense", "upload": { - "maximum_ram_size": 237568, - "maximum_size": 823296, + "maximum_ram_size": 262144, + "maximum_size": 1032192, "protocol": "adafruit-nrfutil", "speed": 115200, "protocols": [ diff --git a/builder/frameworks/arduino/nrf5.py b/builder/frameworks/arduino/nrf5.py index 98c3e5f..2a6bac3 100644 --- a/builder/frameworks/arduino/nrf5.py +++ b/builder/frameworks/arduino/nrf5.py @@ -162,28 +162,34 @@ if not board.get("build.ldscript", ""): env.Replace(LDSCRIPT_PATH=board.get("build.arduino.ldscript", "")) -bootloader_opts = board.get("bootloaders", "") +bootloader_opts = board.get("bootloaders", []) bootloader_sel = env.GetProjectOption("board_bootloader", "") ldscript = board.get("build.arduino.ldscript", "") if bootloader_opts: if not bootloader_sel: - sys.stderr.write("Error. Board type requires board_bootloader to be specified\n") - env.Exit(1) + bootloader_sel = board.get("default_bootloader", "none") + + selected_bl = None + for bl in bootloader_opts: + if bl.get("name") == bootloader_sel: + selected_bl = bl + break - if bootloader_sel not in bootloader_opts and bootloader_sel != "none": + if not selected_bl and bootloader_sel != "none": sys.stderr.write( "Error. Invalid board_bootloader selection. Options are: %s or none\n" % - " ".join(k for k in bootloader_opts.keys())) + " ".join(bl.get("name", "") for bl in bootloader_opts)) env.Exit(1) - if bootloader_sel == "adafruit": - env.Replace(BOOTLOADERHEX=join(FRAMEWORK_DIR, "variants", board.get("build.variant", ""), "ada_bootloader.hex")) - # Update the linker file for bootloader use and set a flag for the build. - env.Append(CPPDEFINES=["USE_ADA_BL"]) - env.Replace(LDSCRIPT_PATH=ldscript[:-3] + "_adabl" + ldscript[-3:]) - board.update("upload.maximum_size", board.get("upload.maximum_size") - 53248) - board.update("upload.maximum_ram_size", board.get("upload.maximum_ram_size") - 8) + if selected_bl: + # Use bootloader_file, linker_script, max_size, max_ram_size from selected_bl + env.Replace(BOOTLOADERHEX=join(FRAMEWORK_DIR, "variants", board.get("build.variant", ""), selected_bl["bootloader_file"])) + if "flags" in selected_bl: + env.Append(CPPDEFINES=selected_bl["flags"]) + env.Replace(LDSCRIPT_PATH=selected_bl["linker_script"]) + board.update("upload.maximum_size", selected_bl["max_size"]) + board.update("upload.maximum_ram_size", selected_bl["max_ram_size"]) cpp_defines = env.Flatten(env.get("CPPDEFINES", [])) diff --git a/examples/BLE-client-test/platformio.ini b/examples/BLE-client-test/platformio.ini index d9974f2..0e782b1 100644 --- a/examples/BLE-client-test/platformio.ini +++ b/examples/BLE-client-test/platformio.ini @@ -52,37 +52,31 @@ build_flags = ${common.build_flags} [env:adafruit_clue_nrf52840] board = adafruit_clue_nrf52840 -board_bootloader = adafruit lib_deps = ${common.lib_deps} build_flags = ${common.build_flags} [env:adafruit_cplaynrf52840] board = adafruit_cplaynrf52840 -board_bootloader = adafruit lib_deps = ${common.lib_deps} build_flags = ${common.build_flags} [env:adafruit_feather_nrf52832] board = adafruit_feather_nrf52832 -board_bootloader = adafruit lib_deps = ${common.lib_deps} build_flags = ${common.build_flags} [env:adafruit_feather_nrf52840_sense] board = adafruit_feather_nrf52840_sense -board_bootloader = adafruit lib_deps = ${common.lib_deps} build_flags = ${common.build_flags} [env:adafruit_feather_nrf52840] board = adafruit_feather_nrf52840 -board_bootloader = adafruit lib_deps = ${common.lib_deps} build_flags = ${common.build_flags} [env:adafruit_itsybitsy_nrf52840] board = adafruit_itsybitsy_nrf52840 -board_bootloader = adafruit lib_deps = ${common.lib_deps} build_flags = ${common.build_flags} @@ -108,7 +102,6 @@ build_flags = ${common.build_flags} [env:BT5032A_TB] board = BT5032A_TB -board_bootloader = none lib_deps = ${common.lib_deps} build_flags = ${common.build_flags} @@ -197,6 +190,11 @@ board = seeedTinyBLE lib_deps = ${common.lib_deps} build_flags = ${common.build_flags} +[env:seeed_xiao_nrf52840_sense] +board = seeed_xiao_nrf52840_sense +lib_deps = ${common.lib_deps} +build_flags = ${common.build_flags} + [env:Sinobit] board = Sinobit lib_deps = ${common.lib_deps} diff --git a/examples/BLE-server-test/platformio.ini b/examples/BLE-server-test/platformio.ini index 420bd26..6033df3 100644 --- a/examples/BLE-server-test/platformio.ini +++ b/examples/BLE-server-test/platformio.ini @@ -52,37 +52,31 @@ build_flags = ${common.build_flags} [env:adafruit_clue_nrf52840] board = adafruit_clue_nrf52840 -board_bootloader = adafruit lib_deps = ${common.lib_deps} build_flags = ${common.build_flags} [env:adafruit_cplaynrf52840] board = adafruit_cplaynrf52840 -board_bootloader = adafruit lib_deps = ${common.lib_deps} build_flags = ${common.build_flags} [env:adafruit_feather_nrf52832] board = adafruit_feather_nrf52832 -board_bootloader = adafruit lib_deps = ${common.lib_deps} build_flags = ${common.build_flags} [env:adafruit_feather_nrf52840_sense] board = adafruit_feather_nrf52840_sense -board_bootloader = adafruit lib_deps = ${common.lib_deps} build_flags = ${common.build_flags} [env:adafruit_feather_nrf52840] board = adafruit_feather_nrf52840 -board_bootloader = adafruit lib_deps = ${common.lib_deps} build_flags = ${common.build_flags} [env:adafruit_itsybitsy_nrf52840] board = adafruit_itsybitsy_nrf52840 -board_bootloader = adafruit lib_deps = ${common.lib_deps} build_flags = ${common.build_flags} @@ -108,7 +102,6 @@ build_flags = ${common.build_flags} [env:BT5032A_TB] board = BT5032A_TB -board_bootloader = none lib_deps = ${common.lib_deps} build_flags = ${common.build_flags} @@ -197,6 +190,11 @@ board = seeedTinyBLE lib_deps = ${common.lib_deps} build_flags = ${common.build_flags} +[env:seeed_xiao_nrf52840_sense] +board = seeed_xiao_nrf52840_sense +lib_deps = ${common.lib_deps} +build_flags = ${common.build_flags} + [env:Sinobit] board = Sinobit lib_deps = ${common.lib_deps} diff --git a/platform.json b/platform.json index 931b2b6..beedb38 100644 --- a/platform.json +++ b/platform.json @@ -31,7 +31,7 @@ "framework-n-able-arduino": { "type": "framework", "optional": false, - "version": "https://github.com/h2zero/n-able-Arduino.git@0.3.0" + "version": "https://github.com/h2zero/n-able-Arduino.git#update-linker/bootloaders" }, "toolchain-gccarmnoneeabi": { "type": "toolchain",