diff --git a/generator/generator.py b/generator/generator.py index 281c4e65..14b5bf81 100644 --- a/generator/generator.py +++ b/generator/generator.py @@ -38,7 +38,7 @@ def split_property_and_drop_first_level(s): # Generate and copy loader Sketch binary data for specified board def create_loader_data(simple_fqbn, binary): - loader_path = f"firmwares/loader/{simple_fqbn}/loader.bin" + loader_path = f"firmwares/loader/{simple_fqbn}/loader{binary.suffix}" loader = Path(__file__).parent / loader_path loader.parent.mkdir(parents=True, exist_ok=True) shutil.copyfile(binary, loader) @@ -79,7 +79,7 @@ def get_uploader_id(tools, tool_executable): return f"{packager}:{name}@{version}" -def create_upload_data(fqbn, installed_cores): +def create_upload_data(fqbn, installed_cores): # noqa: C901 upload_data = {} # Assume we're on Linux arduino15 = Path.home() / ".arduino15" @@ -90,16 +90,14 @@ def create_upload_data(fqbn, installed_cores): # Get the core install dir core = installed_cores[core_id] (maintainer, arch) = core_id.split(":") - core_install_dir = ( - arduino15 / "packages" / maintainer / "hardware" / arch / core["installed"] - ) + core_install_dir = arduino15 / "packages" / maintainer / "hardware" / arch / core["installed"] with open(core_install_dir / "boards.txt") as f: boards_txt = f.readlines() board_upload_data = {} for line in boards_txt: - if line.startswith(f"{board_id}.upload"): + if line.startswith(f"{board_id}."): (k, v) = split_property_and_drop_first_level(line) board_upload_data[k] = v @@ -110,7 +108,7 @@ def create_upload_data(fqbn, installed_cores): platform_upload_data = {} for line in platform_txt: - if line.startswith(f"tools.{tool}"): + if line.startswith(f"tools.{tool}."): (k, v) = split_property_and_drop_first_level(line) platform_upload_data[k] = v @@ -129,12 +127,11 @@ def create_upload_data(fqbn, installed_cores): tools = installed_json_data["packages"][0]["platforms"][0]["toolsDependencies"] upload_data["uploader"] = get_uploader_id(tools, tool_executable) - # We already store the tool name in a different manner - del board_upload_data["upload.tool"] - # Save also all the upload properties - for k, v in board_upload_data.items(): - if v: - upload_data[k] = v + if "upload.use_1200bps_touch" in board_upload_data: + upload_data["upload.use_1200bps_touch"] = board_upload_data["upload.use_1200bps_touch"] + + if "upload.wait_for_upload_port" in board_upload_data: + upload_data["upload.wait_for_upload_port"] = board_upload_data["upload.wait_for_upload_port"] # Get the command used to upload and modifies it a bit command = ( @@ -145,6 +142,26 @@ def create_upload_data(fqbn, installed_cores): .replace('\\"', "") ) + if fqbn == "arduino:megaavr:uno2018": + # Long story short if we don't do this we'd have to host also the bootloader + # for the Uno WiFi rev2 and we don't want to, so we just remove this field + # and use a precompiled Loader Sketh binary that includes the bootloader. + command = command.replace("{upload.extra_files}", "") + + # Get the rest of the params + params = {} + for k, v in platform_upload_data.items(): + if f"{tool}.upload.params." in k: + param = k.split(".")[-1] + params[f"upload.{param}"] = v + elif f"{tool}.upload." in k: + k = ".".join(k.split(".")[1:]) + params[k] = v + + # Prepare the command + for k, v in {**board_upload_data, **params}.items(): + command = command.replace(f"{{{k}}}", v) + upload_data["uploader.command"] = command return upload_data @@ -174,9 +191,7 @@ def generate_boards_json(input_data, arduino_cli_path): } # Gets the installed cores - res = arduino_cli( - cli_path=arduino_cli_path, args=["core", "list", "--format", "json"] - ) + res = arduino_cli(cli_path=arduino_cli_path, args=["core", "list", "--format", "json"]) installed_cores = {c["id"]: c for c in json.loads(res)} # Verify all necessary cores are installed @@ -193,15 +208,13 @@ def generate_boards_json(input_data, arduino_cli_path): for _, v in data.items(): item = v[0] - binary = Path(item["Path"]) + binary = Path(__file__).parent / ".." / item["Path"] if item["IsLoader"]: boards[fqbn]["loader_sketch"] = create_loader_data(simple_fqbn, binary) else: module, version = item["version"].split("/") - boards[fqbn]["firmware"].append( - create_firmware_data(binary, module, version) - ) + boards[fqbn]["firmware"].append(create_firmware_data(binary, module, version)) boards[fqbn]["module"] = module res = arduino_cli( diff --git a/generator/raw_boards.json b/generator/raw_boards.json index e43617b9..553d0434 100644 --- a/generator/raw_boards.json +++ b/generator/raw_boards.json @@ -1,525 +1,525 @@ { "mkr1000": { - "/home/alien/workspace/FirmwareUploader/firmwares/WINC1500": [ + "firmwares/WINC1500": [ { "version": "WINC1500", - "Path": "/home/alien/workspace/FirmwareUploader/firmwares/WINC1500/FirmwareUpdater.mkr1000.ino.bin", + "Path": "firmwares/WINC1500/FirmwareUpdater.mkr1000.ino.bin", "Name": "firmwares WINC1500", "IsLoader": true } ], - "/home/alien/workspace/FirmwareUploader/firmwares/WINC1500/19.4.4": [ + "firmwares/WINC1500/19.4.4": [ { "version": "WINC1500/19.4.4", - "Path": "/home/alien/workspace/FirmwareUploader/firmwares/WINC1500/19.4.4/m2m_aio_3a0.bin", + "Path": "firmwares/WINC1500/19.4.4/m2m_aio_3a0.bin", "Name": "WINC1500 19.4.4", "IsLoader": false } ], - "/home/alien/workspace/FirmwareUploader/firmwares/WINC1500/19.5.2": [ + "firmwares/WINC1500/19.5.2": [ { "version": "WINC1500/19.5.2", - "Path": "/home/alien/workspace/FirmwareUploader/firmwares/WINC1500/19.5.2/m2m_aio_3a0.bin", + "Path": "firmwares/WINC1500/19.5.2/m2m_aio_3a0.bin", "Name": "WINC1500 19.5.2", "IsLoader": false } ], - "/home/alien/workspace/FirmwareUploader/firmwares/WINC1500/19.5.4": [ + "firmwares/WINC1500/19.5.4": [ { "version": "WINC1500/19.5.4", - "Path": "/home/alien/workspace/FirmwareUploader/firmwares/WINC1500/19.5.4/m2m_aio_3a0.bin", + "Path": "firmwares/WINC1500/19.5.4/m2m_aio_3a0.bin", "Name": "WINC1500 19.5.4", "IsLoader": false } ], - "/home/alien/workspace/FirmwareUploader/firmwares/WINC1500/19.6.1": [ + "firmwares/WINC1500/19.6.1": [ { "version": "WINC1500/19.6.1", - "Path": "/home/alien/workspace/FirmwareUploader/firmwares/WINC1500/19.6.1/m2m_aio_3a0.bin", + "Path": "firmwares/WINC1500/19.6.1/m2m_aio_3a0.bin", "Name": "WINC1500 19.6.1", "IsLoader": false } ] }, "mkrwifi1010": { - "/home/alien/workspace/FirmwareUploader/firmwares/NINA": [ + "firmwares/NINA": [ { "version": "NINA", - "Path": "/home/alien/workspace/FirmwareUploader/firmwares/NINA/FirmwareUpdater.mkrwifi1010.ino.bin", + "Path": "firmwares/NINA/FirmwareUpdater.mkrwifi1010.ino.bin", "Name": "firmwares NINA", "IsLoader": true } ], - "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.0.0": [ + "firmwares/NINA/1.0.0": [ { "version": "NINA/1.0.0", - "Path": "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.0.0/NINA_W102.bin", + "Path": "firmwares/NINA/1.0.0/NINA_W102.bin", "Name": "NINA 1.0.0", "IsLoader": false } ], - "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.1.0": [ + "firmwares/NINA/1.1.0": [ { "version": "NINA/1.1.0", - "Path": "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.1.0/NINA_W102.bin", + "Path": "firmwares/NINA/1.1.0/NINA_W102.bin", "Name": "NINA 1.1.0", "IsLoader": false } ], - "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.2.1": [ + "firmwares/NINA/1.2.1": [ { "version": "NINA/1.2.1", - "Path": "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.2.1/NINA_W102.bin", + "Path": "firmwares/NINA/1.2.1/NINA_W102.bin", "Name": "NINA 1.2.1", "IsLoader": false } ], - "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.2.2": [ + "firmwares/NINA/1.2.2": [ { "version": "NINA/1.2.2", - "Path": "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.2.2/NINA_W102.bin", + "Path": "firmwares/NINA/1.2.2/NINA_W102.bin", "Name": "NINA 1.2.2", "IsLoader": false } ], - "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.2.3": [ + "firmwares/NINA/1.2.3": [ { "version": "NINA/1.2.3", - "Path": "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.2.3/NINA_W102.bin", + "Path": "firmwares/NINA/1.2.3/NINA_W102.bin", "Name": "NINA 1.2.3", "IsLoader": false } ], - "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.2.4": [ + "firmwares/NINA/1.2.4": [ { "version": "NINA/1.2.4", - "Path": "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.2.4/NINA_W102.bin", + "Path": "firmwares/NINA/1.2.4/NINA_W102.bin", "Name": "NINA 1.2.4", "IsLoader": false } ], - "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.3.0": [ + "firmwares/NINA/1.3.0": [ { "version": "NINA/1.3.0", - "Path": "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.3.0/NINA_W102.bin", + "Path": "firmwares/NINA/1.3.0/NINA_W102.bin", "Name": "NINA 1.3.0", "IsLoader": false } ], - "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.4.0": [ + "firmwares/NINA/1.4.0": [ { "version": "NINA/1.4.0", - "Path": "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.4.0/NINA_W102.bin", + "Path": "firmwares/NINA/1.4.0/NINA_W102.bin", "Name": "NINA 1.4.0", "IsLoader": false } ], - "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.4.1": [ + "firmwares/NINA/1.4.1": [ { "version": "NINA/1.4.1", - "Path": "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.4.1/NINA_W102.bin", + "Path": "firmwares/NINA/1.4.1/NINA_W102.bin", "Name": "NINA 1.4.1", "IsLoader": false } ], - "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.4.2": [ + "firmwares/NINA/1.4.2": [ { "version": "NINA/1.4.2", - "Path": "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.4.2/NINA_W102.bin", + "Path": "firmwares/NINA/1.4.2/NINA_W102.bin", "Name": "NINA 1.4.2", "IsLoader": false } ], - "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.4.3": [ + "firmwares/NINA/1.4.3": [ { "version": "NINA/1.4.3", - "Path": "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.4.3/NINA_W102.bin", + "Path": "firmwares/NINA/1.4.3/NINA_W102.bin", "Name": "NINA 1.4.3", "IsLoader": false } ], - "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.4.4": [ + "firmwares/NINA/1.4.4": [ { "version": "NINA/1.4.4", - "Path": "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.4.4/NINA_W102.bin", + "Path": "firmwares/NINA/1.4.4/NINA_W102.bin", "Name": "NINA 1.4.4", "IsLoader": false } ], - "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.4.5": [ + "firmwares/NINA/1.4.5": [ { "version": "NINA/1.4.5", - "Path": "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.4.5/NINA_W102.bin", + "Path": "firmwares/NINA/1.4.5/NINA_W102.bin", "Name": "NINA 1.4.5", "IsLoader": false } ] }, "nano_33_iot": { - "/home/alien/workspace/FirmwareUploader/firmwares/NINA": [ + "firmwares/NINA": [ { "version": "NINA", - "Path": "/home/alien/workspace/FirmwareUploader/firmwares/NINA/FirmwareUpdater.nano_33_iot.ino.bin", + "Path": "firmwares/NINA/FirmwareUpdater.nano_33_iot.ino.bin", "Name": "firmwares NINA", "IsLoader": true } ], - "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.0.0": [ + "firmwares/NINA/1.0.0": [ { "version": "NINA/1.0.0", - "Path": "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.0.0/NINA_W102.bin", + "Path": "firmwares/NINA/1.0.0/NINA_W102.bin", "Name": "NINA 1.0.0", "IsLoader": false } ], - "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.1.0": [ + "firmwares/NINA/1.1.0": [ { "version": "NINA/1.1.0", - "Path": "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.1.0/NINA_W102.bin", + "Path": "firmwares/NINA/1.1.0/NINA_W102.bin", "Name": "NINA 1.1.0", "IsLoader": false } ], - "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.2.1": [ + "firmwares/NINA/1.2.1": [ { "version": "NINA/1.2.1", - "Path": "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.2.1/NINA_W102.bin", + "Path": "firmwares/NINA/1.2.1/NINA_W102.bin", "Name": "NINA 1.2.1", "IsLoader": false } ], - "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.2.2": [ + "firmwares/NINA/1.2.2": [ { "version": "NINA/1.2.2", - "Path": "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.2.2/NINA_W102.bin", + "Path": "firmwares/NINA/1.2.2/NINA_W102.bin", "Name": "NINA 1.2.2", "IsLoader": false } ], - "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.2.3": [ + "firmwares/NINA/1.2.3": [ { "version": "NINA/1.2.3", - "Path": "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.2.3/NINA_W102.bin", + "Path": "firmwares/NINA/1.2.3/NINA_W102.bin", "Name": "NINA 1.2.3", "IsLoader": false } ], - "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.2.4": [ + "firmwares/NINA/1.2.4": [ { "version": "NINA/1.2.4", - "Path": "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.2.4/NINA_W102.bin", + "Path": "firmwares/NINA/1.2.4/NINA_W102.bin", "Name": "NINA 1.2.4", "IsLoader": false } ], - "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.3.0": [ + "firmwares/NINA/1.3.0": [ { "version": "NINA/1.3.0", - "Path": "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.3.0/NINA_W102.bin", + "Path": "firmwares/NINA/1.3.0/NINA_W102.bin", "Name": "NINA 1.3.0", "IsLoader": false } ], - "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.4.0": [ + "firmwares/NINA/1.4.0": [ { "version": "NINA/1.4.0", - "Path": "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.4.0/NINA_W102.bin", + "Path": "firmwares/NINA/1.4.0/NINA_W102.bin", "Name": "NINA 1.4.0", "IsLoader": false } ], - "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.4.1": [ + "firmwares/NINA/1.4.1": [ { "version": "NINA/1.4.1", - "Path": "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.4.1/NINA_W102.bin", + "Path": "firmwares/NINA/1.4.1/NINA_W102.bin", "Name": "NINA 1.4.1", "IsLoader": false } ], - "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.4.2": [ + "firmwares/NINA/1.4.2": [ { "version": "NINA/1.4.2", - "Path": "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.4.2/NINA_W102.bin", + "Path": "firmwares/NINA/1.4.2/NINA_W102.bin", "Name": "NINA 1.4.2", "IsLoader": false } ], - "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.4.3": [ + "firmwares/NINA/1.4.3": [ { "version": "NINA/1.4.3", - "Path": "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.4.3/NINA_W102.bin", + "Path": "firmwares/NINA/1.4.3/NINA_W102.bin", "Name": "NINA 1.4.3", "IsLoader": false } ], - "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.4.4": [ + "firmwares/NINA/1.4.4": [ { "version": "NINA/1.4.4", - "Path": "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.4.4/NINA_W102.bin", + "Path": "firmwares/NINA/1.4.4/NINA_W102.bin", "Name": "NINA 1.4.4", "IsLoader": false } ], - "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.4.5": [ + "firmwares/NINA/1.4.5": [ { "version": "NINA/1.4.5", - "Path": "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.4.5/NINA_W102.bin", + "Path": "firmwares/NINA/1.4.5/NINA_W102.bin", "Name": "NINA 1.4.5", "IsLoader": false } ] }, "mkrvidor4000": { - "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.0.0": [ + "firmwares/NINA/1.0.0": [ { "version": "NINA/1.0.0", - "Path": "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.0.0/NINA_W102.bin", + "Path": "firmwares/NINA/1.0.0/NINA_W102.bin", "Name": "NINA 1.0.0", "IsLoader": false } ], - "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.1.0": [ + "firmwares/NINA/1.1.0": [ { "version": "NINA/1.1.0", - "Path": "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.1.0/NINA_W102.bin", + "Path": "firmwares/NINA/1.1.0/NINA_W102.bin", "Name": "NINA 1.1.0", "IsLoader": false } ], - "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.2.1": [ + "firmwares/NINA/1.2.1": [ { "version": "NINA/1.2.1", - "Path": "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.2.1/NINA_W102.bin", + "Path": "firmwares/NINA/1.2.1/NINA_W102.bin", "Name": "NINA 1.2.1", "IsLoader": false } ], - "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.2.2": [ + "firmwares/NINA/1.2.2": [ { "version": "NINA/1.2.2", - "Path": "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.2.2/NINA_W102.bin", + "Path": "firmwares/NINA/1.2.2/NINA_W102.bin", "Name": "NINA 1.2.2", "IsLoader": false } ], - "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.2.3": [ + "firmwares/NINA/1.2.3": [ { "version": "NINA/1.2.3", - "Path": "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.2.3/NINA_W102.bin", + "Path": "firmwares/NINA/1.2.3/NINA_W102.bin", "Name": "NINA 1.2.3", "IsLoader": false } ], - "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.2.4": [ + "firmwares/NINA/1.2.4": [ { "version": "NINA/1.2.4", - "Path": "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.2.4/NINA_W102.bin", + "Path": "firmwares/NINA/1.2.4/NINA_W102.bin", "Name": "NINA 1.2.4", "IsLoader": false } ], - "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.3.0": [ + "firmwares/NINA/1.3.0": [ { "version": "NINA/1.3.0", - "Path": "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.3.0/NINA_W102.bin", + "Path": "firmwares/NINA/1.3.0/NINA_W102.bin", "Name": "NINA 1.3.0", "IsLoader": false } ], - "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.4.0": [ + "firmwares/NINA/1.4.0": [ { "version": "NINA/1.4.0", - "Path": "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.4.0/NINA_W102.bin", + "Path": "firmwares/NINA/1.4.0/NINA_W102.bin", "Name": "NINA 1.4.0", "IsLoader": false } ], - "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.4.1": [ + "firmwares/NINA/1.4.1": [ { "version": "NINA/1.4.1", - "Path": "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.4.1/NINA_W102.bin", + "Path": "firmwares/NINA/1.4.1/NINA_W102.bin", "Name": "NINA 1.4.1", "IsLoader": false } ], - "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.4.2": [ + "firmwares/NINA/1.4.2": [ { "version": "NINA/1.4.2", - "Path": "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.4.2/NINA_W102.bin", + "Path": "firmwares/NINA/1.4.2/NINA_W102.bin", "Name": "NINA 1.4.2", "IsLoader": false } ], - "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.4.3": [ + "firmwares/NINA/1.4.3": [ { "version": "NINA/1.4.3", - "Path": "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.4.3/NINA_W102.bin", + "Path": "firmwares/NINA/1.4.3/NINA_W102.bin", "Name": "NINA 1.4.3", "IsLoader": false } ], - "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.4.4": [ + "firmwares/NINA/1.4.4": [ { "version": "NINA/1.4.4", - "Path": "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.4.4/NINA_W102.bin", + "Path": "firmwares/NINA/1.4.4/NINA_W102.bin", "Name": "NINA 1.4.4", "IsLoader": false } ], - "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.4.5": [ + "firmwares/NINA/1.4.5": [ { "version": "NINA/1.4.5", - "Path": "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.4.5/NINA_W102.bin", + "Path": "firmwares/NINA/1.4.5/NINA_W102.bin", "Name": "NINA 1.4.5", "IsLoader": false } ] }, "uno2018": { - "/home/alien/workspace/FirmwareUploader/firmwares/NINA": [ + "firmwares/NINA": [ { "version": "NINA", - "Path": "/home/alien/workspace/FirmwareUploader/firmwares/NINA/FirmwareUpdater.unowifirev2.without_bl.ino.hex", + "Path": "firmwares/NINA/FirmwareUpdater.unowifirev2.with_bootloader.ino.hex", "Name": "firmwares NINA", "IsLoader": true } ], - "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.2.1": [ + "firmwares/NINA/1.2.1": [ { "version": "NINA/1.2.1", - "Path": "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.2.1/NINA_W102-Uno_WiFi_Rev2.bin", + "Path": "firmwares/NINA/1.2.1/NINA_W102-Uno_WiFi_Rev2.bin", "Name": "NINA 1.2.1", "IsLoader": false } ], - "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.2.2": [ + "firmwares/NINA/1.2.2": [ { "version": "NINA/1.2.2", - "Path": "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.2.2/NINA_W102-Uno_WiFi_Rev2.bin", + "Path": "firmwares/NINA/1.2.2/NINA_W102-Uno_WiFi_Rev2.bin", "Name": "NINA 1.2.2", "IsLoader": false } ], - "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.2.3": [ + "firmwares/NINA/1.2.3": [ { "version": "NINA/1.2.3", - "Path": "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.2.3/NINA_W102-Uno_WiFi_Rev2.bin", + "Path": "firmwares/NINA/1.2.3/NINA_W102-Uno_WiFi_Rev2.bin", "Name": "NINA 1.2.3", "IsLoader": false } ], - "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.2.4": [ + "firmwares/NINA/1.2.4": [ { "version": "NINA/1.2.4", - "Path": "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.2.4/NINA_W102-Uno_WiFi_Rev2.bin", + "Path": "firmwares/NINA/1.2.4/NINA_W102-Uno_WiFi_Rev2.bin", "Name": "NINA 1.2.4", "IsLoader": false } ], - "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.3.0": [ + "firmwares/NINA/1.3.0": [ { "version": "NINA/1.3.0", - "Path": "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.3.0/NINA_W102-Uno_WiFi_Rev2.bin", + "Path": "firmwares/NINA/1.3.0/NINA_W102-Uno_WiFi_Rev2.bin", "Name": "NINA 1.3.0", "IsLoader": false } ], - "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.4.0": [ + "firmwares/NINA/1.4.0": [ { "version": "NINA/1.4.0", - "Path": "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.4.0/NINA_W102-Uno_WiFi_Rev2.bin", + "Path": "firmwares/NINA/1.4.0/NINA_W102-Uno_WiFi_Rev2.bin", "Name": "NINA 1.4.0", "IsLoader": false } ], - "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.4.1": [ + "firmwares/NINA/1.4.1": [ { "version": "NINA/1.4.1", - "Path": "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.4.1/NINA_W102-Uno_WiFi_Rev2.bin", + "Path": "firmwares/NINA/1.4.1/NINA_W102-Uno_WiFi_Rev2.bin", "Name": "NINA 1.4.1", "IsLoader": false } ], - "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.4.2": [ + "firmwares/NINA/1.4.2": [ { "version": "NINA/1.4.2", - "Path": "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.4.2/NINA_W102-Uno_WiFi_Rev2.bin", + "Path": "firmwares/NINA/1.4.2/NINA_W102-Uno_WiFi_Rev2.bin", "Name": "NINA 1.4.2", "IsLoader": false } ], - "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.4.3": [ + "firmwares/NINA/1.4.3": [ { "version": "NINA/1.4.3", - "Path": "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.4.3/NINA_W102-Uno_WiFi_Rev2.bin", + "Path": "firmwares/NINA/1.4.3/NINA_W102-Uno_WiFi_Rev2.bin", "Name": "NINA 1.4.3", "IsLoader": false } ], - "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.4.4": [ + "firmwares/NINA/1.4.4": [ { "version": "NINA/1.4.4", - "Path": "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.4.4/NINA_W102-Uno_WiFi_Rev2.bin", + "Path": "firmwares/NINA/1.4.4/NINA_W102-Uno_WiFi_Rev2.bin", "Name": "NINA 1.4.4", "IsLoader": false } ], - "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.4.5": [ + "firmwares/NINA/1.4.5": [ { "version": "NINA/1.4.5", - "Path": "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.4.5/NINA_W102-Uno_WiFi_Rev2.bin", + "Path": "firmwares/NINA/1.4.5/NINA_W102-Uno_WiFi_Rev2.bin", "Name": "NINA 1.4.5", "IsLoader": false } ] }, "mkrnb1500": { - "/home/alien/workspace/FirmwareUploader/firmwares/SARA": [ + "firmwares/SARA": [ { "version": "SARA", - "Path": "/home/alien/workspace/FirmwareUploader/firmwares/SARA/SerialSARAPassthrough.ino.bin", + "Path": "firmwares/SARA/SerialSARAPassthrough.ino.bin", "Name": "firmwares SARA", "IsLoader": true } ], - "/home/alien/workspace/FirmwareUploader/firmwares/SARA/5.6A2.00-to-5.6A2.01": [ + "firmwares/SARA/5.6A2.00-to-5.6A2.01": [ { "version": "SARA/5.6A2.00-to-5.6A2.01", - "Path": "/home/alien/workspace/FirmwareUploader/firmwares/SARA/5.6A2_01/5.6A2.00-to-5.6A2.01.pkg", + "Path": "firmwares/SARA/5.6A2_01/5.6A2.00-to-5.6A2.01.pkg", "Name": "SARA 5.6A2_01 (5.6A2.00-to-5.6A2.01.pkg)", "IsLoader": false } ], - "/home/alien/workspace/FirmwareUploader/firmwares/SARA/5.6A2_01_to_99": [ + "firmwares/SARA/5.6A2_01_to_99": [ { "version": "SARA/5.6A2_01_to_99", - "Path": "/home/alien/workspace/FirmwareUploader/firmwares/SARA/5.6A2_01/5.6A2_01_to_99.pkg", + "Path": "firmwares/SARA/5.6A2_01/5.6A2_01_to_99.pkg", "Name": "SARA 5.6A2_01 (5.6A2_01_to_99.pkg)", "IsLoader": false } ], - "/home/alien/workspace/FirmwareUploader/firmwares/SARA/99_to_5.6A2_01": [ + "firmwares/SARA/99_to_5.6A2_01": [ { "version": "SARA/99_to_5.6A2_01", - "Path": "/home/alien/workspace/FirmwareUploader/firmwares/SARA/5.6A2_01/99_to_5.6A2_01.pkg", + "Path": "firmwares/SARA/5.6A2_01/99_to_5.6A2_01.pkg", "Name": "SARA 5.6A2_01 (99_to_5.6A2_01.pkg)", "IsLoader": false } ] }, "nanorp2040connect": { - "/home/alien/workspace/FirmwareUploader/firmwares/NINA": [ + "firmwares/NINA": [ { "version": "NINA", - "Path": "/home/alien/workspace/FirmwareUploader/firmwares/NINA/FirmwareUpdater.nanorp2040connect.ino.elf", + "Path": "firmwares/NINA/FirmwareUpdater.nanorp2040connect.ino.elf", "Name": "firmwares NINA", "IsLoader": true } ], - "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.4.5": [ + "firmwares/NINA/1.4.5": [ { "version": "NINA/1.4.5", - "Path": "/home/alien/workspace/FirmwareUploader/firmwares/NINA/1.4.5/NINA_W102-Nano_RP2040_Connect.bin", + "Path": "firmwares/NINA/1.4.5/NINA_W102-Nano_RP2040_Connect.bin", "Name": "NINA 1.4.5", "IsLoader": false }