Files
HaloKeymind/_data/firmware_controls.json
T
2026-09-08 15:18:25 +00:00

11906 lines
316 KiB
JSON

{
"familyTag": "v1.17.1.5-halo-keymind-cascade-dev-26303793",
"memoryReplacementSource": "aa20e9278ebdd574c4769fdb58d46fd9d4face68",
"profiles": {
"Ebyte_EoRa-S3_Repeater": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"Ebyte_EoRa-S3_Repeater-full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Ebyte_EoRa-S3_Repeater-full-logging": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Ebyte_EoRa-S3_Repeater_lora_ota_no_external_sensors": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": false
},
"Ebyte_EoRa-S3_companion_radio_full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [],
"webconfig": true
},
"Ebyte_EoRa-S3_room_server": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"Ebyte_EoRa-S3_room_server-full-logging": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"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": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"memoryNote": "Corrected nRF52 Full: 256 offline message slots normally; 128 while mOTA borrows shared storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source returns all 256 slots. Contacts, channels and Full transports are retained.",
"memorySource": "aa20e9278ebdd574c4769fdb58d46fd9d4face68",
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"GAT562_30S_Mesh_Kit_repeater": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"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": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth",
"lora"
],
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
"bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires OTAFIX 2.4.6 retained-RAM handoff support; a transfer cannot resume after the receiver restarts."
],
"package_types": [
"in_place_delta"
],
"storage": "internal_flash_and_retained_ram"
}
},
"webconfig": false
},
"GAT562_30S_Mesh_Kit_room_server": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"GAT562_Mesh_EVB_Pro_repeater": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"GAT562_Mesh_EVB_Pro_repeater_lora_ota_no_external_sensors": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth",
"lora"
],
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
"bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires OTAFIX 2.4.6 retained-RAM handoff support; a transfer cannot resume after the receiver restarts."
],
"package_types": [
"in_place_delta"
],
"storage": "internal_flash_and_retained_ram"
}
},
"webconfig": false
},
"GAT562_Mesh_EVB_Pro_room_server": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"GAT562_Mesh_Tracker_Pro_companion_radio_full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"memoryNote": "Corrected nRF52 Full: 256 offline message slots normally; 128 while mOTA borrows shared storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source returns all 256 slots. Contacts, channels and Full transports are retained.",
"memorySource": "aa20e9278ebdd574c4769fdb58d46fd9d4face68",
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"GAT562_Mesh_Tracker_Pro_repeater": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"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": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth",
"lora"
],
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
"bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires OTAFIX 2.4.6 retained-RAM handoff support; a transfer cannot resume after the receiver restarts."
],
"package_types": [
"in_place_delta"
],
"storage": "internal_flash_and_retained_ram"
}
},
"webconfig": false
},
"GAT562_Mesh_Tracker_Pro_room_server": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"GAT562_Mesh_Watch13_companion_radio_full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"memoryNote": "Corrected nRF52 Full: 256 offline message slots normally; 128 while mOTA borrows shared storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source returns all 256 slots. Contacts, channels and Full transports are retained.",
"memorySource": "aa20e9278ebdd574c4769fdb58d46fd9d4face68",
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"Generic_E22_sx1262_repeater": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"Generic_E22_sx1262_repeater-full": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Generic_E22_sx1262_repeater-full-logging": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Generic_E22_sx1262_repeater_bridge_espnow-full-logging": {
"display": false,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Generic_E22_sx1262_repeater_lora_ota_no_external_sensors": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": false
},
"Generic_E22_sx1268_repeater": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"Generic_E22_sx1268_repeater-full": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"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": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Generic_E22_sx1268_repeater_bridge_espnow-full-logging": {
"display": false,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Generic_E22_sx1268_repeater_lora_ota_no_external_sensors": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": false
},
"Generic_ESPNOW_companion_radio_full": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"memoryNote": "Memory-corrected Full Companion: 150 contacts; the 256-message queue and all Full transports are retained. Export contacts before updating if you have more than 150; entries beyond this limit may be unavailable and a later save may omit them.",
"memorySource": "aa20e9278ebdd574c4769fdb58d46fd9d4face68",
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": true,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [],
"webconfig": true
},
"Generic_ESPNOW_repeatr": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": true,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"Generic_ESPNOW_repeatr-full-logging": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": true,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Generic_ESPNOW_repeatr_lora_ota_no_external_sensors": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": true,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": false
},
"Generic_ESPNOW_room_svr": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": true,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"Generic_ESPNOW_room_svr-full-logging": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"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,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": true
},
"Heltec_E213_repeater": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"Heltec_E213_repeater-full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Heltec_E213_repeater-full-logging": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Heltec_E213_repeater_bridge_espnow-full-logging": {
"display": true,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Heltec_E213_repeater_lora_ota_no_external_sensors": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": false
},
"Heltec_E213_room_server": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"Heltec_E213_room_server-full-logging": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Heltec_E290_companion_radio_full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": true
},
"Heltec_E290_repeater": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"Heltec_E290_repeater-full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Heltec_E290_repeater-full-logging": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Heltec_E290_repeater_bridge_espnow-full-logging": {
"display": true,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Heltec_E290_repeater_lora_ota_no_external_sensors": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": false
},
"Heltec_E290_room_server": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"Heltec_E290_room_server-full-logging": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Heltec_T190_companion_radio_full_": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": true
},
"Heltec_T190_repeater_": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"Heltec_T190_repeater_-full-logging": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Heltec_T190_repeater_bridge_espnow_-full-logging": {
"display": true,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Heltec_T190_repeater_lora_ota_no_external_sensors": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": false
},
"Heltec_T190_repeater_observer_mqtt-full-usb-wifi": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": true,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Heltec_T190_room_server_": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"Heltec_T190_room_server_-full-logging": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Heltec_T190_room_server_observer_mqtt-full-usb-wifi": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": true,
"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,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": true
},
"Heltec_WSL3_repeater": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": true,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"Heltec_WSL3_repeater-full": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": true,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Heltec_WSL3_repeater_bridge_espnow-full-logging": {
"display": false,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Heltec_WSL3_repeater_lora_ota_no_external_sensors": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": true,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": false
},
"Heltec_WSL3_repeater_observer_mqtt-full-usb-wifi": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": true,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Heltec_WSL3_room_server": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"Heltec_WSL3_room_server_observer_mqtt-full-usb-wifi": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": true,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Heltec_WSL3_sensor": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"Heltec_WSL3_sensor-full-logging": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Heltec_Wireless_Paper_companion_radio_full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"memoryNote": "Wireless Paper Full: 350 contacts and 40 channels; 256 offline message slots normally, 128 while mOTA borrows shared storage. Idle WiFi mOTA listening keeps all 256 slots. 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 and frees scratch buffers. USB, Bluetooth, WiFi and the display are retained.",
"memorySource": "1e4d1e167a984abee34e92288b44d55f3d0e15a6",
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": true
},
"Heltec_Wireless_Paper_repeater": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"Heltec_Wireless_Paper_repeater-full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Heltec_Wireless_Paper_repeater-full-logging": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Heltec_Wireless_Paper_repeater_bridge_espnow-full-logging": {
"display": true,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Heltec_Wireless_Paper_repeater_lora_ota_no_external_sensors": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": false
},
"Heltec_Wireless_Paper_room_server": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"Heltec_Wireless_Paper_room_server-full-logging": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Heltec_Wireless_Tracker_companion_radio_full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"memoryNote": "Memory-corrected Full Companion: 150 contacts; the 256-message queue and all Full transports are retained. Export contacts before updating if you have more than 150; entries beyond this limit may be unavailable and a later save may omit them.",
"memorySource": "aa20e9278ebdd574c4769fdb58d46fd9d4face68",
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": true
},
"Heltec_Wireless_Tracker_repeater": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"Heltec_Wireless_Tracker_repeater-full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Heltec_Wireless_Tracker_repeater-full-logging": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Heltec_Wireless_Tracker_repeater_bridge_espnow-full-logging": {
"display": true,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Heltec_Wireless_Tracker_repeater_lora_ota_no_external_sensors": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": false
},
"Heltec_Wireless_Tracker_room_server": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"Heltec_Wireless_Tracker_room_server-full-logging": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Heltec_ct62_companion_radio_full": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"memoryNote": "Memory-corrected Full Companion: 150 contacts; the 256-message queue and all Full transports are retained. Export contacts before updating if you have more than 150; entries beyond this limit may be unavailable and a later save may omit them.",
"memorySource": "aa20e9278ebdd574c4769fdb58d46fd9d4face68",
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [],
"webconfig": true
},
"Heltec_ct62_repeater": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"Heltec_ct62_repeater-full": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Heltec_ct62_repeater-full-logging": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Heltec_ct62_repeater_bridge_espnow-full-logging": {
"display": false,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Heltec_ct62_repeater_lora_ota_no_external_sensors": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": false
},
"Heltec_ct62_sensor": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"Heltec_ct62_sensor-full-logging": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Heltec_mesh_solar_companion_radio_full": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"memoryNote": "Corrected nRF52 Full: 256 offline message slots normally; 128 while mOTA borrows shared storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source returns all 256 slots. Contacts, channels and Full transports are retained.",
"memorySource": "aa20e9278ebdd574c4769fdb58d46fd9d4face68",
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"Heltec_mesh_solar_repeater": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"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": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth",
"lora"
],
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
"bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"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": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"Heltec_t096_companion_radio_full_femon": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"memoryNote": "Corrected nRF52 Full: 256 offline message slots normally; 128 while mOTA borrows shared storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source returns all 256 slots. Contacts, channels and Full transports are retained.",
"memorySource": "aa20e9278ebdd574c4769fdb58d46fd9d4face68",
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"Heltec_t096_repeater": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": true,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"Heltec_t096_repeater_lora_ota_no_external_sensors": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"memoryNote": "Corrected LoRa OTA repeater: the diagnostic manual staging buffer is allocated only when requested, recovering about 4 KiB at startup. Normal LoRa OTA and the existing storage/bootloader layout are retained.",
"memorySource": "aa20e9278ebdd574c4769fdb58d46fd9d4face68",
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": true,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth",
"lora"
],
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
"bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires OTAFIX 2.4.6 retained-RAM handoff support; a transfer cannot resume after the receiver restarts."
],
"package_types": [
"in_place_delta"
],
"storage": "internal_flash_and_retained_ram"
}
},
"webconfig": false
},
"Heltec_t096_room_server": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"Heltec_t096_sensor": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"Heltec_t114_companion_radio_full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"memoryNote": "Corrected nRF52 Full: 256 offline message slots normally; 128 while mOTA borrows shared storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source returns all 256 slots. Contacts, channels and Full transports are retained.",
"memorySource": "aa20e9278ebdd574c4769fdb58d46fd9d4face68",
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"Heltec_t114_repeater": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": true,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"Heltec_t114_repeater_lora_ota_no_external_sensors": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": true,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth",
"lora"
],
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
"bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires OTAFIX 2.4.6 retained-RAM handoff support; a transfer cannot resume after the receiver restarts."
],
"package_types": [
"in_place_delta"
],
"storage": "internal_flash_and_retained_ram"
}
},
"webconfig": false
},
"Heltec_t114_room_server": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"Heltec_t114_without_display_companion_radio_full": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"memoryNote": "Corrected nRF52 Full: 256 offline message slots normally; 128 while mOTA borrows shared storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source returns all 256 slots. Contacts, channels and Full transports are retained.",
"memorySource": "aa20e9278ebdd574c4769fdb58d46fd9d4face68",
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"Heltec_t114_without_display_repeater": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": true,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"Heltec_t114_without_display_repeater_lora_ota_no_external_sensors": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": true,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth",
"lora"
],
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
"bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires OTAFIX 2.4.6 retained-RAM handoff support; a transfer cannot resume after the receiver restarts."
],
"package_types": [
"in_place_delta"
],
"storage": "internal_flash_and_retained_ram"
}
},
"webconfig": false
},
"Heltec_t114_without_display_room_server": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"Heltec_t1_companion_radio_full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"memoryNote": "Corrected nRF52 Full: 256 offline message slots normally; 128 while mOTA borrows shared storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source returns all 256 slots. Contacts, channels and Full transports are retained.",
"memorySource": "aa20e9278ebdd574c4769fdb58d46fd9d4face68",
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"Heltec_t1_repeater": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"Heltec_t1_repeater_lora_ota_no_external_sensors": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"memoryNote": "Corrected LoRa OTA repeater: the diagnostic manual staging buffer is allocated only when requested, recovering about 4 KiB at startup. Normal LoRa OTA and the existing storage/bootloader layout are retained.",
"memorySource": "aa20e9278ebdd574c4769fdb58d46fd9d4face68",
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth",
"lora"
],
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
"bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires OTAFIX 2.4.6 retained-RAM handoff support; a transfer cannot resume after the receiver restarts."
],
"package_types": [
"in_place_delta"
],
"storage": "internal_flash_and_retained_ram"
}
},
"webconfig": false
},
"Heltec_t1_room_server": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"Heltec_tower_v2_companion_radio_full": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"memoryNote": "Corrected nRF52 Full: 256 offline message slots normally; 128 while mOTA borrows shared storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source returns all 256 slots. Contacts, channels and Full transports are retained.",
"memorySource": "aa20e9278ebdd574c4769fdb58d46fd9d4face68",
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"Heltec_tower_v2_repeater": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"Heltec_tower_v2_repeater_lora_ota_no_external_sensors": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth",
"lora"
],
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
"bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires OTAFIX 2.4.6 retained-RAM handoff support; a transfer cannot resume after the receiver restarts."
],
"package_types": [
"in_place_delta"
],
"storage": "internal_flash_and_retained_ram"
}
},
"webconfig": false
},
"Heltec_tower_v2_room_server": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"Heltec_tower_v2_sdcard_repeater_lora_ota_no_external_sensors": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth",
"lora"
],
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
"bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires 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,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": true
},
"Heltec_v2_repeater": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"Heltec_v2_repeater-full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Heltec_v2_repeater-full-logging": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Heltec_v2_repeater_bridge_espnow-full-logging": {
"display": true,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Heltec_v2_repeater_lora_ota_no_external_sensors": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": false
},
"Heltec_v2_room_server": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"Heltec_v2_room_server-full-logging": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"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,
"memoryNote": "Memory-corrected Full Companion: 150 contacts; the 256-message queue and all Full transports are retained. Export contacts before updating if you have more than 150; entries beyond this limit may be unavailable and a later save may omit them.",
"memorySource": "aa20e9278ebdd574c4769fdb58d46fd9d4face68",
"mqtt": true,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": true
},
"Heltec_v3_repeater": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": true,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"Heltec_v3_repeater-full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": true,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Heltec_v3_repeater_bridge_espnow-full-logging": {
"display": true,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Heltec_v3_repeater_lora_ota_no_external_sensors": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": true,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": false
},
"Heltec_v3_repeater_observer_mqtt-full-usb-wifi": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": true,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Heltec_v3_repeater_observer_mqtt_sim-full-usb-wifi": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": true,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Heltec_v3_room_server": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"Heltec_v3_room_server_observer_mqtt-full-usb-wifi": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": true,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Heltec_v3_sensor": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"Heltec_v3_sensor-full-logging": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"KeepteenLT1_companion_radio_full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"memoryNote": "Corrected nRF52 Full: 256 offline message slots normally; 128 while mOTA borrows shared storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source returns all 256 slots. Contacts, channels and Full transports are retained.",
"memorySource": "aa20e9278ebdd574c4769fdb58d46fd9d4face68",
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"KeepteenLT1_repeater": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"KeepteenLT1_repeater_lora_ota_no_external_sensors": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth",
"lora"
],
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
"bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires OTAFIX 2.4.6 retained-RAM handoff support; a transfer cannot resume after the receiver restarts."
],
"package_types": [
"in_place_delta"
],
"storage": "internal_flash_and_retained_ram"
}
},
"webconfig": false
},
"KeepteenLT1_room_server": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"LilyGo_T-Echo-Lite_companion_radio_full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"memoryNote": "Corrected nRF52 Full: 256 offline message slots normally; 128 while mOTA borrows shared storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source returns all 256 slots. Contacts, channels and Full transports are retained.",
"memorySource": "aa20e9278ebdd574c4769fdb58d46fd9d4face68",
"mqtt": false,
"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": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"memoryNote": "Corrected nRF52 Full: 256 offline message slots normally; 128 while mOTA borrows shared storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source returns all 256 slots. Contacts, channels and Full transports are retained.",
"memorySource": "aa20e9278ebdd574c4769fdb58d46fd9d4face68",
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"LilyGo_T-Echo-Lite_repeater": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"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": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth",
"lora"
],
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
"bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"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": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"LilyGo_T-Echo_Card_companion_radio_full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"memoryNote": "Corrected nRF52 Full: 256 offline message slots normally; 128 while mOTA borrows shared storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source returns all 256 slots. Contacts, channels and Full transports are retained.",
"memorySource": "aa20e9278ebdd574c4769fdb58d46fd9d4face68",
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"LilyGo_T-Echo_Card_repeater": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"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": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth",
"lora"
],
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
"bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"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": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"LilyGo_T-Echo_companion_radio_full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"memoryNote": "Corrected nRF52 Full: 256 offline message slots normally; 128 while mOTA borrows shared storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source returns all 256 slots. Contacts, channels and Full transports are retained.",
"memorySource": "aa20e9278ebdd574c4769fdb58d46fd9d4face68",
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"LilyGo_T-Echo_repeater": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth",
"lora"
],
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
"bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires 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": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth",
"lora"
],
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
"bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires 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": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"LilyGo_T3S3_sx1262_companion_radio_full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [],
"webconfig": true
},
"LilyGo_T3S3_sx1262_repeater": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"LilyGo_T3S3_sx1262_repeater-full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"LilyGo_T3S3_sx1262_repeater_bridge_espnow-full-logging": {
"display": true,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"LilyGo_T3S3_sx1262_repeater_lora_ota_no_external_sensors": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": false
},
"LilyGo_T3S3_sx1262_repeater_observer_mqtt-full-usb-wifi": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": true,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"LilyGo_T3S3_sx1262_room_server": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"LilyGo_T3S3_sx1262_room_server_observer_mqtt-full-usb-wifi": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": true,
"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,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [],
"webconfig": true
},
"LilyGo_T3S3_sx1276_repeater": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"LilyGo_T3S3_sx1276_repeater-full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"LilyGo_T3S3_sx1276_repeater-full-logging": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"LilyGo_T3S3_sx1276_repeater_bridge_espnow-full-logging": {
"display": true,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"LilyGo_T3S3_sx1276_repeater_lora_ota_no_external_sensors": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": false
},
"LilyGo_T3S3_sx1276_room_server": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"LilyGo_T3S3_sx1276_room_server-full-logging": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"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,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [],
"webconfig": true
},
"LilyGo_TBeam_1W_repeater": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"LilyGo_TBeam_1W_repeater-full": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"LilyGo_TBeam_1W_repeater_bridge_espnow-full-logging": {
"display": true,
"espnowBridge": true,
"femRx": true,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"LilyGo_TBeam_1W_repeater_lora_ota_no_external_sensors": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": false
},
"LilyGo_TBeam_1W_repeater_observer_mqtt-full-usb-wifi": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"mqtt": true,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"LilyGo_TBeam_1W_room_server": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"LilyGo_TBeam_1W_room_server_observer_mqtt-full-usb-wifi": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"mqtt": true,
"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,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": true
},
"LilyGo_TDeck_repeater": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"LilyGo_TDeck_repeater-full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"LilyGo_TDeck_repeater-full-logging": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"LilyGo_TDeck_repeater_lora_ota_no_external_sensors": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": false
},
"LilyGo_TETH_Elite_sx1262_companion_radio_full": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": true
},
"LilyGo_TETH_Elite_sx1262_repeater": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"LilyGo_TETH_Elite_sx1262_repeater-full": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"LilyGo_TETH_Elite_sx1262_repeater-full-logging": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"LilyGo_TETH_Elite_sx1262_repeater_lora_ota_no_external_sensors": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": false
},
"LilyGo_TETH_Elite_sx1262_room_server": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"LilyGo_TETH_Elite_sx1262_room_server-full-logging": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"LilyGo_TLora_V2_1_1_6_companion_radio_full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [],
"webconfig": true
},
"LilyGo_TLora_V2_1_1_6_repeater": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": true,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"LilyGo_TLora_V2_1_1_6_repeater-full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"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-full-logging": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"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_bridge_espnow-full-logging": {
"display": true,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"LilyGo_TLora_V2_1_1_6_repeater_lora_ota_no_external_sensors": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": true,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": false
},
"LilyGo_TLora_V2_1_1_6_repeater_observer_mqtt_-full-usb-wifi": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": true,
"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": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"LilyGo_TLora_V2_1_1_6_room_server-full-logging": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"LilyGo_TLora_V2_1_1_6_room_server_observer_mqtt_-full-usb-wifi": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": true,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"lora"
],
"webconfig": true
},
"LilyGo_T_Impulse_Plus_companion_radio_full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"memoryNote": "Corrected nRF52 Full: 256 offline message slots normally; 128 while mOTA borrows shared storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source returns all 256 slots. Contacts, channels and Full transports are retained.",
"memorySource": "aa20e9278ebdd574c4769fdb58d46fd9d4face68",
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"LilyGo_T_Impulse_Plus_repeater": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"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": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth",
"lora"
],
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
"bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"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,
"mqtt": false,
"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": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"LilyGo_Tlora_C6_repeater_lora_ota_no_external_sensors": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": false
},
"LilyGo_Tlora_C6_room_server_-full-logging": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"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,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [],
"webconfig": true
},
"M5Stack_Unit_C6L_repeater-full": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"lora"
],
"webconfig": true
},
"M5Stack_Unit_C6L_repeater-full-logging": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"lora"
],
"webconfig": true
},
"M5Stack_Unit_C6L_repeater_lora_ota_no_external_sensors": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": false
},
"M5Stack_Unit_C6L_room_server-full-logging": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"lora"
],
"webconfig": true
},
"MeshTracker_X1_companion_radio_full": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"memoryNote": "Corrected nRF52 Full: 256 offline message slots normally; 128 while mOTA borrows shared storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source returns all 256 slots. Contacts, channels and Full transports are retained.",
"memorySource": "aa20e9278ebdd574c4769fdb58d46fd9d4face68",
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"MeshTracker_X1_repeater": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"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": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"bluetooth",
"lora"
],
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
"bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"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": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"Mesh_pocket_companion_radio_full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"memoryNote": "Corrected nRF52 Full: 256 offline message slots normally; 128 while mOTA borrows shared storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source returns all 256 slots. Contacts, channels and Full transports are retained.",
"memorySource": "aa20e9278ebdd574c4769fdb58d46fd9d4face68",
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"Mesh_pocket_repeater": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"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": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth",
"lora"
],
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
"bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires OTAFIX 2.4.6 retained-RAM handoff support; a transfer cannot resume after the receiver restarts."
],
"package_types": [
"in_place_delta"
],
"storage": "internal_flash_and_retained_ram"
}
},
"webconfig": false
},
"Mesh_pocket_room_server": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"Meshadventurer_sx1262_companion_radio_full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [],
"webconfig": true
},
"Meshadventurer_sx1262_repeater": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"Meshadventurer_sx1262_repeater-full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Meshadventurer_sx1262_repeater-full-logging": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Meshadventurer_sx1262_repeater_bridge_espnow-full-logging": {
"display": true,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Meshadventurer_sx1262_repeater_lora_ota_no_external_sensors": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": false
},
"Meshadventurer_sx1262_room_server": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"Meshadventurer_sx1262_room_server-full-logging": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"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,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [],
"webconfig": true
},
"Meshadventurer_sx1268_repeater": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"Meshadventurer_sx1268_repeater-full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Meshadventurer_sx1268_repeater-full-logging": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Meshadventurer_sx1268_repeater_bridge_espnow-full-logging": {
"display": true,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Meshadventurer_sx1268_repeater_lora_ota_no_external_sensors": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": false
},
"Meshadventurer_sx1268_room_server": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"Meshadventurer_sx1268_room_server-full-logging": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"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,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [],
"webconfig": true
},
"Meshimi_repeater_-full-logging": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"lora"
],
"webconfig": true
},
"Meshimi_repeater_lora_ota_no_external_sensors": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": false
},
"Meshtiny_companion_radio_full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"memoryNote": "Corrected nRF52 Full: 256 offline message slots normally; 128 while mOTA borrows shared storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source returns all 256 slots. Contacts, channels and Full transports are retained.",
"memorySource": "aa20e9278ebdd574c4769fdb58d46fd9d4face68",
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"Minewsemi_me25ls01_companion_radio_full": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"memoryNote": "Corrected nRF52 Full: 256 offline message slots normally; 128 while mOTA borrows shared storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source returns all 256 slots. Contacts, channels and Full transports are retained.",
"memorySource": "aa20e9278ebdd574c4769fdb58d46fd9d4face68",
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"Minewsemi_me25ls01_repeater": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"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": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"bluetooth",
"lora"
],
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
"bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires OTAFIX 2.4.6 retained-RAM handoff support; a transfer cannot resume after the receiver restarts."
],
"package_types": [
"in_place_delta"
],
"storage": "internal_flash_and_retained_ram"
}
},
"webconfig": false
},
"Minewsemi_me25ls01_room_server": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"Nano_G2_Ultra_companion_radio_full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"memoryNote": "Corrected nRF52 Full: 256 offline message slots normally; 128 while mOTA borrows shared storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source returns all 256 slots. Contacts, channels and Full transports are retained.",
"memorySource": "aa20e9278ebdd574c4769fdb58d46fd9d4face68",
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"Nano_G2_Ultra_repeater": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"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": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth",
"lora"
],
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
"bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"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": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"PicoW_companion_radio_usb": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "RP2040_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [],
"webconfig": false
},
"ProMicro_companion_radio_full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"memoryNote": "Corrected nRF52 Full: 256 offline message slots normally; 128 while mOTA borrows shared storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source returns all 256 slots. Contacts, channels and Full transports are retained.",
"memorySource": "aa20e9278ebdd574c4769fdb58d46fd9d4face68",
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"ProMicro_repeater": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": true,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"ProMicro_repeater_lora_ota_no_external_sensors": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": true,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth",
"lora"
],
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
"bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires OTAFIX 2.4.6 retained-RAM handoff support; a transfer cannot resume after the receiver restarts."
],
"package_types": [
"in_place_delta"
],
"storage": "internal_flash_and_retained_ram"
}
},
"webconfig": false
},
"ProMicro_room_server": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"ProMicro_sensor": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"R1Neo_companion_radio_full": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"memoryNote": "Corrected nRF52 Full: 256 offline message slots normally; 128 while mOTA borrows shared storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source returns all 256 slots. Contacts, channels and Full transports are retained.",
"memorySource": "aa20e9278ebdd574c4769fdb58d46fd9d4face68",
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"R1Neo_repeater": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"R1Neo_repeater_lora_ota_no_external_sensors": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth",
"lora"
],
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
"bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires OTAFIX 2.4.6 retained-RAM handoff support; a transfer cannot resume after the receiver restarts."
],
"package_types": [
"in_place_delta"
],
"storage": "internal_flash_and_retained_ram"
}
},
"webconfig": false
},
"R1Neo_room_server": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"R1Neo_sensor": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"RAK_11310_companion_radio_usb": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"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,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": true
},
"RAK_3112_repeater": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": true,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"RAK_3112_repeater-full": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": true,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"RAK_3112_repeater_bridge_espnow-full-logging": {
"display": false,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"RAK_3112_repeater_lora_ota_no_external_sensors": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": true,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": false
},
"RAK_3112_repeater_observer_mqtt-full-usb-wifi": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": true,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"RAK_3112_room_server": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"RAK_3112_room_server_observer_mqtt-full-usb-wifi": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": true,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"RAK_3112_sensor": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"RAK_3112_sensor-full-logging": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"RAK_3401_companion_radio_full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"memoryNote": "Corrected nRF52 Full: 256 offline message slots normally; 128 while mOTA borrows shared storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source returns all 256 slots. Contacts, channels and Full transports are retained.",
"memorySource": "aa20e9278ebdd574c4769fdb58d46fd9d4face68",
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"RAK_3401_repeater": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"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": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth",
"lora"
],
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
"bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires OTAFIX 2.4.6 retained-RAM handoff support; a transfer cannot resume after the receiver restarts."
],
"package_types": [
"in_place_delta"
],
"storage": "internal_flash_and_retained_ram"
}
},
"webconfig": false
},
"RAK_3401_repeater_rak13302_w25q16_lora_ota": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth",
"lora"
],
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
"bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires the matching external-storage hardware, wiring, and storage-aware OTAFIX bootloader."
],
"package_types": [
"full",
"in_place_delta"
],
"storage": "external_qspi"
}
},
"webconfig": false
},
"RAK_3401_room_server": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"RAK_3401_sensor": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"RAK_3x72_companion_radio_usb": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "STM32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [],
"webconfig": false
},
"RAK_4631_companion_radio_full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"memoryNote": "Corrected nRF52 Full: 256 offline message slots normally; 128 while mOTA borrows shared storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source returns all 256 slots. Contacts, channels and Full transports are retained.",
"memorySource": "aa20e9278ebdd574c4769fdb58d46fd9d4face68",
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"RAK_4631_repeater": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": true,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"RAK_4631_repeater_bridge_rs232_serial1_lora_ota_no_external_sensors": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": true,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth",
"lora"
],
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
"bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires OTAFIX 2.4.6 retained-RAM handoff support; a transfer cannot resume after the receiver restarts."
],
"package_types": [
"in_place_delta"
],
"storage": "internal_flash_and_retained_ram"
}
},
"webconfig": false
},
"RAK_4631_repeater_bridge_rs232_serial2_lora_ota_no_external_sensors": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": true,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth",
"lora"
],
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
"bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires OTAFIX 2.4.6 retained-RAM handoff support; a transfer cannot resume after the receiver restarts."
],
"package_types": [
"in_place_delta"
],
"storage": "internal_flash_and_retained_ram"
}
},
"webconfig": false
},
"RAK_4631_repeater_ethernet": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"RAK_4631_repeater_lora_ota_no_external_sensors": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": true,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth",
"lora"
],
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
"bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires OTAFIX 2.4.6 retained-RAM handoff support; a transfer cannot resume after the receiver restarts."
],
"package_types": [
"in_place_delta"
],
"storage": "internal_flash_and_retained_ram"
}
},
"webconfig": false
},
"RAK_4631_repeater_rak15001_slot_c_lora_ota": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth",
"lora"
],
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
"bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires 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": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth",
"lora"
],
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
"bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires 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": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"RAK_4631_room_server_ethernet": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"RAK_4631_sensor": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"RAK_WisMesh_Tag_companion_radio_full": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"memoryNote": "Corrected nRF52 Full: 256 offline message slots normally; 128 while mOTA borrows shared storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source returns all 256 slots. Contacts, channels and Full transports are retained.",
"memorySource": "aa20e9278ebdd574c4769fdb58d46fd9d4face68",
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"RAK_WisMesh_Tag_repeater": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"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": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth",
"lora"
],
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
"bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires OTAFIX 2.4.6 retained-RAM handoff support; a transfer cannot resume after the receiver restarts."
],
"package_types": [
"in_place_delta"
],
"storage": "internal_flash_and_retained_ram"
}
},
"webconfig": false
},
"RAK_WisMesh_Tag_room_server": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"RAK_WisMesh_Tag_sensor": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"SenseCapIndicator-ESPNow_companion_radio_full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"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,
"mqtt": false,
"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,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": true
},
"SenseCap_Solar_companion_radio_full": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"memoryNote": "Corrected nRF52 Full: 256 offline message slots normally; 128 while mOTA borrows shared storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source returns all 256 slots. Contacts, channels and Full transports are retained.",
"memorySource": "aa20e9278ebdd574c4769fdb58d46fd9d4face68",
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"SenseCap_Solar_repeater": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth",
"lora"
],
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
"bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires 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": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth",
"lora"
],
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
"bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires 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": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"Station_G2_companion_radio_full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": true
},
"Station_G2_repeater": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"Station_G2_repeater-full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Station_G2_repeater_bridge_espnow-full-logging": {
"display": true,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Station_G2_repeater_lora_ota_no_external_sensors": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": false
},
"Station_G2_repeater_observer_mqtt-full-usb-wifi": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": true,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": true,
"snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Station_G2_room_server": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"Station_G2_room_server_observer_mqtt-full-usb-wifi": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": true,
"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,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": true
},
"Station_G3_ESP32_repeater": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": true,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"Station_G3_ESP32_repeater-full": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": true,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Station_G3_ESP32_repeater_lora_ota_no_external_sensors": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": true,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": false
},
"Station_G3_ESP32_repeater_observer_mqtt-full-usb-wifi": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": true,
"gps": true,
"mqtt": true,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": true,
"snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Station_G3_ESP32_room_server": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": true,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"Station_G3_ESP32_room_server_observer_mqtt-full-usb-wifi": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": true,
"gps": true,
"mqtt": true,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": true,
"snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"T_Beam_S3_Supreme_SX1262_companion_radio_full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": true
},
"T_Beam_S3_Supreme_SX1262_repeater": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"T_Beam_S3_Supreme_SX1262_repeater-full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"T_Beam_S3_Supreme_SX1262_repeater_bridge_espnow-full-logging": {
"display": true,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"T_Beam_S3_Supreme_SX1262_repeater_lora_ota_no_external_sensors": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": false
},
"T_Beam_S3_Supreme_SX1262_repeater_observer_mqtt-full-usb-wifi": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": true,
"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": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"T_Beam_S3_Supreme_SX1262_room_server_observer_mqtt-full-usb-wifi": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": true,
"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,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [],
"webconfig": true
},
"Tbeam_SX1262_repeater": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"Tbeam_SX1262_repeater-full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Tbeam_SX1262_repeater_bridge_espnow-full-logging": {
"display": true,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Tbeam_SX1262_repeater_observer_mqtt-full-usb-wifi": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": true,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Tbeam_SX1262_room_server": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"Tbeam_SX1262_room_server_observer_mqtt-full-usb-wifi": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": true,
"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,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [],
"webconfig": true
},
"Tbeam_SX1276_repeater": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"Tbeam_SX1276_repeater-full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Tbeam_SX1276_repeater_bridge_espnow-full-logging": {
"display": true,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Tbeam_SX1276_repeater_observer_mqtt-full-usb-wifi": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": true,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Tbeam_SX1276_room_server": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"Tbeam_SX1276_room_server_observer_mqtt-full-usb-wifi": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": true,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Tenstar_C3_sx1262_repeater": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"Tenstar_C3_sx1262_repeater-full": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Tenstar_C3_sx1262_repeater-full-logging": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Tenstar_C3_sx1262_repeater_bridge_espnow-full-logging": {
"display": false,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Tenstar_C3_sx1262_repeater_lora_ota_no_external_sensors": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": false
},
"Tenstar_C3_sx1268_repeater": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"Tenstar_C3_sx1268_repeater-full": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Tenstar_C3_sx1268_repeater-full-logging": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Tenstar_C3_sx1268_repeater_bridge_espnow-full-logging": {
"display": false,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Tenstar_C3_sx1268_repeater_lora_ota_no_external_sensors": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": false
},
"ThinkNode_M1_companion_radio_full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"memoryNote": "Corrected nRF52 Full: 256 offline message slots normally; 128 while mOTA borrows shared storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source returns all 256 slots. Contacts, channels and Full transports are retained.",
"memorySource": "aa20e9278ebdd574c4769fdb58d46fd9d4face68",
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"ThinkNode_M1_repeater": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth",
"lora"
],
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
"bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires 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": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth",
"lora"
],
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
"bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires 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": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"ThinkNode_M2_Repeater": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"ThinkNode_M2_Repeater-full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"ThinkNode_M2_Repeater-full-logging": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"ThinkNode_M2_Repeater_bridge_espnow-full-logging": {
"display": true,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"ThinkNode_M2_Repeater_lora_ota_no_external_sensors": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": false
},
"ThinkNode_M2_companion_radio_full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [],
"webconfig": true
},
"ThinkNode_M2_room_server": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"ThinkNode_M2_room_server-full-logging": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"ThinkNode_M3_companion_radio_full": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"memoryNote": "Corrected nRF52 Full: 256 offline message slots normally; 128 while mOTA borrows shared storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source returns all 256 slots. Contacts, channels and Full transports are retained.",
"memorySource": "aa20e9278ebdd574c4769fdb58d46fd9d4face68",
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"ThinkNode_M3_repeater": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"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": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"bluetooth",
"lora"
],
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
"bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires OTAFIX 2.4.6 retained-RAM handoff support; a transfer cannot resume after the receiver restarts."
],
"package_types": [
"in_place_delta"
],
"storage": "internal_flash_and_retained_ram"
}
},
"webconfig": false
},
"ThinkNode_M3_room_server": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"ThinkNode_M5_Repeater": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"ThinkNode_M5_Repeater-full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"ThinkNode_M5_Repeater-full-logging": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"ThinkNode_M5_Repeater_bridge_espnow-full-logging": {
"display": true,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"ThinkNode_M5_Repeater_lora_ota_no_external_sensors": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": false
},
"ThinkNode_M5_companion_radio_full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [],
"webconfig": true
},
"ThinkNode_M5_room_server": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"ThinkNode_M5_room_server-full-logging": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"ThinkNode_M6_companion_radio_full": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"memoryNote": "Corrected nRF52 Full: 256 offline message slots normally; 128 while mOTA borrows shared storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source returns all 256 slots. Contacts, channels and Full transports are retained.",
"memorySource": "aa20e9278ebdd574c4769fdb58d46fd9d4face68",
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"ThinkNode_M6_repeater": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth",
"lora"
],
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
"bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires 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": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth",
"lora"
],
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
"bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires 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": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"ThinkNode_M7_companion_radio_full": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": true
},
"ThinkNode_M7_repeater": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"ThinkNode_M7_repeater-full": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"ThinkNode_M7_repeater_lora_ota_no_external_sensors": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": false
},
"ThinkNode_M7_repeater_observer_mqtt-full-usb-wifi": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": true,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"ThinkNode_M7_room_server": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"ThinkNode_M7_room_server_observer_mqtt-full-usb-wifi": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": true,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"ThinkNode_M8_companion_radio_full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"memoryNote": "Corrected nRF52 Full: 256 offline message slots normally; 128 while mOTA borrows shared storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source returns all 256 slots. Contacts, channels and Full transports are retained.",
"memorySource": "aa20e9278ebdd574c4769fdb58d46fd9d4face68",
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"ThinkNode_M8_repeater": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"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": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth",
"lora"
],
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
"bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"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": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"ThinkNode_M9_companion_radio_full_": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": true
},
"ThinkNode_M9_repeater_": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"ThinkNode_M9_repeater_-full-logging": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"ThinkNode_M9_repeater_lora_ota_no_external_sensors": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": false
},
"ThinkNode_M9_room_server_": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"ThinkNode_M9_room_server_-full-logging": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"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,
"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,
"mqtt": false,
"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": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"WHY2025_badge_repeater_lora_ota_no_external_sensors": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": false
},
"WioTrackerL1Eink_companion_radio_full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"memoryNote": "Corrected nRF52 Full: 256 offline message slots normally; 128 while mOTA borrows shared storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source returns all 256 slots. Contacts, channels and Full transports are retained.",
"memorySource": "aa20e9278ebdd574c4769fdb58d46fd9d4face68",
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"WioTrackerL1_companion_radio_full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"memoryNote": "Corrected nRF52 Full: 256 offline message slots normally; 128 while mOTA borrows shared storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source returns all 256 slots. Contacts, channels and Full transports are retained.",
"memorySource": "aa20e9278ebdd574c4769fdb58d46fd9d4face68",
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"WioTrackerL1_repeater": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth",
"lora"
],
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
"bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires 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": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth",
"lora"
],
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
"bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires 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": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"Xiao_C3_companion_radio_full": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"memoryNote": "Memory-corrected Full Companion: 150 contacts; the 256-message queue and all Full transports are retained. Export contacts before updating if you have more than 150; entries beyond this limit may be unavailable and a later save may omit them.",
"memorySource": "aa20e9278ebdd574c4769fdb58d46fd9d4face68",
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [],
"webconfig": true
},
"Xiao_C3_repeater": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"Xiao_C3_repeater-full": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Xiao_C3_repeater-full-logging": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Xiao_C3_repeater_lora_ota_no_external_sensors": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": false
},
"Xiao_C3_room_server": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"Xiao_C3_room_server-full-logging": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"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,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [],
"webconfig": true
},
"Xiao_C6_repeater_-full-logging": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Xiao_C6_repeater_lora_ota_no_external_sensors": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": false
},
"Xiao_S3_WIO_companion_radio_full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": true
},
"Xiao_S3_WIO_repeater": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"Xiao_S3_WIO_repeater-full": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Xiao_S3_WIO_repeater_bridge_espnow-full-logging": {
"display": false,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Xiao_S3_WIO_repeater_lora_ota_no_external_sensors": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": false
},
"Xiao_S3_WIO_repeater_observer_mqtt-full-usb-wifi": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": true,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Xiao_S3_WIO_room_server": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"Xiao_S3_WIO_room_server_observer_mqtt-full-usb-wifi": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": true,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Xiao_S3_WIO_sensor": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"Xiao_S3_WIO_sensor-full-logging": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Xiao_S3_companion_radio_full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": true
},
"Xiao_S3_repeater": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"Xiao_S3_repeater-full": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Xiao_S3_repeater-full-logging": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Xiao_S3_repeater_bridge_espnow-full-logging": {
"display": false,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Xiao_S3_repeater_lora_ota_no_external_sensors": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": false
},
"Xiao_S3_room_server": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"Xiao_S3_room_server-full-logging": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Xiao_S3_sensor": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"Xiao_S3_sensor-full-logging": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"Xiao_nrf52_companion_radio_full": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"memoryNote": "Corrected nRF52 Full: 256 offline message slots normally; 128 while mOTA borrows shared storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source returns all 256 slots. Contacts, channels and Full transports are retained.",
"memorySource": "aa20e9278ebdd574c4769fdb58d46fd9d4face68",
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"Xiao_nrf52_repeater": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth",
"lora"
],
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
"bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires 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_lora_ota_no_external_sensors": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth",
"lora"
],
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
"bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires the matching external-storage hardware, wiring, and storage-aware OTAFIX bootloader."
],
"package_types": [
"full",
"in_place_delta"
],
"storage": "external_qspi"
}
},
"webconfig": false
},
"Xiao_nrf52_room_server": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"Xiao_rp2040_companion_radio_usb": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"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,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": true
},
"heltec_rc32_repeater-full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"heltec_rc32_repeater-full-logging": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"heltec_rc32_repeater_bridge_espnow-full-logging": {
"display": true,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"heltec_rc32_repeater_lora_ota_no_external_sensors": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": false
},
"heltec_rc32_room_server": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"heltec_rc32_room_server-full-logging": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"heltec_rc32_sensor": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"heltec_rc32_sensor-full-logging": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"heltec_rc32_without_display_companion_radio_full": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": true
},
"heltec_rc32_without_display_repeater-full": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"heltec_rc32_without_display_repeater-full-logging": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"heltec_rc32_without_display_repeater_bridge_espnow-full-logging": {
"display": false,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"heltec_rc32_without_display_repeater_lora_ota_no_external_sensors": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": false
},
"heltec_rc32_without_display_room_server": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"heltec_rc32_without_display_room_server-full-logging": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"heltec_rc32_without_display_sensor": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"heltec_rc32_without_display_sensor-full-logging": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"heltec_tracker_v1_1_repeater_observer_mqtt-full-usb-wifi": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"mqtt": true,
"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": false,
"femRx": true,
"femTx": false,
"gps": true,
"mqtt": true,
"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,
"memoryNote": "Memory-corrected Full Companion: 150 contacts; the 256-message queue and all Full transports are retained. Export contacts before updating if you have more than 150; entries beyond this limit may be unavailable and a later save may omit them.",
"memorySource": "aa20e9278ebdd574c4769fdb58d46fd9d4face68",
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": true
},
"heltec_tracker_v2_repeater": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"heltec_tracker_v2_repeater-full": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"heltec_tracker_v2_repeater_bridge_espnow-full-logging": {
"display": true,
"espnowBridge": true,
"femRx": true,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"heltec_tracker_v2_repeater_lora_ota_no_external_sensors": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": false
},
"heltec_tracker_v2_repeater_observer_mqtt-full-usb-wifi": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"mqtt": true,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"heltec_tracker_v2_room_server": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"heltec_tracker_v2_room_server_observer_mqtt-full-usb-wifi": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"mqtt": true,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"heltec_tracker_v2_sensor": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"heltec_tracker_v2_sensor-full-logging": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"heltec_v4_2_v4_3_companion_radio_full_femon": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"mqtt": true,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": true
},
"heltec_v4_expansionkit_repeater": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"heltec_v4_expansionkit_repeater-full": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"heltec_v4_expansionkit_repeater_lora_ota_no_external_sensors": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": false
},
"heltec_v4_expansionkit_repeater_observer_mqtt-full-usb-wifi": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"mqtt": true,
"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": false,
"femRx": true,
"femTx": false,
"gps": true,
"mqtt": true,
"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,
"mqtt": false,
"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,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": true
},
"heltec_v4_r8_repeater": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"heltec_v4_r8_repeater-full": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"heltec_v4_r8_repeater_lora_ota_no_external_sensors": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": false
},
"heltec_v4_r8_repeater_observer_mqtt-full-usb-wifi": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"mqtt": true,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"heltec_v4_r8_room_server": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"heltec_v4_r8_room_server_observer_mqtt-full-usb-wifi": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"mqtt": true,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"heltec_v4_r8_sensor": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"heltec_v4_r8_sensor-full-logging": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"heltec_v4_r8_tft_companion_radio_full": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"mqtt": false,
"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": false,
"femRx": true,
"femTx": false,
"gps": true,
"mqtt": true,
"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": false,
"femRx": true,
"femTx": false,
"gps": true,
"mqtt": true,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"heltec_v4_r8_tft_repeater": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"heltec_v4_r8_tft_repeater-full": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"heltec_v4_r8_tft_repeater_lora_ota_no_external_sensors": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": false
},
"heltec_v4_r8_tft_repeater_observer_mqtt-full-usb-wifi": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"mqtt": true,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"heltec_v4_r8_tft_room_server": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"heltec_v4_r8_tft_room_server_observer_mqtt-full-usb-wifi": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"mqtt": true,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"heltec_v4_r8_tft_sensor": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"heltec_v4_r8_tft_sensor-full-logging": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"heltec_v4_repeater": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"heltec_v4_repeater-full": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"heltec_v4_repeater_bridge_espnow-full-logging": {
"display": true,
"espnowBridge": true,
"femRx": true,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"heltec_v4_repeater_lora_ota_no_external_sensors": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": false
},
"heltec_v4_repeater_observer_mqtt-full-usb-wifi": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"mqtt": true,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"heltec_v4_room_server": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"heltec_v4_room_server_observer_mqtt-full-usb-wifi": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"mqtt": true,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": true,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"heltec_v4_sensor": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"heltec_v4_sensor-full-logging": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"heltec_v4_tft_companion_radio_full_femon": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": true
},
"heltec_v4_tft_repeater": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"heltec_v4_tft_repeater-full": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"heltec_v4_tft_repeater-full-logging": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"heltec_v4_tft_repeater_bridge_espnow-full-logging": {
"display": true,
"espnowBridge": true,
"femRx": true,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"heltec_v4_tft_repeater_lora_ota_no_external_sensors": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": false
},
"heltec_v4_tft_room_server": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"heltec_v4_tft_room_server-full-logging": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"heltec_v4_tft_sensor": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"heltec_v4_tft_sensor-full-logging": {
"display": true,
"espnowBridge": false,
"femRx": true,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"ikoka_handheld_nrf_e22_30dbm_096_companion_radio_full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"memoryNote": "Corrected nRF52 Full: 256 offline message slots normally; 128 while mOTA borrows shared storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source returns all 256 slots. Contacts, channels and Full transports are retained.",
"memorySource": "aa20e9278ebdd574c4769fdb58d46fd9d4face68",
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"ikoka_handheld_nrf_e22_30dbm_repeater": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth",
"lora"
],
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
"bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires 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_lora_ota_no_external_sensors": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth",
"lora"
],
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
"bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires 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": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"ikoka_nano_nrf_22dbm_companion_radio_full": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"memoryNote": "Corrected nRF52 Full: 256 offline message slots normally; 128 while mOTA borrows shared storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source returns all 256 slots. Contacts, channels and Full transports are retained.",
"memorySource": "aa20e9278ebdd574c4769fdb58d46fd9d4face68",
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"ikoka_nano_nrf_22dbm_repeater": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth",
"lora"
],
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
"bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires 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_lora_ota_no_external_sensors": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth",
"lora"
],
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
"bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires 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": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"ikoka_nano_nrf_30dbm_companion_radio_full": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"memoryNote": "Corrected nRF52 Full: 256 offline message slots normally; 128 while mOTA borrows shared storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source returns all 256 slots. Contacts, channels and Full transports are retained.",
"memorySource": "aa20e9278ebdd574c4769fdb58d46fd9d4face68",
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"ikoka_nano_nrf_30dbm_repeater": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth",
"lora"
],
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
"bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires 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_lora_ota_no_external_sensors": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth",
"lora"
],
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
"bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires 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": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"ikoka_nano_nrf_33dbm_companion_radio_full": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"memoryNote": "Corrected nRF52 Full: 256 offline message slots normally; 128 while mOTA borrows shared storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source returns all 256 slots. Contacts, channels and Full transports are retained.",
"memorySource": "aa20e9278ebdd574c4769fdb58d46fd9d4face68",
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"ikoka_nano_nrf_33dbm_repeater": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth",
"lora"
],
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
"bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires 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_lora_ota_no_external_sensors": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth",
"lora"
],
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
"bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires 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": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"ikoka_stick_nrf_22dbm_companion_radio_full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"memoryNote": "Corrected nRF52 Full: 256 offline message slots normally; 128 while mOTA borrows shared storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source returns all 256 slots. Contacts, channels and Full transports are retained.",
"memorySource": "aa20e9278ebdd574c4769fdb58d46fd9d4face68",
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"ikoka_stick_nrf_22dbm_repeater": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth",
"lora"
],
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
"bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires 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_lora_ota_no_external_sensors": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth",
"lora"
],
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
"bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires 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": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"ikoka_stick_nrf_30dbm_companion_radio_full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"memoryNote": "Corrected nRF52 Full: 256 offline message slots normally; 128 while mOTA borrows shared storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source returns all 256 slots. Contacts, channels and Full transports are retained.",
"memorySource": "aa20e9278ebdd574c4769fdb58d46fd9d4face68",
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"ikoka_stick_nrf_30dbm_repeater": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth",
"lora"
],
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
"bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires 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_lora_ota_no_external_sensors": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth",
"lora"
],
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
"bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires 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": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"ikoka_stick_nrf_33dbm_companion_radio_full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"memoryNote": "Corrected nRF52 Full: 256 offline message slots normally; 128 while mOTA borrows shared storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source returns all 256 slots. Contacts, channels and Full transports are retained.",
"memorySource": "aa20e9278ebdd574c4769fdb58d46fd9d4face68",
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"ikoka_stick_nrf_33dbm_repeater": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth",
"lora"
],
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
"bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires 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_lora_ota_no_external_sensors": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth",
"lora"
],
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
"bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires 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": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"meshnology_w12_companion_radio_full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": true
},
"meshnology_w12_repeater": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"meshnology_w12_repeater-full": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"meshnology_w12_repeater-full-logging": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"meshnology_w12_repeater_bridge_espnow-full-logging": {
"display": true,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"meshnology_w12_repeater_lora_ota_no_external_sensors": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": false
},
"meshnology_w12_room_server": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"meshnology_w12_room_server-full-logging": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"meshnology_w12_sensor": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"meshnology_w12_sensor-full-logging": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"nibble_screen_connect_companion_radio_full_": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [],
"webconfig": true
},
"nibble_screen_connect_repeater_": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"nibble_screen_connect_repeater_-full-logging": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"nibble_screen_connect_repeater_bridge_espnow_-full-logging": {
"display": true,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"nibble_screen_connect_repeater_lora_ota_no_external_sensors": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": false
},
"nibble_screen_connect_room_server_": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"nibble_screen_connect_room_server_-full-logging": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"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,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [],
"webconfig": true
},
"nibble_zero_connect_repeater_": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"nibble_zero_connect_repeater_-full-logging": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"nibble_zero_connect_repeater_bridge_espnow_-full-logging": {
"display": true,
"espnowBridge": true,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"nibble_zero_connect_repeater_lora_ota_no_external_sensors": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": false
},
"nibble_zero_connect_room_server_": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi"
],
"webconfig": false
},
"nibble_zero_connect_room_server_-full-logging": {
"display": true,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "ESP32_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"wifi",
"lora"
],
"webconfig": true
},
"solarxiao_30S_companion_radio_full": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"memoryNote": "Corrected nRF52 Full: 256 offline message slots normally; 128 while mOTA borrows shared storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source returns all 256 slots. Contacts, channels and Full transports are retained.",
"memorySource": "aa20e9278ebdd574c4769fdb58d46fd9d4face68",
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"solarxiao_30S_repeater": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": true,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth",
"lora"
],
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
"bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires 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": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"solarxiao_33S_companion_radio_full": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"memoryNote": "Corrected nRF52 Full: 256 offline message slots normally; 128 while mOTA borrows shared storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source returns all 256 slots. Contacts, channels and Full transports are retained.",
"memorySource": "aa20e9278ebdd574c4769fdb58d46fd9d4face68",
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"solarxiao_33S_repeater": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": true,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth",
"lora"
],
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
"bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires 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": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": true,
"rxps": true,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"t1000e_companion_radio_full": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"memoryNote": "Corrected nRF52 Full: 256 offline message slots normally; 128 while mOTA borrows shared storage. Sync unread messages with a Companion app before starting mOTA if more than 128 are pending. Stopping or disconnecting the source returns all 256 slots. Contacts, channels and Full transports are retained.",
"memorySource": "aa20e9278ebdd574c4769fdb58d46fd9d4face68",
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"t1000e_repeater": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"t1000e_repeater_lora_ota_no_external_sensors": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"bluetooth",
"lora"
],
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
"bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"Requires OTAFIX 2.4.6 retained-RAM handoff support; a transfer cannot resume after the receiver restarts."
],
"package_types": [
"in_place_delta"
],
"storage": "internal_flash_and_retained_ram"
}
},
"webconfig": false
},
"t1000e_room_server": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": true,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"waveshare_rp2040_lora_companion_radio_usb": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"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,
"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,
"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,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
},
"wio_wm1110_repeater": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"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": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"bluetooth",
"lora"
],
"updateRequirements": {
"lora": {
"bootloader": "Matching board/storage OTAFIX bootloader",
"bootloader_release": "https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/tag/0.11.0-OTAFIX2.4.6",
"notes": [
"Use a destination-specific .mota package matching the board, target, and storage layout.",
"An in-place delta requires the exact firmware currently running as its base.",
"The package must fit the receiver's staging and apply workspace.",
"Artifact inspection verifies compiled support; it does not verify the bootloader installed on a physical device.",
"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": {
"display": false,
"espnowBridge": false,
"femRx": false,
"femTx": false,
"gps": false,
"mqtt": false,
"platform": "NRF52_PLATFORM",
"primaryEspnow": false,
"rs232": false,
"rxgain": false,
"rxps": false,
"snmp": false,
"updateMethods": [
"bluetooth"
],
"webconfig": false
}
},
"source": "2630379365cf47cb7eec146b7d1b57b354efe251",
"memoryFollowupSources": {
"Heltec_Wireless_Paper_companion_radio_full": "1e4d1e167a984abee34e92288b44d55f3d0e15a6"
}
}