diff --git a/404.html b/404.html
index af656325f..65f324323 100644
--- a/404.html
+++ b/404.html
@@ -340,7 +340,7 @@
- Companion notification builder
+ Notifications
@@ -368,7 +368,7 @@
- Temporary radio test builder
+ Preset test
@@ -396,7 +396,7 @@
- Filter policy playground
+ Filter tool
@@ -452,7 +452,7 @@
- Management report decoder
+ Management decoder
@@ -581,7 +581,7 @@
- Frequently Asked Questions
+ Faq
@@ -609,7 +609,7 @@
- Full firmware profiles
+ Full profiles
@@ -637,7 +637,7 @@
- Feature switches by role - 1.17.1.5 USA Cascade
+ Role feature switches
@@ -665,7 +665,7 @@
- Full Companion: turn features on and off
+ Full companion features
@@ -693,7 +693,7 @@
- Full Companion
+ Companion radio full
@@ -721,7 +721,7 @@
- Companion USB CLI and binary switcher
+ Full companion usb switcher
@@ -749,7 +749,7 @@
- Companion Offline Message Queue
+ Companion offline queue
@@ -777,7 +777,7 @@
- Halo and Keymind Branch Settings
+ Halo keymind settings
@@ -852,6 +852,34 @@
+ View this page on MeshCore Docs. MeshCore itself does not require WiFi or the internet. LoRa packet exchange,
repeating, room servers, companions, and sensors can all operate without either.
@@ -2673,8 +2705,30 @@ set name MyObserver
reboot
The SSID and password values are the rest of the command line. Spaces are
-allowed and quotes must not be added. SSIDs may contain at most 31 characters
-and passwords at most 63. Leave the password value empty for an open network.WiFi and MQTT by Firmware Type
Older observer-only credentials remain usable until canonical WiFi settings +are saved. The first CLI edit preserves the other legacy credential while +saving the complete pair. Once canonical settings exist, empty, incomplete or +unreadable canonical settings do not revive old observer credentials. Historical +SSID-only canonical settings continue to represent an open network. Builds +without this WebConfig integration retain their legacy 63-character password +limit; this change does not add MQTT support to currently disabled Pico targets.
+On these ESP32 MQTT/WebConfig builds, an empty CLI SSID clears the configured +network while retaining saved broker settings:
+set wifi.ssid
+reboot
+
+Use this to return the node to unconfigured provisioning. The WebConfig setup
+form still requires a nonempty SSID. After saving a new network, verify
+get wifi.status, get mqtt.config.valid and get mqtt.running; credentials
+alone do not prove a broker connection. A local get wifi.pwd can inspect the
+password, while an authenticated remote command returns only set/unset.
Useful checks are:
get wifi.ssid
get wifi.status
@@ -2696,8 +2750,9 @@ must release WiFi first:
set mqtt.enabled off
start webconfig ap
-After provisioning, use Save & Reboot, or stop the temporary portal and
-restart the bridge:
+After changing WiFi credentials, use Save & Reboot or reboot. For
+broker-only changes that keep the existing network, stop the temporary portal
+and restart the bridge:
stop webconfig
set mqtt.enabled on
@@ -2788,6 +2843,14 @@ ESP-NOW, wifi.powersave max is unavailable because a station using
modem sleep can miss ESP-NOW broadcasts; use min for coexistence. The primary
mesh transport holds the driver's RF wake reference continuously, so min
does not suspend its ESP-NOW receiver.
+Espressif long-range WiFi (LR) trades speed for reach: its raw rates are
+250 or 500 kbit/s, with up to about 1 km in suitable line-of-sight conditions.
+LR traffic needs compatible Espressif hardware at both ends. An LR-enabled
+access point sends LR beacons that ordinary phones, routers and Raspberry Pis
+cannot receive. A mixed b/g/n+LR station can still join an ordinary router,
+using normal WiFi rates for that connection. MeshCore's setup and OTA access
+points therefore use ordinary b/g/n. See
+Espressif's LR compatibility guide.
ESP-NOW compatibility also depends on the bytes and PHY used above the common
Espressif transport. The historical *_repeater_bridge_espnow firmware wraps
each MeshCore packet with a magic value, checksum, and secret-based XOR, while
@@ -2886,6 +2949,10 @@ over LoRa; it is not a raw .bin uploader. start ota co
direct browser uploader on HTTP port 80. A FULL role without WebConfig but with
browser OTA support can use the MeshCore-OTA access point raised by
start ota; its seeder address is 192.168.4.1:5001.
+For browser uploads from an existing 1.17.1.8 ESP32 node, see the
+1.17.1.9 WiFi upgrade guide.
+It covers the node AP, old-page completion behavior, and choosing an
+application-only image or the exact partition-migration package.
Only one external folder link can be active. A TCP client is rejected while
ota folder on is using USB serial, and disconnecting motatool automatically
removes the TCP folder. Port 5001 has no login layer, so expose it only on a
@@ -3120,11 +3187,12 @@ get mqtt2.diag
For a WiFi companion, find its station IP in the router, connect the client to
TCP port 5000, and use the open MeshCore-Setup-XXXX AP at
http://192.168.4.1/ if it cannot join the saved network. Current firmware
-normalizes both ESP32 WiFi interfaces to standard b/g/n before advertising the
-setup AP. Full Companion targets whose primary mesh radio is ESP-NOW use
-b/g/n+LR instead and keep the setup AP, infrastructure station, and mesh on the
-persisted espnow.channel (channel 1 by default). Their configured 2.4 GHz
-router and every other primary ESP-NOW node must use that same channel.
+uses standard b/g/n for the setup AP, including ESP-NOW-capable targets.
+A running LR mesh conflicts with a conventional access point; current firmware
+refuses that AP startup and defers LR startup while an AP is active. A primary
+ESP-NOW target keeps its infrastructure station and mesh on the persisted
+espnow.channel (channel 1 by default). Its configured 2.4 GHz router and every
+other primary ESP-NOW node must use that same channel.
MQTT-capable Companions also accept get mqtt.enabled, get mqtt.running,
and get mqtt.status in their USB/TCP and browser terminals. Extended slot
and NTP diagnostics remain infrastructure features.
@@ -3182,13 +3250,15 @@ and NTP diagnostics remain infrastructure features.
+
+
-
+
diff --git a/_data/firmware_controls.json b/_data/firmware_controls.json
index 72e9945ee..a5b24f396 100644
--- a/_data/firmware_controls.json
+++ b/_data/firmware_controls.json
@@ -1,5 +1,5 @@
{
- "familyTag": "v1.17.1.8-halo-keymind-cascade-dev-9053038f",
+ "familyTag": "v1.17.1.9-halo-keymind-cascade-dev-88c85108",
"partitionMigrations": {
"Ebyte_EoRa-S3_Repeater": "ebyte-eora-s3-repeater",
"Ebyte_EoRa-S3_room_server": "ebyte-eora-s3-room-server",
@@ -97,38 +97,21 @@
"nibble_zero_connect_room_server_": "nibble-zero-room-server"
},
"profiles": {
- "Ebyte_EoRa-S3_Repeater": {
+ "Ebyte_EoRa-S3_Repeater-full-usb-wifi": {
"display": true,
- "espnowBridge": false,
+ "espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
- "mqtt": false,
- "otaRole": "none",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "wifi"
- ],
- "webconfig": false
- },
- "Ebyte_EoRa-S3_Repeater-full-logging": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "loggingControl": "usb.logging",
+ "loggingControl": "logging.output",
"loggingModes": [
"none",
- "usb"
+ "usb",
+ "wifi",
+ "both"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
- "mqtt": false,
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
@@ -142,26 +125,6 @@
],
"webconfig": true
},
- "Ebyte_EoRa-S3_Repeater_lora_ota_no_external_sensors": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "mqtt": false,
- "otaRole": "lora-receiver",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "lora",
- "wifi"
- ],
- "webconfig": false
- },
"Ebyte_EoRa-S3_companion_radio_full": {
"display": true,
"espnowBridge": false,
@@ -173,7 +136,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
@@ -185,38 +148,21 @@
"updateMethods": [],
"webconfig": true
},
- "Ebyte_EoRa-S3_room_server": {
+ "Ebyte_EoRa-S3_room_server-full-usb-wifi": {
"display": true,
- "espnowBridge": false,
+ "espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
- "mqtt": false,
- "otaRole": "none",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "wifi"
- ],
- "webconfig": false
- },
- "Ebyte_EoRa-S3_room_server-full-logging": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "loggingControl": "usb.logging",
+ "loggingControl": "logging.output",
"loggingModes": [
"none",
- "usb"
+ "usb",
+ "wifi",
+ "both"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
- "mqtt": false,
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
@@ -230,26 +176,6 @@
],
"webconfig": true
},
- "Ebyte_EoRa-S3_room_server_lora_ota_no_external_sensors": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "mqtt": false,
- "otaRole": "lora-receiver",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "lora",
- "wifi"
- ],
- "webconfig": false
- },
"GAT562_30S_Mesh_Kit_companion_radio_full": {
"dedicatedUsbLogging": true,
"display": true,
@@ -262,9 +188,9 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Full Companion queue: 256 offline messages normally; 128 while mOTA borrows queue storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source restores all 256 slots.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
@@ -278,26 +204,7 @@
],
"webconfig": false
},
- "GAT562_30S_Mesh_Kit_repeater": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "none",
- "platform": "NRF52_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "bluetooth"
- ],
- "webconfig": false
- },
- "GAT562_30S_Mesh_Kit_repeater_lora_ota_no_external_sensors": {
+ "GAT562_30S_Mesh_Kit_repeater_lora_ota_no_external_sensors-full": {
"display": true,
"espnowBridge": false,
"femRx": false,
@@ -310,6 +217,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -318,13 +227,14 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
- "Requires OTAFIX 2.4.6 retained-RAM handoff support; a transfer cannot resume after the receiver restarts."
+ "Requires the exact-board retained-RAM handoff bootloader profile; a transfer cannot resume after the receiver restarts."
],
"package_types": [
"in_place_delta"
@@ -334,26 +244,7 @@
},
"webconfig": false
},
- "GAT562_30S_Mesh_Kit_room_server": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "none",
- "platform": "NRF52_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "bluetooth"
- ],
- "webconfig": false
- },
- "GAT562_30S_Mesh_Kit_room_server_lora_ota_no_external_sensors": {
+ "GAT562_30S_Mesh_Kit_repeater_lora_ota_no_external_sensors-reduced": {
"display": true,
"espnowBridge": false,
"femRx": false,
@@ -366,6 +257,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -374,11 +267,52 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Requires the exact-board retained-RAM handoff bootloader profile; a transfer cannot resume after the receiver restarts."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash_and_retained_ram"
+ }
+ },
+ "webconfig": false
+ },
+ "GAT562_30S_Mesh_Kit_room_server_lora_ota_no_external_sensors-full": {
+ "display": true,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": true,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Internal storage accepts in-place application deltas, not full application packages."
],
@@ -390,26 +324,47 @@
},
"webconfig": false
},
- "GAT562_Mesh_EVB_Pro_repeater": {
- "display": false,
+ "GAT562_30S_Mesh_Kit_room_server_lora_ota_no_external_sensors-reduced": {
+ "display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
- "otaRole": "none",
+ "otaRole": "lora-receiver",
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
- "bluetooth"
+ "bluetooth",
+ "lora"
],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
"webconfig": false
},
- "GAT562_Mesh_EVB_Pro_repeater_lora_ota_no_external_sensors": {
+ "GAT562_Mesh_EVB_Pro_repeater_lora_ota_no_external_sensors-full": {
"display": false,
"espnowBridge": false,
"femRx": false,
@@ -422,6 +377,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -430,13 +387,14 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
- "Requires OTAFIX 2.4.6 retained-RAM handoff support; a transfer cannot resume after the receiver restarts."
+ "Requires the exact-board retained-RAM handoff bootloader profile; a transfer cannot resume after the receiver restarts."
],
"package_types": [
"in_place_delta"
@@ -446,26 +404,7 @@
},
"webconfig": false
},
- "GAT562_Mesh_EVB_Pro_room_server": {
- "display": false,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "none",
- "platform": "NRF52_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "bluetooth"
- ],
- "webconfig": false
- },
- "GAT562_Mesh_EVB_Pro_room_server_lora_ota_no_external_sensors": {
+ "GAT562_Mesh_EVB_Pro_repeater_lora_ota_no_external_sensors-reduced": {
"display": false,
"espnowBridge": false,
"femRx": false,
@@ -478,6 +417,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -486,11 +427,92 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Requires the exact-board retained-RAM handoff bootloader profile; a transfer cannot resume after the receiver restarts."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash_and_retained_ram"
+ }
+ },
+ "webconfig": false
+ },
+ "GAT562_Mesh_EVB_Pro_room_server_lora_ota_no_external_sensors-full": {
+ "display": false,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": true,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
+ "webconfig": false
+ },
+ "GAT562_Mesh_EVB_Pro_room_server_lora_ota_no_external_sensors-reduced": {
+ "display": false,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": true,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Internal storage accepts in-place application deltas, not full application packages."
],
@@ -514,9 +536,9 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Full Companion queue: 256 offline messages normally; 128 while mOTA borrows queue storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source restores all 256 slots.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
@@ -530,26 +552,7 @@
],
"webconfig": false
},
- "GAT562_Mesh_Tracker_Pro_repeater": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "none",
- "platform": "NRF52_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "bluetooth"
- ],
- "webconfig": false
- },
- "GAT562_Mesh_Tracker_Pro_repeater_lora_ota_no_external_sensors": {
+ "GAT562_Mesh_Tracker_Pro_repeater_lora_ota_no_external_sensors-full": {
"display": true,
"espnowBridge": false,
"femRx": false,
@@ -562,6 +565,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -570,13 +575,14 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
- "Requires OTAFIX 2.4.6 retained-RAM handoff support; a transfer cannot resume after the receiver restarts."
+ "Requires the exact-board retained-RAM handoff bootloader profile; a transfer cannot resume after the receiver restarts."
],
"package_types": [
"in_place_delta"
@@ -586,26 +592,7 @@
},
"webconfig": false
},
- "GAT562_Mesh_Tracker_Pro_room_server": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "none",
- "platform": "NRF52_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "bluetooth"
- ],
- "webconfig": false
- },
- "GAT562_Mesh_Tracker_Pro_room_server_lora_ota_no_external_sensors": {
+ "GAT562_Mesh_Tracker_Pro_repeater_lora_ota_no_external_sensors-reduced": {
"display": true,
"espnowBridge": false,
"femRx": false,
@@ -618,6 +605,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -626,11 +615,92 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Requires the exact-board retained-RAM handoff bootloader profile; a transfer cannot resume after the receiver restarts."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash_and_retained_ram"
+ }
+ },
+ "webconfig": false
+ },
+ "GAT562_Mesh_Tracker_Pro_room_server_lora_ota_no_external_sensors-full": {
+ "display": true,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": true,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
+ "webconfig": false
+ },
+ "GAT562_Mesh_Tracker_Pro_room_server_lora_ota_no_external_sensors-reduced": {
+ "display": true,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": true,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Internal storage accepts in-place application deltas, not full application packages."
],
@@ -654,9 +724,9 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Full Companion queue: 256 offline messages normally; 128 while mOTA borrows queue storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source restores all 256 slots.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
@@ -670,28 +740,9 @@
],
"webconfig": false
},
- "GEPRC_Linkflow_900_repeater": {
- "display": false,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "mqtt": false,
- "otaRole": "none",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": false,
- "rxps": false,
- "snmp": false,
- "updateMethods": [
- "wifi"
- ],
- "webconfig": false
- },
"GEPRC_Linkflow_900_repeater-full-logging": {
"display": false,
- "espnowBridge": false,
+ "espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
@@ -700,7 +751,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -715,28 +766,9 @@
],
"webconfig": true
},
- "Generic_E22_sx1262_repeater": {
- "display": false,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "mqtt": false,
- "otaRole": "none",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": false,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "wifi"
- ],
- "webconfig": false
- },
"Generic_E22_sx1262_repeater-full-logging": {
"display": false,
- "espnowBridge": false,
+ "espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
@@ -745,9 +777,9 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Neighbor table: 50 entries.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -762,28 +794,9 @@
],
"webconfig": true
},
- "Generic_E22_sx1268_repeater": {
- "display": false,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "mqtt": false,
- "otaRole": "none",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": false,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "wifi"
- ],
- "webconfig": false
- },
"Generic_E22_sx1268_repeater-full-logging": {
"display": false,
- "espnowBridge": false,
+ "espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
@@ -792,9 +805,9 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Neighbor table: 50 entries.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -820,9 +833,9 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
- "memoryNote": "Full Companion capacity: 100 contacts and 256 queued messages; all Full transports are retained. Export contacts before updating if you have more than 100; entries beyond this limit may be unavailable or omitted by a later save.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "memoryNote": "Full Companion capacity: 100 contacts and 224 queued messages; all Full transports are retained. Export contacts before updating if you have more than 100; entries beyond this limit may be unavailable or omitted by a later save.",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
@@ -834,25 +847,6 @@
"updateMethods": [],
"webconfig": true
},
- "Generic_ESPNOW_repeatr": {
- "display": false,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "mqtt": false,
- "otaRole": "none",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": true,
- "rs232": false,
- "rxgain": false,
- "rxps": false,
- "snmp": false,
- "updateMethods": [
- "wifi"
- ],
- "webconfig": false
- },
"Generic_ESPNOW_repeatr-full-logging": {
"display": false,
"espnowBridge": false,
@@ -864,7 +858,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -879,45 +873,6 @@
],
"webconfig": true
},
- "Generic_ESPNOW_repeatr_lora_ota_no_external_sensors": {
- "display": false,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "mqtt": false,
- "otaRole": "lora-receiver",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": true,
- "rs232": false,
- "rxgain": false,
- "rxps": false,
- "snmp": false,
- "updateMethods": [
- "lora",
- "wifi"
- ],
- "webconfig": false
- },
- "Generic_ESPNOW_room_svr": {
- "display": false,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "mqtt": false,
- "otaRole": "none",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": true,
- "rs232": false,
- "rxgain": false,
- "rxps": false,
- "snmp": false,
- "updateMethods": [
- "wifi"
- ],
- "webconfig": false
- },
"Generic_ESPNOW_room_svr-full-logging": {
"display": false,
"espnowBridge": false,
@@ -929,7 +884,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -944,26 +899,6 @@
],
"webconfig": true
},
- "Generic_ESPNOW_room_svr_lora_ota_no_external_sensors": {
- "display": false,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "mqtt": false,
- "otaRole": "lora-receiver",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": true,
- "rs232": false,
- "rxgain": false,
- "rxps": false,
- "snmp": false,
- "updateMethods": [
- "lora",
- "wifi"
- ],
- "webconfig": false
- },
"Heltec_E213_companion_radio_full": {
"display": true,
"espnowBridge": false,
@@ -975,7 +910,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
@@ -989,78 +924,62 @@
],
"webconfig": true
},
- "Heltec_E213_repeater-full-logging": {
+ "Heltec_E213_repeater-full-usb-wifi": {
"display": true,
- "espnowBridge": false,
+ "espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
- "loggingControl": "usb.logging",
+ "loggingControl": "logging.output",
"loggingModes": [
"none",
- "usb"
+ "usb",
+ "wifi",
+ "both"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
- "mqtt": false,
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
- "snmp": false,
+ "snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
- "Heltec_E213_room_server-full-logging": {
+ "Heltec_E213_room_server-full-usb-wifi": {
"display": true,
- "espnowBridge": false,
+ "espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
- "loggingControl": "usb.logging",
+ "loggingControl": "logging.output",
"loggingModes": [
"none",
- "usb"
+ "usb",
+ "wifi",
+ "both"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
- "mqtt": false,
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
- "snmp": false,
+ "snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
- "Heltec_E213_room_server_lora_ota_no_external_sensors": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "mqtt": false,
- "otaRole": "lora-receiver",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "lora",
- "wifi"
- ],
- "webconfig": false
- },
"Heltec_E290_companion_radio_full": {
"display": true,
"espnowBridge": false,
@@ -1072,7 +991,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
@@ -1086,78 +1005,62 @@
],
"webconfig": true
},
- "Heltec_E290_repeater-full-logging": {
+ "Heltec_E290_repeater-full-usb-wifi": {
"display": true,
- "espnowBridge": false,
+ "espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
- "loggingControl": "usb.logging",
+ "loggingControl": "logging.output",
"loggingModes": [
"none",
- "usb"
+ "usb",
+ "wifi",
+ "both"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
- "mqtt": false,
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
- "snmp": false,
+ "snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
- "Heltec_E290_room_server-full-logging": {
+ "Heltec_E290_room_server-full-usb-wifi": {
"display": true,
- "espnowBridge": false,
+ "espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
- "loggingControl": "usb.logging",
+ "loggingControl": "logging.output",
"loggingModes": [
"none",
- "usb"
+ "usb",
+ "wifi",
+ "both"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
- "mqtt": false,
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
- "snmp": false,
+ "snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
- "Heltec_E290_room_server_lora_ota_no_external_sensors": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "mqtt": false,
- "otaRole": "lora-receiver",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "lora",
- "wifi"
- ],
- "webconfig": false
- },
"Heltec_T190_companion_radio_full_": {
"display": true,
"espnowBridge": false,
@@ -1169,7 +1072,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
@@ -1196,7 +1099,7 @@
"wifi",
"both"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -1224,7 +1127,7 @@
"wifi",
"both"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -1239,26 +1142,6 @@
],
"webconfig": true
},
- "Heltec_T190_room_server_lora_ota_no_external_sensors": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "mqtt": false,
- "otaRole": "lora-receiver",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "lora",
- "wifi"
- ],
- "webconfig": false
- },
"Heltec_WSL3_companion_radio_full": {
"display": false,
"espnowBridge": false,
@@ -1270,7 +1153,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
@@ -1297,12 +1180,12 @@
"wifi",
"both"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
- "rs232": false,
+ "rs232": true,
"rxgain": true,
"rxps": true,
"snmp": true,
@@ -1312,26 +1195,6 @@
],
"webconfig": true
},
- "Heltec_WSL3_repeater_lora_ota_no_external_sensors": {
- "display": false,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "lora-receiver",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": true,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "lora",
- "wifi"
- ],
- "webconfig": false
- },
"Heltec_WSL3_room_server-full-usb-wifi": {
"display": false,
"espnowBridge": true,
@@ -1345,7 +1208,7 @@
"wifi",
"both"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -1360,26 +1223,6 @@
],
"webconfig": true
},
- "Heltec_WSL3_room_server_lora_ota_no_external_sensors": {
- "display": false,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "lora-receiver",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "lora",
- "wifi"
- ],
- "webconfig": false
- },
"Heltec_WSL3_sensor-full-logging": {
"display": false,
"espnowBridge": false,
@@ -1391,7 +1234,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -1404,7 +1247,7 @@
"wifi",
"lora"
],
- "webconfig": true
+ "webconfig": false
},
"Heltec_Wireless_Paper_companion_radio_full": {
"display": true,
@@ -1417,9 +1260,9 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Wireless Paper Full capacity: 350 contacts and 40 channels. Full Companion queue: 256 offline messages normally; 128 while mOTA borrows queue storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source restores all 256 slots.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
@@ -1433,98 +1276,62 @@
],
"webconfig": true
},
- "Heltec_Wireless_Paper_repeater-full-logging": {
+ "Heltec_Wireless_Paper_repeater-full-usb-wifi": {
"display": true,
- "espnowBridge": false,
+ "espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
- "loggingControl": "usb.logging",
+ "loggingControl": "logging.output",
"loggingModes": [
"none",
- "usb"
+ "usb",
+ "wifi",
+ "both"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
- "mqtt": false,
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
- "snmp": false,
+ "snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
- "Heltec_Wireless_Paper_repeater_lora_ota_no_external_sensors": {
+ "Heltec_Wireless_Paper_room_server-full-usb-wifi": {
"display": true,
- "espnowBridge": false,
+ "espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
- "mqtt": false,
- "otaRole": "lora-receiver",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "lora",
- "wifi"
- ],
- "webconfig": false
- },
- "Heltec_Wireless_Paper_room_server-full-logging": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "loggingControl": "usb.logging",
+ "loggingControl": "logging.output",
"loggingModes": [
"none",
- "usb"
+ "usb",
+ "wifi",
+ "both"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
- "mqtt": false,
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
- "snmp": false,
+ "snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
- "Heltec_Wireless_Paper_room_server_lora_ota_no_external_sensors": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "mqtt": false,
- "otaRole": "lora-receiver",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "lora",
- "wifi"
- ],
- "webconfig": false
- },
"Heltec_Wireless_Tracker_companion_radio_full": {
"display": true,
"espnowBridge": false,
@@ -1536,9 +1343,9 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Full Companion capacity: 150 contacts and 256 queued messages; all Full transports are retained. Export contacts before updating if you have more than 150; entries beyond this limit may be unavailable or omitted by a later save.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
@@ -1552,78 +1359,62 @@
],
"webconfig": true
},
- "Heltec_Wireless_Tracker_repeater-full-logging": {
+ "Heltec_Wireless_Tracker_repeater-full-usb-wifi": {
"display": true,
- "espnowBridge": false,
+ "espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": true,
- "loggingControl": "usb.logging",
+ "loggingControl": "logging.output",
"loggingModes": [
"none",
- "usb"
+ "usb",
+ "wifi",
+ "both"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
- "mqtt": false,
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
- "snmp": false,
+ "snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
- "Heltec_Wireless_Tracker_room_server-full-logging": {
+ "Heltec_Wireless_Tracker_room_server-full-usb-wifi": {
"display": true,
- "espnowBridge": false,
+ "espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": true,
- "loggingControl": "usb.logging",
+ "loggingControl": "logging.output",
"loggingModes": [
"none",
- "usb"
+ "usb",
+ "wifi",
+ "both"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
- "mqtt": false,
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
- "snmp": false,
+ "snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
- "Heltec_Wireless_Tracker_room_server_lora_ota_no_external_sensors": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "lora-receiver",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "lora",
- "wifi"
- ],
- "webconfig": false
- },
"Heltec_ct62_companion_radio_full": {
"display": false,
"espnowBridge": false,
@@ -1635,9 +1426,9 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Full Companion capacity: 100 contacts and 224 queued messages; all Full transports are retained. Export contacts before updating if you have more than 100; entries beyond this limit may be unavailable or omitted by a later save.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
@@ -1649,28 +1440,9 @@
"updateMethods": [],
"webconfig": true
},
- "Heltec_ct62_repeater": {
- "display": false,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "mqtt": false,
- "otaRole": "none",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "wifi"
- ],
- "webconfig": false
- },
"Heltec_ct62_repeater-full-logging": {
"display": false,
- "espnowBridge": false,
+ "espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
@@ -1679,7 +1451,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -1694,25 +1466,6 @@
],
"webconfig": true
},
- "Heltec_ct62_sensor": {
- "display": false,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "mqtt": false,
- "otaRole": "none",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "wifi"
- ],
- "webconfig": false
- },
"Heltec_ct62_sensor-full-logging": {
"display": false,
"espnowBridge": false,
@@ -1724,7 +1477,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -1737,7 +1490,7 @@
"wifi",
"lora"
],
- "webconfig": true
+ "webconfig": false
},
"Heltec_mesh_solar_companion_radio_full": {
"dedicatedUsbLogging": true,
@@ -1751,9 +1504,9 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Full Companion queue: 256 offline messages normally; 128 while mOTA borrows queue storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source restores all 256 slots.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
@@ -1767,26 +1520,7 @@
],
"webconfig": false
},
- "Heltec_mesh_solar_repeater": {
- "display": false,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "none",
- "platform": "NRF52_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "bluetooth"
- ],
- "webconfig": false
- },
- "Heltec_mesh_solar_repeater_lora_ota_no_external_sensors": {
+ "Heltec_mesh_solar_repeater_lora_ota_no_external_sensors-full": {
"display": false,
"espnowBridge": false,
"femRx": false,
@@ -1799,6 +1533,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -1807,11 +1543,12 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Internal storage accepts in-place application deltas, not full application packages."
],
@@ -1823,26 +1560,7 @@
},
"webconfig": false
},
- "Heltec_mesh_solar_room_server": {
- "display": false,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "none",
- "platform": "NRF52_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "bluetooth"
- ],
- "webconfig": false
- },
- "Heltec_mesh_solar_room_server_lora_ota_no_external_sensors": {
+ "Heltec_mesh_solar_repeater_lora_ota_no_external_sensors-reduced": {
"display": false,
"espnowBridge": false,
"femRx": false,
@@ -1855,6 +1573,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -1863,11 +1583,92 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
+ "webconfig": false
+ },
+ "Heltec_mesh_solar_room_server_lora_ota_no_external_sensors-full": {
+ "display": false,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": true,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
+ "webconfig": false
+ },
+ "Heltec_mesh_solar_room_server_lora_ota_no_external_sensors-reduced": {
+ "display": false,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": true,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Internal storage accepts in-place application deltas, not full application packages."
],
@@ -1891,9 +1692,9 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Full Companion queue: 256 offline messages normally; 128 while mOTA borrows queue storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source restores all 256 slots.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
@@ -1907,33 +1708,14 @@
],
"webconfig": false
},
- "Heltec_t096_repeater": {
+ "Heltec_t096_repeater_lora_ota_no_external_sensors-full": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
- "mqtt": false,
- "otaRole": "none",
- "platform": "NRF52_PLATFORM",
- "primaryEspnow": false,
- "rs232": true,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "bluetooth"
- ],
- "webconfig": false
- },
- "Heltec_t096_repeater_lora_ota_no_external_sensors": {
- "display": true,
- "espnowBridge": false,
- "femRx": true,
- "femTx": false,
- "gps": true,
- "memoryNote": "Neighbor table: 50 entries. Flood rules: 16 entries; the complete rule engine is retained.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "memoryNote": "Flood rules: 4 entries; the complete rule engine is retained.",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "NRF52_PLATFORM",
@@ -1941,6 +1723,8 @@
"rs232": true,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -1949,13 +1733,14 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
- "Requires OTAFIX 2.4.6 retained-RAM handoff support; a transfer cannot resume after the receiver restarts."
+ "Requires the exact-board retained-RAM handoff bootloader profile; a transfer cannot resume after the receiver restarts."
],
"package_types": [
"in_place_delta"
@@ -1965,26 +1750,49 @@
},
"webconfig": false
},
- "Heltec_t096_room_server": {
+ "Heltec_t096_repeater_lora_ota_no_external_sensors-reduced": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
+ "memoryNote": "Flood rules: 4 entries; the complete rule engine is retained.",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
- "otaRole": "none",
+ "otaRole": "lora-receiver",
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
- "rs232": false,
+ "rs232": true,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
- "bluetooth"
+ "bluetooth",
+ "lora"
],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Requires the exact-board retained-RAM handoff bootloader profile; a transfer cannot resume after the receiver restarts."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash_and_retained_ram"
+ }
+ },
"webconfig": false
},
- "Heltec_t096_room_server_lora_ota_no_external_sensors": {
+ "Heltec_t096_room_server_lora_ota_no_external_sensors-full": {
"display": true,
"espnowBridge": false,
"femRx": true,
@@ -1997,6 +1805,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -2005,11 +1815,12 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Internal storage accepts in-place application deltas, not full application packages."
],
@@ -2021,26 +1832,7 @@
},
"webconfig": false
},
- "Heltec_t096_sensor": {
- "display": true,
- "espnowBridge": false,
- "femRx": true,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "none",
- "platform": "NRF52_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "bluetooth"
- ],
- "webconfig": false
- },
- "Heltec_t096_sensor_lora_ota_no_external_sensors": {
+ "Heltec_t096_room_server_lora_ota_no_external_sensors-reduced": {
"display": true,
"espnowBridge": false,
"femRx": true,
@@ -2053,6 +1845,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -2061,11 +1855,92 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
+ "webconfig": false
+ },
+ "Heltec_t096_sensor_lora_ota_no_external_sensors-full": {
+ "display": true,
+ "espnowBridge": false,
+ "femRx": true,
+ "femTx": false,
+ "gps": true,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
+ "webconfig": false
+ },
+ "Heltec_t096_sensor_lora_ota_no_external_sensors-reduced": {
+ "display": true,
+ "espnowBridge": false,
+ "femRx": true,
+ "femTx": false,
+ "gps": true,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Internal storage accepts in-place application deltas, not full application packages."
],
@@ -2089,9 +1964,9 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Full Companion queue: 256 offline messages normally; 128 while mOTA borrows queue storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source restores all 256 slots.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
@@ -2105,26 +1980,7 @@
],
"webconfig": false
},
- "Heltec_t114_repeater": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "none",
- "platform": "NRF52_PLATFORM",
- "primaryEspnow": false,
- "rs232": true,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "bluetooth"
- ],
- "webconfig": false
- },
- "Heltec_t114_repeater_lora_ota_no_external_sensors": {
+ "Heltec_t114_repeater_lora_ota_no_external_sensors-full": {
"display": true,
"espnowBridge": false,
"femRx": false,
@@ -2137,6 +1993,8 @@
"rs232": true,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -2145,13 +2003,14 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
- "Requires OTAFIX 2.4.6 retained-RAM handoff support; a transfer cannot resume after the receiver restarts."
+ "Requires the exact-board retained-RAM handoff bootloader profile; a transfer cannot resume after the receiver restarts."
],
"package_types": [
"in_place_delta"
@@ -2161,26 +2020,47 @@
},
"webconfig": false
},
- "Heltec_t114_room_server": {
+ "Heltec_t114_repeater_lora_ota_no_external_sensors-reduced": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
- "otaRole": "none",
+ "otaRole": "lora-receiver",
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
- "rs232": false,
+ "rs232": true,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
- "bluetooth"
+ "bluetooth",
+ "lora"
],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Requires the exact-board retained-RAM handoff bootloader profile; a transfer cannot resume after the receiver restarts."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash_and_retained_ram"
+ }
+ },
"webconfig": false
},
- "Heltec_t114_room_server_lora_ota_no_external_sensors": {
+ "Heltec_t114_room_server_lora_ota_no_external_sensors-full": {
"display": true,
"espnowBridge": false,
"femRx": false,
@@ -2193,6 +2073,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -2201,11 +2083,12 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Internal storage accepts in-place application deltas, not full application packages."
],
@@ -2217,26 +2100,7 @@
},
"webconfig": false
},
- "Heltec_t114_sensor": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "none",
- "platform": "NRF52_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "bluetooth"
- ],
- "webconfig": false
- },
- "Heltec_t114_sensor_lora_ota_no_external_sensors": {
+ "Heltec_t114_room_server_lora_ota_no_external_sensors-reduced": {
"display": true,
"espnowBridge": false,
"femRx": false,
@@ -2249,6 +2113,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -2257,11 +2123,92 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
+ "webconfig": false
+ },
+ "Heltec_t114_sensor_lora_ota_no_external_sensors-full": {
+ "display": true,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": true,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
+ "webconfig": false
+ },
+ "Heltec_t114_sensor_lora_ota_no_external_sensors-reduced": {
+ "display": true,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": true,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Internal storage accepts in-place application deltas, not full application packages."
],
@@ -2285,9 +2232,9 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Full Companion queue: 256 offline messages normally; 128 while mOTA borrows queue storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source restores all 256 slots.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
@@ -2301,26 +2248,7 @@
],
"webconfig": false
},
- "Heltec_t114_without_display_repeater": {
- "display": false,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "none",
- "platform": "NRF52_PLATFORM",
- "primaryEspnow": false,
- "rs232": true,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "bluetooth"
- ],
- "webconfig": false
- },
- "Heltec_t114_without_display_repeater_lora_ota_no_external_sensors": {
+ "Heltec_t114_without_display_repeater_lora_ota_no_external_sensors-full": {
"display": false,
"espnowBridge": false,
"femRx": false,
@@ -2333,6 +2261,8 @@
"rs232": true,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -2341,13 +2271,14 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
- "Requires OTAFIX 2.4.6 retained-RAM handoff support; a transfer cannot resume after the receiver restarts."
+ "Requires the exact-board retained-RAM handoff bootloader profile; a transfer cannot resume after the receiver restarts."
],
"package_types": [
"in_place_delta"
@@ -2357,26 +2288,47 @@
},
"webconfig": false
},
- "Heltec_t114_without_display_room_server": {
+ "Heltec_t114_without_display_repeater_lora_ota_no_external_sensors-reduced": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
- "otaRole": "none",
+ "otaRole": "lora-receiver",
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
- "rs232": false,
+ "rs232": true,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
- "bluetooth"
+ "bluetooth",
+ "lora"
],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Requires the exact-board retained-RAM handoff bootloader profile; a transfer cannot resume after the receiver restarts."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash_and_retained_ram"
+ }
+ },
"webconfig": false
},
- "Heltec_t114_without_display_room_server_lora_ota_no_external_sensors": {
+ "Heltec_t114_without_display_room_server_lora_ota_no_external_sensors-full": {
"display": false,
"espnowBridge": false,
"femRx": false,
@@ -2389,6 +2341,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -2397,11 +2351,52 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
+ "webconfig": false
+ },
+ "Heltec_t114_without_display_room_server_lora_ota_no_external_sensors-reduced": {
+ "display": false,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": true,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Internal storage accepts in-place application deltas, not full application packages."
],
@@ -2425,9 +2420,9 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Full Companion queue: 256 offline messages normally; 128 while mOTA borrows queue storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source restores all 256 slots.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
@@ -2441,33 +2436,14 @@
],
"webconfig": false
},
- "Heltec_t1_repeater": {
+ "Heltec_t1_repeater_lora_ota_no_external_sensors-full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
- "mqtt": false,
- "otaRole": "none",
- "platform": "NRF52_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": false,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "bluetooth"
- ],
- "webconfig": false
- },
- "Heltec_t1_repeater_lora_ota_no_external_sensors": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "memoryNote": "Neighbor table: 50 entries. Flood rules: 16 entries; the complete rule engine is retained.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "memoryNote": "Flood rules: 4 entries; the complete rule engine is retained.",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "NRF52_PLATFORM",
@@ -2475,6 +2451,8 @@
"rs232": false,
"rxgain": false,
"rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -2483,13 +2461,14 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
- "Requires OTAFIX 2.4.6 retained-RAM handoff support; a transfer cannot resume after the receiver restarts."
+ "Requires the exact-board retained-RAM handoff bootloader profile; a transfer cannot resume after the receiver restarts."
],
"package_types": [
"in_place_delta"
@@ -2499,26 +2478,49 @@
},
"webconfig": false
},
- "Heltec_t1_room_server": {
+ "Heltec_t1_repeater_lora_ota_no_external_sensors-reduced": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
+ "memoryNote": "Flood rules: 4 entries; the complete rule engine is retained.",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
- "otaRole": "none",
+ "otaRole": "lora-receiver",
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
- "bluetooth"
+ "bluetooth",
+ "lora"
],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Requires the exact-board retained-RAM handoff bootloader profile; a transfer cannot resume after the receiver restarts."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash_and_retained_ram"
+ }
+ },
"webconfig": false
},
- "Heltec_t1_room_server_lora_ota_no_external_sensors": {
+ "Heltec_t1_room_server_lora_ota_no_external_sensors-full": {
"display": true,
"espnowBridge": false,
"femRx": false,
@@ -2531,6 +2533,8 @@
"rs232": false,
"rxgain": false,
"rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -2539,11 +2543,52 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
+ "webconfig": false
+ },
+ "Heltec_t1_room_server_lora_ota_no_external_sensors-reduced": {
+ "display": true,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": true,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": false,
+ "rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Internal storage accepts in-place application deltas, not full application packages."
],
@@ -2567,9 +2612,9 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Full Companion queue: 256 offline messages normally; 128 while mOTA borrows queue storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source restores all 256 slots.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
@@ -2583,26 +2628,7 @@
],
"webconfig": false
},
- "Heltec_tower_v2_repeater": {
- "display": false,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "none",
- "platform": "NRF52_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "bluetooth"
- ],
- "webconfig": false
- },
- "Heltec_tower_v2_repeater_lora_ota_no_external_sensors": {
+ "Heltec_tower_v2_room_server_lora_ota_no_external_sensors-full": {
"display": false,
"espnowBridge": false,
"femRx": false,
@@ -2615,6 +2641,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -2623,67 +2651,12 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
- "notes": [
- "Use a destination-specific .mota package matching the board, target, and storage layout.",
- "An in-place delta requires the exact firmware currently running as its base.",
- "The package must fit the receiver's staging and apply workspace.",
- "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
- "Requires OTAFIX 2.4.6 retained-RAM handoff support; a transfer cannot resume after the receiver restarts."
- ],
- "package_types": [
- "in_place_delta"
- ],
- "storage": "internal_flash_and_retained_ram"
- }
- },
- "webconfig": false
- },
- "Heltec_tower_v2_room_server": {
- "display": false,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "none",
- "platform": "NRF52_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "bluetooth"
- ],
- "webconfig": false
- },
- "Heltec_tower_v2_room_server_lora_ota_no_external_sensors": {
- "display": false,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "lora-receiver",
- "platform": "NRF52_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "bluetooth",
- "lora"
- ],
- "updateRequirements": {
- "lora": {
- "bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Internal storage accepts in-place application deltas, not full application packages."
],
@@ -2695,7 +2668,7 @@
},
"webconfig": false
},
- "Heltec_tower_v2_sdcard_repeater_lora_ota_no_external_sensors": {
+ "Heltec_tower_v2_room_server_lora_ota_no_external_sensors-reduced": {
"display": false,
"espnowBridge": false,
"femRx": false,
@@ -2708,6 +2681,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -2716,11 +2691,93 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
+ "webconfig": false
+ },
+ "Heltec_tower_v2_sdcard_repeater_lora_ota_no_external_sensors-full": {
+ "display": false,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": true,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Requires the matching external-storage hardware, wiring, and storage-aware OTAFIX bootloader."
+ ],
+ "package_types": [
+ "full",
+ "in_place_delta"
+ ],
+ "storage": "external_sd"
+ }
+ },
+ "webconfig": false
+ },
+ "Heltec_tower_v2_sdcard_repeater_lora_ota_no_external_sensors-reduced": {
+ "display": false,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": true,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires the matching external-storage hardware, wiring, and storage-aware OTAFIX bootloader."
],
@@ -2744,9 +2801,9 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Full Companion capacity: 100 contacts, 8 channels and 16 queued messages. Export contacts and channels before updating if they exceed these limits; extra entries may be unavailable or omitted by a later save.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
@@ -2762,7 +2819,7 @@
},
"Heltec_v2_repeater-full-logging": {
"display": true,
- "espnowBridge": false,
+ "espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
@@ -2771,9 +2828,9 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Neighbor table: 50 entries.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -2799,7 +2856,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -2814,26 +2871,6 @@
],
"webconfig": true
},
- "Heltec_v2_room_server_lora_ota_no_external_sensors": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "mqtt": false,
- "otaRole": "lora-receiver",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": false,
- "rxps": false,
- "snmp": false,
- "updateMethods": [
- "lora",
- "wifi"
- ],
- "webconfig": false
- },
"Heltec_v3_companion_radio_full": {
"display": true,
"espnowBridge": false,
@@ -2847,9 +2884,9 @@
"wifi",
"both"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Full Companion capacity: 100 contacts and 256 queued messages; all Full transports are retained. Export contacts before updating if you have more than 100; entries beyond this limit may be unavailable or omitted by a later save.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
@@ -2876,12 +2913,12 @@
"wifi",
"both"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
- "rs232": false,
+ "rs232": true,
"rxgain": true,
"rxps": true,
"snmp": true,
@@ -2904,7 +2941,7 @@
"wifi",
"both"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -2919,26 +2956,6 @@
],
"webconfig": true
},
- "Heltec_v3_room_server_lora_ota_no_external_sensors": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "lora-receiver",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "lora",
- "wifi"
- ],
- "webconfig": false
- },
"Heltec_v3_sensor-full-logging": {
"display": true,
"espnowBridge": false,
@@ -2950,7 +2967,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -2963,7 +2980,7 @@
"wifi",
"lora"
],
- "webconfig": true
+ "webconfig": false
},
"KeepteenLT1_companion_radio_full": {
"dedicatedUsbLogging": true,
@@ -2977,9 +2994,9 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Full Companion queue: 256 offline messages normally; 128 while mOTA borrows queue storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source restores all 256 slots.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
@@ -2993,26 +3010,7 @@
],
"webconfig": false
},
- "KeepteenLT1_repeater": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "none",
- "platform": "NRF52_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "bluetooth"
- ],
- "webconfig": false
- },
- "KeepteenLT1_repeater_lora_ota_no_external_sensors": {
+ "KeepteenLT1_repeater_lora_ota_no_external_sensors-full": {
"display": true,
"espnowBridge": false,
"femRx": false,
@@ -3025,6 +3023,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -3033,13 +3033,14 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
- "Requires OTAFIX 2.4.6 retained-RAM handoff support; a transfer cannot resume after the receiver restarts."
+ "Requires the exact-board retained-RAM handoff bootloader profile; a transfer cannot resume after the receiver restarts."
],
"package_types": [
"in_place_delta"
@@ -3049,26 +3050,7 @@
},
"webconfig": false
},
- "KeepteenLT1_room_server": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "none",
- "platform": "NRF52_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "bluetooth"
- ],
- "webconfig": false
- },
- "KeepteenLT1_room_server_lora_ota_no_external_sensors": {
+ "KeepteenLT1_repeater_lora_ota_no_external_sensors-reduced": {
"display": true,
"espnowBridge": false,
"femRx": false,
@@ -3081,6 +3063,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -3089,11 +3073,92 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Requires the exact-board retained-RAM handoff bootloader profile; a transfer cannot resume after the receiver restarts."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash_and_retained_ram"
+ }
+ },
+ "webconfig": false
+ },
+ "KeepteenLT1_room_server_lora_ota_no_external_sensors-full": {
+ "display": true,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": true,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
+ "webconfig": false
+ },
+ "KeepteenLT1_room_server_lora_ota_no_external_sensors-reduced": {
+ "display": true,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": true,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Internal storage accepts in-place application deltas, not full application packages."
],
@@ -3117,9 +3182,9 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Full Companion queue: 256 offline messages normally; 128 while mOTA borrows queue storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source restores all 256 slots.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
@@ -3145,9 +3210,9 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Full Companion queue: 256 offline messages normally; 128 while mOTA borrows queue storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source restores all 256 slots.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
@@ -3161,26 +3226,7 @@
],
"webconfig": false
},
- "LilyGo_T-Echo-Lite_repeater": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "none",
- "platform": "NRF52_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "bluetooth"
- ],
- "webconfig": false
- },
- "LilyGo_T-Echo-Lite_repeater_lora_ota_no_external_sensors": {
+ "LilyGo_T-Echo-Lite_repeater_lora_ota_no_external_sensors-full": {
"display": true,
"espnowBridge": false,
"femRx": false,
@@ -3193,6 +3239,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -3201,11 +3249,12 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Internal storage accepts in-place application deltas, not full application packages."
],
@@ -3217,26 +3266,7 @@
},
"webconfig": false
},
- "LilyGo_T-Echo-Lite_room_server": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "none",
- "platform": "NRF52_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "bluetooth"
- ],
- "webconfig": false
- },
- "LilyGo_T-Echo-Lite_room_server_lora_ota_no_external_sensors": {
+ "LilyGo_T-Echo-Lite_repeater_lora_ota_no_external_sensors-reduced": {
"display": true,
"espnowBridge": false,
"femRx": false,
@@ -3249,6 +3279,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -3257,11 +3289,92 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
+ "webconfig": false
+ },
+ "LilyGo_T-Echo-Lite_room_server_lora_ota_no_external_sensors-full": {
+ "display": true,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": true,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
+ "webconfig": false
+ },
+ "LilyGo_T-Echo-Lite_room_server_lora_ota_no_external_sensors-reduced": {
+ "display": true,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": true,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Internal storage accepts in-place application deltas, not full application packages."
],
@@ -3285,9 +3398,9 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Full Companion queue: 256 offline messages normally; 128 while mOTA borrows queue storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source restores all 256 slots.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
@@ -3301,26 +3414,7 @@
],
"webconfig": false
},
- "LilyGo_T-Echo_Card_repeater": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "none",
- "platform": "NRF52_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "bluetooth"
- ],
- "webconfig": false
- },
- "LilyGo_T-Echo_Card_repeater_lora_ota_no_external_sensors": {
+ "LilyGo_T-Echo_Card_repeater_lora_ota_no_external_sensors-full": {
"display": true,
"espnowBridge": false,
"femRx": false,
@@ -3333,6 +3427,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -3341,11 +3437,12 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Internal storage accepts in-place application deltas, not full application packages."
],
@@ -3357,26 +3454,7 @@
},
"webconfig": false
},
- "LilyGo_T-Echo_Card_room_server": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "none",
- "platform": "NRF52_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "bluetooth"
- ],
- "webconfig": false
- },
- "LilyGo_T-Echo_Card_room_server_lora_ota_no_external_sensors": {
+ "LilyGo_T-Echo_Card_repeater_lora_ota_no_external_sensors-reduced": {
"display": true,
"espnowBridge": false,
"femRx": false,
@@ -3389,6 +3467,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -3397,11 +3477,92 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
+ "webconfig": false
+ },
+ "LilyGo_T-Echo_Card_room_server_lora_ota_no_external_sensors-full": {
+ "display": true,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": true,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
+ "webconfig": false
+ },
+ "LilyGo_T-Echo_Card_room_server_lora_ota_no_external_sensors-reduced": {
+ "display": true,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": true,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Internal storage accepts in-place application deltas, not full application packages."
],
@@ -3425,9 +3586,9 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Full Companion queue: 256 offline messages normally; 128 while mOTA borrows queue storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source restores all 256 slots.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
@@ -3441,7 +3602,7 @@
],
"webconfig": false
},
- "LilyGo_T-Echo_repeater": {
+ "LilyGo_T-Echo_repeater-full": {
"display": true,
"espnowBridge": false,
"femRx": false,
@@ -3454,6 +3615,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -3462,11 +3625,12 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires the matching external-storage hardware, wiring, and storage-aware OTAFIX bootloader."
],
@@ -3479,7 +3643,7 @@
},
"webconfig": false
},
- "LilyGo_T-Echo_repeater_lora_ota_no_external_sensors": {
+ "LilyGo_T-Echo_repeater-reduced": {
"display": true,
"espnowBridge": false,
"femRx": false,
@@ -3492,6 +3656,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -3500,11 +3666,12 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires the matching external-storage hardware, wiring, and storage-aware OTAFIX bootloader."
],
@@ -3517,26 +3684,7 @@
},
"webconfig": false
},
- "LilyGo_T-Echo_room_server": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "none",
- "platform": "NRF52_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "bluetooth"
- ],
- "webconfig": false
- },
- "LilyGo_T-Echo_room_server_lora_ota_no_external_sensors": {
+ "LilyGo_T-Echo_repeater_lora_ota_no_external_sensors-full": {
"display": true,
"espnowBridge": false,
"femRx": false,
@@ -3549,6 +3697,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -3557,11 +3707,134 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Requires the matching external-storage hardware, wiring, and storage-aware OTAFIX bootloader."
+ ],
+ "package_types": [
+ "full",
+ "in_place_delta"
+ ],
+ "storage": "external_qspi"
+ }
+ },
+ "webconfig": false
+ },
+ "LilyGo_T-Echo_repeater_lora_ota_no_external_sensors-reduced": {
+ "display": true,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": true,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Requires the matching external-storage hardware, wiring, and storage-aware OTAFIX bootloader."
+ ],
+ "package_types": [
+ "full",
+ "in_place_delta"
+ ],
+ "storage": "external_qspi"
+ }
+ },
+ "webconfig": false
+ },
+ "LilyGo_T-Echo_room_server_lora_ota_no_external_sensors-full": {
+ "display": true,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": true,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
+ "webconfig": false
+ },
+ "LilyGo_T-Echo_room_server_lora_ota_no_external_sensors-reduced": {
+ "display": true,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": true,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Internal storage accepts in-place application deltas, not full application packages."
],
@@ -3584,7 +3857,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
@@ -3596,25 +3869,6 @@
"updateMethods": [],
"webconfig": true
},
- "LilyGo_T3S3_sx1262_repeater": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "mqtt": false,
- "otaRole": "none",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "wifi"
- ],
- "webconfig": false
- },
"LilyGo_T3S3_sx1262_repeater-full-usb-wifi": {
"display": true,
"espnowBridge": true,
@@ -3628,7 +3882,7 @@
"wifi",
"both"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -3643,45 +3897,6 @@
],
"webconfig": true
},
- "LilyGo_T3S3_sx1262_repeater_lora_ota_no_external_sensors": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "mqtt": false,
- "otaRole": "lora-receiver",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "lora",
- "wifi"
- ],
- "webconfig": false
- },
- "LilyGo_T3S3_sx1262_room_server": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "mqtt": false,
- "otaRole": "none",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "wifi"
- ],
- "webconfig": false
- },
"LilyGo_T3S3_sx1262_room_server-full-usb-wifi": {
"display": true,
"espnowBridge": true,
@@ -3695,7 +3910,7 @@
"wifi",
"both"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -3710,26 +3925,6 @@
],
"webconfig": true
},
- "LilyGo_T3S3_sx1262_room_server_lora_ota_no_external_sensors": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "mqtt": false,
- "otaRole": "lora-receiver",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "lora",
- "wifi"
- ],
- "webconfig": false
- },
"LilyGo_T3S3_sx1276_companion_radio_full": {
"display": true,
"espnowBridge": false,
@@ -3741,7 +3936,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
@@ -3753,38 +3948,21 @@
"updateMethods": [],
"webconfig": true
},
- "LilyGo_T3S3_sx1276_repeater": {
+ "LilyGo_T3S3_sx1276_repeater-full-usb-wifi": {
"display": true,
- "espnowBridge": false,
+ "espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
- "mqtt": false,
- "otaRole": "none",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": false,
- "rxps": false,
- "snmp": false,
- "updateMethods": [
- "wifi"
- ],
- "webconfig": false
- },
- "LilyGo_T3S3_sx1276_repeater-full-logging": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "loggingControl": "usb.logging",
+ "loggingControl": "logging.output",
"loggingModes": [
"none",
- "usb"
+ "usb",
+ "wifi",
+ "both"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
- "mqtt": false,
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
@@ -3798,58 +3976,21 @@
],
"webconfig": true
},
- "LilyGo_T3S3_sx1276_repeater_lora_ota_no_external_sensors": {
+ "LilyGo_T3S3_sx1276_room_server-full-usb-wifi": {
"display": true,
- "espnowBridge": false,
+ "espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
- "mqtt": false,
- "otaRole": "lora-receiver",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": false,
- "rxps": false,
- "snmp": false,
- "updateMethods": [
- "lora",
- "wifi"
- ],
- "webconfig": false
- },
- "LilyGo_T3S3_sx1276_room_server": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "mqtt": false,
- "otaRole": "none",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": false,
- "rxps": false,
- "snmp": false,
- "updateMethods": [
- "wifi"
- ],
- "webconfig": false
- },
- "LilyGo_T3S3_sx1276_room_server-full-logging": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "loggingControl": "usb.logging",
+ "loggingControl": "logging.output",
"loggingModes": [
"none",
- "usb"
+ "usb",
+ "wifi",
+ "both"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
- "mqtt": false,
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
@@ -3863,26 +4004,6 @@
],
"webconfig": true
},
- "LilyGo_T3S3_sx1276_room_server_lora_ota_no_external_sensors": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "mqtt": false,
- "otaRole": "lora-receiver",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": false,
- "rxps": false,
- "snmp": false,
- "updateMethods": [
- "lora",
- "wifi"
- ],
- "webconfig": false
- },
"LilyGo_TBeam_1W_companion_radio_full": {
"display": true,
"espnowBridge": false,
@@ -3894,7 +4015,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
@@ -3919,7 +4040,7 @@
"wifi",
"both"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -3947,7 +4068,7 @@
"wifi",
"both"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -3962,26 +4083,6 @@
],
"webconfig": true
},
- "LilyGo_TBeam_1W_room_server_lora_ota_no_external_sensors": {
- "display": true,
- "espnowBridge": false,
- "femRx": true,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "lora-receiver",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "lora",
- "wifi"
- ],
- "webconfig": false
- },
"LilyGo_TDeck_companion_radio_full": {
"display": true,
"espnowBridge": false,
@@ -3993,7 +4094,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
@@ -4009,7 +4110,7 @@
},
"LilyGo_TDeck_repeater-full-logging": {
"display": true,
- "espnowBridge": false,
+ "espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": true,
@@ -4018,7 +4119,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -4044,7 +4145,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
@@ -4058,98 +4159,62 @@
],
"webconfig": true
},
- "LilyGo_TETH_Elite_sx1262_repeater-full-logging": {
+ "LilyGo_TETH_Elite_sx1262_repeater-full-usb-wifi": {
"display": false,
- "espnowBridge": false,
+ "espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
- "loggingControl": "usb.logging",
+ "loggingControl": "logging.output",
"loggingModes": [
"none",
- "usb"
+ "usb",
+ "wifi",
+ "both"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
- "mqtt": false,
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
- "snmp": false,
+ "snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
- "LilyGo_TETH_Elite_sx1262_repeater_lora_ota_no_external_sensors": {
+ "LilyGo_TETH_Elite_sx1262_room_server-full-usb-wifi": {
"display": false,
- "espnowBridge": false,
+ "espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
- "mqtt": false,
- "otaRole": "lora-receiver",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "lora",
- "wifi"
- ],
- "webconfig": false
- },
- "LilyGo_TETH_Elite_sx1262_room_server-full-logging": {
- "display": false,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "loggingControl": "usb.logging",
+ "loggingControl": "logging.output",
"loggingModes": [
"none",
- "usb"
+ "usb",
+ "wifi",
+ "both"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
- "mqtt": false,
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
- "snmp": false,
+ "snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
- "LilyGo_TETH_Elite_sx1262_room_server_lora_ota_no_external_sensors": {
- "display": false,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "mqtt": false,
- "otaRole": "lora-receiver",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "lora",
- "wifi"
- ],
- "webconfig": false
- },
"LilyGo_TLora_V2_1_1_6_companion_radio_full": {
"display": true,
"espnowBridge": false,
@@ -4161,9 +4226,9 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Full Companion capacity: 100 contacts, 8 channels and 16 queued messages. Export contacts and channels before updating if they exceed these limits; extra entries may be unavailable or omitted by a later save.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
@@ -4175,14 +4240,20 @@
"updateMethods": [],
"webconfig": true
},
- "LilyGo_TLora_V2_1_1_6_repeater": {
+ "LilyGo_TLora_V2_1_1_6_repeater-full-logging": {
"display": true,
- "espnowBridge": false,
+ "espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
+ "loggingControl": "usb.logging",
+ "loggingModes": [
+ "none",
+ "usb"
+ ],
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
- "otaRole": "none",
+ "otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": true,
@@ -4190,9 +4261,10 @@
"rxps": false,
"snmp": false,
"updateMethods": [
- "wifi"
+ "wifi",
+ "lora"
],
- "webconfig": false
+ "webconfig": true
},
"LilyGo_TLora_V2_1_1_6_repeater_observer_mqtt_-full-usb-wifi": {
"display": true,
@@ -4207,9 +4279,9 @@
"wifi",
"both"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Neighbor table: 50 entries.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -4223,45 +4295,6 @@
],
"webconfig": true
},
- "LilyGo_TLora_V2_1_1_6_room_server": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "mqtt": false,
- "otaRole": "none",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": false,
- "rxps": false,
- "snmp": false,
- "updateMethods": [
- "wifi"
- ],
- "webconfig": false
- },
- "LilyGo_TLora_V2_1_1_6_room_server_lora_ota_no_external_sensors": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "mqtt": false,
- "otaRole": "lora-receiver",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": false,
- "rxps": false,
- "snmp": false,
- "updateMethods": [
- "lora",
- "wifi"
- ],
- "webconfig": false
- },
"LilyGo_TLora_V2_1_1_6_room_server_observer_mqtt_-full-usb-wifi": {
"display": true,
"espnowBridge": true,
@@ -4275,7 +4308,7 @@
"wifi",
"both"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -4301,9 +4334,9 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Full Companion queue: 256 offline messages normally; 128 while mOTA borrows queue storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source restores all 256 slots.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
@@ -4317,26 +4350,7 @@
],
"webconfig": false
},
- "LilyGo_T_Impulse_Plus_repeater": {
- "display": false,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "none",
- "platform": "NRF52_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "bluetooth"
- ],
- "webconfig": false
- },
- "LilyGo_T_Impulse_Plus_repeater_lora_ota_no_external_sensors": {
+ "LilyGo_T_Impulse_Plus_repeater_lora_ota_no_external_sensors-full": {
"display": false,
"espnowBridge": false,
"femRx": false,
@@ -4349,6 +4363,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -4357,11 +4373,52 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
+ "webconfig": false
+ },
+ "LilyGo_T_Impulse_Plus_repeater_lora_ota_no_external_sensors-reduced": {
+ "display": false,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": true,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Internal storage accepts in-place application deltas, not full application packages."
],
@@ -4384,7 +4441,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
@@ -4398,7 +4455,7 @@
},
"LilyGo_Tlora_C6_repeater_-full-logging": {
"display": false,
- "espnowBridge": false,
+ "espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
@@ -4407,7 +4464,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -4422,26 +4479,6 @@
],
"webconfig": true
},
- "LilyGo_Tlora_C6_repeater_lora_ota_no_external_sensors": {
- "display": false,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "mqtt": false,
- "otaRole": "lora-receiver",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "lora",
- "wifi"
- ],
- "webconfig": false
- },
"LilyGo_Tlora_C6_room_server_-full-logging": {
"display": false,
"espnowBridge": false,
@@ -4453,7 +4490,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -4468,26 +4505,6 @@
],
"webconfig": true
},
- "LilyGo_Tlora_C6_room_server_lora_ota_no_external_sensors": {
- "display": false,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "mqtt": false,
- "otaRole": "lora-receiver",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "lora",
- "wifi"
- ],
- "webconfig": false
- },
"M5Stack_Unit_C6L_companion_radio_full": {
"display": false,
"espnowBridge": false,
@@ -4499,7 +4516,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
@@ -4513,7 +4530,7 @@
},
"M5Stack_Unit_C6L_repeater-full-logging": {
"display": false,
- "espnowBridge": false,
+ "espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": true,
@@ -4522,7 +4539,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -4536,26 +4553,6 @@
],
"webconfig": true
},
- "M5Stack_Unit_C6L_repeater_lora_ota_no_external_sensors": {
- "display": false,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "lora-receiver",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "lora",
- "wifi"
- ],
- "webconfig": false
- },
"M5Stack_Unit_C6L_room_server-full-logging": {
"display": false,
"espnowBridge": false,
@@ -4567,7 +4564,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -4581,26 +4578,6 @@
],
"webconfig": true
},
- "M5Stack_Unit_C6L_room_server_lora_ota_no_external_sensors": {
- "display": false,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "lora-receiver",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "lora",
- "wifi"
- ],
- "webconfig": false
- },
"MKE_s3_companion_radio_full": {
"display": true,
"espnowBridge": false,
@@ -4612,7 +4589,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
@@ -4628,7 +4605,7 @@
},
"MKE_s3_repeater-full-logging": {
"display": true,
- "espnowBridge": false,
+ "espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": true,
@@ -4637,33 +4614,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
- "mqtt": false,
- "otaRole": "lora-receiver",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "wifi",
- "lora"
- ],
- "webconfig": true
- },
- "MKE_s3_repeater_bridge_rs232-full-logging": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "loggingControl": "usb.logging",
- "loggingModes": [
- "none",
- "usb"
- ],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -4678,26 +4629,6 @@
],
"webconfig": true
},
- "MKE_s3_repeater_lora_ota_no_external_sensors": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "lora-receiver",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "lora",
- "wifi"
- ],
- "webconfig": false
- },
"MKE_s3_room_server-full-logging": {
"display": true,
"espnowBridge": false,
@@ -4709,7 +4640,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -4724,26 +4655,6 @@
],
"webconfig": true
},
- "MKE_s3_room_server_lora_ota_no_external_sensors": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "lora-receiver",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "lora",
- "wifi"
- ],
- "webconfig": false
- },
"MKE_s3_sensor-full-logging": {
"display": true,
"espnowBridge": false,
@@ -4755,7 +4666,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -4768,7 +4679,7 @@
"wifi",
"lora"
],
- "webconfig": true
+ "webconfig": false
},
"MeshTracker_X1_companion_radio_full": {
"dedicatedUsbLogging": true,
@@ -4782,9 +4693,9 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Full Companion queue: 256 offline messages normally; 128 while mOTA borrows queue storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source restores all 256 slots.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
@@ -4798,26 +4709,7 @@
],
"webconfig": false
},
- "MeshTracker_X1_repeater": {
- "display": false,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "none",
- "platform": "NRF52_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": false,
- "rxps": false,
- "snmp": false,
- "updateMethods": [
- "bluetooth"
- ],
- "webconfig": false
- },
- "MeshTracker_X1_repeater_lora_ota_no_external_sensors": {
+ "MeshTracker_X1_repeater_lora_ota_no_external_sensors-full": {
"display": false,
"espnowBridge": false,
"femRx": false,
@@ -4830,6 +4722,8 @@
"rs232": false,
"rxgain": false,
"rxps": false,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -4838,11 +4732,12 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Internal storage accepts in-place application deltas, not full application packages."
],
@@ -4854,26 +4749,7 @@
},
"webconfig": false
},
- "MeshTracker_X1_room_server": {
- "display": false,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "none",
- "platform": "NRF52_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": false,
- "rxps": false,
- "snmp": false,
- "updateMethods": [
- "bluetooth"
- ],
- "webconfig": false
- },
- "MeshTracker_X1_room_server_lora_ota_no_external_sensors": {
+ "MeshTracker_X1_repeater_lora_ota_no_external_sensors-reduced": {
"display": false,
"espnowBridge": false,
"femRx": false,
@@ -4886,6 +4762,8 @@
"rs232": false,
"rxgain": false,
"rxps": false,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -4894,11 +4772,92 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
+ "webconfig": false
+ },
+ "MeshTracker_X1_room_server_lora_ota_no_external_sensors-full": {
+ "display": false,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": true,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": false,
+ "rxps": false,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
+ "webconfig": false
+ },
+ "MeshTracker_X1_room_server_lora_ota_no_external_sensors-reduced": {
+ "display": false,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": true,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": false,
+ "rxps": false,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Internal storage accepts in-place application deltas, not full application packages."
],
@@ -4922,9 +4881,9 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Full Companion queue: 256 offline messages normally; 128 while mOTA borrows queue storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source restores all 256 slots.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
@@ -4938,26 +4897,7 @@
],
"webconfig": false
},
- "Mesh_pocket_repeater": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "mqtt": false,
- "otaRole": "none",
- "platform": "NRF52_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "bluetooth"
- ],
- "webconfig": false
- },
- "Mesh_pocket_repeater_lora_ota_no_external_sensors": {
+ "Mesh_pocket_repeater_lora_ota_no_external_sensors-full": {
"display": true,
"espnowBridge": false,
"femRx": false,
@@ -4970,6 +4910,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -4978,13 +4920,14 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
- "Requires OTAFIX 2.4.6 retained-RAM handoff support; a transfer cannot resume after the receiver restarts."
+ "Requires the exact-board retained-RAM handoff bootloader profile; a transfer cannot resume after the receiver restarts."
],
"package_types": [
"in_place_delta"
@@ -4994,26 +4937,7 @@
},
"webconfig": false
},
- "Mesh_pocket_room_server": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "mqtt": false,
- "otaRole": "none",
- "platform": "NRF52_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "bluetooth"
- ],
- "webconfig": false
- },
- "Mesh_pocket_room_server_lora_ota_no_external_sensors": {
+ "Mesh_pocket_repeater_lora_ota_no_external_sensors-reduced": {
"display": true,
"espnowBridge": false,
"femRx": false,
@@ -5026,6 +4950,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -5034,11 +4960,92 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Requires the exact-board retained-RAM handoff bootloader profile; a transfer cannot resume after the receiver restarts."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash_and_retained_ram"
+ }
+ },
+ "webconfig": false
+ },
+ "Mesh_pocket_room_server_lora_ota_no_external_sensors-full": {
+ "display": true,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": false,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
+ "webconfig": false
+ },
+ "Mesh_pocket_room_server_lora_ota_no_external_sensors-reduced": {
+ "display": true,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": false,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Internal storage accepts in-place application deltas, not full application packages."
],
@@ -5061,9 +5068,9 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Full Companion capacity: 100 contacts, 30 channels and 16 queued messages. Export contacts and channels before updating if they exceed these limits; extra entries may be unavailable or omitted by a later save.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
@@ -5075,26 +5082,7 @@
"updateMethods": [],
"webconfig": true
},
- "Meshadventurer_sx1262_repeater": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "none",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "wifi"
- ],
- "webconfig": false
- },
- "Meshadventurer_sx1262_repeater_bridge_espnow-full-logging": {
+ "Meshadventurer_sx1262_repeater-full-logging": {
"display": true,
"espnowBridge": true,
"femRx": false,
@@ -5105,9 +5093,9 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
- "memoryNote": "Flood rules: 47 entries; the complete rule engine is retained. Neighbor table: 50 entries.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "memoryNote": "Neighbor table: 50 entries.",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -5122,25 +5110,6 @@
],
"webconfig": true
},
- "Meshadventurer_sx1262_room_server": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "none",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "wifi"
- ],
- "webconfig": false
- },
"Meshadventurer_sx1262_room_server-full-logging": {
"display": true,
"espnowBridge": false,
@@ -5152,7 +5121,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -5167,26 +5136,6 @@
],
"webconfig": true
},
- "Meshadventurer_sx1262_room_server_lora_ota_no_external_sensors": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "lora-receiver",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "lora",
- "wifi"
- ],
- "webconfig": false
- },
"Meshadventurer_sx1268_companion_radio_full": {
"display": true,
"espnowBridge": false,
@@ -5198,9 +5147,9 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Full Companion capacity: 100 contacts, 30 channels and 16 queued messages. Export contacts and channels before updating if they exceed these limits; extra entries may be unavailable or omitted by a later save.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
@@ -5212,26 +5161,7 @@
"updateMethods": [],
"webconfig": true
},
- "Meshadventurer_sx1268_repeater": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "none",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "wifi"
- ],
- "webconfig": false
- },
- "Meshadventurer_sx1268_repeater_bridge_espnow-full-logging": {
+ "Meshadventurer_sx1268_repeater-full-logging": {
"display": true,
"espnowBridge": true,
"femRx": false,
@@ -5242,9 +5172,9 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
- "memoryNote": "Flood rules: 47 entries; the complete rule engine is retained. Neighbor table: 50 entries.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "memoryNote": "Neighbor table: 50 entries.",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -5259,25 +5189,6 @@
],
"webconfig": true
},
- "Meshadventurer_sx1268_room_server": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "none",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "wifi"
- ],
- "webconfig": false
- },
"Meshadventurer_sx1268_room_server-full-logging": {
"display": true,
"espnowBridge": false,
@@ -5289,7 +5200,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -5304,26 +5215,6 @@
],
"webconfig": true
},
- "Meshadventurer_sx1268_room_server_lora_ota_no_external_sensors": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "lora-receiver",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "lora",
- "wifi"
- ],
- "webconfig": false
- },
"Meshimi_companion_radio_full_": {
"display": false,
"espnowBridge": false,
@@ -5335,7 +5226,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
@@ -5349,7 +5240,7 @@
},
"Meshimi_repeater_-full-logging": {
"display": false,
- "espnowBridge": false,
+ "espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
@@ -5358,7 +5249,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -5372,26 +5263,6 @@
],
"webconfig": true
},
- "Meshimi_repeater_lora_ota_no_external_sensors": {
- "display": false,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "mqtt": false,
- "otaRole": "lora-receiver",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "lora",
- "wifi"
- ],
- "webconfig": false
- },
"Meshtiny_companion_radio_full": {
"dedicatedUsbLogging": true,
"display": true,
@@ -5404,9 +5275,9 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Full Companion queue: 256 offline messages normally; 128 while mOTA borrows queue storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source restores all 256 slots.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
@@ -5432,9 +5303,9 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Full Companion queue: 256 offline messages normally; 128 while mOTA borrows queue storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source restores all 256 slots.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
@@ -5448,26 +5319,7 @@
],
"webconfig": false
},
- "Minewsemi_me25ls01_repeater": {
- "display": false,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "mqtt": false,
- "otaRole": "none",
- "platform": "NRF52_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": false,
- "rxps": false,
- "snmp": false,
- "updateMethods": [
- "bluetooth"
- ],
- "webconfig": false
- },
- "Minewsemi_me25ls01_repeater_lora_ota_no_external_sensors": {
+ "Minewsemi_me25ls01_repeater_lora_ota_no_external_sensors-full": {
"display": false,
"espnowBridge": false,
"femRx": false,
@@ -5480,6 +5332,8 @@
"rs232": false,
"rxgain": false,
"rxps": false,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -5488,13 +5342,14 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
- "Requires OTAFIX 2.4.6 retained-RAM handoff support; a transfer cannot resume after the receiver restarts."
+ "Requires the exact-board retained-RAM handoff bootloader profile; a transfer cannot resume after the receiver restarts."
],
"package_types": [
"in_place_delta"
@@ -5504,26 +5359,7 @@
},
"webconfig": false
},
- "Minewsemi_me25ls01_room_server": {
- "display": false,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "mqtt": false,
- "otaRole": "none",
- "platform": "NRF52_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": false,
- "rxps": false,
- "snmp": false,
- "updateMethods": [
- "bluetooth"
- ],
- "webconfig": false
- },
- "Minewsemi_me25ls01_room_server_lora_ota_no_external_sensors": {
+ "Minewsemi_me25ls01_repeater_lora_ota_no_external_sensors-reduced": {
"display": false,
"espnowBridge": false,
"femRx": false,
@@ -5536,6 +5372,8 @@
"rs232": false,
"rxgain": false,
"rxps": false,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -5544,11 +5382,92 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Requires the exact-board retained-RAM handoff bootloader profile; a transfer cannot resume after the receiver restarts."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash_and_retained_ram"
+ }
+ },
+ "webconfig": false
+ },
+ "Minewsemi_me25ls01_room_server_lora_ota_no_external_sensors-full": {
+ "display": false,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": false,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": false,
+ "rxps": false,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
+ "webconfig": false
+ },
+ "Minewsemi_me25ls01_room_server_lora_ota_no_external_sensors-reduced": {
+ "display": false,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": false,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": false,
+ "rxps": false,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Internal storage accepts in-place application deltas, not full application packages."
],
@@ -5572,9 +5491,9 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Full Companion queue: 256 offline messages normally; 128 while mOTA borrows queue storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source restores all 256 slots.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
@@ -5588,26 +5507,7 @@
],
"webconfig": false
},
- "Nano_G2_Ultra_repeater": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "none",
- "platform": "NRF52_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "bluetooth"
- ],
- "webconfig": false
- },
- "Nano_G2_Ultra_repeater_lora_ota_no_external_sensors": {
+ "Nano_G2_Ultra_repeater_lora_ota_no_external_sensors-full": {
"display": true,
"espnowBridge": false,
"femRx": false,
@@ -5620,6 +5520,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -5628,11 +5530,12 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Internal storage accepts in-place application deltas, not full application packages."
],
@@ -5644,26 +5547,7 @@
},
"webconfig": false
},
- "Nano_G2_Ultra_room_server": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "none",
- "platform": "NRF52_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "bluetooth"
- ],
- "webconfig": false
- },
- "Nano_G2_Ultra_room_server_lora_ota_no_external_sensors": {
+ "Nano_G2_Ultra_repeater_lora_ota_no_external_sensors-reduced": {
"display": true,
"espnowBridge": false,
"femRx": false,
@@ -5676,6 +5560,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -5684,11 +5570,92 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
+ "webconfig": false
+ },
+ "Nano_G2_Ultra_room_server_lora_ota_no_external_sensors-full": {
+ "display": true,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": true,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
+ "webconfig": false
+ },
+ "Nano_G2_Ultra_room_server_lora_ota_no_external_sensors-reduced": {
+ "display": true,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": true,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Internal storage accepts in-place application deltas, not full application packages."
],
@@ -5780,9 +5747,9 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Full Companion queue: 256 offline messages normally; 128 while mOTA borrows queue storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source restores all 256 slots.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
@@ -5796,26 +5763,7 @@
],
"webconfig": false
},
- "ProMicro_repeater": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "none",
- "platform": "NRF52_PLATFORM",
- "primaryEspnow": false,
- "rs232": true,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "bluetooth"
- ],
- "webconfig": false
- },
- "ProMicro_repeater_lora_ota_no_external_sensors": {
+ "ProMicro_repeater_lora_ota_no_external_sensors-full": {
"display": true,
"espnowBridge": false,
"femRx": false,
@@ -5828,6 +5776,8 @@
"rs232": true,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -5836,13 +5786,14 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
- "Requires OTAFIX 2.4.6 retained-RAM handoff support; a transfer cannot resume after the receiver restarts."
+ "Requires the exact-board retained-RAM handoff bootloader profile; a transfer cannot resume after the receiver restarts."
],
"package_types": [
"in_place_delta"
@@ -5852,26 +5803,47 @@
},
"webconfig": false
},
- "ProMicro_room_server": {
+ "ProMicro_repeater_lora_ota_no_external_sensors-reduced": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
- "otaRole": "none",
+ "otaRole": "lora-receiver",
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
- "rs232": false,
+ "rs232": true,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
- "bluetooth"
+ "bluetooth",
+ "lora"
],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Requires the exact-board retained-RAM handoff bootloader profile; a transfer cannot resume after the receiver restarts."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash_and_retained_ram"
+ }
+ },
"webconfig": false
},
- "ProMicro_room_server_lora_ota_no_external_sensors": {
+ "ProMicro_room_server_lora_ota_no_external_sensors-full": {
"display": true,
"espnowBridge": false,
"femRx": false,
@@ -5884,6 +5856,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -5892,11 +5866,12 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Internal storage accepts in-place application deltas, not full application packages."
],
@@ -5908,26 +5883,7 @@
},
"webconfig": false
},
- "ProMicro_sensor": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "none",
- "platform": "NRF52_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "bluetooth"
- ],
- "webconfig": false
- },
- "ProMicro_sensor_lora_ota_no_external_sensors": {
+ "ProMicro_room_server_lora_ota_no_external_sensors-reduced": {
"display": true,
"espnowBridge": false,
"femRx": false,
@@ -5940,6 +5896,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -5948,11 +5906,92 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
+ "webconfig": false
+ },
+ "ProMicro_sensor_lora_ota_no_external_sensors-full": {
+ "display": true,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": true,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
+ "webconfig": false
+ },
+ "ProMicro_sensor_lora_ota_no_external_sensors-reduced": {
+ "display": true,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": true,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Internal storage accepts in-place application deltas, not full application packages."
],
@@ -5976,9 +6015,9 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Full Companion queue: 256 offline messages normally; 128 while mOTA borrows queue storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source restores all 256 slots.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
@@ -5992,26 +6031,7 @@
],
"webconfig": false
},
- "R1Neo_repeater": {
- "display": false,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "none",
- "platform": "NRF52_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "bluetooth"
- ],
- "webconfig": false
- },
- "R1Neo_repeater_lora_ota_no_external_sensors": {
+ "R1Neo_repeater_lora_ota_no_external_sensors-full": {
"display": false,
"espnowBridge": false,
"femRx": false,
@@ -6024,6 +6044,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -6032,13 +6054,14 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
- "Requires OTAFIX 2.4.6 retained-RAM handoff support; a transfer cannot resume after the receiver restarts."
+ "Requires the exact-board retained-RAM handoff bootloader profile; a transfer cannot resume after the receiver restarts."
],
"package_types": [
"in_place_delta"
@@ -6048,26 +6071,7 @@
},
"webconfig": false
},
- "R1Neo_room_server": {
- "display": false,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "none",
- "platform": "NRF52_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "bluetooth"
- ],
- "webconfig": false
- },
- "R1Neo_room_server_lora_ota_no_external_sensors": {
+ "R1Neo_repeater_lora_ota_no_external_sensors-reduced": {
"display": false,
"espnowBridge": false,
"femRx": false,
@@ -6080,6 +6084,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -6088,11 +6094,52 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Requires the exact-board retained-RAM handoff bootloader profile; a transfer cannot resume after the receiver restarts."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash_and_retained_ram"
+ }
+ },
+ "webconfig": false
+ },
+ "R1Neo_room_server_lora_ota_no_external_sensors-full": {
+ "display": false,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": true,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Internal storage accepts in-place application deltas, not full application packages."
],
@@ -6104,26 +6151,47 @@
},
"webconfig": false
},
- "R1Neo_sensor": {
- "display": true,
+ "R1Neo_room_server_lora_ota_no_external_sensors-reduced": {
+ "display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
- "otaRole": "none",
+ "otaRole": "lora-receiver",
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
- "bluetooth"
+ "bluetooth",
+ "lora"
],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
"webconfig": false
},
- "R1Neo_sensor_lora_ota_no_external_sensors": {
+ "R1Neo_sensor_lora_ota_no_external_sensors-full": {
"display": true,
"espnowBridge": false,
"femRx": false,
@@ -6136,6 +6204,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -6144,11 +6214,52 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
+ "webconfig": false
+ },
+ "R1Neo_sensor_lora_ota_no_external_sensors-reduced": {
+ "display": true,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": true,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Internal storage accepts in-place application deltas, not full application packages."
],
@@ -6188,7 +6299,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
@@ -6215,12 +6326,12 @@
"wifi",
"both"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
- "rs232": false,
+ "rs232": true,
"rxgain": true,
"rxps": true,
"snmp": true,
@@ -6230,26 +6341,6 @@
],
"webconfig": true
},
- "RAK_3112_repeater_lora_ota_no_external_sensors": {
- "display": false,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "lora-receiver",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": true,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "lora",
- "wifi"
- ],
- "webconfig": false
- },
"RAK_3112_room_server-full-usb-wifi": {
"display": false,
"espnowBridge": true,
@@ -6263,7 +6354,7 @@
"wifi",
"both"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -6278,26 +6369,6 @@
],
"webconfig": true
},
- "RAK_3112_room_server_lora_ota_no_external_sensors": {
- "display": false,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "lora-receiver",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "lora",
- "wifi"
- ],
- "webconfig": false
- },
"RAK_3112_sensor-full-logging": {
"display": false,
"espnowBridge": false,
@@ -6309,7 +6380,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -6322,7 +6393,7 @@
"wifi",
"lora"
],
- "webconfig": true
+ "webconfig": false
},
"RAK_3401_companion_radio_full": {
"dedicatedUsbLogging": true,
@@ -6336,9 +6407,9 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Full Companion queue: 256 offline messages normally; 128 while mOTA borrows queue storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source restores all 256 slots.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
@@ -6352,26 +6423,7 @@
],
"webconfig": false
},
- "RAK_3401_repeater": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "none",
- "platform": "NRF52_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "bluetooth"
- ],
- "webconfig": false
- },
- "RAK_3401_repeater_lora_ota_no_external_sensors": {
+ "RAK_3401_repeater_lora_ota_no_external_sensors-full": {
"display": true,
"espnowBridge": false,
"femRx": false,
@@ -6384,6 +6436,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -6392,13 +6446,14 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
- "Requires OTAFIX 2.4.6 retained-RAM handoff support; a transfer cannot resume after the receiver restarts."
+ "Requires the exact-board retained-RAM handoff bootloader profile; a transfer cannot resume after the receiver restarts."
],
"package_types": [
"in_place_delta"
@@ -6408,7 +6463,7 @@
},
"webconfig": false
},
- "RAK_3401_repeater_rak13302_w25q16_lora_ota": {
+ "RAK_3401_repeater_lora_ota_no_external_sensors-reduced": {
"display": true,
"espnowBridge": false,
"femRx": false,
@@ -6421,6 +6476,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -6429,11 +6486,52 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Requires the exact-board retained-RAM handoff bootloader profile; a transfer cannot resume after the receiver restarts."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash_and_retained_ram"
+ }
+ },
+ "webconfig": false
+ },
+ "RAK_3401_repeater_rak13302_w25q16_lora_ota-full": {
+ "display": true,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": true,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires the matching external-storage hardware, wiring, and storage-aware OTAFIX bootloader."
],
@@ -6446,14 +6544,12 @@
},
"webconfig": false
},
- "RAK_3401_repeater_unified_lora_ota": {
+ "RAK_3401_repeater_rak13302_w25q16_lora_ota-reduced": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
- "memoryNote": "Neighbor table: 50 entries.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "NRF52_PLATFORM",
@@ -6461,6 +6557,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -6468,16 +6566,60 @@
],
"updateRequirements": {
"lora": {
- "bootloader": "Merged RAK3401 or RAK4631 OTAFIX bootloader, or the exact legacy storage profile",
- "bootloader_release": null,
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Requires the matching external-storage hardware, wiring, and storage-aware OTAFIX bootloader."
+ ],
+ "package_types": [
+ "full",
+ "in_place_delta"
+ ],
+ "storage": "external_qspi"
+ }
+ },
+ "webconfig": false
+ },
+ "RAK_3401_repeater_unified_lora_ota-full": {
+ "display": true,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": true,
+ "memoryNote": "Flood rules: 47 entries; the complete rule engine is retained.",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching normal RAK3401 or RAK4631 adaptive OTAFIX bootloader, or the exact legacy storage profile",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"One application detects RAK external NOR and chooses QSPI only with the exact matching OTAFIX bootloader; otherwise it uses internal flash where safe.",
"External QSPI accepts full images and in-place deltas; internal flash accepts in-place deltas only and needs the retained-RAM OTAFIX profile.",
- "The merged RAK OTAFIX bootloader is a local 2.4.8 build; install the exact RAK core package by serial/BLE DFU or SWD. Bootloader self-update is unavailable in this merged profile."
+ "OTAFIX 2.4.11 provides normal RAK3401/RAK4631 *_auto bootloaders with standard board identities and internal signed bootloader-update staging. Historical *_AUTO_DFU or dedicated external identities need the documented local identity-matching migration, not a cross-profile LoRa update."
],
"package_types": [
"full",
@@ -6488,26 +6630,52 @@
},
"webconfig": false
},
- "RAK_3401_room_server": {
+ "RAK_3401_repeater_unified_lora_ota-reduced": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
+ "memoryNote": "Flood rules: 47 entries; the complete rule engine is retained.",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
- "otaRole": "none",
+ "otaRole": "lora-receiver",
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
- "bluetooth"
+ "bluetooth",
+ "lora"
],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching normal RAK3401 or RAK4631 adaptive OTAFIX bootloader, or the exact legacy storage profile",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "One application detects RAK external NOR and chooses QSPI only with the exact matching OTAFIX bootloader; otherwise it uses internal flash where safe.",
+ "External QSPI accepts full images and in-place deltas; internal flash accepts in-place deltas only and needs the retained-RAM OTAFIX profile.",
+ "OTAFIX 2.4.11 provides normal RAK3401/RAK4631 *_auto bootloaders with standard board identities and internal signed bootloader-update staging. Historical *_AUTO_DFU or dedicated external identities need the documented local identity-matching migration, not a cross-profile LoRa update."
+ ],
+ "package_types": [
+ "full",
+ "in_place_delta"
+ ],
+ "storage": "adaptive_internal_or_external_qspi"
+ }
+ },
"webconfig": false
},
- "RAK_3401_room_server_lora_ota_no_external_sensors": {
+ "RAK_3401_room_server_lora_ota_no_external_sensors-full": {
"display": true,
"espnowBridge": false,
"femRx": false,
@@ -6520,6 +6688,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -6528,11 +6698,12 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Internal storage accepts in-place application deltas, not full application packages."
],
@@ -6544,26 +6715,7 @@
},
"webconfig": false
},
- "RAK_3401_sensor": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "none",
- "platform": "NRF52_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "bluetooth"
- ],
- "webconfig": false
- },
- "RAK_3401_sensor_lora_ota_no_external_sensors": {
+ "RAK_3401_room_server_lora_ota_no_external_sensors-reduced": {
"display": true,
"espnowBridge": false,
"femRx": false,
@@ -6576,6 +6728,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -6584,11 +6738,92 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
+ "webconfig": false
+ },
+ "RAK_3401_sensor_lora_ota_no_external_sensors-full": {
+ "display": true,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": true,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
+ "webconfig": false
+ },
+ "RAK_3401_sensor_lora_ota_no_external_sensors-reduced": {
+ "display": true,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": true,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Internal storage accepts in-place application deltas, not full application packages."
],
@@ -6629,9 +6864,9 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Full Companion queue: 256 offline messages normally; 128 while mOTA borrows queue storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source restores all 256 slots.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
@@ -6645,26 +6880,7 @@
],
"webconfig": false
},
- "RAK_4631_repeater": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "none",
- "platform": "NRF52_PLATFORM",
- "primaryEspnow": false,
- "rs232": true,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "bluetooth"
- ],
- "webconfig": false
- },
- "RAK_4631_repeater_bridge_rs232_serial1_lora_ota_no_external_sensors": {
+ "RAK_4631_repeater_bridge_rs232_serial1_lora_ota_no_external_sensors-full": {
"display": true,
"espnowBridge": false,
"femRx": false,
@@ -6677,6 +6893,8 @@
"rs232": true,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -6685,13 +6903,14 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
- "Requires OTAFIX 2.4.6 retained-RAM handoff support; a transfer cannot resume after the receiver restarts."
+ "Requires the exact-board retained-RAM handoff bootloader profile; a transfer cannot resume after the receiver restarts."
],
"package_types": [
"in_place_delta"
@@ -6701,7 +6920,47 @@
},
"webconfig": false
},
- "RAK_4631_repeater_bridge_rs232_serial2_lora_ota_no_external_sensors": {
+ "RAK_4631_repeater_bridge_rs232_serial1_lora_ota_no_external_sensors-reduced": {
+ "display": true,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": false,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": true,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Requires the exact-board retained-RAM handoff bootloader profile; a transfer cannot resume after the receiver restarts."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash_and_retained_ram"
+ }
+ },
+ "webconfig": false
+ },
+ "RAK_4631_repeater_bridge_rs232_serial2_lora_ota_no_external_sensors-full": {
"display": true,
"espnowBridge": false,
"femRx": false,
@@ -6714,6 +6973,8 @@
"rs232": true,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -6722,13 +6983,14 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
- "Requires OTAFIX 2.4.6 retained-RAM handoff support; a transfer cannot resume after the receiver restarts."
+ "Requires the exact-board retained-RAM handoff bootloader profile; a transfer cannot resume after the receiver restarts."
],
"package_types": [
"in_place_delta"
@@ -6738,26 +7000,7 @@
},
"webconfig": false
},
- "RAK_4631_repeater_ethernet": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "none",
- "platform": "NRF52_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "bluetooth"
- ],
- "webconfig": false
- },
- "RAK_4631_repeater_lora_ota_no_external_sensors": {
+ "RAK_4631_repeater_bridge_rs232_serial2_lora_ota_no_external_sensors-reduced": {
"display": true,
"espnowBridge": false,
"femRx": false,
@@ -6770,6 +7013,8 @@
"rs232": true,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -6778,13 +7023,14 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
- "Requires OTAFIX 2.4.6 retained-RAM handoff support; a transfer cannot resume after the receiver restarts."
+ "Requires the exact-board retained-RAM handoff bootloader profile; a transfer cannot resume after the receiver restarts."
],
"package_types": [
"in_place_delta"
@@ -6794,7 +7040,7 @@
},
"webconfig": false
},
- "RAK_4631_repeater_rak15001_slot_c_lora_ota": {
+ "RAK_4631_repeater_ethernet-full": {
"display": true,
"espnowBridge": false,
"femRx": false,
@@ -6807,6 +7053,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -6815,11 +7063,172 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
+ "webconfig": false
+ },
+ "RAK_4631_repeater_ethernet-reduced": {
+ "display": true,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": true,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
+ "webconfig": false
+ },
+ "RAK_4631_repeater_lora_ota_no_external_sensors-full": {
+ "display": true,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": true,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": true,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Requires the exact-board retained-RAM handoff bootloader profile; a transfer cannot resume after the receiver restarts."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash_and_retained_ram"
+ }
+ },
+ "webconfig": false
+ },
+ "RAK_4631_repeater_lora_ota_no_external_sensors-reduced": {
+ "display": true,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": true,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": true,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Requires the exact-board retained-RAM handoff bootloader profile; a transfer cannot resume after the receiver restarts."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash_and_retained_ram"
+ }
+ },
+ "webconfig": false
+ },
+ "RAK_4631_repeater_rak15001_slot_c_lora_ota-full": {
+ "display": true,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": true,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires the matching external-storage hardware, wiring, and storage-aware OTAFIX bootloader."
],
@@ -6832,21 +7241,21 @@
},
"webconfig": false
},
- "RAK_4631_repeater_unified_lora_ota": {
+ "RAK_4631_repeater_rak15001_slot_c_lora_ota-reduced": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
- "memoryNote": "Neighbor table: 50 entries.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
- "rs232": true,
+ "rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -6854,16 +7263,58 @@
],
"updateRequirements": {
"lora": {
- "bootloader": "Merged RAK3401 or RAK4631 OTAFIX bootloader, or the exact legacy storage profile",
- "bootloader_release": null,
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Requires the matching external-storage hardware, wiring, and storage-aware OTAFIX bootloader."
+ ],
+ "package_types": [
+ "full",
+ "in_place_delta"
+ ],
+ "storage": "external_qspi"
+ }
+ },
+ "webconfig": false
+ },
+ "RAK_4631_repeater_unified_lora_ota-full": {
+ "display": true,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": true,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": true,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching normal RAK3401 or RAK4631 adaptive OTAFIX bootloader, or the exact legacy storage profile",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"One application detects RAK external NOR and chooses QSPI only with the exact matching OTAFIX bootloader; otherwise it uses internal flash where safe.",
"External QSPI accepts full images and in-place deltas; internal flash accepts in-place deltas only and needs the retained-RAM OTAFIX profile.",
- "The merged RAK OTAFIX bootloader is a local 2.4.8 build; install the exact RAK core package by serial/BLE DFU or SWD. Bootloader self-update is unavailable in this merged profile."
+ "OTAFIX 2.4.11 provides normal RAK3401/RAK4631 *_auto bootloaders with standard board identities and internal signed bootloader-update staging. Historical *_AUTO_DFU or dedicated external identities need the documented local identity-matching migration, not a cross-profile LoRa update."
],
"package_types": [
"full",
@@ -6874,7 +7325,50 @@
},
"webconfig": false
},
- "RAK_4631_repeater_w25q16_lora_ota": {
+ "RAK_4631_repeater_unified_lora_ota-reduced": {
+ "display": true,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": true,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": true,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching normal RAK3401 or RAK4631 adaptive OTAFIX bootloader, or the exact legacy storage profile",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "One application detects RAK external NOR and chooses QSPI only with the exact matching OTAFIX bootloader; otherwise it uses internal flash where safe.",
+ "External QSPI accepts full images and in-place deltas; internal flash accepts in-place deltas only and needs the retained-RAM OTAFIX profile.",
+ "OTAFIX 2.4.11 provides normal RAK3401/RAK4631 *_auto bootloaders with standard board identities and internal signed bootloader-update staging. Historical *_AUTO_DFU or dedicated external identities need the documented local identity-matching migration, not a cross-profile LoRa update."
+ ],
+ "package_types": [
+ "full",
+ "in_place_delta"
+ ],
+ "storage": "adaptive_internal_or_external_qspi"
+ }
+ },
+ "webconfig": false
+ },
+ "RAK_4631_repeater_w25q16_lora_ota-full": {
"display": true,
"espnowBridge": false,
"femRx": false,
@@ -6887,6 +7381,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -6895,11 +7391,12 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires the matching external-storage hardware, wiring, and storage-aware OTAFIX bootloader."
],
@@ -6912,45 +7409,7 @@
},
"webconfig": false
},
- "RAK_4631_room_server": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "none",
- "platform": "NRF52_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "bluetooth"
- ],
- "webconfig": false
- },
- "RAK_4631_room_server_ethernet": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "none",
- "platform": "NRF52_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "bluetooth"
- ],
- "webconfig": false
- },
- "RAK_4631_room_server_ethernet_lora_ota_no_external_sensors": {
+ "RAK_4631_repeater_w25q16_lora_ota-reduced": {
"display": true,
"espnowBridge": false,
"femRx": false,
@@ -6963,6 +7422,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -6971,11 +7432,53 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Requires the matching external-storage hardware, wiring, and storage-aware OTAFIX bootloader."
+ ],
+ "package_types": [
+ "full",
+ "in_place_delta"
+ ],
+ "storage": "external_qspi"
+ }
+ },
+ "webconfig": false
+ },
+ "RAK_4631_room_server_ethernet_lora_ota_no_external_sensors-full": {
+ "display": true,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": true,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Internal storage accepts in-place application deltas, not full application packages."
],
@@ -6987,7 +7490,7 @@
},
"webconfig": false
},
- "RAK_4631_room_server_lora_ota_no_external_sensors": {
+ "RAK_4631_room_server_ethernet_lora_ota_no_external_sensors-reduced": {
"display": true,
"espnowBridge": false,
"femRx": false,
@@ -7000,6 +7503,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -7008,11 +7513,12 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Internal storage accepts in-place application deltas, not full application packages."
],
@@ -7024,26 +7530,7 @@
},
"webconfig": false
},
- "RAK_4631_sensor": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "none",
- "platform": "NRF52_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "bluetooth"
- ],
- "webconfig": false
- },
- "RAK_4631_sensor_lora_ota_no_external_sensors": {
+ "RAK_4631_room_server_lora_ota_no_external_sensors-full": {
"display": true,
"espnowBridge": false,
"femRx": false,
@@ -7056,6 +7543,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -7064,11 +7553,132 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
+ "webconfig": false
+ },
+ "RAK_4631_room_server_lora_ota_no_external_sensors-reduced": {
+ "display": true,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": true,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
+ "webconfig": false
+ },
+ "RAK_4631_sensor_lora_ota_no_external_sensors-full": {
+ "display": true,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": true,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
+ "webconfig": false
+ },
+ "RAK_4631_sensor_lora_ota_no_external_sensors-reduced": {
+ "display": true,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": true,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Internal storage accepts in-place application deltas, not full application packages."
],
@@ -7092,9 +7702,9 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Full Companion queue: 256 offline messages normally; 128 while mOTA borrows queue storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source restores all 256 slots.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
@@ -7108,26 +7718,7 @@
],
"webconfig": false
},
- "RAK_WisMesh_Tag_repeater": {
- "display": false,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "none",
- "platform": "NRF52_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "bluetooth"
- ],
- "webconfig": false
- },
- "RAK_WisMesh_Tag_repeater_lora_ota_no_external_sensors": {
+ "RAK_WisMesh_Tag_repeater_lora_ota_no_external_sensors-full": {
"display": false,
"espnowBridge": false,
"femRx": false,
@@ -7140,6 +7731,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -7148,13 +7741,14 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
- "Requires OTAFIX 2.4.6 retained-RAM handoff support; a transfer cannot resume after the receiver restarts."
+ "Requires the exact-board retained-RAM handoff bootloader profile; a transfer cannot resume after the receiver restarts."
],
"package_types": [
"in_place_delta"
@@ -7164,26 +7758,7 @@
},
"webconfig": false
},
- "RAK_WisMesh_Tag_room_server": {
- "display": false,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "none",
- "platform": "NRF52_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "bluetooth"
- ],
- "webconfig": false
- },
- "RAK_WisMesh_Tag_room_server_lora_ota_no_external_sensors": {
+ "RAK_WisMesh_Tag_repeater_lora_ota_no_external_sensors-reduced": {
"display": false,
"espnowBridge": false,
"femRx": false,
@@ -7196,6 +7771,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -7204,11 +7781,52 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Requires the exact-board retained-RAM handoff bootloader profile; a transfer cannot resume after the receiver restarts."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash_and_retained_ram"
+ }
+ },
+ "webconfig": false
+ },
+ "RAK_WisMesh_Tag_room_server_lora_ota_no_external_sensors-full": {
+ "display": false,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": true,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Internal storage accepts in-place application deltas, not full application packages."
],
@@ -7220,26 +7838,7 @@
},
"webconfig": false
},
- "RAK_WisMesh_Tag_sensor": {
- "display": false,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "none",
- "platform": "NRF52_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "bluetooth"
- ],
- "webconfig": false
- },
- "RAK_WisMesh_Tag_sensor_lora_ota_no_external_sensors": {
+ "RAK_WisMesh_Tag_room_server_lora_ota_no_external_sensors-reduced": {
"display": false,
"espnowBridge": false,
"femRx": false,
@@ -7252,6 +7851,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -7260,11 +7861,92 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
+ "webconfig": false
+ },
+ "RAK_WisMesh_Tag_sensor_lora_ota_no_external_sensors-full": {
+ "display": false,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": true,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
+ "webconfig": false
+ },
+ "RAK_WisMesh_Tag_sensor_lora_ota_no_external_sensors-reduced": {
+ "display": false,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": true,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Internal storage accepts in-place application deltas, not full application packages."
],
@@ -7287,7 +7969,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
@@ -7312,9 +7994,9 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Display renders at 320x320 and scales to the 480x480 panel to preserve internal RAM. All Full transports, 350 contacts, 512 queued messages and full-length message previews are retained.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
@@ -7339,9 +8021,9 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Display renders at 320x320 and scales to the 480x480 panel to preserve internal RAM. All Full transports, 350 contacts, 512 queued messages and full-length message previews are retained.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
@@ -7367,9 +8049,9 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Full Companion queue: 256 offline messages normally; 128 while mOTA borrows queue storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source restores all 256 slots.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
@@ -7383,7 +8065,7 @@
],
"webconfig": false
},
- "SenseCap_Solar_repeater": {
+ "SenseCap_Solar_repeater-full": {
"display": false,
"espnowBridge": false,
"femRx": false,
@@ -7396,6 +8078,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -7404,11 +8088,12 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires the matching external-storage hardware, wiring, and storage-aware OTAFIX bootloader."
],
@@ -7421,7 +8106,7 @@
},
"webconfig": false
},
- "SenseCap_Solar_repeater_lora_ota_no_external_sensors": {
+ "SenseCap_Solar_repeater-reduced": {
"display": false,
"espnowBridge": false,
"femRx": false,
@@ -7434,6 +8119,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -7442,11 +8129,12 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires the matching external-storage hardware, wiring, and storage-aware OTAFIX bootloader."
],
@@ -7459,26 +8147,89 @@
},
"webconfig": false
},
- "SenseCap_Solar_room_server": {
+ "SenseCap_Solar_repeater_lora_ota_no_external_sensors-full": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
- "gps": false,
+ "gps": true,
"mqtt": false,
- "otaRole": "none",
+ "otaRole": "lora-receiver",
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
- "bluetooth"
+ "bluetooth",
+ "lora"
],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Requires the matching external-storage hardware, wiring, and storage-aware OTAFIX bootloader."
+ ],
+ "package_types": [
+ "full",
+ "in_place_delta"
+ ],
+ "storage": "external_qspi"
+ }
+ },
"webconfig": false
},
- "SenseCap_Solar_room_server_lora_ota_no_external_sensors": {
+ "SenseCap_Solar_repeater_lora_ota_no_external_sensors-reduced": {
+ "display": false,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": true,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Requires the matching external-storage hardware, wiring, and storage-aware OTAFIX bootloader."
+ ],
+ "package_types": [
+ "full",
+ "in_place_delta"
+ ],
+ "storage": "external_qspi"
+ }
+ },
+ "webconfig": false
+ },
+ "SenseCap_Solar_room_server_lora_ota_no_external_sensors-full": {
"display": false,
"espnowBridge": false,
"femRx": false,
@@ -7491,6 +8242,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -7499,11 +8252,52 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
+ "webconfig": false
+ },
+ "SenseCap_Solar_room_server_lora_ota_no_external_sensors-reduced": {
+ "display": false,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": false,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Internal storage accepts in-place application deltas, not full application packages."
],
@@ -7526,7 +8320,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
@@ -7540,25 +8334,6 @@
],
"webconfig": true
},
- "Station_G2_repeater": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "none",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": false,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "wifi"
- ],
- "webconfig": false
- },
"Station_G2_repeater_observer_mqtt-full-usb-wifi": {
"display": true,
"espnowBridge": true,
@@ -7572,7 +8347,7 @@
"wifi",
"both"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -7587,45 +8362,6 @@
],
"webconfig": true
},
- "Station_G2_room_server": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "none",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": false,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "wifi"
- ],
- "webconfig": false
- },
- "Station_G2_room_server_lora_ota_no_external_sensors": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "lora-receiver",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": false,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "lora",
- "wifi"
- ],
- "webconfig": false
- },
"Station_G2_room_server_observer_mqtt-full-usb-wifi": {
"display": true,
"espnowBridge": true,
@@ -7639,7 +8375,7 @@
"wifi",
"both"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -7665,7 +8401,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
@@ -7692,7 +8428,7 @@
"wifi",
"both"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -7707,45 +8443,6 @@
],
"webconfig": true
},
- "Station_G3_ESP32_r2_room_server": {
- "display": true,
- "espnowBridge": false,
- "femRx": true,
- "femTx": true,
- "gps": true,
- "mqtt": false,
- "otaRole": "none",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": false,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "wifi"
- ],
- "webconfig": false
- },
- "Station_G3_ESP32_r2_room_server_lora_ota_no_external_sensors": {
- "display": true,
- "espnowBridge": false,
- "femRx": true,
- "femTx": true,
- "gps": true,
- "mqtt": false,
- "otaRole": "lora-receiver",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": false,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "lora",
- "wifi"
- ],
- "webconfig": false
- },
"Station_G3_ESP32_r2_room_server_observer_mqtt-full-usb-wifi": {
"display": true,
"espnowBridge": true,
@@ -7759,7 +8456,7 @@
"wifi",
"both"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -7774,6 +8471,32 @@
],
"webconfig": true
},
+ "Station_G3_ESP32_r2_sensor-full-logging": {
+ "display": true,
+ "espnowBridge": false,
+ "femRx": true,
+ "femTx": true,
+ "gps": true,
+ "loggingControl": "usb.logging",
+ "loggingModes": [
+ "none",
+ "usb"
+ ],
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "ESP32_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": false,
+ "rxps": true,
+ "snmp": false,
+ "updateMethods": [
+ "wifi",
+ "lora"
+ ],
+ "webconfig": false
+ },
"Station_G3_ESP32_repeater-full-usb-wifi": {
"display": true,
"espnowBridge": true,
@@ -7787,7 +8510,7 @@
"wifi",
"both"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -7815,7 +8538,7 @@
"wifi",
"both"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -7830,12 +8553,18 @@
],
"webconfig": true
},
- "Station_G3_ESP32_room_server_lora_ota_no_external_sensors": {
+ "Station_G3_ESP32_sensor-full-logging": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": true,
"gps": true,
+ "loggingControl": "usb.logging",
+ "loggingModes": [
+ "none",
+ "usb"
+ ],
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -7845,8 +8574,8 @@
"rxps": true,
"snmp": false,
"updateMethods": [
- "lora",
- "wifi"
+ "wifi",
+ "lora"
],
"webconfig": false
},
@@ -7861,7 +8590,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
@@ -7888,7 +8617,7 @@
"wifi",
"both"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -7916,7 +8645,7 @@
"wifi",
"both"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -7931,26 +8660,6 @@
],
"webconfig": true
},
- "T_Beam_S3_Supreme_SX1262_room_server_lora_ota_no_external_sensors": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "lora-receiver",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "lora",
- "wifi"
- ],
- "webconfig": false
- },
"Tbeam_SX1262_companion_radio_full": {
"display": true,
"espnowBridge": false,
@@ -7962,7 +8671,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
@@ -7974,25 +8683,6 @@
"updateMethods": [],
"webconfig": true
},
- "Tbeam_SX1262_repeater": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "none",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "wifi"
- ],
- "webconfig": false
- },
"Tbeam_SX1262_repeater_observer_mqtt-full-usb-wifi": {
"display": true,
"espnowBridge": true,
@@ -8006,9 +8696,9 @@
"wifi",
"both"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Flood rules: 31 entries; the complete rule engine is retained. Neighbor table: 50 entries.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -8023,45 +8713,6 @@
],
"webconfig": true
},
- "Tbeam_SX1262_room_server": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "none",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "wifi"
- ],
- "webconfig": false
- },
- "Tbeam_SX1262_room_server_lora_ota_no_external_sensors": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "lora-receiver",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "lora",
- "wifi"
- ],
- "webconfig": false
- },
"Tbeam_SX1262_room_server_observer_mqtt-full-usb-wifi": {
"display": true,
"espnowBridge": true,
@@ -8075,7 +8726,7 @@
"wifi",
"both"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -8101,7 +8752,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
@@ -8113,25 +8764,6 @@
"updateMethods": [],
"webconfig": true
},
- "Tbeam_SX1276_repeater": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "none",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": false,
- "rxps": false,
- "snmp": false,
- "updateMethods": [
- "wifi"
- ],
- "webconfig": false
- },
"Tbeam_SX1276_repeater_observer_mqtt-full-usb-wifi": {
"display": true,
"espnowBridge": true,
@@ -8145,9 +8777,9 @@
"wifi",
"both"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Flood rules: 31 entries; the complete rule engine is retained. Neighbor table: 50 entries.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -8162,45 +8794,6 @@
],
"webconfig": true
},
- "Tbeam_SX1276_room_server": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "none",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": false,
- "rxps": false,
- "snmp": false,
- "updateMethods": [
- "wifi"
- ],
- "webconfig": false
- },
- "Tbeam_SX1276_room_server_lora_ota_no_external_sensors": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "lora-receiver",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": false,
- "rxps": false,
- "snmp": false,
- "updateMethods": [
- "lora",
- "wifi"
- ],
- "webconfig": false
- },
"Tbeam_SX1276_room_server_observer_mqtt-full-usb-wifi": {
"display": true,
"espnowBridge": true,
@@ -8214,7 +8807,7 @@
"wifi",
"both"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -8229,28 +8822,9 @@
],
"webconfig": true
},
- "Tenstar_C3_sx1262_repeater": {
- "display": false,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "mqtt": false,
- "otaRole": "none",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "wifi"
- ],
- "webconfig": false
- },
"Tenstar_C3_sx1262_repeater-full-logging": {
"display": false,
- "espnowBridge": false,
+ "espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
@@ -8259,7 +8833,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -8274,28 +8848,9 @@
],
"webconfig": true
},
- "Tenstar_C3_sx1268_repeater": {
- "display": false,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "mqtt": false,
- "otaRole": "none",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": false,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "wifi"
- ],
- "webconfig": false
- },
"Tenstar_C3_sx1268_repeater-full-logging": {
"display": false,
- "espnowBridge": false,
+ "espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
@@ -8304,7 +8859,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -8331,9 +8886,9 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Full Companion queue: 256 offline messages normally; 128 while mOTA borrows queue storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source restores all 256 slots.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
@@ -8347,7 +8902,7 @@
],
"webconfig": false
},
- "ThinkNode_M1_repeater": {
+ "ThinkNode_M1_repeater-full": {
"display": false,
"espnowBridge": false,
"femRx": false,
@@ -8360,6 +8915,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -8368,11 +8925,12 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires the matching external-storage hardware, wiring, and storage-aware OTAFIX bootloader."
],
@@ -8385,7 +8943,7 @@
},
"webconfig": false
},
- "ThinkNode_M1_repeater_lora_ota_no_external_sensors": {
+ "ThinkNode_M1_repeater-reduced": {
"display": false,
"espnowBridge": false,
"femRx": false,
@@ -8398,6 +8956,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -8406,11 +8966,12 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires the matching external-storage hardware, wiring, and storage-aware OTAFIX bootloader."
],
@@ -8423,26 +8984,7 @@
},
"webconfig": false
},
- "ThinkNode_M1_room_server": {
- "display": false,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "none",
- "platform": "NRF52_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "bluetooth"
- ],
- "webconfig": false
- },
- "ThinkNode_M1_room_server_lora_ota_no_external_sensors": {
+ "ThinkNode_M1_repeater_lora_ota_no_external_sensors-full": {
"display": false,
"espnowBridge": false,
"femRx": false,
@@ -8455,6 +8997,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -8463,11 +9007,94 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Requires the matching external-storage hardware, wiring, and storage-aware OTAFIX bootloader."
+ ],
+ "package_types": [
+ "full",
+ "in_place_delta"
+ ],
+ "storage": "external_qspi"
+ }
+ },
+ "webconfig": false
+ },
+ "ThinkNode_M1_repeater_lora_ota_no_external_sensors-reduced": {
+ "display": false,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": true,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Requires the matching external-storage hardware, wiring, and storage-aware OTAFIX bootloader."
+ ],
+ "package_types": [
+ "full",
+ "in_place_delta"
+ ],
+ "storage": "external_qspi"
+ }
+ },
+ "webconfig": false
+ },
+ "ThinkNode_M1_room_server_lora_ota_no_external_sensors-full": {
+ "display": false,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": true,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Internal storage accepts in-place application deltas, not full application packages."
],
@@ -8479,28 +9106,49 @@
},
"webconfig": false
},
- "ThinkNode_M2_Repeater": {
- "display": true,
+ "ThinkNode_M1_room_server_lora_ota_no_external_sensors-reduced": {
+ "display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
- "gps": false,
+ "gps": true,
"mqtt": false,
- "otaRole": "none",
- "platform": "ESP32_PLATFORM",
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
- "wifi"
+ "bluetooth",
+ "lora"
],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
"webconfig": false
},
"ThinkNode_M2_Repeater-full-logging": {
"display": true,
- "espnowBridge": false,
+ "espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
@@ -8509,7 +9157,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -8524,26 +9172,6 @@
],
"webconfig": true
},
- "ThinkNode_M2_Repeater_lora_ota_no_external_sensors": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "mqtt": false,
- "otaRole": "lora-receiver",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "lora",
- "wifi"
- ],
- "webconfig": false
- },
"ThinkNode_M2_companion_radio_full": {
"display": true,
"espnowBridge": false,
@@ -8555,7 +9183,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
@@ -8567,25 +9195,6 @@
"updateMethods": [],
"webconfig": true
},
- "ThinkNode_M2_room_server": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "mqtt": false,
- "otaRole": "none",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "wifi"
- ],
- "webconfig": false
- },
"ThinkNode_M2_room_server-full-logging": {
"display": true,
"espnowBridge": false,
@@ -8597,7 +9206,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -8612,26 +9221,6 @@
],
"webconfig": true
},
- "ThinkNode_M2_room_server_lora_ota_no_external_sensors": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "mqtt": false,
- "otaRole": "lora-receiver",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "lora",
- "wifi"
- ],
- "webconfig": false
- },
"ThinkNode_M3_companion_radio_full": {
"dedicatedUsbLogging": true,
"display": false,
@@ -8644,9 +9233,9 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Full Companion queue: 256 offline messages normally; 128 while mOTA borrows queue storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source restores all 256 slots.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
@@ -8660,26 +9249,7 @@
],
"webconfig": false
},
- "ThinkNode_M3_repeater": {
- "display": false,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "none",
- "platform": "NRF52_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": false,
- "rxps": false,
- "snmp": false,
- "updateMethods": [
- "bluetooth"
- ],
- "webconfig": false
- },
- "ThinkNode_M3_repeater_lora_ota_no_external_sensors": {
+ "ThinkNode_M3_repeater_lora_ota_no_external_sensors-full": {
"display": false,
"espnowBridge": false,
"femRx": false,
@@ -8692,6 +9262,8 @@
"rs232": false,
"rxgain": false,
"rxps": false,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -8700,13 +9272,14 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
- "Requires OTAFIX 2.4.6 retained-RAM handoff support; a transfer cannot resume after the receiver restarts."
+ "Requires the exact-board retained-RAM handoff bootloader profile; a transfer cannot resume after the receiver restarts."
],
"package_types": [
"in_place_delta"
@@ -8716,26 +9289,7 @@
},
"webconfig": false
},
- "ThinkNode_M3_room_server": {
- "display": false,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "none",
- "platform": "NRF52_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": false,
- "rxps": false,
- "snmp": false,
- "updateMethods": [
- "bluetooth"
- ],
- "webconfig": false
- },
- "ThinkNode_M3_room_server_lora_ota_no_external_sensors": {
+ "ThinkNode_M3_repeater_lora_ota_no_external_sensors-reduced": {
"display": false,
"espnowBridge": false,
"femRx": false,
@@ -8748,6 +9302,8 @@
"rs232": false,
"rxgain": false,
"rxps": false,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -8756,11 +9312,92 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Requires the exact-board retained-RAM handoff bootloader profile; a transfer cannot resume after the receiver restarts."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash_and_retained_ram"
+ }
+ },
+ "webconfig": false
+ },
+ "ThinkNode_M3_room_server_lora_ota_no_external_sensors-full": {
+ "display": false,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": true,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": false,
+ "rxps": false,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
+ "webconfig": false
+ },
+ "ThinkNode_M3_room_server_lora_ota_no_external_sensors-reduced": {
+ "display": false,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": true,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": false,
+ "rxps": false,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Internal storage accepts in-place application deltas, not full application packages."
],
@@ -8784,9 +9421,9 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Full Companion queue: 256 offline messages normally; 128 while mOTA borrows queue storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source restores all 256 slots.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
@@ -8800,26 +9437,7 @@
],
"webconfig": false
},
- "ThinkNode_M4_repeater": {
- "display": false,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "none",
- "platform": "NRF52_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": false,
- "rxps": false,
- "snmp": false,
- "updateMethods": [
- "bluetooth"
- ],
- "webconfig": false
- },
- "ThinkNode_M4_repeater_lora_ota_no_external_sensors": {
+ "ThinkNode_M4_repeater_lora_ota_no_external_sensors-full": {
"display": false,
"espnowBridge": false,
"femRx": false,
@@ -8832,6 +9450,8 @@
"rs232": false,
"rxgain": false,
"rxps": false,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -8840,11 +9460,12 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Internal storage accepts in-place application deltas, not full application packages."
],
@@ -8856,26 +9477,7 @@
},
"webconfig": false
},
- "ThinkNode_M4_room_server": {
- "display": false,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "none",
- "platform": "NRF52_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": false,
- "rxps": false,
- "snmp": false,
- "updateMethods": [
- "bluetooth"
- ],
- "webconfig": false
- },
- "ThinkNode_M4_room_server_lora_ota_no_external_sensors": {
+ "ThinkNode_M4_repeater_lora_ota_no_external_sensors-reduced": {
"display": false,
"espnowBridge": false,
"femRx": false,
@@ -8888,6 +9490,8 @@
"rs232": false,
"rxgain": false,
"rxps": false,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -8896,11 +9500,12 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Internal storage accepts in-place application deltas, not full application packages."
],
@@ -8912,28 +9517,89 @@
},
"webconfig": false
},
- "ThinkNode_M5_Repeater": {
- "display": true,
+ "ThinkNode_M4_room_server_lora_ota_no_external_sensors-full": {
+ "display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
- "otaRole": "none",
- "platform": "ESP32_PLATFORM",
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
- "rxgain": true,
- "rxps": true,
+ "rxgain": false,
+ "rxps": false,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
- "wifi"
+ "bluetooth",
+ "lora"
],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
+ "webconfig": false
+ },
+ "ThinkNode_M4_room_server_lora_ota_no_external_sensors-reduced": {
+ "display": false,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": true,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": false,
+ "rxps": false,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
"webconfig": false
},
"ThinkNode_M5_Repeater-full-logging": {
"display": true,
- "espnowBridge": false,
+ "espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": true,
@@ -8942,7 +9608,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -8968,7 +9634,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
@@ -8980,25 +9646,6 @@
"updateMethods": [],
"webconfig": true
},
- "ThinkNode_M5_room_server": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "none",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "wifi"
- ],
- "webconfig": false
- },
"ThinkNode_M5_room_server-full-logging": {
"display": true,
"espnowBridge": false,
@@ -9010,7 +9657,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -9025,26 +9672,6 @@
],
"webconfig": true
},
- "ThinkNode_M5_room_server_lora_ota_no_external_sensors": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "lora-receiver",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "lora",
- "wifi"
- ],
- "webconfig": false
- },
"ThinkNode_M6_companion_radio_full": {
"dedicatedUsbLogging": true,
"display": false,
@@ -9057,9 +9684,9 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Full Companion queue: 256 offline messages normally; 128 while mOTA borrows queue storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source restores all 256 slots.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
@@ -9073,7 +9700,7 @@
],
"webconfig": false
},
- "ThinkNode_M6_repeater": {
+ "ThinkNode_M6_repeater-full": {
"display": false,
"espnowBridge": false,
"femRx": false,
@@ -9086,6 +9713,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -9094,11 +9723,12 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires the matching external-storage hardware, wiring, and storage-aware OTAFIX bootloader."
],
@@ -9111,7 +9741,7 @@
},
"webconfig": false
},
- "ThinkNode_M6_repeater_lora_ota_no_external_sensors": {
+ "ThinkNode_M6_repeater-reduced": {
"display": false,
"espnowBridge": false,
"femRx": false,
@@ -9124,6 +9754,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -9132,11 +9764,12 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires the matching external-storage hardware, wiring, and storage-aware OTAFIX bootloader."
],
@@ -9149,26 +9782,7 @@
},
"webconfig": false
},
- "ThinkNode_M6_room_server": {
- "display": false,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "none",
- "platform": "NRF52_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "bluetooth"
- ],
- "webconfig": false
- },
- "ThinkNode_M6_room_server_lora_ota_no_external_sensors": {
+ "ThinkNode_M6_repeater_lora_ota_no_external_sensors-full": {
"display": false,
"espnowBridge": false,
"femRx": false,
@@ -9181,6 +9795,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -9189,11 +9805,134 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Requires the matching external-storage hardware, wiring, and storage-aware OTAFIX bootloader."
+ ],
+ "package_types": [
+ "full",
+ "in_place_delta"
+ ],
+ "storage": "external_qspi"
+ }
+ },
+ "webconfig": false
+ },
+ "ThinkNode_M6_repeater_lora_ota_no_external_sensors-reduced": {
+ "display": false,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": true,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Requires the matching external-storage hardware, wiring, and storage-aware OTAFIX bootloader."
+ ],
+ "package_types": [
+ "full",
+ "in_place_delta"
+ ],
+ "storage": "external_qspi"
+ }
+ },
+ "webconfig": false
+ },
+ "ThinkNode_M6_room_server_lora_ota_no_external_sensors-full": {
+ "display": false,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": true,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
+ "webconfig": false
+ },
+ "ThinkNode_M6_room_server_lora_ota_no_external_sensors-reduced": {
+ "display": false,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": true,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Internal storage accepts in-place application deltas, not full application packages."
],
@@ -9216,7 +9955,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
@@ -9243,7 +9982,7 @@
"wifi",
"both"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -9258,26 +9997,6 @@
],
"webconfig": true
},
- "ThinkNode_M7_repeater_lora_ota_no_external_sensors": {
- "display": false,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "mqtt": false,
- "otaRole": "lora-receiver",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": false,
- "rxps": false,
- "snmp": false,
- "updateMethods": [
- "lora",
- "wifi"
- ],
- "webconfig": false
- },
"ThinkNode_M7_room_server-full-usb-wifi": {
"display": false,
"espnowBridge": true,
@@ -9291,7 +10010,7 @@
"wifi",
"both"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -9306,26 +10025,6 @@
],
"webconfig": true
},
- "ThinkNode_M7_room_server_lora_ota_no_external_sensors": {
- "display": false,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "mqtt": false,
- "otaRole": "lora-receiver",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": false,
- "rxps": false,
- "snmp": false,
- "updateMethods": [
- "lora",
- "wifi"
- ],
- "webconfig": false
- },
"ThinkNode_M8_companion_radio_full": {
"dedicatedUsbLogging": true,
"display": true,
@@ -9338,9 +10037,9 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Full Companion queue: 256 offline messages normally; 128 while mOTA borrows queue storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source restores all 256 slots.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
@@ -9354,26 +10053,7 @@
],
"webconfig": false
},
- "ThinkNode_M8_repeater": {
- "display": false,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "mqtt": false,
- "otaRole": "none",
- "platform": "NRF52_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "bluetooth"
- ],
- "webconfig": false
- },
- "ThinkNode_M8_repeater_lora_ota_no_external_sensors": {
+ "ThinkNode_M8_repeater_lora_ota_no_external_sensors-full": {
"display": false,
"espnowBridge": false,
"femRx": false,
@@ -9386,6 +10066,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -9394,11 +10076,12 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Internal storage accepts in-place application deltas, not full application packages."
],
@@ -9410,26 +10093,7 @@
},
"webconfig": false
},
- "ThinkNode_M8_room_server": {
- "display": false,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "mqtt": false,
- "otaRole": "none",
- "platform": "NRF52_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "bluetooth"
- ],
- "webconfig": false
- },
- "ThinkNode_M8_room_server_lora_ota_no_external_sensors": {
+ "ThinkNode_M8_repeater_lora_ota_no_external_sensors-reduced": {
"display": false,
"espnowBridge": false,
"femRx": false,
@@ -9442,6 +10106,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -9450,11 +10116,92 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
+ "webconfig": false
+ },
+ "ThinkNode_M8_room_server_lora_ota_no_external_sensors-full": {
+ "display": false,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": false,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
+ "webconfig": false
+ },
+ "ThinkNode_M8_room_server_lora_ota_no_external_sensors-reduced": {
+ "display": false,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": false,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Internal storage accepts in-place application deltas, not full application packages."
],
@@ -9477,7 +10224,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
@@ -9493,7 +10240,7 @@
},
"ThinkNode_M9_repeater_-full-logging": {
"display": true,
- "espnowBridge": false,
+ "espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": true,
@@ -9502,7 +10249,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -9528,7 +10275,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -9543,26 +10290,6 @@
],
"webconfig": true
},
- "ThinkNode_M9_room_server_lora_ota_no_external_sensors": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "lora-receiver",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": false,
- "rxps": false,
- "snmp": false,
- "updateMethods": [
- "lora",
- "wifi"
- ],
- "webconfig": false
- },
"Tiny_Relay_companion_radio_usb": {
"display": false,
"espnowBridge": false,
@@ -9591,7 +10318,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
@@ -9607,7 +10334,7 @@
},
"WHY2025_badge_repeater_-full-logging": {
"display": false,
- "espnowBridge": false,
+ "espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
@@ -9616,7 +10343,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -9631,26 +10358,6 @@
],
"webconfig": true
},
- "WHY2025_badge_repeater_lora_ota_no_external_sensors": {
- "display": false,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "mqtt": false,
- "otaRole": "lora-receiver",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "lora",
- "wifi"
- ],
- "webconfig": false
- },
"WioTrackerL1-1W_companion_radio_full": {
"dedicatedUsbLogging": true,
"display": true,
@@ -9663,9 +10370,9 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Full Companion queue: 256 offline messages normally; 128 while mOTA borrows queue storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source restores all 256 slots.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
@@ -9679,26 +10386,7 @@
],
"webconfig": false
},
- "WioTrackerL1-1W_repeater": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": true,
- "gps": true,
- "mqtt": false,
- "otaRole": "none",
- "platform": "NRF52_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "bluetooth"
- ],
- "webconfig": false
- },
- "WioTrackerL1-1W_repeater_lora_ota_no_external_sensors": {
+ "WioTrackerL1-1W_repeater_lora_ota_no_external_sensors-full": {
"display": true,
"espnowBridge": false,
"femRx": false,
@@ -9711,6 +10399,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -9719,11 +10409,12 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Internal storage accepts in-place application deltas, not full application packages."
],
@@ -9735,26 +10426,7 @@
},
"webconfig": false
},
- "WioTrackerL1-1W_room_server": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": true,
- "gps": true,
- "mqtt": false,
- "otaRole": "none",
- "platform": "NRF52_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "bluetooth"
- ],
- "webconfig": false
- },
- "WioTrackerL1-1W_room_server_lora_ota_no_external_sensors": {
+ "WioTrackerL1-1W_repeater_lora_ota_no_external_sensors-reduced": {
"display": true,
"espnowBridge": false,
"femRx": false,
@@ -9767,6 +10439,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -9775,11 +10449,92 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
+ "webconfig": false
+ },
+ "WioTrackerL1-1W_room_server_lora_ota_no_external_sensors-full": {
+ "display": true,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": true,
+ "gps": true,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
+ "webconfig": false
+ },
+ "WioTrackerL1-1W_room_server_lora_ota_no_external_sensors-reduced": {
+ "display": true,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": true,
+ "gps": true,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Internal storage accepts in-place application deltas, not full application packages."
],
@@ -9803,9 +10558,9 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Full Companion queue: 256 offline messages normally; 128 while mOTA borrows queue storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source restores all 256 slots.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
@@ -9831,9 +10586,9 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Full Companion queue: 256 offline messages normally; 128 while mOTA borrows queue storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source restores all 256 slots.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
@@ -9847,7 +10602,7 @@
],
"webconfig": false
},
- "WioTrackerL1_repeater": {
+ "WioTrackerL1_repeater-full": {
"display": true,
"espnowBridge": false,
"femRx": false,
@@ -9860,6 +10615,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -9868,11 +10625,12 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires the matching external-storage hardware, wiring, and storage-aware OTAFIX bootloader."
],
@@ -9885,7 +10643,7 @@
},
"webconfig": false
},
- "WioTrackerL1_repeater_lora_ota_no_external_sensors": {
+ "WioTrackerL1_repeater-reduced": {
"display": true,
"espnowBridge": false,
"femRx": false,
@@ -9898,6 +10656,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -9906,11 +10666,12 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires the matching external-storage hardware, wiring, and storage-aware OTAFIX bootloader."
],
@@ -9923,26 +10684,7 @@
},
"webconfig": false
},
- "WioTrackerL1_room_server": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "none",
- "platform": "NRF52_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "bluetooth"
- ],
- "webconfig": false
- },
- "WioTrackerL1_room_server_lora_ota_no_external_sensors": {
+ "WioTrackerL1_repeater_lora_ota_no_external_sensors-full": {
"display": true,
"espnowBridge": false,
"femRx": false,
@@ -9955,6 +10697,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -9963,11 +10707,134 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Requires the matching external-storage hardware, wiring, and storage-aware OTAFIX bootloader."
+ ],
+ "package_types": [
+ "full",
+ "in_place_delta"
+ ],
+ "storage": "external_qspi"
+ }
+ },
+ "webconfig": false
+ },
+ "WioTrackerL1_repeater_lora_ota_no_external_sensors-reduced": {
+ "display": true,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": true,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Requires the matching external-storage hardware, wiring, and storage-aware OTAFIX bootloader."
+ ],
+ "package_types": [
+ "full",
+ "in_place_delta"
+ ],
+ "storage": "external_qspi"
+ }
+ },
+ "webconfig": false
+ },
+ "WioTrackerL1_room_server_lora_ota_no_external_sensors-full": {
+ "display": true,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": true,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
+ "webconfig": false
+ },
+ "WioTrackerL1_room_server_lora_ota_no_external_sensors-reduced": {
+ "display": true,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": true,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Internal storage accepts in-place application deltas, not full application packages."
],
@@ -9990,9 +10857,9 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Full Companion capacity: 100 contacts and 224 queued messages; all Full transports are retained. Export contacts before updating if you have more than 100; entries beyond this limit may be unavailable or omitted by a later save.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
@@ -10004,28 +10871,9 @@
"updateMethods": [],
"webconfig": true
},
- "Xiao_C3_repeater": {
- "display": false,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "mqtt": false,
- "otaRole": "none",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "wifi"
- ],
- "webconfig": false
- },
"Xiao_C3_repeater-full-logging": {
"display": false,
- "espnowBridge": false,
+ "espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
@@ -10034,7 +10882,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -10049,25 +10897,6 @@
],
"webconfig": true
},
- "Xiao_C3_room_server": {
- "display": false,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "mqtt": false,
- "otaRole": "none",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "wifi"
- ],
- "webconfig": false
- },
"Xiao_C3_room_server-full-logging": {
"display": false,
"espnowBridge": false,
@@ -10079,7 +10908,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -10094,26 +10923,6 @@
],
"webconfig": true
},
- "Xiao_C3_room_server_lora_ota_no_external_sensors": {
- "display": false,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "mqtt": false,
- "otaRole": "lora-receiver",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "lora",
- "wifi"
- ],
- "webconfig": false
- },
"Xiao_C6_companion_radio_full_": {
"display": false,
"espnowBridge": false,
@@ -10125,7 +10934,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
@@ -10139,7 +10948,7 @@
},
"Xiao_C6_repeater_-full-logging": {
"display": false,
- "espnowBridge": false,
+ "espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
@@ -10148,7 +10957,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -10163,26 +10972,6 @@
],
"webconfig": true
},
- "Xiao_C6_repeater_lora_ota_no_external_sensors": {
- "display": false,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "mqtt": false,
- "otaRole": "lora-receiver",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "lora",
- "wifi"
- ],
- "webconfig": false
- },
"Xiao_S3_WIO_companion_radio_full": {
"display": true,
"espnowBridge": false,
@@ -10194,7 +10983,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
@@ -10221,7 +11010,7 @@
"wifi",
"both"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -10236,26 +11025,6 @@
],
"webconfig": true
},
- "Xiao_S3_WIO_repeater_lora_ota_no_external_sensors": {
- "display": false,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "mqtt": false,
- "otaRole": "lora-receiver",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "lora",
- "wifi"
- ],
- "webconfig": false
- },
"Xiao_S3_WIO_room_server-full-usb-wifi": {
"display": false,
"espnowBridge": true,
@@ -10269,7 +11038,7 @@
"wifi",
"both"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -10284,26 +11053,6 @@
],
"webconfig": true
},
- "Xiao_S3_WIO_room_server_lora_ota_no_external_sensors": {
- "display": false,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "mqtt": false,
- "otaRole": "lora-receiver",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "lora",
- "wifi"
- ],
- "webconfig": false
- },
"Xiao_S3_WIO_sensor-full-logging": {
"display": false,
"espnowBridge": false,
@@ -10315,7 +11064,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -10328,7 +11077,7 @@
"wifi",
"lora"
],
- "webconfig": true
+ "webconfig": false
},
"Xiao_S3_companion_radio_full": {
"display": true,
@@ -10341,7 +11090,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
@@ -10355,98 +11104,62 @@
],
"webconfig": true
},
- "Xiao_S3_repeater-full-logging": {
+ "Xiao_S3_repeater-full-usb-wifi": {
"display": false,
- "espnowBridge": false,
+ "espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
- "loggingControl": "usb.logging",
+ "loggingControl": "logging.output",
"loggingModes": [
"none",
- "usb"
+ "usb",
+ "wifi",
+ "both"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
- "mqtt": false,
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
- "snmp": false,
+ "snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
- "Xiao_S3_repeater_lora_ota_no_external_sensors": {
+ "Xiao_S3_room_server-full-usb-wifi": {
"display": false,
- "espnowBridge": false,
+ "espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
- "mqtt": false,
- "otaRole": "lora-receiver",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "lora",
- "wifi"
- ],
- "webconfig": false
- },
- "Xiao_S3_room_server-full-logging": {
- "display": false,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "loggingControl": "usb.logging",
+ "loggingControl": "logging.output",
"loggingModes": [
"none",
- "usb"
+ "usb",
+ "wifi",
+ "both"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
- "mqtt": false,
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
- "snmp": false,
+ "snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
- "Xiao_S3_room_server_lora_ota_no_external_sensors": {
- "display": false,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "mqtt": false,
- "otaRole": "lora-receiver",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "lora",
- "wifi"
- ],
- "webconfig": false
- },
"Xiao_S3_sensor-full-logging": {
"display": false,
"espnowBridge": false,
@@ -10458,7 +11171,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -10471,7 +11184,7 @@
"wifi",
"lora"
],
- "webconfig": true
+ "webconfig": false
},
"Xiao_nrf52_companion_radio_full": {
"dedicatedUsbLogging": true,
@@ -10485,9 +11198,9 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Full Companion queue: 256 offline messages normally; 128 while mOTA borrows queue storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source restores all 256 slots.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
@@ -10501,7 +11214,7 @@
],
"webconfig": false
},
- "Xiao_nrf52_repeater": {
+ "Xiao_nrf52_repeater-full": {
"display": false,
"espnowBridge": false,
"femRx": false,
@@ -10512,7 +11225,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "NRF52_PLATFORM",
@@ -10520,6 +11233,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -10528,11 +11243,12 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires the matching external-storage hardware, wiring, and storage-aware OTAFIX bootloader."
],
@@ -10545,45 +11261,134 @@
},
"webconfig": false
},
- "Xiao_nrf52_repeater_bridge_rs232": {
+ "Xiao_nrf52_repeater-reduced": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
- "mqtt": false,
- "otaRole": "none",
- "platform": "NRF52_PLATFORM",
- "primaryEspnow": false,
- "rs232": true,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "bluetooth"
+ "loggingControl": "usb.logging",
+ "loggingModes": [
+ "none",
+ "usb"
],
- "webconfig": false
- },
- "Xiao_nrf52_room_server": {
- "display": false,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
- "otaRole": "none",
+ "otaRole": "lora-receiver",
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
- "bluetooth"
+ "bluetooth",
+ "lora"
],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Requires the matching external-storage hardware, wiring, and storage-aware OTAFIX bootloader."
+ ],
+ "package_types": [
+ "full",
+ "in_place_delta"
+ ],
+ "storage": "external_qspi"
+ }
+ },
"webconfig": false
},
- "Xiao_nrf52_room_server_lora_ota_no_external_sensors": {
+ "Xiao_nrf52_repeater_bridge_rs232-full": {
+ "display": false,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": false,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": true,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
+ "webconfig": false
+ },
+ "Xiao_nrf52_repeater_bridge_rs232-reduced": {
+ "display": false,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": false,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": true,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
+ "webconfig": false
+ },
+ "Xiao_nrf52_room_server_lora_ota_no_external_sensors-full": {
"display": false,
"espnowBridge": false,
"femRx": false,
@@ -10596,6 +11401,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -10604,11 +11411,52 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
+ "webconfig": false
+ },
+ "Xiao_nrf52_room_server_lora_ota_no_external_sensors-reduced": {
+ "display": false,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": false,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Internal storage accepts in-place application deltas, not full application packages."
],
@@ -10648,7 +11496,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
@@ -10662,98 +11510,62 @@
],
"webconfig": true
},
- "heltec_rc32_repeater-full-logging": {
+ "heltec_rc32_repeater-full-usb-wifi": {
"display": true,
- "espnowBridge": false,
+ "espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
- "loggingControl": "usb.logging",
+ "loggingControl": "logging.output",
"loggingModes": [
"none",
- "usb"
+ "usb",
+ "wifi",
+ "both"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
- "mqtt": false,
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
- "snmp": false,
+ "snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
- "heltec_rc32_repeater_lora_ota_no_external_sensors": {
+ "heltec_rc32_room_server-full-usb-wifi": {
"display": true,
- "espnowBridge": false,
+ "espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
- "mqtt": false,
- "otaRole": "lora-receiver",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "lora",
- "wifi"
- ],
- "webconfig": false
- },
- "heltec_rc32_room_server-full-logging": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "loggingControl": "usb.logging",
+ "loggingControl": "logging.output",
"loggingModes": [
"none",
- "usb"
+ "usb",
+ "wifi",
+ "both"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
- "mqtt": false,
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
- "snmp": false,
+ "snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
- "heltec_rc32_room_server_lora_ota_no_external_sensors": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "mqtt": false,
- "otaRole": "lora-receiver",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "lora",
- "wifi"
- ],
- "webconfig": false
- },
"heltec_rc32_sensor-full-logging": {
"display": true,
"espnowBridge": false,
@@ -10765,7 +11577,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -10778,7 +11590,7 @@
"wifi",
"lora"
],
- "webconfig": true
+ "webconfig": false
},
"heltec_rc32_without_display_companion_radio_full": {
"display": false,
@@ -10791,7 +11603,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
@@ -10805,98 +11617,62 @@
],
"webconfig": true
},
- "heltec_rc32_without_display_repeater-full-logging": {
+ "heltec_rc32_without_display_repeater-full-usb-wifi": {
"display": false,
- "espnowBridge": false,
+ "espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
- "loggingControl": "usb.logging",
+ "loggingControl": "logging.output",
"loggingModes": [
"none",
- "usb"
+ "usb",
+ "wifi",
+ "both"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
- "mqtt": false,
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
- "snmp": false,
+ "snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
- "heltec_rc32_without_display_repeater_lora_ota_no_external_sensors": {
+ "heltec_rc32_without_display_room_server-full-usb-wifi": {
"display": false,
- "espnowBridge": false,
+ "espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
- "mqtt": false,
- "otaRole": "lora-receiver",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "lora",
- "wifi"
- ],
- "webconfig": false
- },
- "heltec_rc32_without_display_room_server-full-logging": {
- "display": false,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "loggingControl": "usb.logging",
+ "loggingControl": "logging.output",
"loggingModes": [
"none",
- "usb"
+ "usb",
+ "wifi",
+ "both"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
- "mqtt": false,
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
- "snmp": false,
+ "snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
- "heltec_rc32_without_display_room_server_lora_ota_no_external_sensors": {
- "display": false,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "mqtt": false,
- "otaRole": "lora-receiver",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "lora",
- "wifi"
- ],
- "webconfig": false
- },
"heltec_rc32_without_display_sensor-full-logging": {
"display": false,
"espnowBridge": false,
@@ -10908,7 +11684,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -10921,7 +11697,7 @@
"wifi",
"lora"
],
- "webconfig": true
+ "webconfig": false
},
"heltec_tracker_v1_1_repeater_observer_mqtt-full-usb-wifi": {
"display": true,
@@ -10936,9 +11712,9 @@
"wifi",
"both"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Neighbor table: 50 entries.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -10966,7 +11742,7 @@
"wifi",
"both"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -10992,9 +11768,9 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Full Companion capacity: 100 contacts and 224 queued messages; all Full transports are retained. Export contacts before updating if you have more than 100; entries beyond this limit may be unavailable or omitted by a later save.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
@@ -11021,7 +11797,7 @@
"wifi",
"both"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -11049,7 +11825,7 @@
"wifi",
"both"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -11064,26 +11840,6 @@
],
"webconfig": true
},
- "heltec_tracker_v2_room_server_lora_ota_no_external_sensors": {
- "display": true,
- "espnowBridge": false,
- "femRx": true,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "lora-receiver",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "lora",
- "wifi"
- ],
- "webconfig": false
- },
"heltec_tracker_v2_sensor-full-logging": {
"display": true,
"espnowBridge": false,
@@ -11095,7 +11851,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -11108,7 +11864,7 @@
"wifi",
"lora"
],
- "webconfig": true
+ "webconfig": false
},
"heltec_v4_2_v4_3_companion_radio_full_femon": {
"display": true,
@@ -11123,7 +11879,7 @@
"wifi",
"both"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
@@ -11150,7 +11906,7 @@
"wifi",
"both"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -11165,26 +11921,6 @@
],
"webconfig": true
},
- "heltec_v4_expansionkit_repeater_lora_ota_no_external_sensors": {
- "display": true,
- "espnowBridge": false,
- "femRx": true,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "lora-receiver",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "lora",
- "wifi"
- ],
- "webconfig": false
- },
"heltec_v4_expansionkit_room_server_observer_mqtt-full-usb-wifi": {
"display": true,
"espnowBridge": true,
@@ -11198,7 +11934,7 @@
"wifi",
"both"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -11224,7 +11960,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
@@ -11249,7 +11985,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
@@ -11276,7 +12012,7 @@
"wifi",
"both"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -11304,7 +12040,7 @@
"wifi",
"both"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -11319,26 +12055,6 @@
],
"webconfig": true
},
- "heltec_v4_r8_room_server_lora_ota_no_external_sensors": {
- "display": true,
- "espnowBridge": false,
- "femRx": true,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "lora-receiver",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "lora",
- "wifi"
- ],
- "webconfig": false
- },
"heltec_v4_r8_sensor-full-logging": {
"display": true,
"espnowBridge": false,
@@ -11350,7 +12066,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -11363,7 +12079,7 @@
"wifi",
"lora"
],
- "webconfig": true
+ "webconfig": false
},
"heltec_v4_r8_tft_companion_radio_full": {
"display": true,
@@ -11376,7 +12092,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
@@ -11403,7 +12119,7 @@
"wifi",
"both"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -11431,7 +12147,7 @@
"wifi",
"both"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -11459,7 +12175,7 @@
"wifi",
"both"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -11487,7 +12203,7 @@
"wifi",
"both"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -11502,26 +12218,6 @@
],
"webconfig": true
},
- "heltec_v4_r8_tft_room_server_lora_ota_no_external_sensors": {
- "display": true,
- "espnowBridge": false,
- "femRx": true,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "lora-receiver",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "lora",
- "wifi"
- ],
- "webconfig": false
- },
"heltec_v4_r8_tft_sensor-full-logging": {
"display": true,
"espnowBridge": false,
@@ -11533,7 +12229,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -11546,7 +12242,7 @@
"wifi",
"lora"
],
- "webconfig": true
+ "webconfig": false
},
"heltec_v4_repeater-full-usb-wifi": {
"display": true,
@@ -11561,7 +12257,7 @@
"wifi",
"both"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -11576,26 +12272,6 @@
],
"webconfig": true
},
- "heltec_v4_repeater_lora_ota_no_external_sensors": {
- "display": true,
- "espnowBridge": false,
- "femRx": true,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "lora-receiver",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "lora",
- "wifi"
- ],
- "webconfig": false
- },
"heltec_v4_room_server-full-usb-wifi": {
"display": true,
"espnowBridge": true,
@@ -11609,7 +12285,7 @@
"wifi",
"both"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -11624,26 +12300,6 @@
],
"webconfig": true
},
- "heltec_v4_room_server_lora_ota_no_external_sensors": {
- "display": true,
- "espnowBridge": false,
- "femRx": true,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "lora-receiver",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "lora",
- "wifi"
- ],
- "webconfig": false
- },
"heltec_v4_sensor-full-logging": {
"display": true,
"espnowBridge": false,
@@ -11655,7 +12311,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -11668,7 +12324,7 @@
"wifi",
"lora"
],
- "webconfig": true
+ "webconfig": false
},
"heltec_v4_tft_companion_radio_full_femon": {
"display": true,
@@ -11681,7 +12337,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
@@ -11697,7 +12353,7 @@
},
"heltec_v4_tft_repeater-full-logging": {
"display": true,
- "espnowBridge": false,
+ "espnowBridge": true,
"femRx": true,
"femTx": false,
"gps": true,
@@ -11706,7 +12362,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -11721,26 +12377,6 @@
],
"webconfig": true
},
- "heltec_v4_tft_repeater_lora_ota_no_external_sensors": {
- "display": true,
- "espnowBridge": false,
- "femRx": true,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "lora-receiver",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "lora",
- "wifi"
- ],
- "webconfig": false
- },
"heltec_v4_tft_room_server-full-logging": {
"display": true,
"espnowBridge": false,
@@ -11752,7 +12388,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -11767,26 +12403,6 @@
],
"webconfig": true
},
- "heltec_v4_tft_room_server_lora_ota_no_external_sensors": {
- "display": true,
- "espnowBridge": false,
- "femRx": true,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "lora-receiver",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "lora",
- "wifi"
- ],
- "webconfig": false
- },
"heltec_v4_tft_sensor-full-logging": {
"display": true,
"espnowBridge": false,
@@ -11798,7 +12414,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -11811,7 +12427,7 @@
"wifi",
"lora"
],
- "webconfig": true
+ "webconfig": false
},
"ikoka_handheld_nrf_e22_30dbm_096_companion_radio_full": {
"dedicatedUsbLogging": true,
@@ -11825,9 +12441,9 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Full Companion queue: 256 offline messages normally; 128 while mOTA borrows queue storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source restores all 256 slots.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
@@ -11841,7 +12457,7 @@
],
"webconfig": false
},
- "ikoka_handheld_nrf_e22_30dbm_repeater": {
+ "ikoka_handheld_nrf_e22_30dbm_repeater-full": {
"display": false,
"espnowBridge": false,
"femRx": false,
@@ -11852,7 +12468,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "NRF52_PLATFORM",
@@ -11860,6 +12476,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -11868,11 +12486,12 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires the matching external-storage hardware, wiring, and storage-aware OTAFIX bootloader."
],
@@ -11885,26 +12504,54 @@
},
"webconfig": false
},
- "ikoka_handheld_nrf_e22_30dbm_room_server": {
+ "ikoka_handheld_nrf_e22_30dbm_repeater-reduced": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
+ "loggingControl": "usb.logging",
+ "loggingModes": [
+ "none",
+ "usb"
+ ],
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
- "otaRole": "none",
+ "otaRole": "lora-receiver",
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
- "bluetooth"
+ "bluetooth",
+ "lora"
],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Requires the matching external-storage hardware, wiring, and storage-aware OTAFIX bootloader."
+ ],
+ "package_types": [
+ "full",
+ "in_place_delta"
+ ],
+ "storage": "external_qspi"
+ }
+ },
"webconfig": false
},
- "ikoka_handheld_nrf_e22_30dbm_room_server_lora_ota_no_external_sensors": {
+ "ikoka_handheld_nrf_e22_30dbm_room_server_lora_ota_no_external_sensors-full": {
"display": false,
"espnowBridge": false,
"femRx": false,
@@ -11917,6 +12564,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -11925,11 +12574,52 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
+ "webconfig": false
+ },
+ "ikoka_handheld_nrf_e22_30dbm_room_server_lora_ota_no_external_sensors-reduced": {
+ "display": false,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": false,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Internal storage accepts in-place application deltas, not full application packages."
],
@@ -11953,9 +12643,9 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Full Companion queue: 256 offline messages normally; 128 while mOTA borrows queue storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source restores all 256 slots.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
@@ -11969,7 +12659,7 @@
],
"webconfig": false
},
- "ikoka_nano_nrf_22dbm_repeater": {
+ "ikoka_nano_nrf_22dbm_repeater-full": {
"display": false,
"espnowBridge": false,
"femRx": false,
@@ -11980,7 +12670,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "NRF52_PLATFORM",
@@ -11988,6 +12678,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -11996,11 +12688,12 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires the matching external-storage hardware, wiring, and storage-aware OTAFIX bootloader."
],
@@ -12013,26 +12706,54 @@
},
"webconfig": false
},
- "ikoka_nano_nrf_22dbm_room_server": {
+ "ikoka_nano_nrf_22dbm_repeater-reduced": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
+ "loggingControl": "usb.logging",
+ "loggingModes": [
+ "none",
+ "usb"
+ ],
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
- "otaRole": "none",
+ "otaRole": "lora-receiver",
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
- "bluetooth"
+ "bluetooth",
+ "lora"
],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Requires the matching external-storage hardware, wiring, and storage-aware OTAFIX bootloader."
+ ],
+ "package_types": [
+ "full",
+ "in_place_delta"
+ ],
+ "storage": "external_qspi"
+ }
+ },
"webconfig": false
},
- "ikoka_nano_nrf_22dbm_room_server_lora_ota_no_external_sensors": {
+ "ikoka_nano_nrf_22dbm_room_server_lora_ota_no_external_sensors-full": {
"display": false,
"espnowBridge": false,
"femRx": false,
@@ -12045,6 +12766,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -12053,11 +12776,52 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
+ "webconfig": false
+ },
+ "ikoka_nano_nrf_22dbm_room_server_lora_ota_no_external_sensors-reduced": {
+ "display": false,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": false,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Internal storage accepts in-place application deltas, not full application packages."
],
@@ -12081,9 +12845,9 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Full Companion queue: 256 offline messages normally; 128 while mOTA borrows queue storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source restores all 256 slots.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
@@ -12097,7 +12861,7 @@
],
"webconfig": false
},
- "ikoka_nano_nrf_30dbm_repeater": {
+ "ikoka_nano_nrf_30dbm_repeater-full": {
"display": false,
"espnowBridge": false,
"femRx": false,
@@ -12108,7 +12872,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "NRF52_PLATFORM",
@@ -12116,6 +12880,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -12124,11 +12890,12 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires the matching external-storage hardware, wiring, and storage-aware OTAFIX bootloader."
],
@@ -12141,26 +12908,54 @@
},
"webconfig": false
},
- "ikoka_nano_nrf_30dbm_room_server": {
+ "ikoka_nano_nrf_30dbm_repeater-reduced": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
+ "loggingControl": "usb.logging",
+ "loggingModes": [
+ "none",
+ "usb"
+ ],
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
- "otaRole": "none",
+ "otaRole": "lora-receiver",
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
- "bluetooth"
+ "bluetooth",
+ "lora"
],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Requires the matching external-storage hardware, wiring, and storage-aware OTAFIX bootloader."
+ ],
+ "package_types": [
+ "full",
+ "in_place_delta"
+ ],
+ "storage": "external_qspi"
+ }
+ },
"webconfig": false
},
- "ikoka_nano_nrf_30dbm_room_server_lora_ota_no_external_sensors": {
+ "ikoka_nano_nrf_30dbm_room_server_lora_ota_no_external_sensors-full": {
"display": false,
"espnowBridge": false,
"femRx": false,
@@ -12173,6 +12968,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -12181,11 +12978,52 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
+ "webconfig": false
+ },
+ "ikoka_nano_nrf_30dbm_room_server_lora_ota_no_external_sensors-reduced": {
+ "display": false,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": false,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Internal storage accepts in-place application deltas, not full application packages."
],
@@ -12209,9 +13047,9 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Full Companion queue: 256 offline messages normally; 128 while mOTA borrows queue storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source restores all 256 slots.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
@@ -12225,7 +13063,7 @@
],
"webconfig": false
},
- "ikoka_nano_nrf_33dbm_repeater": {
+ "ikoka_nano_nrf_33dbm_repeater-full": {
"display": false,
"espnowBridge": false,
"femRx": false,
@@ -12236,7 +13074,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "NRF52_PLATFORM",
@@ -12244,6 +13082,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -12252,11 +13092,12 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires the matching external-storage hardware, wiring, and storage-aware OTAFIX bootloader."
],
@@ -12269,26 +13110,54 @@
},
"webconfig": false
},
- "ikoka_nano_nrf_33dbm_room_server": {
+ "ikoka_nano_nrf_33dbm_repeater-reduced": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
+ "loggingControl": "usb.logging",
+ "loggingModes": [
+ "none",
+ "usb"
+ ],
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
- "otaRole": "none",
+ "otaRole": "lora-receiver",
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
- "bluetooth"
+ "bluetooth",
+ "lora"
],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Requires the matching external-storage hardware, wiring, and storage-aware OTAFIX bootloader."
+ ],
+ "package_types": [
+ "full",
+ "in_place_delta"
+ ],
+ "storage": "external_qspi"
+ }
+ },
"webconfig": false
},
- "ikoka_nano_nrf_33dbm_room_server_lora_ota_no_external_sensors": {
+ "ikoka_nano_nrf_33dbm_room_server_lora_ota_no_external_sensors-full": {
"display": false,
"espnowBridge": false,
"femRx": false,
@@ -12301,6 +13170,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -12309,11 +13180,52 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
+ "webconfig": false
+ },
+ "ikoka_nano_nrf_33dbm_room_server_lora_ota_no_external_sensors-reduced": {
+ "display": false,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": false,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Internal storage accepts in-place application deltas, not full application packages."
],
@@ -12337,9 +13249,9 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Full Companion queue: 256 offline messages normally; 128 while mOTA borrows queue storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source restores all 256 slots.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
@@ -12353,7 +13265,7 @@
],
"webconfig": false
},
- "ikoka_stick_nrf_22dbm_repeater": {
+ "ikoka_stick_nrf_22dbm_repeater-full": {
"display": true,
"espnowBridge": false,
"femRx": false,
@@ -12364,7 +13276,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "NRF52_PLATFORM",
@@ -12372,6 +13284,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -12380,11 +13294,12 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires the matching external-storage hardware, wiring, and storage-aware OTAFIX bootloader."
],
@@ -12397,26 +13312,54 @@
},
"webconfig": false
},
- "ikoka_stick_nrf_22dbm_room_server": {
+ "ikoka_stick_nrf_22dbm_repeater-reduced": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
+ "loggingControl": "usb.logging",
+ "loggingModes": [
+ "none",
+ "usb"
+ ],
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
- "otaRole": "none",
+ "otaRole": "lora-receiver",
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
- "bluetooth"
+ "bluetooth",
+ "lora"
],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Requires the matching external-storage hardware, wiring, and storage-aware OTAFIX bootloader."
+ ],
+ "package_types": [
+ "full",
+ "in_place_delta"
+ ],
+ "storage": "external_qspi"
+ }
+ },
"webconfig": false
},
- "ikoka_stick_nrf_22dbm_room_server_lora_ota_no_external_sensors": {
+ "ikoka_stick_nrf_22dbm_room_server_lora_ota_no_external_sensors-full": {
"display": true,
"espnowBridge": false,
"femRx": false,
@@ -12429,6 +13372,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -12437,11 +13382,52 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
+ "webconfig": false
+ },
+ "ikoka_stick_nrf_22dbm_room_server_lora_ota_no_external_sensors-reduced": {
+ "display": true,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": false,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Internal storage accepts in-place application deltas, not full application packages."
],
@@ -12465,9 +13451,9 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Full Companion queue: 256 offline messages normally; 128 while mOTA borrows queue storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source restores all 256 slots.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
@@ -12481,7 +13467,7 @@
],
"webconfig": false
},
- "ikoka_stick_nrf_30dbm_repeater": {
+ "ikoka_stick_nrf_30dbm_repeater-full": {
"display": true,
"espnowBridge": false,
"femRx": false,
@@ -12492,7 +13478,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "NRF52_PLATFORM",
@@ -12500,6 +13486,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -12508,11 +13496,12 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires the matching external-storage hardware, wiring, and storage-aware OTAFIX bootloader."
],
@@ -12525,26 +13514,54 @@
},
"webconfig": false
},
- "ikoka_stick_nrf_30dbm_room_server": {
+ "ikoka_stick_nrf_30dbm_repeater-reduced": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
+ "loggingControl": "usb.logging",
+ "loggingModes": [
+ "none",
+ "usb"
+ ],
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
- "otaRole": "none",
+ "otaRole": "lora-receiver",
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
- "bluetooth"
+ "bluetooth",
+ "lora"
],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Requires the matching external-storage hardware, wiring, and storage-aware OTAFIX bootloader."
+ ],
+ "package_types": [
+ "full",
+ "in_place_delta"
+ ],
+ "storage": "external_qspi"
+ }
+ },
"webconfig": false
},
- "ikoka_stick_nrf_30dbm_room_server_lora_ota_no_external_sensors": {
+ "ikoka_stick_nrf_30dbm_room_server_lora_ota_no_external_sensors-full": {
"display": true,
"espnowBridge": false,
"femRx": false,
@@ -12557,6 +13574,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -12565,11 +13584,52 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
+ "webconfig": false
+ },
+ "ikoka_stick_nrf_30dbm_room_server_lora_ota_no_external_sensors-reduced": {
+ "display": true,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": false,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Internal storage accepts in-place application deltas, not full application packages."
],
@@ -12593,9 +13653,9 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Full Companion queue: 256 offline messages normally; 128 while mOTA borrows queue storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source restores all 256 slots.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
@@ -12609,7 +13669,7 @@
],
"webconfig": false
},
- "ikoka_stick_nrf_33dbm_repeater": {
+ "ikoka_stick_nrf_33dbm_repeater-full": {
"display": true,
"espnowBridge": false,
"femRx": false,
@@ -12620,7 +13680,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "NRF52_PLATFORM",
@@ -12628,6 +13688,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -12636,11 +13698,12 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires the matching external-storage hardware, wiring, and storage-aware OTAFIX bootloader."
],
@@ -12653,26 +13716,54 @@
},
"webconfig": false
},
- "ikoka_stick_nrf_33dbm_room_server": {
+ "ikoka_stick_nrf_33dbm_repeater-reduced": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
+ "loggingControl": "usb.logging",
+ "loggingModes": [
+ "none",
+ "usb"
+ ],
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
- "otaRole": "none",
+ "otaRole": "lora-receiver",
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
- "bluetooth"
+ "bluetooth",
+ "lora"
],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Requires the matching external-storage hardware, wiring, and storage-aware OTAFIX bootloader."
+ ],
+ "package_types": [
+ "full",
+ "in_place_delta"
+ ],
+ "storage": "external_qspi"
+ }
+ },
"webconfig": false
},
- "ikoka_stick_nrf_33dbm_room_server_lora_ota_no_external_sensors": {
+ "ikoka_stick_nrf_33dbm_room_server_lora_ota_no_external_sensors-full": {
"display": true,
"espnowBridge": false,
"femRx": false,
@@ -12685,6 +13776,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -12693,11 +13786,52 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
+ "webconfig": false
+ },
+ "ikoka_stick_nrf_33dbm_room_server_lora_ota_no_external_sensors-reduced": {
+ "display": true,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": false,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Internal storage accepts in-place application deltas, not full application packages."
],
@@ -12720,7 +13854,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
@@ -12734,78 +13868,62 @@
],
"webconfig": true
},
- "meshnology_w12_repeater-full-logging": {
+ "meshnology_w12_repeater-full-usb-wifi": {
"display": true,
- "espnowBridge": false,
+ "espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": true,
- "loggingControl": "usb.logging",
+ "loggingControl": "logging.output",
"loggingModes": [
"none",
- "usb"
+ "usb",
+ "wifi",
+ "both"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
- "mqtt": false,
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
- "snmp": false,
+ "snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
- "meshnology_w12_room_server-full-logging": {
+ "meshnology_w12_room_server-full-usb-wifi": {
"display": true,
- "espnowBridge": false,
+ "espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": true,
- "loggingControl": "usb.logging",
+ "loggingControl": "logging.output",
"loggingModes": [
"none",
- "usb"
+ "usb",
+ "wifi",
+ "both"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
- "mqtt": false,
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
- "snmp": false,
+ "snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
- "meshnology_w12_room_server_lora_ota_no_external_sensors": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "lora-receiver",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": false,
- "rxps": false,
- "snmp": false,
- "updateMethods": [
- "lora",
- "wifi"
- ],
- "webconfig": false
- },
"meshnology_w12_sensor-full-logging": {
"display": true,
"espnowBridge": false,
@@ -12817,7 +13935,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -12830,7 +13948,7 @@
"wifi",
"lora"
],
- "webconfig": true
+ "webconfig": false
},
"muzi_base_duo_companion_radio_full": {
"dedicatedUsbLogging": true,
@@ -12844,9 +13962,9 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Full Companion queue: 256 offline messages normally; 128 while mOTA borrows queue storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source restores all 256 slots.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
@@ -12860,26 +13978,7 @@
],
"webconfig": false
},
- "muzi_base_duo_repeater": {
- "display": false,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "mqtt": false,
- "otaRole": "none",
- "platform": "NRF52_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": false,
- "rxps": false,
- "snmp": false,
- "updateMethods": [
- "bluetooth"
- ],
- "webconfig": false
- },
- "muzi_base_duo_repeater_lora_ota_no_external_sensors": {
+ "muzi_base_duo_repeater_lora_ota_no_external_sensors-full": {
"display": false,
"espnowBridge": false,
"femRx": false,
@@ -12892,6 +13991,8 @@
"rs232": false,
"rxgain": false,
"rxps": false,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -12900,11 +14001,12 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Internal storage accepts in-place application deltas, not full application packages."
],
@@ -12916,26 +14018,7 @@
},
"webconfig": false
},
- "muzi_base_duo_room_server": {
- "display": false,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "mqtt": false,
- "otaRole": "none",
- "platform": "NRF52_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": false,
- "rxps": false,
- "snmp": false,
- "updateMethods": [
- "bluetooth"
- ],
- "webconfig": false
- },
- "muzi_base_duo_room_server_lora_ota_no_external_sensors": {
+ "muzi_base_duo_repeater_lora_ota_no_external_sensors-reduced": {
"display": false,
"espnowBridge": false,
"femRx": false,
@@ -12948,6 +14031,8 @@
"rs232": false,
"rxgain": false,
"rxps": false,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -12956,11 +14041,92 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
+ "webconfig": false
+ },
+ "muzi_base_duo_room_server_lora_ota_no_external_sensors-full": {
+ "display": false,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": false,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": false,
+ "rxps": false,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
+ "webconfig": false
+ },
+ "muzi_base_duo_room_server_lora_ota_no_external_sensors-reduced": {
+ "display": false,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": false,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": false,
+ "rxps": false,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Internal storage accepts in-place application deltas, not full application packages."
],
@@ -13003,9 +14169,9 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Full Companion queue: 256 offline messages normally; 128 while mOTA borrows queue storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source restores all 256 slots.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
@@ -13019,26 +14185,7 @@
],
"webconfig": false
},
- "muzi_base_uno_repeater": {
- "display": false,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "mqtt": false,
- "otaRole": "none",
- "platform": "NRF52_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "bluetooth"
- ],
- "webconfig": false
- },
- "muzi_base_uno_repeater_lora_ota_no_external_sensors": {
+ "muzi_base_uno_repeater_lora_ota_no_external_sensors-full": {
"display": false,
"espnowBridge": false,
"femRx": false,
@@ -13051,6 +14198,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -13059,11 +14208,12 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Internal storage accepts in-place application deltas, not full application packages."
],
@@ -13075,26 +14225,7 @@
},
"webconfig": false
},
- "muzi_base_uno_room_server": {
- "display": false,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "mqtt": false,
- "otaRole": "none",
- "platform": "NRF52_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "bluetooth"
- ],
- "webconfig": false
- },
- "muzi_base_uno_room_server_lora_ota_no_external_sensors": {
+ "muzi_base_uno_repeater_lora_ota_no_external_sensors-reduced": {
"display": false,
"espnowBridge": false,
"femRx": false,
@@ -13107,6 +14238,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -13115,11 +14248,92 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
+ "webconfig": false
+ },
+ "muzi_base_uno_room_server_lora_ota_no_external_sensors-full": {
+ "display": false,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": false,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
+ "webconfig": false
+ },
+ "muzi_base_uno_room_server_lora_ota_no_external_sensors-reduced": {
+ "display": false,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": false,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Internal storage accepts in-place application deltas, not full application packages."
],
@@ -13161,7 +14375,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
@@ -13173,28 +14387,9 @@
"updateMethods": [],
"webconfig": true
},
- "nibble_screen_connect_repeater_": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "mqtt": false,
- "otaRole": "none",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "wifi"
- ],
- "webconfig": false
- },
"nibble_screen_connect_repeater_-full-logging": {
"display": true,
- "espnowBridge": false,
+ "espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
@@ -13203,7 +14398,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -13218,45 +14413,6 @@
],
"webconfig": true
},
- "nibble_screen_connect_repeater_lora_ota_no_external_sensors": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "mqtt": false,
- "otaRole": "lora-receiver",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "lora",
- "wifi"
- ],
- "webconfig": false
- },
- "nibble_screen_connect_room_server_": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "mqtt": false,
- "otaRole": "none",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "wifi"
- ],
- "webconfig": false
- },
"nibble_screen_connect_room_server_-full-logging": {
"display": true,
"espnowBridge": false,
@@ -13268,7 +14424,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -13283,26 +14439,6 @@
],
"webconfig": true
},
- "nibble_screen_connect_room_server_lora_ota_no_external_sensors": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "mqtt": false,
- "otaRole": "lora-receiver",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "lora",
- "wifi"
- ],
- "webconfig": false
- },
"nibble_zero_connect_companion_radio_full_": {
"display": true,
"espnowBridge": false,
@@ -13314,7 +14450,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
@@ -13326,28 +14462,9 @@
"updateMethods": [],
"webconfig": true
},
- "nibble_zero_connect_repeater_": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "mqtt": false,
- "otaRole": "none",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "wifi"
- ],
- "webconfig": false
- },
"nibble_zero_connect_repeater_-full-logging": {
"display": true,
- "espnowBridge": false,
+ "espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
@@ -13356,7 +14473,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -13371,45 +14488,6 @@
],
"webconfig": true
},
- "nibble_zero_connect_repeater_lora_ota_no_external_sensors": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "mqtt": false,
- "otaRole": "lora-receiver",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "lora",
- "wifi"
- ],
- "webconfig": false
- },
- "nibble_zero_connect_room_server_": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "mqtt": false,
- "otaRole": "none",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "wifi"
- ],
- "webconfig": false
- },
"nibble_zero_connect_room_server_-full-logging": {
"display": true,
"espnowBridge": false,
@@ -13421,7 +14499,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
@@ -13436,26 +14514,6 @@
],
"webconfig": true
},
- "nibble_zero_connect_room_server_lora_ota_no_external_sensors": {
- "display": true,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "mqtt": false,
- "otaRole": "lora-receiver",
- "platform": "ESP32_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": true,
- "rxps": true,
- "snmp": false,
- "updateMethods": [
- "lora",
- "wifi"
- ],
- "webconfig": false
- },
"solarxiao_30S_companion_radio_full": {
"dedicatedUsbLogging": true,
"display": false,
@@ -13468,9 +14526,9 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Full Companion queue: 256 offline messages normally; 128 while mOTA borrows queue storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source restores all 256 slots.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
@@ -13484,7 +14542,7 @@
],
"webconfig": false
},
- "solarxiao_30S_repeater": {
+ "solarxiao_30S_repeater-full": {
"display": false,
"espnowBridge": false,
"femRx": false,
@@ -13495,7 +14553,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "NRF52_PLATFORM",
@@ -13503,6 +14561,8 @@
"rs232": true,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -13511,11 +14571,12 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires the matching external-storage hardware, wiring, and storage-aware OTAFIX bootloader."
],
@@ -13528,26 +14589,54 @@
},
"webconfig": false
},
- "solarxiao_30S_room_server": {
+ "solarxiao_30S_repeater-reduced": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
+ "loggingControl": "usb.logging",
+ "loggingModes": [
+ "none",
+ "usb"
+ ],
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
- "otaRole": "none",
+ "otaRole": "lora-receiver",
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
- "rs232": false,
+ "rs232": true,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
- "bluetooth"
+ "bluetooth",
+ "lora"
],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Requires the matching external-storage hardware, wiring, and storage-aware OTAFIX bootloader."
+ ],
+ "package_types": [
+ "full",
+ "in_place_delta"
+ ],
+ "storage": "external_qspi"
+ }
+ },
"webconfig": false
},
- "solarxiao_30S_room_server_lora_ota": {
+ "solarxiao_30S_room_server-full": {
"display": false,
"espnowBridge": false,
"femRx": false,
@@ -13560,6 +14649,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -13568,11 +14659,133 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
+ "webconfig": false
+ },
+ "solarxiao_30S_room_server-reduced": {
+ "display": false,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": false,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
+ "webconfig": false
+ },
+ "solarxiao_30S_room_server_lora_ota-full": {
+ "display": false,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": false,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Requires the matching external-storage hardware, wiring, and storage-aware OTAFIX bootloader."
+ ],
+ "package_types": [
+ "full",
+ "in_place_delta"
+ ],
+ "storage": "external_qspi"
+ }
+ },
+ "webconfig": false
+ },
+ "solarxiao_30S_room_server_lora_ota-reduced": {
+ "display": false,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": false,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires the matching external-storage hardware, wiring, and storage-aware OTAFIX bootloader."
],
@@ -13597,9 +14810,9 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Full Companion queue: 256 offline messages normally; 128 while mOTA borrows queue storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source restores all 256 slots.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
@@ -13613,7 +14826,7 @@
],
"webconfig": false
},
- "solarxiao_33S_repeater": {
+ "solarxiao_33S_repeater-full": {
"display": false,
"espnowBridge": false,
"femRx": false,
@@ -13624,7 +14837,7 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "NRF52_PLATFORM",
@@ -13632,6 +14845,8 @@
"rs232": true,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -13640,11 +14855,12 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires the matching external-storage hardware, wiring, and storage-aware OTAFIX bootloader."
],
@@ -13657,26 +14873,54 @@
},
"webconfig": false
},
- "solarxiao_33S_room_server": {
+ "solarxiao_33S_repeater-reduced": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
+ "loggingControl": "usb.logging",
+ "loggingModes": [
+ "none",
+ "usb"
+ ],
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
- "otaRole": "none",
+ "otaRole": "lora-receiver",
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
- "rs232": false,
+ "rs232": true,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
- "bluetooth"
+ "bluetooth",
+ "lora"
],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Requires the matching external-storage hardware, wiring, and storage-aware OTAFIX bootloader."
+ ],
+ "package_types": [
+ "full",
+ "in_place_delta"
+ ],
+ "storage": "external_qspi"
+ }
+ },
"webconfig": false
},
- "solarxiao_33S_room_server_lora_ota": {
+ "solarxiao_33S_room_server-full": {
"display": false,
"espnowBridge": false,
"femRx": false,
@@ -13689,6 +14933,8 @@
"rs232": false,
"rxgain": true,
"rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -13697,11 +14943,133 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
+ "webconfig": false
+ },
+ "solarxiao_33S_room_server-reduced": {
+ "display": false,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": false,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
+ "webconfig": false
+ },
+ "solarxiao_33S_room_server_lora_ota-full": {
+ "display": false,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": false,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Requires the matching external-storage hardware, wiring, and storage-aware OTAFIX bootloader."
+ ],
+ "package_types": [
+ "full",
+ "in_place_delta"
+ ],
+ "storage": "external_qspi"
+ }
+ },
+ "webconfig": false
+ },
+ "solarxiao_33S_room_server_lora_ota-reduced": {
+ "display": false,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": false,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": true,
+ "rxps": true,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires the matching external-storage hardware, wiring, and storage-aware OTAFIX bootloader."
],
@@ -13725,9 +15093,9 @@
"none",
"usb"
],
- "loggingSource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Full Companion queue: 256 offline messages normally; 128 while mOTA borrows queue storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source restores all 256 slots.",
- "memorySource": "9053038ffa7f481e4b0af2bb8382210683a2c317",
+ "memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
@@ -13741,26 +15109,7 @@
],
"webconfig": false
},
- "t1000e_repeater": {
- "display": false,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "none",
- "platform": "NRF52_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": false,
- "rxps": false,
- "snmp": false,
- "updateMethods": [
- "bluetooth"
- ],
- "webconfig": false
- },
- "t1000e_repeater_lora_ota_no_external_sensors": {
+ "t1000e_repeater_lora_ota_no_external_sensors-full": {
"display": false,
"espnowBridge": false,
"femRx": false,
@@ -13773,6 +15122,8 @@
"rs232": false,
"rxgain": false,
"rxps": false,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -13781,13 +15132,14 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
- "Requires OTAFIX 2.4.6 retained-RAM handoff support; a transfer cannot resume after the receiver restarts."
+ "Requires the exact-board retained-RAM handoff bootloader profile; a transfer cannot resume after the receiver restarts."
],
"package_types": [
"in_place_delta"
@@ -13797,26 +15149,7 @@
},
"webconfig": false
},
- "t1000e_room_server": {
- "display": false,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "none",
- "platform": "NRF52_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": false,
- "rxps": false,
- "snmp": false,
- "updateMethods": [
- "bluetooth"
- ],
- "webconfig": false
- },
- "t1000e_room_server_lora_ota_no_external_sensors": {
+ "t1000e_repeater_lora_ota_no_external_sensors-reduced": {
"display": false,
"espnowBridge": false,
"femRx": false,
@@ -13829,6 +15162,8 @@
"rs232": false,
"rxgain": false,
"rxps": false,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -13837,11 +15172,52 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Requires the exact-board retained-RAM handoff bootloader profile; a transfer cannot resume after the receiver restarts."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash_and_retained_ram"
+ }
+ },
+ "webconfig": false
+ },
+ "t1000e_room_server_lora_ota_no_external_sensors-full": {
+ "display": false,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": true,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": false,
+ "rxps": false,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Internal storage accepts in-place application deltas, not full application packages."
],
@@ -13853,26 +15229,7 @@
},
"webconfig": false
},
- "t1000e_sensor": {
- "display": false,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": true,
- "mqtt": false,
- "otaRole": "none",
- "platform": "NRF52_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": false,
- "rxps": false,
- "snmp": false,
- "updateMethods": [
- "bluetooth"
- ],
- "webconfig": false
- },
- "t1000e_sensor_lora_ota_no_external_sensors": {
+ "t1000e_room_server_lora_ota_no_external_sensors-reduced": {
"display": false,
"espnowBridge": false,
"femRx": false,
@@ -13885,6 +15242,8 @@
"rs232": false,
"rxgain": false,
"rxps": false,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -13893,11 +15252,92 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
+ "webconfig": false
+ },
+ "t1000e_sensor_lora_ota_no_external_sensors-full": {
+ "display": false,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": true,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": false,
+ "rxps": false,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
+ "webconfig": false
+ },
+ "t1000e_sensor_lora_ota_no_external_sensors-reduced": {
+ "display": false,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": true,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": false,
+ "rxps": false,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Internal storage accepts in-place application deltas, not full application packages."
],
@@ -13979,26 +15419,7 @@
],
"webconfig": false
},
- "wio_wm1110_repeater": {
- "display": false,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "mqtt": false,
- "otaRole": "none",
- "platform": "NRF52_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": false,
- "rxps": false,
- "snmp": false,
- "updateMethods": [
- "bluetooth"
- ],
- "webconfig": false
- },
- "wio_wm1110_repeater_lora_ota_no_external_sensors": {
+ "wio_wm1110_repeater_lora_ota_no_external_sensors-full": {
"display": false,
"espnowBridge": false,
"femRx": false,
@@ -14011,6 +15432,8 @@
"rs232": false,
"rxgain": false,
"rxps": false,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -14019,11 +15442,12 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Internal storage accepts in-place application deltas, not full application packages."
],
@@ -14035,26 +15459,7 @@
},
"webconfig": false
},
- "wio_wm1110_room_server": {
- "display": false,
- "espnowBridge": false,
- "femRx": false,
- "femTx": false,
- "gps": false,
- "mqtt": false,
- "otaRole": "none",
- "platform": "NRF52_PLATFORM",
- "primaryEspnow": false,
- "rs232": false,
- "rxgain": false,
- "rxps": false,
- "snmp": false,
- "updateMethods": [
- "bluetooth"
- ],
- "webconfig": false
- },
- "wio_wm1110_room_server_lora_ota_no_external_sensors": {
+ "wio_wm1110_repeater_lora_ota_no_external_sensors-reduced": {
"display": false,
"espnowBridge": false,
"femRx": false,
@@ -14067,6 +15472,8 @@
"rs232": false,
"rxgain": false,
"rxps": false,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"snmp": false,
"updateMethods": [
"bluetooth",
@@ -14075,11 +15482,92 @@
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
- "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
+ "webconfig": false
+ },
+ "wio_wm1110_room_server_lora_ota_no_external_sensors-full": {
+ "display": false,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": false,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": false,
+ "rxps": false,
+ "sensorProfile": "full",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
+ "Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
+ "Internal storage accepts in-place application deltas, not full application packages."
+ ],
+ "package_types": [
+ "in_place_delta"
+ ],
+ "storage": "internal_flash"
+ }
+ },
+ "webconfig": false
+ },
+ "wio_wm1110_room_server_lora_ota_no_external_sensors-reduced": {
+ "display": false,
+ "espnowBridge": false,
+ "femRx": false,
+ "femTx": false,
+ "gps": false,
+ "mqtt": false,
+ "otaRole": "lora-receiver",
+ "platform": "NRF52_PLATFORM",
+ "primaryEspnow": false,
+ "rs232": false,
+ "rxgain": false,
+ "rxps": false,
+ "sensorProfile": "reduced",
+ "sensorProfileSource": "88c85108005a30a730fa7b78b2899b210754f3be",
+ "snmp": false,
+ "updateMethods": [
+ "bluetooth",
+ "lora"
+ ],
+ "updateRequirements": {
+ "lora": {
+ "bootloader": "Matching board/storage OTAFIX bootloader",
+ "bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/v0.11.0-OTAFIX2.4.11",
+ "notes": [
+ "Use a destination-specific .mota package matching the board, target, and storage layout.",
+ "An in-place delta requires the exact firmware currently running as its base.",
+ "The package must fit the receiver's staging and apply workspace.",
+ "Check the release's exact-board bootloader manifest; hardware-pending boards are not covered by the normal release.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Internal storage accepts in-place application deltas, not full application packages."
],
@@ -14092,5 +15580,5 @@
"webconfig": false
}
},
- "source": "9053038ffa7f481e4b0af2bb8382210683a2c317"
+ "source": "88c85108005a30a730fa7b78b2899b210754f3be"
}
diff --git a/_javascript/hosted_doc_links.js b/_javascript/hosted_doc_links.js
new file mode 100644
index 000000000..3c284ab98
--- /dev/null
+++ b/_javascript/hosted_doc_links.js
@@ -0,0 +1,32 @@
+/* Source links help GitHub readers; the hosted page is already their destination. */
+(function () {
+ "use strict";
+
+ const hostedHostname = "mikecarper.github.io";
+ const bannerSelector = ".meshcore-hosted-doc-link";
+
+ function hideHostedDocLinks(doc, hostname) {
+ if (hostname !== hostedHostname) return 0;
+ const banners = doc.querySelectorAll(bannerSelector);
+ for (const banner of banners) banner.hidden = true;
+ return banners.length;
+ }
+
+ if (typeof module === "object" && module.exports) {
+ module.exports = { hideHostedDocLinks };
+ }
+ if (typeof window === "undefined" || typeof document === "undefined") return;
+
+ const hide = function () {
+ hideHostedDocLinks(document, window.location.hostname);
+ };
+ if (document.readyState === "loading") {
+ document.addEventListener("DOMContentLoaded", hide, { once: true });
+ } else {
+ hide();
+ }
+ // Material can replace article content without loading the page again.
+ if (typeof document$ !== "undefined" && document$ && typeof document$.subscribe === "function") {
+ document$.subscribe(hide);
+ }
+})();
diff --git a/_javascript/telemetry_decoder.js b/_javascript/telemetry_decoder.js
index a0e1cb18a..22f133a66 100644
--- a/_javascript/telemetry_decoder.js
+++ b/_javascript/telemetry_decoder.js
@@ -17,6 +17,59 @@
const METERS_PER_DEGREE = 111320;
const DEGREES_TO_RADIANS = Math.PI / 180;
+ // Keep the browser form out of GitHub's Markdown preview.
+ const DECODER_MARKUP = `
+
+ Try an analyzer example:
+
+
+
+
+
+
+
+
+
+ Spaces, line breaks, colons, dashes, a leading 0x, and a quoted
+ JSON field are accepted. CLI Base64 replies are also auto-detected. Paste
+ multiple compatible packet or reply lines together to merge them by
+ timestamp before downloading one CSV. Press Ctrl/Command+Enter to decode.
+
+
+
+
+
+
+
+
+
+
+
+
+ Decoded telemetry
+
+
+
+
+ Decode notes
+
+
+
+
+
+
+`;
+
const EXAMPLES = Object.freeze({
packetTemperature: Object.freeze({
label: "Analyzer temperature packet",
@@ -976,6 +1029,9 @@
const root = document.querySelector("[data-telemetry-decoder]");
if (!root) return;
+ // This is trusted, static markup; pasted telemetry is rendered as text below.
+ root.innerHTML = DECODER_MARKUP;
+
const input = root.querySelector("[data-role='input']");
const decodeButton = root.querySelector("[data-role='decode']");
const clearButton = root.querySelector("[data-role='clear']");
diff --git a/bootloader_version_stock_audit/index.html b/bootloader_version_stock_audit/index.html
index 26b21d775..49a93f248 100644
--- a/bootloader_version_stock_audit/index.html
+++ b/bootloader_version_stock_audit/index.html
@@ -23,7 +23,7 @@
- Document moved - MeshCore Docs
+ Bootloader version stock audit - MeshCore Docs
@@ -117,7 +117,7 @@
- Document moved
+ Bootloader version stock audit
@@ -347,7 +347,7 @@
- Companion notification builder
+ Notifications
@@ -375,7 +375,7 @@
- Temporary radio test builder
+ Preset test
@@ -403,7 +403,7 @@
- Filter policy playground
+ Filter tool
@@ -459,7 +459,7 @@
- Management report decoder
+ Management decoder
@@ -588,7 +588,7 @@
- Frequently Asked Questions
+ Faq
@@ -616,7 +616,7 @@
- Full firmware profiles
+ Full profiles
@@ -644,7 +644,7 @@
- Feature switches by role - 1.17.1.5 USA Cascade
+ Role feature switches
@@ -672,7 +672,7 @@
- Full Companion: turn features on and off
+ Full companion features
@@ -700,7 +700,7 @@
- Full Companion
+ Companion radio full
@@ -728,7 +728,7 @@
- Companion USB CLI and binary switcher
+ Full companion usb switcher
@@ -756,7 +756,7 @@
- Companion Offline Message Queue
+ Companion offline queue
@@ -784,7 +784,7 @@
- Halo and Keymind Branch Settings
+ Halo keymind settings
@@ -859,6 +859,34 @@
+
+
+
+
+
+
+
+
+ Upgrading 1.17.1.8 to 1.17.1.9
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -867,7 +895,7 @@
- Updating your node over the air (OTA) - user guide
+ Ota user guide
@@ -895,7 +923,7 @@
- Easy firmware updates over LoRa
+ Ota easy
@@ -923,7 +951,7 @@
- Scripted LoRa OTA from start to finish
+ Lora ota automation
@@ -951,7 +979,7 @@
- nRF52 bootloader updates over LoRa
+ Ota nrf52 bootloader update
@@ -979,7 +1007,7 @@
- nRF52 repeater LoRa OTA with external QSPI
+ Ota nrf52 qspi
@@ -1007,7 +1035,7 @@
- MeshTower V2 microSD LoRa OTA
+ Ota meshtower v2 sdcard
@@ -1035,7 +1063,7 @@
- ESP32 release partition lookup table
+ Esp32 partition catalog
@@ -1063,7 +1091,7 @@
- ESP32 legacy-partition migration over Wi-Fi or LoRa
+ Esp32 wifi partition migration
@@ -1091,7 +1119,7 @@
- Heltec V4 legacy-partition migration over Wi-Fi
+ Heltec v4 wifi partition migration
@@ -1119,7 +1147,7 @@
- LoRa CLI Host Service
+ Host cli service
@@ -1202,7 +1230,7 @@
- Two LoRa profiles on one radio
+ Radio profiles
@@ -1230,7 +1258,7 @@
- Carrier-wave RF checks
+ Carrier wave
@@ -1258,7 +1286,7 @@
- ESP-NOW bridge: simple setup
+ Espnow bridge setup
@@ -1286,7 +1314,7 @@
- WiFi and MQTT by Firmware Type
+ WiFi
@@ -1314,7 +1342,7 @@
- Flood Filtering and Moderation
+ Flood filtering
@@ -1342,7 +1370,7 @@
- GPS Tracking
+ Gps tracking
@@ -1370,7 +1398,7 @@
- nRF52 Power Management
+ Nrf52 power management
@@ -1453,7 +1481,7 @@
- CLI Commands
+ Cli commands
@@ -1481,7 +1509,7 @@
- CLI Availability by Firmware Build
+ Cli build matrix
@@ -1509,7 +1537,7 @@
- CLI Command Availability Matrix
+ Cli command availability
@@ -1537,7 +1565,7 @@
- Terminal Chat CLI
+ Terminal chat cli
@@ -1565,7 +1593,7 @@
- Companion Protocol
+ Companion protocol
@@ -1593,7 +1621,7 @@
- MeshCore KISS Modem Protocol
+ Kiss modem protocol
@@ -1621,7 +1649,7 @@
- Packet Format
+ Packet format
@@ -1649,7 +1677,7 @@
- Payload Format
+ Payloads
@@ -1677,7 +1705,7 @@
- MeshCore OTA - .mota container & LoRa protocol
+ Ota protocol
@@ -1705,7 +1733,7 @@
- Management reports (MGR1/MGR2)
+ Management reports
@@ -1733,7 +1761,7 @@
- Stats Binary Frame Structures
+ Stats binary frames
@@ -1761,7 +1789,7 @@
- Number Allocations
+ Number allocations
@@ -1789,7 +1817,7 @@
- QR Codes
+ Qr codes
@@ -1825,7 +1853,7 @@
- Local Documentation
+ Docs
@@ -2137,6 +2165,10 @@
+
+View this page on MeshCore Docs.
+
+
Document moved
@@ -2195,13 +2227,15 @@
+
+
-
+
diff --git a/cad_scan_validation/index.html b/cad_scan_validation/index.html
index dcadcace2..b28c02001 100644
--- a/cad_scan_validation/index.html
+++ b/cad_scan_validation/index.html
@@ -23,7 +23,7 @@
- Document moved - MeshCore Docs
+ Cad scan validation - MeshCore Docs
@@ -117,7 +117,7 @@
- Document moved
+ Cad scan validation
@@ -347,7 +347,7 @@
- Companion notification builder
+ Notifications
@@ -375,7 +375,7 @@
- Temporary radio test builder
+ Preset test
@@ -403,7 +403,7 @@
- Filter policy playground
+ Filter tool
@@ -459,7 +459,7 @@
- Management report decoder
+ Management decoder
@@ -588,7 +588,7 @@
- Frequently Asked Questions
+ Faq
@@ -616,7 +616,7 @@
- Full firmware profiles
+ Full profiles
@@ -644,7 +644,7 @@
- Feature switches by role - 1.17.1.5 USA Cascade
+ Role feature switches
@@ -672,7 +672,7 @@
- Full Companion: turn features on and off
+ Full companion features
@@ -700,7 +700,7 @@
- Full Companion
+ Companion radio full
@@ -728,7 +728,7 @@
- Companion USB CLI and binary switcher
+ Full companion usb switcher
@@ -756,7 +756,7 @@
- Companion Offline Message Queue
+ Companion offline queue
@@ -784,7 +784,7 @@
- Halo and Keymind Branch Settings
+ Halo keymind settings
@@ -859,6 +859,34 @@
+
+
+
+
+
+
+
+
+ Upgrading 1.17.1.8 to 1.17.1.9
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -867,7 +895,7 @@
- Updating your node over the air (OTA) - user guide
+ Ota user guide
@@ -895,7 +923,7 @@
- Easy firmware updates over LoRa
+ Ota easy
@@ -923,7 +951,7 @@
- Scripted LoRa OTA from start to finish
+ Lora ota automation
@@ -951,7 +979,7 @@
- nRF52 bootloader updates over LoRa
+ Ota nrf52 bootloader update
@@ -979,7 +1007,7 @@
- nRF52 repeater LoRa OTA with external QSPI
+ Ota nrf52 qspi
@@ -1007,7 +1035,7 @@
- MeshTower V2 microSD LoRa OTA
+ Ota meshtower v2 sdcard
@@ -1035,7 +1063,7 @@
- ESP32 release partition lookup table
+ Esp32 partition catalog
@@ -1063,7 +1091,7 @@
- ESP32 legacy-partition migration over Wi-Fi or LoRa
+ Esp32 wifi partition migration
@@ -1091,7 +1119,7 @@
- Heltec V4 legacy-partition migration over Wi-Fi
+ Heltec v4 wifi partition migration
@@ -1119,7 +1147,7 @@
- LoRa CLI Host Service
+ Host cli service
@@ -1202,7 +1230,7 @@
- Two LoRa profiles on one radio
+ Radio profiles
@@ -1230,7 +1258,7 @@
- Carrier-wave RF checks
+ Carrier wave
@@ -1258,7 +1286,7 @@
- ESP-NOW bridge: simple setup
+ Espnow bridge setup
@@ -1286,7 +1314,7 @@
- WiFi and MQTT by Firmware Type
+ WiFi
@@ -1314,7 +1342,7 @@
- Flood Filtering and Moderation
+ Flood filtering
@@ -1342,7 +1370,7 @@
- GPS Tracking
+ Gps tracking
@@ -1370,7 +1398,7 @@
- nRF52 Power Management
+ Nrf52 power management
@@ -1453,7 +1481,7 @@
- CLI Commands
+ Cli commands
@@ -1481,7 +1509,7 @@
- CLI Availability by Firmware Build
+ Cli build matrix
@@ -1509,7 +1537,7 @@
- CLI Command Availability Matrix
+ Cli command availability
@@ -1537,7 +1565,7 @@
- Terminal Chat CLI
+ Terminal chat cli
@@ -1565,7 +1593,7 @@
- Companion Protocol
+ Companion protocol
@@ -1593,7 +1621,7 @@
- MeshCore KISS Modem Protocol
+ Kiss modem protocol
@@ -1621,7 +1649,7 @@
- Packet Format
+ Packet format
@@ -1649,7 +1677,7 @@
- Payload Format
+ Payloads
@@ -1677,7 +1705,7 @@
- MeshCore OTA - .mota container & LoRa protocol
+ Ota protocol
@@ -1705,7 +1733,7 @@
- Management reports (MGR1/MGR2)
+ Management reports
@@ -1733,7 +1761,7 @@
- Stats Binary Frame Structures
+ Stats binary frames
@@ -1761,7 +1789,7 @@
- Number Allocations
+ Number allocations
@@ -1789,7 +1817,7 @@
- QR Codes
+ Qr codes
@@ -1825,7 +1853,7 @@
- Local Documentation
+ Docs
@@ -2137,6 +2165,10 @@
+
+View this page on MeshCore Docs.
+
+
Document moved
@@ -2195,13 +2227,15 @@
+
+
-
+
diff --git a/carrier_wave/index.html b/carrier_wave/index.html
index 30dab4c9d..e6624139b 100644
--- a/carrier_wave/index.html
+++ b/carrier_wave/index.html
@@ -27,7 +27,7 @@
- Carrier-wave RF checks - MeshCore Docs
+ Carrier wave - MeshCore Docs
@@ -121,7 +121,7 @@
- Carrier-wave RF checks
+ Carrier wave
@@ -351,7 +351,7 @@
- Companion notification builder
+ Notifications
@@ -379,7 +379,7 @@
- Temporary radio test builder
+ Preset test
@@ -407,7 +407,7 @@
- Filter policy playground
+ Filter tool
@@ -463,7 +463,7 @@
- Management report decoder
+ Management decoder
@@ -594,7 +594,7 @@
- Frequently Asked Questions
+ Faq
@@ -622,7 +622,7 @@
- Full firmware profiles
+ Full profiles
@@ -650,7 +650,7 @@
- Feature switches by role - 1.17.1.5 USA Cascade
+ Role feature switches
@@ -678,7 +678,7 @@
- Full Companion: turn features on and off
+ Full companion features
@@ -706,7 +706,7 @@
- Full Companion
+ Companion radio full
@@ -734,7 +734,7 @@
- Companion USB CLI and binary switcher
+ Full companion usb switcher
@@ -762,7 +762,7 @@
- Companion Offline Message Queue
+ Companion offline queue
@@ -790,7 +790,7 @@
- Halo and Keymind Branch Settings
+ Halo keymind settings
@@ -865,6 +865,34 @@
+
+
+
+
+
+
+
+
+ Upgrading 1.17.1.8 to 1.17.1.9
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -873,7 +901,7 @@
- Updating your node over the air (OTA) - user guide
+ Ota user guide
@@ -901,7 +929,7 @@
- Easy firmware updates over LoRa
+ Ota easy
@@ -929,7 +957,7 @@
- Scripted LoRa OTA from start to finish
+ Lora ota automation
@@ -957,7 +985,7 @@
- nRF52 bootloader updates over LoRa
+ Ota nrf52 bootloader update
@@ -985,7 +1013,7 @@
- nRF52 repeater LoRa OTA with external QSPI
+ Ota nrf52 qspi
@@ -1013,7 +1041,7 @@
- MeshTower V2 microSD LoRa OTA
+ Ota meshtower v2 sdcard
@@ -1041,7 +1069,7 @@
- ESP32 release partition lookup table
+ Esp32 partition catalog
@@ -1069,7 +1097,7 @@
- ESP32 legacy-partition migration over Wi-Fi or LoRa
+ Esp32 wifi partition migration
@@ -1097,7 +1125,7 @@
- Heltec V4 legacy-partition migration over Wi-Fi
+ Heltec v4 wifi partition migration
@@ -1125,7 +1153,7 @@
- LoRa CLI Host Service
+ Host cli service
@@ -1210,7 +1238,7 @@
- Two LoRa profiles on one radio
+ Radio profiles
@@ -1247,7 +1275,7 @@
- Carrier-wave RF checks
+ Carrier wave
@@ -1276,7 +1304,7 @@
- ESP-NOW bridge: simple setup
+ Espnow bridge setup
@@ -1304,7 +1332,7 @@
- WiFi and MQTT by Firmware Type
+ WiFi
@@ -1332,7 +1360,7 @@
- Flood Filtering and Moderation
+ Flood filtering
@@ -1360,7 +1388,7 @@
- GPS Tracking
+ Gps tracking
@@ -1388,7 +1416,7 @@
- nRF52 Power Management
+ Nrf52 power management
@@ -1471,7 +1499,7 @@
- CLI Commands
+ Cli commands
@@ -1499,7 +1527,7 @@
- CLI Availability by Firmware Build
+ Cli build matrix
@@ -1527,7 +1555,7 @@
- CLI Command Availability Matrix
+ Cli command availability
@@ -1555,7 +1583,7 @@
- Terminal Chat CLI
+ Terminal chat cli
@@ -1583,7 +1611,7 @@
- Companion Protocol
+ Companion protocol
@@ -1611,7 +1639,7 @@
- MeshCore KISS Modem Protocol
+ Kiss modem protocol
@@ -1639,7 +1667,7 @@
- Packet Format
+ Packet format
@@ -1667,7 +1695,7 @@
- Payload Format
+ Payloads
@@ -1695,7 +1723,7 @@
- MeshCore OTA - .mota container & LoRa protocol
+ Ota protocol
@@ -1723,7 +1751,7 @@
- Management reports (MGR1/MGR2)
+ Management reports
@@ -1751,7 +1779,7 @@
- Stats Binary Frame Structures
+ Stats binary frames
@@ -1779,7 +1807,7 @@
- Number Allocations
+ Number allocations
@@ -1807,7 +1835,7 @@
- QR Codes
+ Qr codes
@@ -1843,7 +1871,7 @@
- Local Documentation
+ Docs
@@ -2155,6 +2183,10 @@
+
+View this page on MeshCore Docs.
+
+
Carrier-wave RF checks
cw and cw2 transmit a continuous, unmodulated carrier at the selected
profile's frequency and the configured TX power. They are available in the
@@ -2283,13 +2315,15 @@ reproduction steps, and the tested preamble settings.
+
+
-
+
diff --git a/carrier_wave_validation/index.html b/carrier_wave_validation/index.html
index 7e9523e49..9f38763d7 100644
--- a/carrier_wave_validation/index.html
+++ b/carrier_wave_validation/index.html
@@ -23,7 +23,7 @@
- Document moved - MeshCore Docs
+ Carrier wave validation - MeshCore Docs
@@ -117,7 +117,7 @@
- Document moved
+ Carrier wave validation
@@ -347,7 +347,7 @@
- Companion notification builder
+ Notifications
@@ -375,7 +375,7 @@
- Temporary radio test builder
+ Preset test
@@ -403,7 +403,7 @@
- Filter policy playground
+ Filter tool
@@ -459,7 +459,7 @@
- Management report decoder
+ Management decoder
@@ -588,7 +588,7 @@
- Frequently Asked Questions
+ Faq
@@ -616,7 +616,7 @@
- Full firmware profiles
+ Full profiles
@@ -644,7 +644,7 @@
- Feature switches by role - 1.17.1.5 USA Cascade
+ Role feature switches
@@ -672,7 +672,7 @@
- Full Companion: turn features on and off
+ Full companion features
@@ -700,7 +700,7 @@
- Full Companion
+ Companion radio full
@@ -728,7 +728,7 @@
- Companion USB CLI and binary switcher
+ Full companion usb switcher
@@ -756,7 +756,7 @@
- Companion Offline Message Queue
+ Companion offline queue
@@ -784,7 +784,7 @@
- Halo and Keymind Branch Settings
+ Halo keymind settings
@@ -859,6 +859,34 @@
+
+
+
+
+
+
+
+
+ Upgrading 1.17.1.8 to 1.17.1.9
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -867,7 +895,7 @@
- Updating your node over the air (OTA) - user guide
+ Ota user guide
@@ -895,7 +923,7 @@
- Easy firmware updates over LoRa
+ Ota easy
@@ -923,7 +951,7 @@
- Scripted LoRa OTA from start to finish
+ Lora ota automation
@@ -951,7 +979,7 @@
- nRF52 bootloader updates over LoRa
+ Ota nrf52 bootloader update
@@ -979,7 +1007,7 @@
- nRF52 repeater LoRa OTA with external QSPI
+ Ota nrf52 qspi
@@ -1007,7 +1035,7 @@
- MeshTower V2 microSD LoRa OTA
+ Ota meshtower v2 sdcard
@@ -1035,7 +1063,7 @@
- ESP32 release partition lookup table
+ Esp32 partition catalog
@@ -1063,7 +1091,7 @@
- ESP32 legacy-partition migration over Wi-Fi or LoRa
+ Esp32 wifi partition migration
@@ -1091,7 +1119,7 @@
- Heltec V4 legacy-partition migration over Wi-Fi
+ Heltec v4 wifi partition migration
@@ -1119,7 +1147,7 @@
- LoRa CLI Host Service
+ Host cli service
@@ -1202,7 +1230,7 @@
- Two LoRa profiles on one radio
+ Radio profiles
@@ -1230,7 +1258,7 @@
- Carrier-wave RF checks
+ Carrier wave
@@ -1258,7 +1286,7 @@
- ESP-NOW bridge: simple setup
+ Espnow bridge setup
@@ -1286,7 +1314,7 @@
- WiFi and MQTT by Firmware Type
+ WiFi
@@ -1314,7 +1342,7 @@
- Flood Filtering and Moderation
+ Flood filtering
@@ -1342,7 +1370,7 @@
- GPS Tracking
+ Gps tracking
@@ -1370,7 +1398,7 @@
- nRF52 Power Management
+ Nrf52 power management
@@ -1453,7 +1481,7 @@
- CLI Commands
+ Cli commands
@@ -1481,7 +1509,7 @@
- CLI Availability by Firmware Build
+ Cli build matrix
@@ -1509,7 +1537,7 @@
- CLI Command Availability Matrix
+ Cli command availability
@@ -1537,7 +1565,7 @@
- Terminal Chat CLI
+ Terminal chat cli
@@ -1565,7 +1593,7 @@
- Companion Protocol
+ Companion protocol
@@ -1593,7 +1621,7 @@
- MeshCore KISS Modem Protocol
+ Kiss modem protocol
@@ -1621,7 +1649,7 @@
- Packet Format
+ Packet format
@@ -1649,7 +1677,7 @@
- Payload Format
+ Payloads
@@ -1677,7 +1705,7 @@
- MeshCore OTA - .mota container & LoRa protocol
+ Ota protocol
@@ -1705,7 +1733,7 @@
- Management reports (MGR1/MGR2)
+ Management reports
@@ -1733,7 +1761,7 @@
- Stats Binary Frame Structures
+ Stats binary frames
@@ -1761,7 +1789,7 @@
- Number Allocations
+ Number allocations
@@ -1789,7 +1817,7 @@
- QR Codes
+ Qr codes
@@ -1825,7 +1853,7 @@
- Local Documentation
+ Docs
@@ -2137,6 +2165,10 @@
+
+View this page on MeshCore Docs.
+
+
Document moved
@@ -2195,13 +2227,15 @@
+
+
-
+
diff --git a/charge_voltage/index.html b/charge_voltage/index.html
index ad4cb85fa..8fdd25c1e 100644
--- a/charge_voltage/index.html
+++ b/charge_voltage/index.html
@@ -23,7 +23,7 @@
- Battery charge voltage - MeshCore Docs
+ Charge voltage - MeshCore Docs
@@ -117,7 +117,7 @@
- Battery charge voltage
+ Charge voltage
@@ -347,7 +347,7 @@
- Companion notification builder
+ Notifications
@@ -375,7 +375,7 @@
- Temporary radio test builder
+ Preset test
@@ -403,7 +403,7 @@
- Filter policy playground
+ Filter tool
@@ -459,7 +459,7 @@
- Management report decoder
+ Management decoder
@@ -588,7 +588,7 @@
- Frequently Asked Questions
+ Faq
@@ -616,7 +616,7 @@
- Full firmware profiles
+ Full profiles
@@ -644,7 +644,7 @@
- Feature switches by role - 1.17.1.5 USA Cascade
+ Role feature switches
@@ -672,7 +672,7 @@
- Full Companion: turn features on and off
+ Full companion features
@@ -700,7 +700,7 @@
- Full Companion
+ Companion radio full
@@ -728,7 +728,7 @@
- Companion USB CLI and binary switcher
+ Full companion usb switcher
@@ -756,7 +756,7 @@
- Companion Offline Message Queue
+ Companion offline queue
@@ -784,7 +784,7 @@
- Halo and Keymind Branch Settings
+ Halo keymind settings
@@ -859,6 +859,34 @@
+
+
+
+
+
+
+
+
+ Upgrading 1.17.1.8 to 1.17.1.9
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -867,7 +895,7 @@
- Updating your node over the air (OTA) - user guide
+ Ota user guide
@@ -895,7 +923,7 @@
- Easy firmware updates over LoRa
+ Ota easy
@@ -923,7 +951,7 @@
- Scripted LoRa OTA from start to finish
+ Lora ota automation
@@ -951,7 +979,7 @@
- nRF52 bootloader updates over LoRa
+ Ota nrf52 bootloader update
@@ -979,7 +1007,7 @@
- nRF52 repeater LoRa OTA with external QSPI
+ Ota nrf52 qspi
@@ -1007,7 +1035,7 @@
- MeshTower V2 microSD LoRa OTA
+ Ota meshtower v2 sdcard
@@ -1035,7 +1063,7 @@
- ESP32 release partition lookup table
+ Esp32 partition catalog
@@ -1063,7 +1091,7 @@
- ESP32 legacy-partition migration over Wi-Fi or LoRa
+ Esp32 wifi partition migration
@@ -1091,7 +1119,7 @@
- Heltec V4 legacy-partition migration over Wi-Fi
+ Heltec v4 wifi partition migration
@@ -1119,7 +1147,7 @@
- LoRa CLI Host Service
+ Host cli service
@@ -1202,7 +1230,7 @@
- Two LoRa profiles on one radio
+ Radio profiles
@@ -1230,7 +1258,7 @@
- Carrier-wave RF checks
+ Carrier wave
@@ -1258,7 +1286,7 @@
- ESP-NOW bridge: simple setup
+ Espnow bridge setup
@@ -1286,7 +1314,7 @@
- WiFi and MQTT by Firmware Type
+ WiFi
@@ -1314,7 +1342,7 @@
- Flood Filtering and Moderation
+ Flood filtering
@@ -1342,7 +1370,7 @@
- GPS Tracking
+ Gps tracking
@@ -1370,7 +1398,7 @@
- nRF52 Power Management
+ Nrf52 power management
@@ -1453,7 +1481,7 @@
- CLI Commands
+ Cli commands
@@ -1481,7 +1509,7 @@
- CLI Availability by Firmware Build
+ Cli build matrix
@@ -1509,7 +1537,7 @@
- CLI Command Availability Matrix
+ Cli command availability
@@ -1537,7 +1565,7 @@
- Terminal Chat CLI
+ Terminal chat cli
@@ -1565,7 +1593,7 @@
- Companion Protocol
+ Companion protocol
@@ -1593,7 +1621,7 @@
- MeshCore KISS Modem Protocol
+ Kiss modem protocol
@@ -1621,7 +1649,7 @@
- Packet Format
+ Packet format
@@ -1649,7 +1677,7 @@
- Payload Format
+ Payloads
@@ -1677,7 +1705,7 @@
- MeshCore OTA - .mota container & LoRa protocol
+ Ota protocol
@@ -1705,7 +1733,7 @@
- Management reports (MGR1/MGR2)
+ Management reports
@@ -1733,7 +1761,7 @@
- Stats Binary Frame Structures
+ Stats binary frames
@@ -1761,7 +1789,7 @@
- Number Allocations
+ Number allocations
@@ -1789,7 +1817,7 @@
- QR Codes
+ Qr codes
@@ -1825,7 +1853,7 @@
- Local Documentation
+ Docs
@@ -2178,6 +2206,10 @@
+
+View this page on MeshCore Docs.
+
+
Battery charge voltage
The charge.voltage commands change the battery charger's constant-voltage
target on supported boards. They are available through the shared text CLI in
@@ -2312,13 +2344,15 @@ See Battery profil
+
+
-
+
diff --git a/cli_build_matrix/index.html b/cli_build_matrix/index.html
index 319061388..b05ef53b7 100644
--- a/cli_build_matrix/index.html
+++ b/cli_build_matrix/index.html
@@ -27,7 +27,7 @@
- CLI Availability by Firmware Build - MeshCore Docs
+ Cli build matrix - MeshCore Docs
@@ -121,7 +121,7 @@
- CLI Availability by Firmware Build
+ Cli build matrix
@@ -351,7 +351,7 @@
- Companion notification builder
+ Notifications
@@ -379,7 +379,7 @@
- Temporary radio test builder
+ Preset test
@@ -407,7 +407,7 @@
- Filter policy playground
+ Filter tool
@@ -463,7 +463,7 @@
- Management report decoder
+ Management decoder
@@ -594,7 +594,7 @@
- Frequently Asked Questions
+ Faq
@@ -622,7 +622,7 @@
- Full firmware profiles
+ Full profiles
@@ -650,7 +650,7 @@
- Feature switches by role - 1.17.1.5 USA Cascade
+ Role feature switches
@@ -678,7 +678,7 @@
- Full Companion: turn features on and off
+ Full companion features
@@ -706,7 +706,7 @@
- Full Companion
+ Companion radio full
@@ -734,7 +734,7 @@
- Companion USB CLI and binary switcher
+ Full companion usb switcher
@@ -762,7 +762,7 @@
- Companion Offline Message Queue
+ Companion offline queue
@@ -790,7 +790,7 @@
- Halo and Keymind Branch Settings
+ Halo keymind settings
@@ -865,6 +865,34 @@
+
+
+
+
+
+
+
+
+ Upgrading 1.17.1.8 to 1.17.1.9
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -873,7 +901,7 @@
- Updating your node over the air (OTA) - user guide
+ Ota user guide
@@ -901,7 +929,7 @@
- Easy firmware updates over LoRa
+ Ota easy
@@ -929,7 +957,7 @@
- Scripted LoRa OTA from start to finish
+ Lora ota automation
@@ -957,7 +985,7 @@
- nRF52 bootloader updates over LoRa
+ Ota nrf52 bootloader update
@@ -985,7 +1013,7 @@
- nRF52 repeater LoRa OTA with external QSPI
+ Ota nrf52 qspi
@@ -1013,7 +1041,7 @@
- MeshTower V2 microSD LoRa OTA
+ Ota meshtower v2 sdcard
@@ -1041,7 +1069,7 @@
- ESP32 release partition lookup table
+ Esp32 partition catalog
@@ -1069,7 +1097,7 @@
- ESP32 legacy-partition migration over Wi-Fi or LoRa
+ Esp32 wifi partition migration
@@ -1097,7 +1125,7 @@
- Heltec V4 legacy-partition migration over Wi-Fi
+ Heltec v4 wifi partition migration
@@ -1125,7 +1153,7 @@
- LoRa CLI Host Service
+ Host cli service
@@ -1208,7 +1236,7 @@
- Two LoRa profiles on one radio
+ Radio profiles
@@ -1236,7 +1264,7 @@
- Carrier-wave RF checks
+ Carrier wave
@@ -1264,7 +1292,7 @@