Files
HaloKeymind/docs/_data/firmware_controls.json
T
mikecarper 4bbd613417 Publish 1.17.1.9 USA Cascade picker and Mesh America catalogs
Point both stable providers and runtime controls to the validated v1.17.1.9-halo-keymind-cascade-dev-88c85108 family. Record completed package validation while retaining hardware coverage limitations. Give all documentation source pages their exact hosted links and mount the telemetry form only in the browser. Verify current combined Full and nRF52 Full/Reduced catalog fixtures.
2026-10-07 13:56:17 -07:00

15585 lines
545 KiB
JSON

{
"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",
"Generic_E22_sx1262_repeater": "generic-e22-sx1262-repeater",
"Generic_E22_sx1268_repeater": "generic-e22-sx1268-repeater",
"Heltec_E213_repeater": "heltec-e213-repeater",
"Heltec_E213_room_server": "heltec-e213-room-server",
"Heltec_E290_repeater": "heltec-e290-repeater",
"Heltec_E290_room_server": "heltec-e290-room-server",
"Heltec_T190_repeater_": "heltec-t190-repeater",
"Heltec_T190_room_server_": "heltec-t190-room-server",
"Heltec_WSL3_repeater": "heltec-wsl3-repeater",
"Heltec_WSL3_room_server": "heltec-wsl3-room-server",
"Heltec_WSL3_sensor": "heltec-wsl3-sensor",
"Heltec_Wireless_Paper_repeater": "heltec-wireless-paper-repeater",
"Heltec_Wireless_Paper_room_server": "heltec-wireless-paper-room-server",
"Heltec_Wireless_Tracker_repeater": "heltec-wireless-tracker-repeater",
"Heltec_Wireless_Tracker_room_server": "heltec-wireless-tracker-room-server",
"Heltec_ct62_repeater": "heltec-ct62-repeater",
"Heltec_ct62_sensor": "heltec-ct62-sensor",
"Heltec_v2_repeater": "heltec-v2-repeater",
"Heltec_v2_room_server": "heltec-v2-room-server",
"Heltec_v3_repeater": "heltec-v3-repeater",
"Heltec_v3_room_server": "heltec-v3-room-server",
"Heltec_v3_sensor": "heltec-v3-sensor",
"LilyGo_T3S3_sx1262_repeater": "t3s3-sx1262-repeater",
"LilyGo_T3S3_sx1262_room_server": "t3s3-sx1262-room-server",
"LilyGo_T3S3_sx1276_repeater": "t3s3-sx1276-repeater",
"LilyGo_T3S3_sx1276_room_server": "t3s3-sx1276-room-server",
"LilyGo_TBeam_1W_repeater": "lilygo-tbeam-1w-repeater",
"LilyGo_TBeam_1W_room_server": "lilygo-tbeam-1w-room-server",
"LilyGo_TDeck_repeater": "lilygo-tdeck-repeater",
"LilyGo_TETH_Elite_sx1262_repeater": "lilygo-teth-elite-sx1262-repeater",
"LilyGo_TETH_Elite_sx1262_room_server": "lilygo-teth-elite-sx1262-room-server",
"MKE_s3_repeater": "mke-s3-repeater",
"MKE_s3_room_server": "mke-s3-room-server",
"MKE_s3_sensor": "mke-s3-sensor",
"RAK_3112_repeater": "rak-3112-repeater",
"RAK_3112_room_server": "rak-3112-room-server",
"RAK_3112_sensor": "rak-3112-sensor",
"Station_G2_logging_repeater": "station-g2-logging-repeater",
"Station_G2_repeater": "station-g2-repeater",
"Station_G2_room_server": "station-g2-room-server",
"Station_G3_ESP32_logging_repeater": "station-g3-esp32-logging-repeater",
"Station_G3_ESP32_repeater": "station-g3-esp32-repeater",
"Station_G3_ESP32_room_server": "station-g3-esp32-room-server",
"T_Beam_S3_Supreme_SX1262_repeater": "t-beam-s3-supreme-sx1262-repeater",
"T_Beam_S3_Supreme_SX1262_room_server": "t-beam-s3-supreme-sx1262-room-server",
"Tenstar_C3_sx1262_repeater": "tenstar-c3-sx1262-repeater",
"Tenstar_C3_sx1268_repeater": "tenstar-c3-sx1268-repeater",
"ThinkNode_M2_Repeater": "thinknode-m2-repeater",
"ThinkNode_M2_room_server": "thinknode-m2-room-server",
"ThinkNode_M5_Repeater": "thinknode-m5-repeater",
"ThinkNode_M5_room_server": "thinknode-m5-room-server",
"ThinkNode_M7_repeater": "thinknode-m7-repeater",
"ThinkNode_M7_room_server": "thinknode-m7-room-server",
"ThinkNode_M9_repeater_": "thinknode-m9-repeater",
"ThinkNode_M9_room_server_": "thinknode-m9-room-server",
"Xiao_C3_repeater": "xiao-c3-repeater",
"Xiao_C3_room_server": "xiao-c3-room-server",
"Xiao_S3_WIO_repeater": "xiao-s3-wio",
"Xiao_S3_WIO_room_server": "xiao-s3-wio-room-server",
"Xiao_S3_WIO_sensor": "xiao-s3-wio-sensor",
"Xiao_S3_repeater": "xiao-s3-repeater",
"Xiao_S3_room_server": "xiao-s3-room-server",
"Xiao_S3_sensor": "xiao-s3-sensor",
"heltec_rc32_repeater": "heltec-rc32-repeater",
"heltec_rc32_room_server": "heltec-rc32-room-server",
"heltec_rc32_sensor": "heltec-rc32-sensor",
"heltec_rc32_without_display_repeater": "heltec-rc32-no-display-repeater",
"heltec_rc32_without_display_room_server": "heltec-rc32-no-display-room-server",
"heltec_rc32_without_display_sensor": "heltec-rc32-no-display-sensor",
"heltec_tracker_v2_repeater": "heltec-tracker-v2-repeater",
"heltec_tracker_v2_room_server": "heltec-tracker-v2-room-server",
"heltec_tracker_v2_sensor": "heltec-tracker-v2-sensor",
"heltec_v4_expansionkit_repeater": "heltec-v4-expansionkit-repeater",
"heltec_v4_r8_repeater": "heltec-v4-r8-repeater",
"heltec_v4_r8_room_server": "heltec-v4-r8-room-server",
"heltec_v4_r8_sensor": "heltec-v4-r8-sensor",
"heltec_v4_r8_tft_repeater": "heltec-v4-r8-tft-repeater",
"heltec_v4_r8_tft_room_server": "heltec-v4-r8-tft-room-server",
"heltec_v4_r8_tft_sensor": "heltec-v4-r8-tft-sensor",
"heltec_v4_repeater": "heltec-v4",
"heltec_v4_room_server": "heltec-v4-room-server",
"heltec_v4_sensor": "heltec-v4-sensor",
"heltec_v4_tft_repeater": "heltec-v4-tft-repeater",
"heltec_v4_tft_room_server": "heltec-v4-tft-room-server",
"heltec_v4_tft_sensor": "heltec-v4-tft-sensor",
"meshnology_w12_repeater": "meshnology-w12-repeater",
"meshnology_w12_room_server": "meshnology-w12-room-server",
"meshnology_w12_sensor": "meshnology-w12-sensor",
"nibble_screen_connect_repeater_": "nibble-screen-repeater",
"nibble_screen_connect_room_server_": "nibble-screen-room-server",
"nibble_zero_connect_repeater_": "nibble-zero-repeater",
"nibble_zero_connect_room_server_": "nibble-zero-room-server"
},
"profiles": {
"Ebyte_EoRa-S3_Repeater-full-usb-wifi": {
"display": true,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "logging.output",
"loggingModes": [
"none",
"usb",
"wifi",
"both"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Ebyte_EoRa-S3_companion_radio_full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [],
"webconfig": true
},
"Ebyte_EoRa-S3_room_server-full-usb-wifi": {
"display": true,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "logging.output",
"loggingModes": [
"none",
"usb",
"wifi",
"both"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"GAT562_30S_Mesh_Kit_companion_radio_full": {
"dedicatedUsbLogging": true,
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"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": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"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-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 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_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 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."
],
"package_types": [
"in_place_delta"
],
"storage": "internal_flash"
}
},
"webconfig": 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": "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
},
"GAT562_Mesh_EVB_Pro_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 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_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 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."
],
"package_types": [
"in_place_delta"
],
"storage": "internal_flash"
}
},
"webconfig": false
},
"GAT562_Mesh_Tracker_Pro_companion_radio_full": {
"dedicatedUsbLogging": true,
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"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": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"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-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 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_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 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."
],
"package_types": [
"in_place_delta"
],
"storage": "internal_flash"
}
},
"webconfig": false
},
"GAT562_Mesh_Watch13_companion_radio_full": {
"dedicatedUsbLogging": true,
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"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": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"GEPRC_Linkflow_900_repeater-full-logging": {
"display": false,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Generic_E22_sx1262_repeater-full-logging": {
"display": false,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Neighbor table: 50 entries.",
"memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Generic_E22_sx1268_repeater-full-logging": {
"display": false,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Neighbor table: 50 entries.",
"memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Generic_ESPNOW_companion_radio_full": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"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",
"primaryEspnow": true,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [],
"webconfig": true
},
"Generic_ESPNOW_repeatr-full-logging": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": true,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Generic_ESPNOW_room_svr-full-logging": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": true,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Heltec_E213_companion_radio_full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": true
},
"Heltec_E213_repeater-full-usb-wifi": {
"display": true,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "logging.output",
"loggingModes": [
"none",
"usb",
"wifi",
"both"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Heltec_E213_room_server-full-usb-wifi": {
"display": true,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "logging.output",
"loggingModes": [
"none",
"usb",
"wifi",
"both"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Heltec_E290_companion_radio_full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": true
},
"Heltec_E290_repeater-full-usb-wifi": {
"display": true,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "logging.output",
"loggingModes": [
"none",
"usb",
"wifi",
"both"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Heltec_E290_room_server-full-usb-wifi": {
"display": true,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "logging.output",
"loggingModes": [
"none",
"usb",
"wifi",
"both"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Heltec_T190_companion_radio_full_": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": true
},
"Heltec_T190_repeater_-full-usb-wifi": {
"display": true,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "logging.output",
"loggingModes": [
"none",
"usb",
"wifi",
"both"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Heltec_T190_room_server_-full-usb-wifi": {
"display": true,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "logging.output",
"loggingModes": [
"none",
"usb",
"wifi",
"both"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Heltec_WSL3_companion_radio_full": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": true
},
"Heltec_WSL3_repeater-full-usb-wifi": {
"display": false,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "logging.output",
"loggingModes": [
"none",
"usb",
"wifi",
"both"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": true,
"rxgain": true,
"rxps": true,
"snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Heltec_WSL3_room_server-full-usb-wifi": {
"display": false,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "logging.output",
"loggingModes": [
"none",
"usb",
"wifi",
"both"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Heltec_WSL3_sensor-full-logging": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": false
},
"Heltec_Wireless_Paper_companion_radio_full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"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": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": true
},
"Heltec_Wireless_Paper_repeater-full-usb-wifi": {
"display": true,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "logging.output",
"loggingModes": [
"none",
"usb",
"wifi",
"both"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Heltec_Wireless_Paper_room_server-full-usb-wifi": {
"display": true,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "logging.output",
"loggingModes": [
"none",
"usb",
"wifi",
"both"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Heltec_Wireless_Tracker_companion_radio_full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"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": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": true
},
"Heltec_Wireless_Tracker_repeater-full-usb-wifi": {
"display": true,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "logging.output",
"loggingModes": [
"none",
"usb",
"wifi",
"both"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Heltec_Wireless_Tracker_room_server-full-usb-wifi": {
"display": true,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "logging.output",
"loggingModes": [
"none",
"usb",
"wifi",
"both"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Heltec_ct62_companion_radio_full": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"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",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [],
"webconfig": true
},
"Heltec_ct62_repeater-full-logging": {
"display": false,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Heltec_ct62_sensor-full-logging": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": false
},
"Heltec_mesh_solar_companion_radio_full": {
"dedicatedUsbLogging": true,
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"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": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"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-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_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."
],
"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."
],
"package_types": [
"in_place_delta"
],
"storage": "internal_flash"
}
},
"webconfig": false
},
"Heltec_t096_companion_radio_full_femon": {
"dedicatedUsbLogging": true,
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"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": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"Heltec_t096_repeater_lora_ota_no_external_sensors-full": {
"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": "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
},
"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": "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
},
"Heltec_t096_room_server_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_room_server_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."
],
"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."
],
"package_types": [
"in_place_delta"
],
"storage": "internal_flash"
}
},
"webconfig": false
},
"Heltec_t114_companion_radio_full": {
"dedicatedUsbLogging": true,
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"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": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"Heltec_t114_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
},
"Heltec_t114_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
},
"Heltec_t114_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
},
"Heltec_t114_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
},
"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."
],
"package_types": [
"in_place_delta"
],
"storage": "internal_flash"
}
},
"webconfig": false
},
"Heltec_t114_without_display_companion_radio_full": {
"dedicatedUsbLogging": true,
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"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": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"Heltec_t114_without_display_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": 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
},
"Heltec_t114_without_display_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": 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
},
"Heltec_t114_without_display_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_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."
],
"package_types": [
"in_place_delta"
],
"storage": "internal_flash"
}
},
"webconfig": false
},
"Heltec_t1_companion_radio_full": {
"dedicatedUsbLogging": true,
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"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": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"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-full": {
"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": "lora-receiver",
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"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
},
"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": "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.",
"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-full": {
"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": "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_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."
],
"package_types": [
"in_place_delta"
],
"storage": "internal_flash"
}
},
"webconfig": false
},
"Heltec_tower_v2_companion_radio_full": {
"dedicatedUsbLogging": true,
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"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": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"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-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_tower_v2_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."
],
"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."
],
"package_types": [
"full",
"in_place_delta"
],
"storage": "external_sd"
}
},
"webconfig": false
},
"Heltec_v2_companion_radio_full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"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": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": true
},
"Heltec_v2_repeater-full-logging": {
"display": true,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Neighbor table: 50 entries.",
"memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Heltec_v2_room_server-full-logging": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Heltec_v3_companion_radio_full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "logging.output",
"loggingModes": [
"none",
"usb",
"wifi",
"both"
],
"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": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": true
},
"Heltec_v3_repeater-full-usb-wifi": {
"display": true,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "logging.output",
"loggingModes": [
"none",
"usb",
"wifi",
"both"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": true,
"rxgain": true,
"rxps": true,
"snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Heltec_v3_room_server-full-usb-wifi": {
"display": true,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "logging.output",
"loggingModes": [
"none",
"usb",
"wifi",
"both"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Heltec_v3_sensor-full-logging": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": false
},
"KeepteenLT1_companion_radio_full": {
"dedicatedUsbLogging": true,
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"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": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"KeepteenLT1_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": 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 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_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 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."
],
"package_types": [
"in_place_delta"
],
"storage": "internal_flash"
}
},
"webconfig": false
},
"LilyGo_T-Echo-Lite_companion_radio_full": {
"dedicatedUsbLogging": true,
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"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": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"LilyGo_T-Echo-Lite_non_shell_companion_radio_full": {
"dedicatedUsbLogging": true,
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"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": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"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-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_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.",
"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."
],
"package_types": [
"in_place_delta"
],
"storage": "internal_flash"
}
},
"webconfig": false
},
"LilyGo_T-Echo_Card_companion_radio_full": {
"dedicatedUsbLogging": true,
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"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": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"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-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_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.",
"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."
],
"package_types": [
"in_place_delta"
],
"storage": "internal_flash"
}
},
"webconfig": false
},
"LilyGo_T-Echo_companion_radio_full": {
"dedicatedUsbLogging": true,
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"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": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"LilyGo_T-Echo_repeater-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."
],
"package_types": [
"full",
"in_place_delta"
],
"storage": "external_qspi"
}
},
"webconfig": false
},
"LilyGo_T-Echo_repeater-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_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": 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
},
"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."
],
"package_types": [
"in_place_delta"
],
"storage": "internal_flash"
}
},
"webconfig": false
},
"LilyGo_T3S3_sx1262_companion_radio_full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [],
"webconfig": true
},
"LilyGo_T3S3_sx1262_repeater-full-usb-wifi": {
"display": true,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "logging.output",
"loggingModes": [
"none",
"usb",
"wifi",
"both"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"LilyGo_T3S3_sx1262_room_server-full-usb-wifi": {
"display": true,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "logging.output",
"loggingModes": [
"none",
"usb",
"wifi",
"both"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"LilyGo_T3S3_sx1276_companion_radio_full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [],
"webconfig": true
},
"LilyGo_T3S3_sx1276_repeater-full-usb-wifi": {
"display": true,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "logging.output",
"loggingModes": [
"none",
"usb",
"wifi",
"both"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"LilyGo_T3S3_sx1276_room_server-full-usb-wifi": {
"display": true,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "logging.output",
"loggingModes": [
"none",
"usb",
"wifi",
"both"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"LilyGo_TBeam_1W_companion_radio_full": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [],
"webconfig": true
},
"LilyGo_TBeam_1W_repeater-full-usb-wifi": {
"display": true,
"espnowBridge": true,
"femRx": true,
"femTx": false,
"gps": true,
"loggingControl": "logging.output",
"loggingModes": [
"none",
"usb",
"wifi",
"both"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"LilyGo_TBeam_1W_room_server-full-usb-wifi": {
"display": true,
"espnowBridge": true,
"femRx": true,
"femTx": false,
"gps": true,
"loggingControl": "logging.output",
"loggingModes": [
"none",
"usb",
"wifi",
"both"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"LilyGo_TDeck_companion_radio_full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": true
},
"LilyGo_TDeck_repeater-full-logging": {
"display": true,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"LilyGo_TETH_Elite_sx1262_companion_radio_full": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": true
},
"LilyGo_TETH_Elite_sx1262_repeater-full-usb-wifi": {
"display": false,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "logging.output",
"loggingModes": [
"none",
"usb",
"wifi",
"both"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"LilyGo_TETH_Elite_sx1262_room_server-full-usb-wifi": {
"display": false,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "logging.output",
"loggingModes": [
"none",
"usb",
"wifi",
"both"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"LilyGo_TLora_V2_1_1_6_companion_radio_full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"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": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [],
"webconfig": true
},
"LilyGo_TLora_V2_1_1_6_repeater-full-logging": {
"display": true,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": true,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"LilyGo_TLora_V2_1_1_6_repeater_observer_mqtt_-full-usb-wifi": {
"display": true,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "logging.output",
"loggingModes": [
"none",
"usb",
"wifi",
"both"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Neighbor table: 50 entries.",
"memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"lora"
],
"webconfig": true
},
"LilyGo_TLora_V2_1_1_6_room_server_observer_mqtt_-full-usb-wifi": {
"display": true,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "logging.output",
"loggingModes": [
"none",
"usb",
"wifi",
"both"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"lora"
],
"webconfig": true
},
"LilyGo_T_Impulse_Plus_companion_radio_full": {
"dedicatedUsbLogging": true,
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"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": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"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-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
},
"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."
],
"package_types": [
"in_place_delta"
],
"storage": "internal_flash"
}
},
"webconfig": false
},
"LilyGo_Tlora_C6_companion_radio_full_": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [],
"webconfig": true
},
"LilyGo_Tlora_C6_repeater_-full-logging": {
"display": false,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"LilyGo_Tlora_C6_room_server_-full-logging": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"M5Stack_Unit_C6L_companion_radio_full": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [],
"webconfig": true
},
"M5Stack_Unit_C6L_repeater-full-logging": {
"display": false,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"lora"
],
"webconfig": true
},
"M5Stack_Unit_C6L_room_server-full-logging": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"lora"
],
"webconfig": true
},
"MKE_s3_companion_radio_full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": true
},
"MKE_s3_repeater-full-logging": {
"display": true,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": true,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"MKE_s3_room_server-full-logging": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"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_sensor-full-logging": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": false
},
"MeshTracker_X1_companion_radio_full": {
"dedicatedUsbLogging": true,
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"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": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"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-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_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": 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
},
"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."
],
"package_types": [
"in_place_delta"
],
"storage": "internal_flash"
}
},
"webconfig": false
},
"Mesh_pocket_companion_radio_full": {
"dedicatedUsbLogging": true,
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"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": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"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-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.",
"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_repeater_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.",
"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."
],
"package_types": [
"in_place_delta"
],
"storage": "internal_flash"
}
},
"webconfig": false
},
"Meshadventurer_sx1262_companion_radio_full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"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": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [],
"webconfig": true
},
"Meshadventurer_sx1262_repeater-full-logging": {
"display": true,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Neighbor table: 50 entries.",
"memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Meshadventurer_sx1262_room_server-full-logging": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Meshadventurer_sx1268_companion_radio_full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"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": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [],
"webconfig": true
},
"Meshadventurer_sx1268_repeater-full-logging": {
"display": true,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Neighbor table: 50 entries.",
"memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Meshadventurer_sx1268_room_server-full-logging": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Meshimi_companion_radio_full_": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [],
"webconfig": true
},
"Meshimi_repeater_-full-logging": {
"display": false,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"lora"
],
"webconfig": true
},
"Meshtiny_companion_radio_full": {
"dedicatedUsbLogging": true,
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"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": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"Minewsemi_me25ls01_companion_radio_full": {
"dedicatedUsbLogging": true,
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"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": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"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-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.",
"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_repeater_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.",
"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."
],
"package_types": [
"in_place_delta"
],
"storage": "internal_flash"
}
},
"webconfig": false
},
"Nano_G2_Ultra_companion_radio_full": {
"dedicatedUsbLogging": true,
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"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": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"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-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_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.",
"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."
],
"package_types": [
"in_place_delta"
],
"storage": "internal_flash"
}
},
"webconfig": false
},
"PicoW_companion_radio": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"otaRole": "none",
"platform": "RP2040_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [],
"webconfig": false
},
"PicoW_companion_radio_ble": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"otaRole": "none",
"platform": "RP2040_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [],
"webconfig": false
},
"PicoW_companion_radio_usb": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"otaRole": "none",
"platform": "RP2040_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [],
"webconfig": false
},
"PicoW_companion_radio_wifi": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"otaRole": "none",
"platform": "RP2040_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [],
"webconfig": false
},
"ProMicro_companion_radio_full": {
"dedicatedUsbLogging": true,
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"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": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"ProMicro_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
},
"ProMicro_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
},
"ProMicro_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
},
"ProMicro_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
},
"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."
],
"package_types": [
"in_place_delta"
],
"storage": "internal_flash"
}
},
"webconfig": false
},
"R1Neo_companion_radio_full": {
"dedicatedUsbLogging": true,
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"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": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"R1Neo_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 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_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 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."
],
"package_types": [
"in_place_delta"
],
"storage": "internal_flash"
}
},
"webconfig": false
},
"R1Neo_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."
],
"package_types": [
"in_place_delta"
],
"storage": "internal_flash"
}
},
"webconfig": false
},
"R1Neo_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
},
"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."
],
"package_types": [
"in_place_delta"
],
"storage": "internal_flash"
}
},
"webconfig": false
},
"RAK_11310_companion_radio_usb": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"otaRole": "none",
"platform": "RP2040_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [],
"webconfig": false
},
"RAK_3112_companion_radio_full": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": true
},
"RAK_3112_repeater-full-usb-wifi": {
"display": false,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "logging.output",
"loggingModes": [
"none",
"usb",
"wifi",
"both"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": true,
"rxgain": true,
"rxps": true,
"snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"RAK_3112_room_server-full-usb-wifi": {
"display": false,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "logging.output",
"loggingModes": [
"none",
"usb",
"wifi",
"both"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"RAK_3112_sensor-full-logging": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": false
},
"RAK_3401_companion_radio_full": {
"dedicatedUsbLogging": true,
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"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": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"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-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 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_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 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."
],
"package_types": [
"full",
"in_place_delta"
],
"storage": "external_qspi"
}
},
"webconfig": false
},
"RAK_3401_repeater_rak13302_w25q16_lora_ota-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
},
"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.",
"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_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": "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 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-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_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_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."
],
"package_types": [
"in_place_delta"
],
"storage": "internal_flash"
}
},
"webconfig": false
},
"RAK_3x72_companion_radio_usb": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"otaRole": "none",
"platform": "STM32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [],
"webconfig": false
},
"RAK_4631_companion_radio_full": {
"dedicatedUsbLogging": true,
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"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": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"RAK_4631_repeater_bridge_rs232_serial1_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": 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_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,
"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_bridge_rs232_serial2_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_ethernet-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_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."
],
"package_types": [
"full",
"in_place_delta"
],
"storage": "external_qspi"
}
},
"webconfig": false
},
"RAK_4631_repeater_rak15001_slot_c_lora_ota-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
},
"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.",
"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_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,
"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_qspi"
}
},
"webconfig": false
},
"RAK_4631_repeater_w25q16_lora_ota-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
},
"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."
],
"package_types": [
"in_place_delta"
],
"storage": "internal_flash"
}
},
"webconfig": false
},
"RAK_4631_room_server_ethernet_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_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
},
"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."
],
"package_types": [
"in_place_delta"
],
"storage": "internal_flash"
}
},
"webconfig": false
},
"RAK_WisMesh_Tag_companion_radio_full": {
"dedicatedUsbLogging": true,
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"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": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"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-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 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_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 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."
],
"package_types": [
"in_place_delta"
],
"storage": "internal_flash"
}
},
"webconfig": false
},
"RAK_WisMesh_Tag_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."
],
"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."
],
"package_types": [
"in_place_delta"
],
"storage": "internal_flash"
}
},
"webconfig": false
},
"SenseCapIndicator-ESPNow_companion_radio_full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
"primaryEspnow": true,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": true
},
"SenseCapIndicator-LoRa-N16R2_companion_radio_full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"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": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": true
},
"SenseCapIndicator-LoRa_companion_radio_full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"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": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": true
},
"SenseCap_Solar_companion_radio_full": {
"dedicatedUsbLogging": true,
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"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": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"SenseCap_Solar_repeater-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_qspi"
}
},
"webconfig": false
},
"SenseCap_Solar_repeater-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_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_qspi"
}
},
"webconfig": false
},
"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,
"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
},
"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."
],
"package_types": [
"in_place_delta"
],
"storage": "internal_flash"
}
},
"webconfig": false
},
"Station_G2_companion_radio_full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": true
},
"Station_G2_repeater_observer_mqtt-full-usb-wifi": {
"display": true,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "logging.output",
"loggingModes": [
"none",
"usb",
"wifi",
"both"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": true,
"snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Station_G2_room_server_observer_mqtt-full-usb-wifi": {
"display": true,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "logging.output",
"loggingModes": [
"none",
"usb",
"wifi",
"both"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": true,
"snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Station_G3_ESP32_companion_radio_full": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": true,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": true
},
"Station_G3_ESP32_r2_repeater_observer_mqtt-full-usb-wifi": {
"display": true,
"espnowBridge": true,
"femRx": true,
"femTx": true,
"gps": true,
"loggingControl": "logging.output",
"loggingModes": [
"none",
"usb",
"wifi",
"both"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": true,
"snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Station_G3_ESP32_r2_room_server_observer_mqtt-full-usb-wifi": {
"display": true,
"espnowBridge": true,
"femRx": true,
"femTx": true,
"gps": true,
"loggingControl": "logging.output",
"loggingModes": [
"none",
"usb",
"wifi",
"both"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": true,
"snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"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,
"femRx": true,
"femTx": true,
"gps": true,
"loggingControl": "logging.output",
"loggingModes": [
"none",
"usb",
"wifi",
"both"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": true,
"snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Station_G3_ESP32_room_server-full-usb-wifi": {
"display": true,
"espnowBridge": true,
"femRx": true,
"femTx": true,
"gps": true,
"loggingControl": "logging.output",
"loggingModes": [
"none",
"usb",
"wifi",
"both"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": true,
"snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"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",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": false
},
"T_Beam_S3_Supreme_SX1262_companion_radio_full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": true
},
"T_Beam_S3_Supreme_SX1262_repeater-full-usb-wifi": {
"display": true,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "logging.output",
"loggingModes": [
"none",
"usb",
"wifi",
"both"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"T_Beam_S3_Supreme_SX1262_room_server-full-usb-wifi": {
"display": true,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "logging.output",
"loggingModes": [
"none",
"usb",
"wifi",
"both"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Tbeam_SX1262_companion_radio_full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [],
"webconfig": true
},
"Tbeam_SX1262_repeater_observer_mqtt-full-usb-wifi": {
"display": true,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "logging.output",
"loggingModes": [
"none",
"usb",
"wifi",
"both"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Flood rules: 31 entries; the complete rule engine is retained. Neighbor table: 50 entries.",
"memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Tbeam_SX1262_room_server_observer_mqtt-full-usb-wifi": {
"display": true,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "logging.output",
"loggingModes": [
"none",
"usb",
"wifi",
"both"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Tbeam_SX1276_companion_radio_full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [],
"webconfig": true
},
"Tbeam_SX1276_repeater_observer_mqtt-full-usb-wifi": {
"display": true,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "logging.output",
"loggingModes": [
"none",
"usb",
"wifi",
"both"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Flood rules: 31 entries; the complete rule engine is retained. Neighbor table: 50 entries.",
"memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Tbeam_SX1276_room_server_observer_mqtt-full-usb-wifi": {
"display": true,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "logging.output",
"loggingModes": [
"none",
"usb",
"wifi",
"both"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Tenstar_C3_sx1262_repeater-full-logging": {
"display": false,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Tenstar_C3_sx1268_repeater-full-logging": {
"display": false,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
"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": true
},
"ThinkNode_M1_companion_radio_full": {
"dedicatedUsbLogging": true,
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"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": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"ThinkNode_M1_repeater-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_qspi"
}
},
"webconfig": false
},
"ThinkNode_M1_repeater-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_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_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."
],
"package_types": [
"in_place_delta"
],
"storage": "internal_flash"
}
},
"webconfig": false
},
"ThinkNode_M1_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."
],
"package_types": [
"in_place_delta"
],
"storage": "internal_flash"
}
},
"webconfig": false
},
"ThinkNode_M2_Repeater-full-logging": {
"display": true,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"ThinkNode_M2_companion_radio_full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [],
"webconfig": true
},
"ThinkNode_M2_room_server-full-logging": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"ThinkNode_M3_companion_radio_full": {
"dedicatedUsbLogging": true,
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"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": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"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-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.",
"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_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": 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.",
"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."
],
"package_types": [
"in_place_delta"
],
"storage": "internal_flash"
}
},
"webconfig": false
},
"ThinkNode_M4_companion_radio_full": {
"dedicatedUsbLogging": true,
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"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": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"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-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_M4_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": 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_M4_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_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": true,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"ThinkNode_M5_companion_radio_full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [],
"webconfig": true
},
"ThinkNode_M5_room_server-full-logging": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"ThinkNode_M6_companion_radio_full": {
"dedicatedUsbLogging": true,
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"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": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"ThinkNode_M6_repeater-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_qspi"
}
},
"webconfig": false
},
"ThinkNode_M6_repeater-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_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_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."
],
"package_types": [
"in_place_delta"
],
"storage": "internal_flash"
}
},
"webconfig": false
},
"ThinkNode_M7_companion_radio_full": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": true
},
"ThinkNode_M7_repeater-full-usb-wifi": {
"display": false,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "logging.output",
"loggingModes": [
"none",
"usb",
"wifi",
"both"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"ThinkNode_M7_room_server-full-usb-wifi": {
"display": false,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "logging.output",
"loggingModes": [
"none",
"usb",
"wifi",
"both"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"ThinkNode_M8_companion_radio_full": {
"dedicatedUsbLogging": true,
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"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": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"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-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_repeater_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."
],
"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."
],
"package_types": [
"in_place_delta"
],
"storage": "internal_flash"
}
},
"webconfig": false
},
"ThinkNode_M9_companion_radio_full_": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": true
},
"ThinkNode_M9_repeater_-full-logging": {
"display": true,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"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": false,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"ThinkNode_M9_room_server_-full-logging": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"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": false,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Tiny_Relay_companion_radio_usb": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"otaRole": "none",
"platform": "STM32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [],
"webconfig": false
},
"WHY2025_badge_companion_radio_full_": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": true
},
"WHY2025_badge_repeater_-full-logging": {
"display": false,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"WioTrackerL1-1W_companion_radio_full": {
"dedicatedUsbLogging": true,
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": true,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"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": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"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-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_repeater_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."
],
"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."
],
"package_types": [
"in_place_delta"
],
"storage": "internal_flash"
}
},
"webconfig": false
},
"WioTrackerL1Eink_companion_radio_full": {
"dedicatedUsbLogging": true,
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"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": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"WioTrackerL1_companion_radio_full": {
"dedicatedUsbLogging": true,
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"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": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"WioTrackerL1_repeater-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."
],
"package_types": [
"full",
"in_place_delta"
],
"storage": "external_qspi"
}
},
"webconfig": false
},
"WioTrackerL1_repeater-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_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": 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
},
"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."
],
"package_types": [
"in_place_delta"
],
"storage": "internal_flash"
}
},
"webconfig": false
},
"Xiao_C3_companion_radio_full": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"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",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [],
"webconfig": true
},
"Xiao_C3_repeater-full-logging": {
"display": false,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Xiao_C3_room_server-full-logging": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Xiao_C6_companion_radio_full_": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [],
"webconfig": true
},
"Xiao_C6_repeater_-full-logging": {
"display": false,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Xiao_S3_WIO_companion_radio_full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": true
},
"Xiao_S3_WIO_repeater-full-usb-wifi": {
"display": false,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "logging.output",
"loggingModes": [
"none",
"usb",
"wifi",
"both"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Xiao_S3_WIO_room_server-full-usb-wifi": {
"display": false,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "logging.output",
"loggingModes": [
"none",
"usb",
"wifi",
"both"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Xiao_S3_WIO_sensor-full-logging": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": false
},
"Xiao_S3_companion_radio_full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": true
},
"Xiao_S3_repeater-full-usb-wifi": {
"display": false,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "logging.output",
"loggingModes": [
"none",
"usb",
"wifi",
"both"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Xiao_S3_room_server-full-usb-wifi": {
"display": false,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "logging.output",
"loggingModes": [
"none",
"usb",
"wifi",
"both"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Xiao_S3_sensor-full-logging": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": false
},
"Xiao_nrf52_companion_radio_full": {
"dedicatedUsbLogging": true,
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"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": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"Xiao_nrf52_repeater-full": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "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 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_repeater-reduced": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"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
},
"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,
"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
},
"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."
],
"package_types": [
"in_place_delta"
],
"storage": "internal_flash"
}
},
"webconfig": false
},
"Xiao_rp2040_companion_radio_usb": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"otaRole": "none",
"platform": "RP2040_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [],
"webconfig": false
},
"heltec_rc32_companion_radio_full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": true
},
"heltec_rc32_repeater-full-usb-wifi": {
"display": true,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "logging.output",
"loggingModes": [
"none",
"usb",
"wifi",
"both"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"heltec_rc32_room_server-full-usb-wifi": {
"display": true,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "logging.output",
"loggingModes": [
"none",
"usb",
"wifi",
"both"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"heltec_rc32_sensor-full-logging": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": false
},
"heltec_rc32_without_display_companion_radio_full": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": true
},
"heltec_rc32_without_display_repeater-full-usb-wifi": {
"display": false,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "logging.output",
"loggingModes": [
"none",
"usb",
"wifi",
"both"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"heltec_rc32_without_display_room_server-full-usb-wifi": {
"display": false,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "logging.output",
"loggingModes": [
"none",
"usb",
"wifi",
"both"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"heltec_rc32_without_display_sensor-full-logging": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": false
},
"heltec_tracker_v1_1_repeater_observer_mqtt-full-usb-wifi": {
"display": true,
"espnowBridge": true,
"femRx": true,
"femTx": false,
"gps": true,
"loggingControl": "logging.output",
"loggingModes": [
"none",
"usb",
"wifi",
"both"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"memoryNote": "Neighbor table: 50 entries.",
"memorySource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"heltec_tracker_v1_1_room_server_observer_mqtt-full-usb-wifi": {
"display": true,
"espnowBridge": true,
"femRx": true,
"femTx": false,
"gps": true,
"loggingControl": "logging.output",
"loggingModes": [
"none",
"usb",
"wifi",
"both"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"heltec_tracker_v2_companion_radio_full_femon": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"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",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": true
},
"heltec_tracker_v2_repeater-full-usb-wifi": {
"display": true,
"espnowBridge": true,
"femRx": true,
"femTx": false,
"gps": true,
"loggingControl": "logging.output",
"loggingModes": [
"none",
"usb",
"wifi",
"both"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"heltec_tracker_v2_room_server-full-usb-wifi": {
"display": true,
"espnowBridge": true,
"femRx": true,
"femTx": false,
"gps": true,
"loggingControl": "logging.output",
"loggingModes": [
"none",
"usb",
"wifi",
"both"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"heltec_tracker_v2_sensor-full-logging": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": false
},
"heltec_v4_2_v4_3_companion_radio_full_femon": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"loggingControl": "logging.output",
"loggingModes": [
"none",
"usb",
"wifi",
"both"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": true
},
"heltec_v4_expansionkit_repeater-full-usb-wifi": {
"display": true,
"espnowBridge": true,
"femRx": true,
"femTx": false,
"gps": true,
"loggingControl": "logging.output",
"loggingModes": [
"none",
"usb",
"wifi",
"both"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"heltec_v4_expansionkit_room_server_observer_mqtt-full-usb-wifi": {
"display": true,
"espnowBridge": true,
"femRx": true,
"femTx": false,
"gps": true,
"loggingControl": "logging.output",
"loggingModes": [
"none",
"usb",
"wifi",
"both"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"heltec_v4_expansionkit_tft_companion_radio_full_femon": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": true
},
"heltec_v4_r8_companion_radio_full": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": true
},
"heltec_v4_r8_repeater-full-usb-wifi": {
"display": true,
"espnowBridge": true,
"femRx": true,
"femTx": false,
"gps": true,
"loggingControl": "logging.output",
"loggingModes": [
"none",
"usb",
"wifi",
"both"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"heltec_v4_r8_room_server-full-usb-wifi": {
"display": true,
"espnowBridge": true,
"femRx": true,
"femTx": false,
"gps": true,
"loggingControl": "logging.output",
"loggingModes": [
"none",
"usb",
"wifi",
"both"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"heltec_v4_r8_sensor-full-logging": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": false
},
"heltec_v4_r8_tft_companion_radio_full": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": true
},
"heltec_v4_r8_tft_portrait_repeater_observer_mqtt-full-usb-wifi": {
"display": true,
"espnowBridge": true,
"femRx": true,
"femTx": false,
"gps": true,
"loggingControl": "logging.output",
"loggingModes": [
"none",
"usb",
"wifi",
"both"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"heltec_v4_r8_tft_portrait_room_server_observer_mqtt-full-usb-wifi": {
"display": true,
"espnowBridge": true,
"femRx": true,
"femTx": false,
"gps": true,
"loggingControl": "logging.output",
"loggingModes": [
"none",
"usb",
"wifi",
"both"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"heltec_v4_r8_tft_repeater-full-usb-wifi": {
"display": true,
"espnowBridge": true,
"femRx": true,
"femTx": false,
"gps": true,
"loggingControl": "logging.output",
"loggingModes": [
"none",
"usb",
"wifi",
"both"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"heltec_v4_r8_tft_room_server-full-usb-wifi": {
"display": true,
"espnowBridge": true,
"femRx": true,
"femTx": false,
"gps": true,
"loggingControl": "logging.output",
"loggingModes": [
"none",
"usb",
"wifi",
"both"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"heltec_v4_r8_tft_sensor-full-logging": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": false
},
"heltec_v4_repeater-full-usb-wifi": {
"display": true,
"espnowBridge": true,
"femRx": true,
"femTx": false,
"gps": true,
"loggingControl": "logging.output",
"loggingModes": [
"none",
"usb",
"wifi",
"both"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"heltec_v4_room_server-full-usb-wifi": {
"display": true,
"espnowBridge": true,
"femRx": true,
"femTx": false,
"gps": true,
"loggingControl": "logging.output",
"loggingModes": [
"none",
"usb",
"wifi",
"both"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"heltec_v4_sensor-full-logging": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": false
},
"heltec_v4_tft_companion_radio_full_femon": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": true
},
"heltec_v4_tft_repeater-full-logging": {
"display": true,
"espnowBridge": true,
"femRx": true,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"heltec_v4_tft_room_server-full-logging": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"heltec_v4_tft_sensor-full-logging": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": false
},
"ikoka_handheld_nrf_e22_30dbm_096_companion_radio_full": {
"dedicatedUsbLogging": true,
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"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": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"ikoka_handheld_nrf_e22_30dbm_repeater-full": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "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 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_repeater-reduced": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"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
},
"ikoka_handheld_nrf_e22_30dbm_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
},
"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."
],
"package_types": [
"in_place_delta"
],
"storage": "internal_flash"
}
},
"webconfig": false
},
"ikoka_nano_nrf_22dbm_companion_radio_full": {
"dedicatedUsbLogging": true,
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"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": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"ikoka_nano_nrf_22dbm_repeater-full": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "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 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_repeater-reduced": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"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
},
"ikoka_nano_nrf_22dbm_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
},
"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."
],
"package_types": [
"in_place_delta"
],
"storage": "internal_flash"
}
},
"webconfig": false
},
"ikoka_nano_nrf_30dbm_companion_radio_full": {
"dedicatedUsbLogging": true,
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"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": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"ikoka_nano_nrf_30dbm_repeater-full": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "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 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_repeater-reduced": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"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
},
"ikoka_nano_nrf_30dbm_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
},
"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."
],
"package_types": [
"in_place_delta"
],
"storage": "internal_flash"
}
},
"webconfig": false
},
"ikoka_nano_nrf_33dbm_companion_radio_full": {
"dedicatedUsbLogging": true,
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"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": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"ikoka_nano_nrf_33dbm_repeater-full": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "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 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_repeater-reduced": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"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
},
"ikoka_nano_nrf_33dbm_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
},
"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."
],
"package_types": [
"in_place_delta"
],
"storage": "internal_flash"
}
},
"webconfig": false
},
"ikoka_stick_nrf_22dbm_companion_radio_full": {
"dedicatedUsbLogging": true,
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"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": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"ikoka_stick_nrf_22dbm_repeater-full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "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 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_repeater-reduced": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"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
},
"ikoka_stick_nrf_22dbm_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
},
"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."
],
"package_types": [
"in_place_delta"
],
"storage": "internal_flash"
}
},
"webconfig": false
},
"ikoka_stick_nrf_30dbm_companion_radio_full": {
"dedicatedUsbLogging": true,
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"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": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"ikoka_stick_nrf_30dbm_repeater-full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "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 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_repeater-reduced": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"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
},
"ikoka_stick_nrf_30dbm_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
},
"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."
],
"package_types": [
"in_place_delta"
],
"storage": "internal_flash"
}
},
"webconfig": false
},
"ikoka_stick_nrf_33dbm_companion_radio_full": {
"dedicatedUsbLogging": true,
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"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": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"ikoka_stick_nrf_33dbm_repeater-full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "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 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_repeater-reduced": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"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
},
"ikoka_stick_nrf_33dbm_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
},
"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."
],
"package_types": [
"in_place_delta"
],
"storage": "internal_flash"
}
},
"webconfig": false
},
"meshnology_w12_companion_radio_full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": true
},
"meshnology_w12_repeater-full-usb-wifi": {
"display": true,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "logging.output",
"loggingModes": [
"none",
"usb",
"wifi",
"both"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"meshnology_w12_room_server-full-usb-wifi": {
"display": true,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "logging.output",
"loggingModes": [
"none",
"usb",
"wifi",
"both"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": true,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"meshnology_w12_sensor-full-logging": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"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": false,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": false
},
"muzi_base_duo_companion_radio_full": {
"dedicatedUsbLogging": true,
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"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": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"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-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_repeater_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."
],
"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."
],
"package_types": [
"in_place_delta"
],
"storage": "internal_flash"
}
},
"webconfig": false
},
"muzi_base_duo_superIO_companion_radio_ble": {
"display": true,
"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
},
"muzi_base_uno_companion_radio_full": {
"dedicatedUsbLogging": true,
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"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": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"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-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_repeater_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."
],
"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."
],
"package_types": [
"in_place_delta"
],
"storage": "internal_flash"
}
},
"webconfig": false
},
"muzi_base_uno_superIO_companion_radio_ble": {
"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
},
"nibble_screen_connect_companion_radio_full_": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [],
"webconfig": true
},
"nibble_screen_connect_repeater_-full-logging": {
"display": true,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"nibble_screen_connect_room_server_-full-logging": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"nibble_zero_connect_companion_radio_full_": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [],
"webconfig": true
},
"nibble_zero_connect_repeater_-full-logging": {
"display": true,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"nibble_zero_connect_room_server_-full-logging": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-receiver",
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"solarxiao_30S_companion_radio_full": {
"dedicatedUsbLogging": true,
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"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": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"solarxiao_30S_repeater-full": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"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 matching external-storage hardware, wiring, and storage-aware OTAFIX bootloader."
],
"package_types": [
"full",
"in_place_delta"
],
"storage": "external_qspi"
}
},
"webconfig": false
},
"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": "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 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-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
},
"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."
],
"package_types": [
"full",
"in_place_delta"
],
"storage": "external_qspi"
}
},
"webconfig": false
},
"solarxiao_33S_companion_radio_full": {
"dedicatedUsbLogging": true,
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"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": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"solarxiao_33S_repeater-full": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"loggingSource": "88c85108005a30a730fa7b78b2899b210754f3be",
"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 matching external-storage hardware, wiring, and storage-aware OTAFIX bootloader."
],
"package_types": [
"full",
"in_place_delta"
],
"storage": "external_qspi"
}
},
"webconfig": false
},
"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": "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 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-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
},
"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."
],
"package_types": [
"full",
"in_place_delta"
],
"storage": "external_qspi"
}
},
"webconfig": false
},
"t1000e_companion_radio_full": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"loggingControl": "usb.logging",
"loggingModes": [
"none",
"usb"
],
"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": "88c85108005a30a730fa7b78b2899b210754f3be",
"mqtt": false,
"otaRole": "lora-source",
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"t1000e_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": 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.",
"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_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": 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.",
"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."
],
"package_types": [
"in_place_delta"
],
"storage": "internal_flash"
}
},
"webconfig": false
},
"t1000e_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
},
"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."
],
"package_types": [
"in_place_delta"
],
"storage": "internal_flash"
}
},
"webconfig": false
},
"waveshare_rp2040_lora_companion_radio_usb": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"otaRole": "none",
"platform": "RP2040_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [],
"webconfig": false
},
"wio-e5-mini_companion_radio_usb": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"otaRole": "none",
"platform": "STM32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [],
"webconfig": false
},
"wio-e5_companion_radio_usb": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"otaRole": "none",
"platform": "STM32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [],
"webconfig": false
},
"wio_wm1110_companion_radio_ble": {
"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-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_repeater_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."
],
"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."
],
"package_types": [
"in_place_delta"
],
"storage": "internal_flash"
}
},
"webconfig": false
}
},
"source": "88c85108005a30a730fa7b78b2899b210754f3be"
}