mirror of
https://github.com/meshcore-dev/flasher.meshcore.dev.git
synced 2026-04-20 22:13:50 +00:00
version sync
This commit is contained in:
parent
56892c5ef7
commit
4d696db87f
8 changed files with 523 additions and 59 deletions
527
config.json
527
config.json
|
|
@ -27,12 +27,12 @@
|
|||
"repeater": {
|
||||
"icon": "cell_tower",
|
||||
"title": "Repeater",
|
||||
"tooltip": "Special role just for routing packets. Configured via <b>Console</b> on flasher main page"
|
||||
"tooltip": "Special role just for routing packets. Configured via Config/Console on flasher main page"
|
||||
},
|
||||
"roomServer": {
|
||||
"icon": "forum",
|
||||
"title": "Room Server",
|
||||
"tooltip": "Special role for local room and routing packets. Configured via <b>Console</b> on flasher main page"
|
||||
"tooltip": "Special role for local room and routing packets. Configured via Config/Console on flasher main page"
|
||||
}
|
||||
},
|
||||
"device": [
|
||||
|
|
@ -44,6 +44,51 @@
|
|||
{
|
||||
"role": "gui",
|
||||
"version": {
|
||||
"v6.6": {
|
||||
"files": [
|
||||
{
|
||||
"type": "flash",
|
||||
"name": "RippleUltra-TDeck-v6.6-merged.bin",
|
||||
"title": "Combined app+partition+bootloader firmware bin"
|
||||
},
|
||||
{
|
||||
"type": "download",
|
||||
"name": "RippleUltra-TDeck-v6.6.bin",
|
||||
"title": "App firmware bin (use with m5 booloader)"
|
||||
}
|
||||
],
|
||||
"notes": "* now saves repeater and room server passwords.\n* new 'auto advert ON/OFF' option"
|
||||
},
|
||||
"v6.5": {
|
||||
"files": [
|
||||
{
|
||||
"type": "flash",
|
||||
"name": "RippleUltra-TDeck-v6.5-merged.bin",
|
||||
"title": "Combined app+partition+bootloader firmware bin"
|
||||
},
|
||||
{
|
||||
"type": "download",
|
||||
"name": "RippleUltra-TDeck-v6.5.bin",
|
||||
"title": "App firmware bin (use with m5 booloader)"
|
||||
}
|
||||
],
|
||||
"notes": "* Existing profiles have SF editable"
|
||||
},
|
||||
"v6.3": {
|
||||
"files": [
|
||||
{
|
||||
"type": "flash",
|
||||
"name": "RippleUltra-TDeck-v6.3-merged.bin",
|
||||
"title": "Combined app+partition+bootloader firmware bin"
|
||||
},
|
||||
{
|
||||
"type": "download",
|
||||
"name": "RippleUltra-TDeck-v6.3.bin",
|
||||
"title": "App firmware bin (use with m5 booloader)"
|
||||
}
|
||||
],
|
||||
"notes": "* BUG Fix: advert verify caused memory corruption"
|
||||
},
|
||||
"v6.2": {
|
||||
"files": [
|
||||
{
|
||||
|
|
@ -77,6 +122,51 @@
|
|||
{
|
||||
"role": "guiSD",
|
||||
"version": {
|
||||
"v6.6": {
|
||||
"files": [
|
||||
{
|
||||
"type": "flash",
|
||||
"name": "RippleUltra-TDeck-SD-v6.6-merged.bin",
|
||||
"title": "Combined app+partition+bootloader firmware bin"
|
||||
},
|
||||
{
|
||||
"type": "download",
|
||||
"name": "RippleUltra-TDeck-SD-v6.6.bin",
|
||||
"title": "App firmware bin (use with m5 booloader)"
|
||||
}
|
||||
],
|
||||
"notes": "* now saves repeater and room server passwords.\n* new 'auto advert ON/OFF' option"
|
||||
},
|
||||
"v6.5": {
|
||||
"files": [
|
||||
{
|
||||
"type": "flash",
|
||||
"name": "RippleUltra-TDeck-SD-v6.5-merged.bin",
|
||||
"title": "Combined app+partition+bootloader firmware bin"
|
||||
},
|
||||
{
|
||||
"type": "download",
|
||||
"name": "RippleUltra-TDeck-SD-v6.5.bin",
|
||||
"title": "App firmware bin (use with m5 booloader)"
|
||||
}
|
||||
],
|
||||
"notes": "* Existing profiles have SF editable"
|
||||
},
|
||||
"v6.3": {
|
||||
"files": [
|
||||
{
|
||||
"type": "flash",
|
||||
"name": "RippleUltra-TDeck-SD-v6.3-merged.bin",
|
||||
"title": "Combined app+partition+bootloader firmware bin"
|
||||
},
|
||||
{
|
||||
"type": "download",
|
||||
"name": "RippleUltra-TDeck-SD-v6.3.bin",
|
||||
"title": "App firmware bin (use with m5 booloader)"
|
||||
}
|
||||
],
|
||||
"notes": "* BUG Fix: advert verify caused memory corruption"
|
||||
},
|
||||
"v6.2": {
|
||||
"files": [
|
||||
{
|
||||
|
|
@ -117,6 +207,51 @@
|
|||
{
|
||||
"role": "gui",
|
||||
"version": {
|
||||
"v6.6": {
|
||||
"files": [
|
||||
{
|
||||
"type": "flash",
|
||||
"name": "RippleUltra-T5-epaper-v6.6-merged.bin",
|
||||
"title": "Combined app+partition+bootloader firmware bin"
|
||||
},
|
||||
{
|
||||
"type": "download",
|
||||
"name": "RippleUltra-T5-epaper-v6.6.bin",
|
||||
"title": "App firmware bin (use with m5 booloader)"
|
||||
}
|
||||
],
|
||||
"notes": "* now saves repeater and room server passwords.\n* new 'auto advert ON/OFF' option"
|
||||
},
|
||||
"v6.5": {
|
||||
"files": [
|
||||
{
|
||||
"type": "flash",
|
||||
"name": "RippleUltra-T5-epaper-v6.5-merged.bin",
|
||||
"title": "Combined app+partition+bootloader firmware bin"
|
||||
},
|
||||
{
|
||||
"type": "download",
|
||||
"name": "RippleUltra-T5-epaper-v6.5.bin",
|
||||
"title": "App firmware bin (use with m5 booloader)"
|
||||
}
|
||||
],
|
||||
"notes": "* Existing profiles have SF editable"
|
||||
},
|
||||
"v6.3": {
|
||||
"files": [
|
||||
{
|
||||
"type": "flash",
|
||||
"name": "RippleUltra-T5-epaper-v6.3-merged.bin",
|
||||
"title": "Combined app+partition+bootloader firmware bin"
|
||||
},
|
||||
{
|
||||
"type": "download",
|
||||
"name": "RippleUltra-T5-epaper-v6.3.bin",
|
||||
"title": "App firmware bin (use with m5 booloader)"
|
||||
}
|
||||
],
|
||||
"notes": "* BUG Fix: advert verify caused memory corruption"
|
||||
},
|
||||
"v6.0-beta22": {
|
||||
"files": [
|
||||
{
|
||||
|
|
@ -136,7 +271,7 @@
|
|||
]
|
||||
},
|
||||
{
|
||||
"name": "Lilygo T3 S3",
|
||||
"name": "Lilygo T3 S3 (SX126x)",
|
||||
"type": "esp32",
|
||||
"tooltip": "<img class='device' src='/img/lilygo_t3s3.png'>",
|
||||
"firmware": [
|
||||
|
|
@ -145,7 +280,8 @@
|
|||
"github": {
|
||||
"type": "companion",
|
||||
"files": {
|
||||
"flash": ["LilyGo_T3S3_sx1262_companion_radio_usb","merged.bin"]
|
||||
"flash": "LilyGo_T3S3_sx1262_companion_radio_usb.*?-merged\\.bin",
|
||||
"download": "LilyGo_T3S3_sx1262_companion_radio_usb.*?-[a-f0-9]{7}\\.bin"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
@ -154,7 +290,8 @@
|
|||
"github": {
|
||||
"type": "companion",
|
||||
"files": {
|
||||
"flash": ["LilyGo_T3S3_sx1262_companion_radio_ble","merged.bin"]
|
||||
"flash": "LilyGo_T3S3_sx1262_companion_radio_ble.*?-merged\\.bin",
|
||||
"download": "LilyGo_T3S3_sx1262_companion_radio_ble.*?-[a-f0-9]{7}\\.bin"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
@ -163,7 +300,112 @@
|
|||
"github": {
|
||||
"type": "repeater",
|
||||
"files": {
|
||||
"flash": ["LilyGo_T3S3_sx1262_Repeater","merged.bin"]
|
||||
"flash": "LilyGo_T3S3_sx1262_Repeater.*?-merged\\.bin",
|
||||
"download": "LilyGo_T3S3_sx1262_Repeater.*?-[a-f0-9]{7}\\.bin"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"role": "roomServer",
|
||||
"github": {
|
||||
"type": "room-server",
|
||||
"files": {
|
||||
"flash": "LilyGo_T3S3_sx1262_room_server.*?-merged\\.bin",
|
||||
"download": "LilyGo_T3S3_sx1262_room_server.*?-[a-f0-9]{7}\\.bin"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Lilygo T-Beam 1.2 (SX1276)",
|
||||
"type": "esp32",
|
||||
"tooltip": "<img class='device' src='/img/lilygo_tbeam.png'>",
|
||||
"firmware": [
|
||||
{
|
||||
"role": "companionUsb",
|
||||
"github": {
|
||||
"type": "companion",
|
||||
"files": {
|
||||
"flash": "Tbeam_companion_radio_usb.*?-merged\\.bin",
|
||||
"download": "Tbeam_companion_radio_usb.*?-[a-f0-9]{7}\\.bin"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"role": "companionBle",
|
||||
"github": {
|
||||
"type": "companion",
|
||||
"files": {
|
||||
"flash": "Tbeam_companion_radio_ble.*?-merged\\.bin",
|
||||
"download": "Tbeam_companion_radio_ble.*?-[a-f0-9]{7}\\.bin"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"role": "repeater",
|
||||
"github": {
|
||||
"type": "repeater",
|
||||
"files": {
|
||||
"flash": "Tbeam_repeater.*?-merged\\.bin",
|
||||
"download": "Tbeam_repeater.*?-[a-f0-9]{7}\\.bin"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"role": "roomServer",
|
||||
"github": {
|
||||
"type": "room-server",
|
||||
"files": {
|
||||
"flash": "Tbeam_room_server.*?-merged\\.bin",
|
||||
"download": "Tbeam_room_server.*?-[a-f0-9]{7}\\.bin"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Lilygo T-Beam Supreme (SX1262)",
|
||||
"type": "esp32",
|
||||
"tooltip": "<img class='device' src='/img/lilygo_tbeam_supreme.png'>",
|
||||
"firmware": [
|
||||
{
|
||||
"role": "companionUsb",
|
||||
"github": {
|
||||
"type": "companion",
|
||||
"files": {
|
||||
"flash": "T_Beam_S3_Supreme_SX1262_companion_radio_usb.*?-merged\\.bin",
|
||||
"download": "T_Beam_S3_Supreme_SX1262_companion_radio_usb.*?-[a-f0-9]{7}\\.bin"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"role": "companionBle",
|
||||
"github": {
|
||||
"type": "companion",
|
||||
"files": {
|
||||
"flash": "T_Beam_S3_Supreme_SX1262_companion_radio_ble.*?-merged\\.bin",
|
||||
"download": "T_Beam_S3_Supreme_SX1262_companion_radio_ble.*?-[a-f0-9]{7}\\.bin"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"role": "repeater",
|
||||
"github": {
|
||||
"type": "repeater",
|
||||
"files": {
|
||||
"flash": "T_Beam_S3_Supreme_SX1262_repeater.*?-merged\\.bin",
|
||||
"download": "T_Beam_S3_Supreme_SX1262_repeater.*?-[a-f0-9]{7}\\.bin"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"role": "roomServer",
|
||||
"github": {
|
||||
"type": "room-server",
|
||||
"files": {
|
||||
"flash": "T_Beam_S3_Supreme_SX1262_room_server.*?-merged\\.bin",
|
||||
"download": "T_Beam_S3_Supreme_SX1262_room_server.*?-[a-f0-9]{7}\\.bin"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -179,8 +421,8 @@
|
|||
"github": {
|
||||
"type": "companion",
|
||||
"files": {
|
||||
"flash": ["LilyGo_T-Echo_companion_radio_ble","zip"],
|
||||
"download": ["LilyGo_T-Echo_companion_radio_ble","uf2"]
|
||||
"flash": "LilyGo_T-Echo_companion_radio_ble.*?\\.zip",
|
||||
"download": "LilyGo_T-Echo_companion_radio_ble.*?\\.uf2"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
@ -189,8 +431,8 @@
|
|||
"github": {
|
||||
"type": "repeater",
|
||||
"files": {
|
||||
"flash": ["LilyGo_T-Echo_repeater","zip"],
|
||||
"download": ["LilyGo_T-Echo_repeater","uf2"]
|
||||
"flash": "LilyGo_T-Echo_repeater.*?\\.zip",
|
||||
"download": "LilyGo_T-Echo_repeater.*?\\.uf2"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
@ -199,8 +441,8 @@
|
|||
"github": {
|
||||
"type": "room-server",
|
||||
"files": {
|
||||
"flash": ["LilyGo_T-Echo_room_server","zip"],
|
||||
"download": ["LilyGo_T-Echo_room_server","uf2"]
|
||||
"flash": "LilyGo_T-Echo_room_server.*?\\.zip",
|
||||
"download": "LilyGo_T-Echo_room_server.*?\\.uf2"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -216,7 +458,8 @@
|
|||
"github": {
|
||||
"type": "companion",
|
||||
"files": {
|
||||
"flash": ["LilyGo_TLora_V2_1_1_6_companion_radio_usb","merged.bin"]
|
||||
"flash": "LilyGo_TLora_V2_1_1_6_companion_radio_usb.*?-merged\\.bin",
|
||||
"download": "LilyGo_TLora_V2_1_1_6_companion_radio_usb.*?-[a-f0-9]{7}\\.bin"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
@ -225,7 +468,8 @@
|
|||
"github": {
|
||||
"type": "companion",
|
||||
"files": {
|
||||
"flash": ["LilyGo_TLora_V2_1_1_6_companion_radio_ble","merged.bin"]
|
||||
"flash": "LilyGo_TLora_V2_1_1_6_companion_radio_ble.*?-merged\\.bin",
|
||||
"download": "LilyGo_TLora_V2_1_1_6_companion_radio_ble.*?-[a-f0-9]{7}\\.bin"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
@ -234,7 +478,8 @@
|
|||
"github": {
|
||||
"type": "repeater",
|
||||
"files": {
|
||||
"flash": ["LilyGo_TLora_V2_1_1_6_Repeater","merged.bin"]
|
||||
"flash": "LilyGo_TLora_V2_1_1_6_Repeater.*?-merged\\.bin",
|
||||
"download": "LilyGo_TLora_V2_1_1_6_Repeater.*?-[a-f0-9]{7}\\.bin"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
@ -243,7 +488,8 @@
|
|||
"github": {
|
||||
"type": "room-server",
|
||||
"files": {
|
||||
"flash": ["LilyGo_TLora_V2_1_1_6_room_server","merged.bin"]
|
||||
"flash": "LilyGo_TLora_V2_1_1_6_room_server.*?-merged\\.bin",
|
||||
"download": "LilyGo_TLora_V2_1_1_6_room_server.*?-[a-f0-9]{7}\\.bin"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -259,7 +505,8 @@
|
|||
"github": {
|
||||
"type": "companion",
|
||||
"files": {
|
||||
"flash": ["Heltec_v2_companion_radio_usb","merged.bin"]
|
||||
"flash": "Heltec_v2_companion_radio_usb.*?-merged\\.bin",
|
||||
"download": "Heltec_v2_companion_radio_usb.*?-[a-f0-9]{7}\\.bin"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
@ -268,7 +515,8 @@
|
|||
"github": {
|
||||
"type": "companion",
|
||||
"files": {
|
||||
"flash": ["Heltec_v2_companion_radio_ble","merged.bin"]
|
||||
"flash": "Heltec_v2_companion_radio_ble.*?-merged\\.bin",
|
||||
"download": "Heltec_v2_companion_radio_ble.*?-[a-f0-9]{7}\\.bin"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
@ -277,7 +525,18 @@
|
|||
"github": {
|
||||
"type": "repeater",
|
||||
"files": {
|
||||
"flash": ["Heltec_v2_repeater","merged.bin"]
|
||||
"flash": "Heltec_v2_repeater.*?-merged\\.bin",
|
||||
"download": "Heltec_v2_repeater.*?-[a-f0-9]{7}\\.bin"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"role": "roomServer",
|
||||
"github": {
|
||||
"type": "room-server",
|
||||
"files": {
|
||||
"flash": "Heltec_v2_room_server.*?-merged\\.bin",
|
||||
"download": "Heltec_v2_room_server.*?-[a-f0-9]{7}\\.bin"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -293,7 +552,8 @@
|
|||
"github": {
|
||||
"type": "companion",
|
||||
"files": {
|
||||
"flash": ["Heltec_v3_companion_radio_usb","merged.bin"]
|
||||
"flash": "Heltec_v3_companion_radio_usb.*?-merged\\.bin",
|
||||
"download": "Heltec_v3_companion_radio_usb.*?-[a-f0-9]{7}\\.bin"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
@ -302,7 +562,8 @@
|
|||
"github": {
|
||||
"type": "companion",
|
||||
"files": {
|
||||
"flash": ["Heltec_v3_companion_radio_ble","merged.bin"]
|
||||
"flash": "Heltec_v3_companion_radio_ble.*?-merged\\.bin",
|
||||
"download": "Heltec_v3_companion_radio_ble.*?-[a-f0-9]{7}\\.bin"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
@ -311,7 +572,8 @@
|
|||
"github": {
|
||||
"type": "repeater",
|
||||
"files": {
|
||||
"flash": ["Heltec_v3_repeater","merged.bin"]
|
||||
"flash": "Heltec_v3_repeater.*?-merged\\.bin",
|
||||
"download": "Heltec_v3_repeater.*?-[a-f0-9]{7}\\.bin"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
@ -320,7 +582,8 @@
|
|||
"github": {
|
||||
"type": "room-server",
|
||||
"files": {
|
||||
"flash": ["Heltec_v3_room_server","merged.bin"]
|
||||
"flash": "Heltec_v3_room_server.*?-merged\\.bin",
|
||||
"download": "Heltec_v3_room_server.*?-[a-f0-9]{7}\\.bin"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -336,8 +599,8 @@
|
|||
"github": {
|
||||
"type": "companion",
|
||||
"files": {
|
||||
"flash": ["Heltec_t114_companion_radio_ble","zip"],
|
||||
"download": ["Heltec_t114_companion_radio_ble","uf2"]
|
||||
"flash": "Heltec_t114_companion_radio_ble.*?\\.zip",
|
||||
"download": "Heltec_t114_companion_radio_ble.*?\\.uf2"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
@ -346,8 +609,8 @@
|
|||
"github": {
|
||||
"type": "repeater",
|
||||
"files": {
|
||||
"flash": ["Heltec_t114_repeater","zip"],
|
||||
"download": ["Heltec_t114_repeater","uf2"]
|
||||
"flash": "Heltec_t114_repeater.*?\\.zip",
|
||||
"download": "Heltec_t114_repeater.*?\\.uf2"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
@ -356,8 +619,8 @@
|
|||
"github": {
|
||||
"type": "room-server",
|
||||
"files": {
|
||||
"flash": ["Heltec_t114_room_server","zip"],
|
||||
"download": ["Heltec_t114_room_server","uf2"]
|
||||
"flash": "Heltec_t114_room_server.*?\\.zip",
|
||||
"download": "Heltec_t114_room_server.*?\\.uf2"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -373,7 +636,28 @@
|
|||
"github": {
|
||||
"type": "companion",
|
||||
"files": {
|
||||
"flash": ["Heltec_WSL3_companion_radio_ble","merged.bin"]
|
||||
"flash": "Heltec_WSL3_companion_radio_ble.*?-merged\\.bin",
|
||||
"download": "Heltec_WSL3_companion_radio_ble.*?-[a-f0-9]{7}\\.bin"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"role": "repeater",
|
||||
"github": {
|
||||
"type": "repeater",
|
||||
"files": {
|
||||
"flash": "Heltec_WSL3_repeater.*?-merged\\.bin",
|
||||
"download": "Heltec_WSL3_repeater.*?-[a-f0-9]{7}\\.bin"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"role": "roomServer",
|
||||
"github": {
|
||||
"type": "room-server",
|
||||
"files": {
|
||||
"flash": "Heltec_WSL3_room_server.*?-merged\\.bin",
|
||||
"download": "Heltec_WSL3_room_server.*?-[a-f0-9]{7}\\.bin"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -389,8 +673,8 @@
|
|||
"github": {
|
||||
"type": "companion",
|
||||
"files": {
|
||||
"flash": ["RAK_4631_companion_radio_usb", "zip"],
|
||||
"download": ["RAK_4631_companion_radio_usb", "uf2"]
|
||||
"flash": "RAK_4631_companion_radio_usb.*?\\.zip",
|
||||
"download": "RAK_4631_companion_radio_usb.*?\\.uf2"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
@ -399,8 +683,8 @@
|
|||
"github": {
|
||||
"type": "companion",
|
||||
"files": {
|
||||
"flash": ["RAK_4631_companion_radio_ble", "zip"],
|
||||
"download": ["RAK_4631_companion_radio_ble", "uf2"]
|
||||
"flash": "RAK_4631_companion_radio_ble.*?\\.zip",
|
||||
"download": "RAK_4631_companion_radio_ble.*?\\.uf2"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
@ -409,8 +693,8 @@
|
|||
"github": {
|
||||
"type": "repeater",
|
||||
"files": {
|
||||
"flash": ["RAK_4631_Repeater", "zip"],
|
||||
"download": ["RAK_4631_Repeater", "uf2"]
|
||||
"flash": "RAK_4631_Repeater.*?\\.zip",
|
||||
"download": "RAK_4631_Repeater.*?\\.uf2"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
@ -419,8 +703,8 @@
|
|||
"github": {
|
||||
"type": "room-server",
|
||||
"files": {
|
||||
"flash": ["RAK_4631_room_server", "zip"],
|
||||
"download": ["RAK_4631_room_server", "uf2"]
|
||||
"flash": "RAK_4631_room_server.*?\\.zip",
|
||||
"download": "RAK_4631_room_server.*?\\.uf2"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -436,8 +720,8 @@
|
|||
"github": {
|
||||
"type": "companion",
|
||||
"files": {
|
||||
"flash": ["t1000e_companion_radio_ble", "zip"],
|
||||
"download": ["t1000e_companion_radio_ble", "uf2"]
|
||||
"flash": "t1000e_companion_radio_ble.*?\\.zip",
|
||||
"download": "t1000e_companion_radio_ble.*?\\.uf2"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -450,21 +734,23 @@
|
|||
"firmware": [
|
||||
{
|
||||
"role": "repeater",
|
||||
"subTitle": "(sx1262 version)",
|
||||
"subTitle": "(SX1262 version)",
|
||||
"github": {
|
||||
"type": "repeater",
|
||||
"files": {
|
||||
"flash": ["Xiao_C3_Repeater_sx1262","merged.bin"]
|
||||
"flash": "Xiao_C3_Repeater_sx1262.*?-merged\\.bin",
|
||||
"download": "Xiao_C3_Repeater_sx1262.*?-[a-f0-9]{7}\\.bin"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"role": "repeater",
|
||||
"subTitle": "(sx1268 version)",
|
||||
"subTitle": "(SX1268 version)",
|
||||
"github": {
|
||||
"type": "repeater",
|
||||
"files": {
|
||||
"flash": ["Xiao_C3_Repeater_sx1268","merged.bin"]
|
||||
"flash": "Xiao_C3_Repeater_sx1268.*?-merged\\.bin",
|
||||
"download": "Xiao_C3_Repeater_sx1268.*?-[a-f0-9]{7}\\.bin"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -480,7 +766,8 @@
|
|||
"github": {
|
||||
"type": "companion",
|
||||
"files": {
|
||||
"flash": ["Xiao_S3_WIO_companion_radio_ble","merged.bin"]
|
||||
"flash": "Xiao_S3_WIO_companion_radio_ble.*?-merged\\.bin",
|
||||
"download": "Xiao_S3_WIO_companion_radio_ble.*?-[a-f0-9]{7}\\.bin"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
@ -489,7 +776,55 @@
|
|||
"github": {
|
||||
"type": "repeater",
|
||||
"files": {
|
||||
"flash": ["Xiao_S3_WIO_Repeater","merged.bin"]
|
||||
"flash": "Xiao_S3_WIO_Repeater.*?-merged\\.bin",
|
||||
"download": "Xiao_S3_WIO_Repeater.*?-[a-f0-9]{7}\\.bin"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"role": "roomServer",
|
||||
"github": {
|
||||
"type": "room-server",
|
||||
"files": {
|
||||
"flash": "Xiao_S3_WIO_room_server.*?-merged\\.bin",
|
||||
"download": "Xiao_S3_WIO_room_server.*?-[a-f0-9]{7}\\.bin"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Seeed Studio Xiao nRF52 WIO",
|
||||
"tooltip": "<img class='device' src='/img/xiao_nrf52.png'>",
|
||||
"type": "nrf52",
|
||||
"firmware": [
|
||||
{
|
||||
"role": "companionBle",
|
||||
"github": {
|
||||
"type": "companion",
|
||||
"files": {
|
||||
"flash": "Xiao_nrf52_companion_radio_ble.*?\\.zip",
|
||||
"download": "Xiao_nrf52_companion_radio_ble.*?\\.uf2"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"role": "repeater",
|
||||
"github": {
|
||||
"type": "repeater",
|
||||
"files": {
|
||||
"flash": "Xiao_nrf52_repeater.*?\\.zip",
|
||||
"download": "Xiao_nrf52_repeater.*?\\.uf2"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"role": "roomServer",
|
||||
"github": {
|
||||
"type": "room-server",
|
||||
"files": {
|
||||
"flash": "Xiao_nrf52_room_server.*?\\.zip",
|
||||
"download": "Xiao_nrf52_room_server.*?\\.uf2"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -505,7 +840,8 @@
|
|||
"github": {
|
||||
"type": "repeater",
|
||||
"files": {
|
||||
"flash": ["Station_G2_repeater", "merged.bin"]
|
||||
"flash": "Station_G2_repeater.*?-merged\\.bin",
|
||||
"download": "Station_G2_repeater.*?-[a-f0-9]{7}\\.bin"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
@ -514,7 +850,102 @@
|
|||
"github": {
|
||||
"type": "room-server",
|
||||
"files": {
|
||||
"flash": ["Station_G2_room_server", "merged.bin"]
|
||||
"flash": "Station_G2_room_server.*?-merged\\.bin",
|
||||
"download": "Station_G2_room_server.*?-[a-f0-9]{7}\\.bin"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "ProMicro (SX1262)",
|
||||
"type": "nrf52",
|
||||
"tooltip": "<img class='device' src='/img/promicro_sx1262.png'>",
|
||||
"firmware": [
|
||||
{
|
||||
"role": "companionUsb",
|
||||
"github": {
|
||||
"type": "companion",
|
||||
"files": {
|
||||
"flash": "Faketec_companion_radio_usb.*?\\.zip",
|
||||
"download": "Faketec_companion_radio_usb.*?\\.uf2"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"role": "companionBle",
|
||||
"github": {
|
||||
"type": "companion",
|
||||
"files": {
|
||||
"flash": "Faketec_companion_radio_ble.*?\\.zip",
|
||||
"download": "Faketec_companion_radio_ble.*?\\.uf2"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"role": "repeater",
|
||||
"github": {
|
||||
"type": "repeater",
|
||||
"files": {
|
||||
"flash": "Faketec_Repeater.*?\\.zip",
|
||||
"download": "Faketec_Repeater.*?\\.uf2"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"role": "roomServer",
|
||||
"github": {
|
||||
"type": "room-server",
|
||||
"files": {
|
||||
"flash": "Faketec_room_server.*?\\.zip",
|
||||
"download": "Faketec_room_server.*?\\.uf2"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "ProMicro (LLCC68)",
|
||||
"type": "nrf52",
|
||||
"tooltip":"",
|
||||
"firmware": [
|
||||
{
|
||||
"role": "companionUsb",
|
||||
"github": {
|
||||
"type": "companion",
|
||||
"files": {
|
||||
"flash": "ProMicroLLCC68_companion_radio_usb.*?\\.zip",
|
||||
"download": "ProMicroLLCC68_companion_radio_usb.*?\\.uf2"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"role": "companionBle",
|
||||
"github": {
|
||||
"type": "companion",
|
||||
"files": {
|
||||
"flash": "ProMicroLLCC68_companion_radio_ble.*?\\.zip",
|
||||
"download": "ProMicroLLCC68_companion_radio_ble.*?\\.uf2"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"role": "repeater",
|
||||
"github": {
|
||||
"type": "repeater",
|
||||
"files": {
|
||||
"flash": "ProMicroLLCC68_Repeater.*?\\.zip",
|
||||
"download": "ProMicroLLCC68_Repeater.*?\\.uf2"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"role": "roomServer",
|
||||
"github": {
|
||||
"type": "room-server",
|
||||
"files": {
|
||||
"flash": "ProMicroLLCC68_room_server.*?\\.zip",
|
||||
"download": "ProMicroLLCC68_room_server.*?\\.uf2"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -52,4 +52,14 @@ body {
|
|||
}
|
||||
#app .console-input:focus, #app console-input:focus{
|
||||
outline: none;
|
||||
}
|
||||
#app .pre {
|
||||
white-space-collapse: preserve;
|
||||
min-width: 300px;
|
||||
}
|
||||
#app .version {
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
#app .version div.field {
|
||||
min-width: 140px;
|
||||
}
|
||||
21
flasher.js
21
flasher.js
|
|
@ -43,7 +43,7 @@ const commandReference = {
|
|||
|
||||
function getGithubReleases(roleType, files) {
|
||||
const versions = {};
|
||||
for(const [fileType, [startsWith, endsWith]] of Object.entries(files)) {
|
||||
for(const [fileType, matchRE] of Object.entries(files)) {
|
||||
for(const versionType of github) {
|
||||
if(versionType.type !== roleType) { continue }
|
||||
const version = versions[versionType.version] ??= {
|
||||
|
|
@ -51,7 +51,7 @@ function getGithubReleases(roleType, files) {
|
|||
files: []
|
||||
};
|
||||
for(const file of versionType.files) {
|
||||
if(!(file.name.startsWith(startsWith) && file.name.endsWith(endsWith))) { continue }
|
||||
if(!new RegExp(matchRE).test(file.name)) { continue }
|
||||
version.files.push({
|
||||
type: fileType,
|
||||
name: file.url,
|
||||
|
|
@ -70,6 +70,11 @@ function addGithubFiles() {
|
|||
const gDef = firmware.github;
|
||||
if(!gDef?.files) { continue }
|
||||
firmware.version = getGithubReleases(gDef.type, gDef.files);
|
||||
|
||||
// clean versions without files
|
||||
for(const [verName, verValue] of Object.entries(firmware.version)) {
|
||||
if(verValue.files.length === 0) delete firmware.version[verName]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -179,10 +184,17 @@ function setup() {
|
|||
flashing.instance = null;
|
||||
}
|
||||
|
||||
const openSerialGUI = () => {
|
||||
window.open('https://config.meshcore.dev','meshcore_config','directories=no,titlebar=no,toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no,width=1000,height=800');
|
||||
}
|
||||
|
||||
const openSerialCon = async() => {
|
||||
const port = selected.port = await navigator.serial.requestPort();
|
||||
const serialConsole = serialCon.instance = new SerialConsole(port);
|
||||
serialCon.content = 'Welcome to MeshCore serial console.\n';
|
||||
serialCon.content = 'Welcome to MeshCore serial console.\n'
|
||||
serialCon.content += '-------------------------------------------------------------------------\n';
|
||||
serialCon.content += 'WARNING: This console only works with *Repeater* and *Room server* roles.\n';
|
||||
serialCon.content += '-------------------------------------------------------------------------\n';
|
||||
serialCon.content += 'If you came here right after flashing, please restart your device.\n';
|
||||
serialCon.content += 'Click on the cursor to get all supported commands.\n\n';
|
||||
serialConsole.onOutput = (text) => {
|
||||
|
|
@ -350,7 +362,8 @@ function setup() {
|
|||
consoleEditBox, consoleWindow,
|
||||
config, selected, flashing,
|
||||
flashDevice, flasherCleanup, dfuMode,
|
||||
serialCon, openSerialCon, sendCommand, closeSerialCon,
|
||||
serialCon, closeSerialCon, openSerialCon,
|
||||
sendCommand, openSerialGUI,
|
||||
refresh, commandReference,
|
||||
stepBack,
|
||||
customFirmwareLoad, getFirmwarePath, getSelFwValue, getRoleFwValue,
|
||||
|
|
|
|||
BIN
img/lilygo_tbeam.png
Normal file
BIN
img/lilygo_tbeam.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 55 KiB |
BIN
img/lilygo_tbeam_supreme.png
Normal file
BIN
img/lilygo_tbeam_supreme.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 39 KiB |
BIN
img/promicro_sx1262.png
Normal file
BIN
img/promicro_sx1262.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 88 KiB |
BIN
img/xiao_nrf52.png
Normal file
BIN
img/xiao_nrf52.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 96 KiB |
24
index.html
24
index.html
|
|
@ -9,7 +9,6 @@
|
|||
<link href="./css/flasher.css" rel="stylesheet">
|
||||
<script type="module" src="./flasher.js"></script>
|
||||
</head>
|
||||
|
||||
<body class="dark">
|
||||
<div id="app" v-cloak>
|
||||
<div class="flash-container">
|
||||
|
|
@ -40,13 +39,16 @@
|
|||
</div>
|
||||
<div class="max" v-else>
|
||||
<h6>Flashing complete!</h6>
|
||||
<p v-if="selected.firmware.role === 'roomServer' || selected.firmware.role === 'repeater'">
|
||||
Before you use <b><a target="_blank" href="https://config.meshcore.dev/">Repeater/Room server setup</a></b>, please restart your device.
|
||||
</p>
|
||||
<p>
|
||||
<button @click="flasherCleanup()">Close</button>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="autoscroller">
|
||||
<pre class="term" v-if="flashing.terminal">{{ flashing.terminal }}</pre>
|
||||
<pre class="term" v-if="flashing.log">{{ flashing.log }}</pre>
|
||||
</div>
|
||||
<nav>
|
||||
<progress :value="flashing.percentage" max="100"></progress>
|
||||
|
|
@ -63,7 +65,7 @@
|
|||
<i>{{ getRoleFwValue(selected.firmware, 'icon') }}</i>
|
||||
<span class="small">{{ getRoleFwValue(selected.firmware, 'title') }}</span>
|
||||
</nav>
|
||||
<nav>
|
||||
<nav class="version">
|
||||
<div class="field label suffix border small">
|
||||
<select v-model="selected.version">
|
||||
<template v-for="(version, versionName) in selected.firmware.version">
|
||||
|
|
@ -73,9 +75,9 @@
|
|||
<label>Version</label>
|
||||
<i>arrow_drop_down</i>
|
||||
</div>
|
||||
<span v-if="getSelFwValue('notes')" class="max">
|
||||
<div class="max small-padding pre" v-if="getSelFwValue('notes')">
|
||||
{{ getSelFwValue('notes') }}
|
||||
</span>
|
||||
</div>
|
||||
</nav>
|
||||
</header>
|
||||
<ul class="list border" v-if="selected.device.type === 'esp32'">
|
||||
|
|
@ -90,7 +92,9 @@
|
|||
</label>
|
||||
</li>
|
||||
</ul>
|
||||
<button @click="dfuMode" :disabled="flashing.dfuComplete || !flashing.supported" v-if="selected.device.type === 'nrf52'">
|
||||
<template v-if="selected.device.type === 'nrf52'">
|
||||
<div class="small-space"></div>
|
||||
<button @click="dfuMode" :disabled="flashing.dfuComplete || !flashing.supported">
|
||||
<i>{{ flashing.dfuComplete ? 'check' : 'code' }}</i>
|
||||
<span>{{ flashing.dfuComplete ? 'DFU mode active' : 'Enter DFU mode' }}</span>
|
||||
<div class="tooltip right max" v-if="flashing.supported">
|
||||
|
|
@ -101,6 +105,7 @@
|
|||
Your browser doesn't support Web Serial API. Please use Chrome or Edge on Desktop
|
||||
</div>
|
||||
</button>
|
||||
</template>
|
||||
<div class="medium-space"></div>
|
||||
<nav class="small-margin">
|
||||
<button @click="flashDevice" :disabled="!flashing.supported">
|
||||
|
|
@ -157,6 +162,11 @@
|
|||
<nav>
|
||||
<i>bolt</i>
|
||||
<h5 class="small max">MeshCore flasher</h5>
|
||||
<button class="transparent hide-mobile" @click="openSerialGUI()">
|
||||
<i>manufacturing</i>
|
||||
<span>Repeater Setup</span>
|
||||
<div class="tooltip left max">Open GUI to configure Repeaters and Room servers via USB serial</div>
|
||||
</button>
|
||||
<button class="transparent" @click="openSerialCon()">
|
||||
<i>terminal</i>
|
||||
<span>Console</span>
|
||||
|
|
@ -210,5 +220,5 @@
|
|||
|
||||
</div>
|
||||
</body>
|
||||
|
||||
<script type="module" src="https://cdn.jsdelivr.net/npm/@open-iframe-resizer/core@latest/dist/index.js"></script>
|
||||
</html>
|
||||
Loading…
Add table
Add a link
Reference in a new issue