Skip to content

refactor how the generator for the module_firmware_index.json works #84

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 12 commits into from
Jul 9, 2021

Conversation

umbynos
Copy link
Contributor

@umbynos umbynos commented Jul 8, 2021

The generator.py was using raw_boards.json file to build the module_firmware_index.json
This raw file was generated using the old FirmwareUpdater --get-available-for flag and was patched by hand.
I swapped it for a more structured boards.json file.
I also took the opportunity to rename and reorganize a bit the loaders and the firmwares...
Furthermore, I added also the loader used for the MKR Vidor 4000 (still to test).

To add a new firmware some steps must be followed:

  1. Create the directory with the version name under firmwares/<module_name>/
  2. Upload firmware binaries with the correct naming (put the fqbn in their name for the specific firmware binaries)
  3. Edit boards.json and add the version number if the firmware added is supported by that fqbn.

@umbynos umbynos added the type: enhancement Proposed improvement label Jul 8, 2021
@umbynos umbynos requested a review from a team July 8, 2021 14:21
@umbynos umbynos self-assigned this Jul 8, 2021
@umbynos
Copy link
Contributor Author

umbynos commented Jul 8, 2021

--- module_firmware_index_old.json
+++ module_firmware_index.json
@@ -4,28 +4,28 @@
     "firmware": [
       {
         "version": "19.4.4",
-        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/WINC1500/19.4.4/m2m_aio_3a0.bin",
+        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/WINC1500/19.4.4/WINC1500-arduino.samd.mkr1000.bin",
         "checksum": "SHA-256:f8be2a5ef10e109f685b7550d211ed11c07487de430b0e5994ca557160116c27",
         "size": "412308",
         "module": "WINC1500"
       },
       {
         "version": "19.5.2",
-        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/WINC1500/19.5.2/m2m_aio_3a0.bin",
+        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/WINC1500/19.5.2/WINC1500-arduino.samd.mkr1000.bin",
         "checksum": "SHA-256:e2e5aa2cf185745582002e2fed27c079d4228bc8d756281f43638c72061c9110",
         "size": "413604",
         "module": "WINC1500"
       },
       {
         "version": "19.5.4",
-        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/WINC1500/19.5.4/m2m_aio_3a0.bin",
+        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/WINC1500/19.5.4/WINC1500-arduino.samd.mkr1000.bin",
         "checksum": "SHA-256:146d3d5fccf65ff6d732e34077e56f1f0b2f69584fd8499db914ea11ed463042",
         "size": "413604",
         "module": "WINC1500"
       },
       {
         "version": "19.6.1",
-        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/WINC1500/19.6.1/m2m_aio_3a0.bin",
+        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/WINC1500/19.6.1/WINC1500-arduino.samd.mkr1000.bin",
         "checksum": "SHA-256:629a2553cb738be1424eaa707c00403ebce179fdb94008acec1f185a19a60c81",
         "size": "359356",
         "module": "WINC1500"
@@ -51,105 +51,105 @@
     "firmware": [
       {
         "version": "1.0.0",
-        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.0.0/NINA_W102.bin",
+        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.0.0/NINA.bin",
         "checksum": "SHA-256:3fe2cd90a0774e271624d42ab1b238d92c7495648e9918ad49dea3b20379905e",
         "size": "736256",
         "module": "NINA"
       },
       {
         "version": "1.1.0",
-        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.1.0/NINA_W102.bin",
+        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.1.0/NINA.bin",
         "checksum": "SHA-256:3b38f44a2e2e2d28995973f432bc2795f7c58a14e8638f55e3f024ffa499bcf8",
         "size": "814080",
         "module": "NINA"
       },
       {
         "version": "1.2.1",
-        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.1/NINA_W102.bin",
+        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.1/NINA.bin",
         "checksum": "SHA-256:3121bf4074fce0248946810c4d03f5d3fb1296cd4667aeb801b5d066e1b07ff3",
         "size": "880640",
         "module": "NINA"
       },
       {
         "version": "1.2.2",
-        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.2/NINA_W102.bin",
+        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.2/NINA.bin",
         "checksum": "SHA-256:71d0a49a4d79aa46dff6f434383133b4365581407846d709fbd961e2b770eb3c",
         "size": "893952",
         "module": "NINA"
       },
       {
         "version": "1.2.3",
-        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.3/NINA_W102.bin",
+        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.3/NINA.bin",
         "checksum": "SHA-256:9c908f33cc05831972833a274f65baf84da35c61fc081856959211ae3504c899",
         "size": "893952",
         "module": "NINA"
       },
       {
         "version": "1.2.4",
-        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.4/NINA_W102.bin",
+        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.4/NINA.bin",
         "checksum": "SHA-256:8b9c07abdaa5647c47466aa3c575e743495a295fd8db2fe91b7e28fe4135ffad",
         "size": "917504",
         "module": "NINA"
       },
       {
         "version": "1.3.0",
-        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.3.0/NINA_W102.bin",
+        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.3.0/NINA.bin",
         "checksum": "SHA-256:aa37c920df18aabc6544df93c64bea6b3b97841b68ff4a6a53d2b800b265d2b5",
         "size": "986112",
         "module": "NINA"
       },
       {
         "version": "1.4.0",
-        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.0/NINA_W102.bin",
+        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.0/NINA.bin",
         "checksum": "SHA-256:ca5ed0b5efd727dd3c507f39a744e171ce690ef17b116c0571f18d1fea17aa85",
         "size": "1035264",
         "module": "NINA"
       },
       {
         "version": "1.4.1",
-        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.1/NINA_W102.bin",
+        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.1/NINA.bin",
         "checksum": "SHA-256:b20f213bc886a95556fc5cec5003c7ebc617da83581ba20fb9f96db003063bbd",
         "size": "1208320",
         "module": "NINA"
       },
       {
         "version": "1.4.2",
-        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.2/NINA_W102.bin",
+        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.2/NINA.bin",
         "checksum": "SHA-256:61d0acbd3d2eeb45b6971448d9537f7c4fa27f264e20970ad5dfdd4cbfdd8ee0",
         "size": "1125376",
         "module": "NINA"
       },
       {
         "version": "1.4.3",
-        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.3/NINA_W102.bin",
+        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.3/NINA.bin",
         "checksum": "SHA-256:8c10c3ee3b8fb2ade3a650b41a3081566fc160e89b32e5d0ee040e63647692b8",
         "size": "1125376",
         "module": "NINA"
       },
       {
         "version": "1.4.4",
-        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.4/NINA_W102.bin",
+        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.4/NINA.bin",
         "checksum": "SHA-256:c8678e00ab9b2dc99cdc45ef577b77498dac802c3f5b99961da190374fddcef8",
         "size": "1125376",
         "module": "NINA"
       },
       {
         "version": "1.4.5",
-        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.5/NINA_W102.bin",
+        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.5/NINA.bin",
         "checksum": "SHA-256:7c2814c8f879e62d234d7ac3a9c28f9a2d1e1dbc3569bd740761ca796247a4c9",
         "size": "1127424",
         "module": "NINA"
       },
       {
         "version": "1.4.6",
-        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.6/NINA_W102.bin",
+        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.6/NINA.bin",
         "checksum": "SHA-256:9f3df8446bb5038437bfd25b4fe06cb84b32bff29c5ba8eea852b49d059837f7",
         "size": "1127424",
         "module": "NINA"
       },
       {
         "version": "1.4.7",
-        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.7/NINA_W102.bin",
+        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.7/NINA.bin",
         "checksum": "SHA-256:22cfa44b41bf4219a025b93a33752528735ba82cb638999ff4015c5579a46cef",
         "size": "1127424",
         "module": "NINA"
@@ -175,105 +175,105 @@
     "firmware": [
       {
         "version": "1.0.0",
-        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.0.0/NINA_W102.bin",
+        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.0.0/NINA.bin",
         "checksum": "SHA-256:3fe2cd90a0774e271624d42ab1b238d92c7495648e9918ad49dea3b20379905e",
         "size": "736256",
         "module": "NINA"
       },
       {
         "version": "1.1.0",
-        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.1.0/NINA_W102.bin",
+        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.1.0/NINA.bin",
         "checksum": "SHA-256:3b38f44a2e2e2d28995973f432bc2795f7c58a14e8638f55e3f024ffa499bcf8",
         "size": "814080",
         "module": "NINA"
       },
       {
         "version": "1.2.1",
-        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.1/NINA_W102.bin",
+        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.1/NINA.bin",
         "checksum": "SHA-256:3121bf4074fce0248946810c4d03f5d3fb1296cd4667aeb801b5d066e1b07ff3",
         "size": "880640",
         "module": "NINA"
       },
       {
         "version": "1.2.2",
-        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.2/NINA_W102.bin",
+        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.2/NINA.bin",
         "checksum": "SHA-256:71d0a49a4d79aa46dff6f434383133b4365581407846d709fbd961e2b770eb3c",
         "size": "893952",
         "module": "NINA"
       },
       {
         "version": "1.2.3",
-        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.3/NINA_W102.bin",
+        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.3/NINA.bin",
         "checksum": "SHA-256:9c908f33cc05831972833a274f65baf84da35c61fc081856959211ae3504c899",
         "size": "893952",
         "module": "NINA"
       },
       {
         "version": "1.2.4",
-        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.4/NINA_W102.bin",
+        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.4/NINA.bin",
         "checksum": "SHA-256:8b9c07abdaa5647c47466aa3c575e743495a295fd8db2fe91b7e28fe4135ffad",
         "size": "917504",
         "module": "NINA"
       },
       {
         "version": "1.3.0",
-        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.3.0/NINA_W102.bin",
+        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.3.0/NINA.bin",
         "checksum": "SHA-256:aa37c920df18aabc6544df93c64bea6b3b97841b68ff4a6a53d2b800b265d2b5",
         "size": "986112",
         "module": "NINA"
       },
       {
         "version": "1.4.0",
-        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.0/NINA_W102.bin",
+        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.0/NINA.bin",
         "checksum": "SHA-256:ca5ed0b5efd727dd3c507f39a744e171ce690ef17b116c0571f18d1fea17aa85",
         "size": "1035264",
         "module": "NINA"
       },
       {
         "version": "1.4.1",
-        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.1/NINA_W102.bin",
+        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.1/NINA.bin",
         "checksum": "SHA-256:b20f213bc886a95556fc5cec5003c7ebc617da83581ba20fb9f96db003063bbd",
         "size": "1208320",
         "module": "NINA"
       },
       {
         "version": "1.4.2",
-        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.2/NINA_W102.bin",
+        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.2/NINA.bin",
         "checksum": "SHA-256:61d0acbd3d2eeb45b6971448d9537f7c4fa27f264e20970ad5dfdd4cbfdd8ee0",
         "size": "1125376",
         "module": "NINA"
       },
       {
         "version": "1.4.3",
-        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.3/NINA_W102.bin",
+        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.3/NINA.bin",
         "checksum": "SHA-256:8c10c3ee3b8fb2ade3a650b41a3081566fc160e89b32e5d0ee040e63647692b8",
         "size": "1125376",
         "module": "NINA"
       },
       {
         "version": "1.4.4",
-        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.4/NINA_W102.bin",
+        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.4/NINA.bin",
         "checksum": "SHA-256:c8678e00ab9b2dc99cdc45ef577b77498dac802c3f5b99961da190374fddcef8",
         "size": "1125376",
         "module": "NINA"
       },
       {
         "version": "1.4.5",
-        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.5/NINA_W102.bin",
+        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.5/NINA.bin",
         "checksum": "SHA-256:7c2814c8f879e62d234d7ac3a9c28f9a2d1e1dbc3569bd740761ca796247a4c9",
         "size": "1127424",
         "module": "NINA"
       },
       {
         "version": "1.4.6",
-        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.6/NINA_W102.bin",
+        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.6/NINA.bin",
         "checksum": "SHA-256:9f3df8446bb5038437bfd25b4fe06cb84b32bff29c5ba8eea852b49d059837f7",
         "size": "1127424",
         "module": "NINA"
       },
       {
         "version": "1.4.7",
-        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.7/NINA_W102.bin",
+        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.7/NINA.bin",
         "checksum": "SHA-256:22cfa44b41bf4219a025b93a33752528735ba82cb638999ff4015c5579a46cef",
         "size": "1127424",
         "module": "NINA"
@@ -299,110 +299,115 @@
     "firmware": [
       {
         "version": "1.0.0",
-        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.0.0/NINA_W102.bin",
+        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.0.0/NINA.bin",
         "checksum": "SHA-256:3fe2cd90a0774e271624d42ab1b238d92c7495648e9918ad49dea3b20379905e",
         "size": "736256",
         "module": "NINA"
       },
       {
         "version": "1.1.0",
-        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.1.0/NINA_W102.bin",
+        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.1.0/NINA.bin",
         "checksum": "SHA-256:3b38f44a2e2e2d28995973f432bc2795f7c58a14e8638f55e3f024ffa499bcf8",
         "size": "814080",
         "module": "NINA"
       },
       {
         "version": "1.2.1",
-        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.1/NINA_W102.bin",
+        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.1/NINA.bin",
         "checksum": "SHA-256:3121bf4074fce0248946810c4d03f5d3fb1296cd4667aeb801b5d066e1b07ff3",
         "size": "880640",
         "module": "NINA"
       },
       {
         "version": "1.2.2",
-        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.2/NINA_W102.bin",
+        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.2/NINA.bin",
         "checksum": "SHA-256:71d0a49a4d79aa46dff6f434383133b4365581407846d709fbd961e2b770eb3c",
         "size": "893952",
         "module": "NINA"
       },
       {
         "version": "1.2.3",
-        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.3/NINA_W102.bin",
+        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.3/NINA.bin",
         "checksum": "SHA-256:9c908f33cc05831972833a274f65baf84da35c61fc081856959211ae3504c899",
         "size": "893952",
         "module": "NINA"
       },
       {
         "version": "1.2.4",
-        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.4/NINA_W102.bin",
+        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.4/NINA.bin",
         "checksum": "SHA-256:8b9c07abdaa5647c47466aa3c575e743495a295fd8db2fe91b7e28fe4135ffad",
         "size": "917504",
         "module": "NINA"
       },
       {
         "version": "1.3.0",
-        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.3.0/NINA_W102.bin",
+        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.3.0/NINA.bin",
         "checksum": "SHA-256:aa37c920df18aabc6544df93c64bea6b3b97841b68ff4a6a53d2b800b265d2b5",
         "size": "986112",
         "module": "NINA"
       },
       {
         "version": "1.4.0",
-        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.0/NINA_W102.bin",
+        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.0/NINA.bin",
         "checksum": "SHA-256:ca5ed0b5efd727dd3c507f39a744e171ce690ef17b116c0571f18d1fea17aa85",
         "size": "1035264",
         "module": "NINA"
       },
       {
         "version": "1.4.1",
-        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.1/NINA_W102.bin",
+        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.1/NINA.bin",
         "checksum": "SHA-256:b20f213bc886a95556fc5cec5003c7ebc617da83581ba20fb9f96db003063bbd",
         "size": "1208320",
         "module": "NINA"
       },
       {
         "version": "1.4.2",
-        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.2/NINA_W102.bin",
+        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.2/NINA.bin",
         "checksum": "SHA-256:61d0acbd3d2eeb45b6971448d9537f7c4fa27f264e20970ad5dfdd4cbfdd8ee0",
         "size": "1125376",
         "module": "NINA"
       },
       {
         "version": "1.4.3",
-        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.3/NINA_W102.bin",
+        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.3/NINA.bin",
         "checksum": "SHA-256:8c10c3ee3b8fb2ade3a650b41a3081566fc160e89b32e5d0ee040e63647692b8",
         "size": "1125376",
         "module": "NINA"
       },
       {
         "version": "1.4.4",
-        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.4/NINA_W102.bin",
+        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.4/NINA.bin",
         "checksum": "SHA-256:c8678e00ab9b2dc99cdc45ef577b77498dac802c3f5b99961da190374fddcef8",
         "size": "1125376",
         "module": "NINA"
       },
       {
         "version": "1.4.5",
-        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.5/NINA_W102.bin",
+        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.5/NINA.bin",
         "checksum": "SHA-256:7c2814c8f879e62d234d7ac3a9c28f9a2d1e1dbc3569bd740761ca796247a4c9",
         "size": "1127424",
         "module": "NINA"
       },
       {
         "version": "1.4.6",
-        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.6/NINA_W102.bin",
+        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.6/NINA.bin",
         "checksum": "SHA-256:9f3df8446bb5038437bfd25b4fe06cb84b32bff29c5ba8eea852b49d059837f7",
         "size": "1127424",
         "module": "NINA"
       },
       {
         "version": "1.4.7",
-        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.7/NINA_W102.bin",
+        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.7/NINA.bin",
         "checksum": "SHA-256:22cfa44b41bf4219a025b93a33752528735ba82cb638999ff4015c5579a46cef",
         "size": "1127424",
         "module": "NINA"
       }
     ],
+    "loader_sketch": {
+      "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/loader/arduino.samd.mkrvidor4000/loader.bin",
+      "checksum": "SHA-256:501e75147d758ea488ba8fddf3617034f1aaed6ad7ebb2b9aaa7446111d6977c",
+      "size": "683844"
+    },
     "module": "NINA",
     "name": "Arduino MKR Vidor 4000",
     "uploader": "arduino:bossac@1.7.0-arduino3",
@@ -418,91 +423,91 @@
     "firmware": [
       {
         "version": "1.2.1",
-        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.1/NINA_W102-Uno_WiFi_Rev2.bin",
+        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.1/NINA-arduino.megaavr.uno2018.bin",
         "checksum": "SHA-256:bac23326dd4c3b6358ee88ff322da8c16e24e9917b8b0bbd18f663aacfb758cf",
         "size": "880640",
         "module": "NINA"
       },
       {
         "version": "1.2.2",
-        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.2/NINA_W102-Uno_WiFi_Rev2.bin",
+        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.2/NINA-arduino.megaavr.uno2018.bin",
         "checksum": "SHA-256:d1f496b185eff6b2ab2f839f6673afc80e1b3e3b2056fc8d9290a74895baf0e5",
         "size": "893952",
         "module": "NINA"
       },
       {
         "version": "1.2.3",
-        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.3/NINA_W102-Uno_WiFi_Rev2.bin",
+        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.3/NINA-arduino.megaavr.uno2018.bin",
         "checksum": "SHA-256:53668eb76be80fffdd67ced7cbb8ab231638b9ee428ae83568dfe48359008bb4",
         "size": "893952",
         "module": "NINA"
       },
       {
         "version": "1.2.4",
-        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.4/NINA_W102-Uno_WiFi_Rev2.bin",
+        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.4/NINA-arduino.megaavr.uno2018.bin",
         "checksum": "SHA-256:37b042cf759b52a96304c35af6a066038184533cc6256f795e92ed1b4fbda3d5",
         "size": "917504",
         "module": "NINA"
       },
       {
         "version": "1.3.0",
-        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.3.0/NINA_W102-Uno_WiFi_Rev2.bin",
+        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.3.0/NINA-arduino.megaavr.uno2018.bin",
         "checksum": "SHA-256:c538028f428b3fc219d2f7c0d9debacd07bababf43dbc28680ed452225ff4629",
         "size": "986112",
         "module": "NINA"
       },
       {
         "version": "1.4.0",
-        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.0/NINA_W102-Uno_WiFi_Rev2.bin",
+        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.0/NINA-arduino.megaavr.uno2018.bin",
         "checksum": "SHA-256:fe852e28eb0547a324069194dcce524b5a9f18adce2983bbe11a818a7ae8200a",
         "size": "1041408",
         "module": "NINA"
       },
       {
         "version": "1.4.1",
-        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.1/NINA_W102-Uno_WiFi_Rev2.bin",
+        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.1/NINA-arduino.megaavr.uno2018.bin",
         "checksum": "SHA-256:f11deb8ce5abe908353eebca7253c18359eb8ea2a601908d5cdb56bf035b4158",
         "size": "1044480",
         "module": "NINA"
       },
       {
         "version": "1.4.2",
-        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.2/NINA_W102-Uno_WiFi_Rev2.bin",
+        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.2/NINA-arduino.megaavr.uno2018.bin",
         "checksum": "SHA-256:7adff887267297dccc6c3ce77f41a986a23a1f7dfce9e8f3b70b3aa038371d47",
         "size": "1132544",
         "module": "NINA"
       },
       {
         "version": "1.4.3",
-        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.3/NINA_W102-Uno_WiFi_Rev2.bin",
+        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.3/NINA-arduino.megaavr.uno2018.bin",
         "checksum": "SHA-256:c026f967bd3add27716a1afaf729d669a5e093771098329bab2477980d6879b5",
         "size": "1132544",
         "module": "NINA"
       },
       {
         "version": "1.4.4",
-        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.4/NINA_W102-Uno_WiFi_Rev2.bin",
+        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.4/NINA-arduino.megaavr.uno2018.bin",
         "checksum": "SHA-256:6b7809357a57946638b271dd1b0b43a84cbcbea9b854d3ff093752fa0fe7b818",
         "size": "1132544",
         "module": "NINA"
       },
       {
         "version": "1.4.5",
-        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.5/NINA_W102-Uno_WiFi_Rev2.bin",
+        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.5/NINA-arduino.megaavr.uno2018.bin",
         "checksum": "SHA-256:b641c4f6f76ab4c7a529848da54f15b9b9857a9627920129a0a6f65edc465c67",
         "size": "1133568",
         "module": "NINA"
       },
       {
         "version": "1.4.6",
-        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.6/NINA_W102-Uno_WiFi_Rev2.bin",
+        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.6/NINA-arduino.megaavr.uno2018.bin",
         "checksum": "SHA-256:9a0c9e5f4b63dbc468f1458dd01d4d33be272e0436055efeea033dd7e2b11880",
         "size": "1133568",
         "module": "NINA"
       },
       {
         "version": "1.4.7",
-        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.7/NINA_W102-Uno_WiFi_Rev2.bin",
+        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.7/NINA-arduino.megaavr.uno2018.bin",
         "checksum": "SHA-256:b560dd7bfef78513b3c468999da1f83b6185aa319a9da544260bc6a74aa8b89b",
         "size": "1133568",
         "module": "NINA"
@@ -525,21 +530,21 @@
     "firmware": [
       {
         "version": "1.4.5",
-        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.5/NINA_W102-Nano_RP2040_Connect.bin",
+        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.5/NINA-arduino.mbed_nano.nanorp2040connect.bin",
         "checksum": "SHA-256:5cc391414abd2233001923221a0103dd5ca37222cf885dace065962c962ccd2b",
         "size": "1127424",
         "module": "NINA"
       },
       {
         "version": "1.4.6",
-        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.6/NINA_W102-Nano_RP2040_Connect.bin",
+        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.6/NINA-arduino.mbed_nano.nanorp2040connect.bin",
         "checksum": "SHA-256:6b46f3cd771d6a322819855690b2703c51f15fa00894e94c77bad3f8c216be58",
         "size": "1127424",
         "module": "NINA"
       },
       {
         "version": "1.4.7",
-        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.7/NINA_W102-Nano_RP2040_Connect.bin",
+        "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.7/NINA-arduino.mbed_nano.nanorp2040connect.bin",
         "checksum": "SHA-256:d3fb2da91f46803e3dfed552d328e7d4d495be8b2773504bc695aefff3d114cb",
         "size": "1127424",
         "module": "NINA"

These are the changes in the new module_firmware_index.json

Comment on lines 17 to 23
if fqbn == "arduino:megaavr:uno2018":
return "NINA_W102-arduino.megaavr.uno2018.bin"
elif fqbn == "arduino:mbed_nano:nanorp2040connect":
return "NINA_W102-arduino.mbed_nano.nanorp2040connect.bin"
elif fqbn == "arduino:samd:mkr1000":
return "m2m_aio_3a0-arduino.samd.mkr1000.bin"
return "NINA_W102.bin"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You should be able to make this generic I think, I was thinking something like this.

def get_firmware_file(module, fqbn):
    fqbn = '.'.join(fqbn.split(':'))
    file = Path(f'{module}-{fqbn}.bin')
    if file.exists():
        return file
    return Path(f'{module}.bin')

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Obviously that would mean that the moduleName key in the boards.json must match the firmware files name.

Copy link
Contributor

@silvanocerza silvanocerza left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great overall, my only concern is the function to retrieve the firmware file.

Path(__file__).parent / binary_path / os.listdir(binary_path)[0]
loader_dir = f"../firmwares/loader/{simple_fqbn}/"
loader_path = (
Path(__file__).parent / loader_dir / os.listdir(loader_dir)[0]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Am not sure I understand this line, why are you taking the first result of os.listdir?

I don't think this a good thing to do, the documentation says this:

The list is in arbitrary order, and does not include the special entries '.' and '..' even if they are present in the directory.

https://docs.python.org/3/library/os.html#os.listdir

Also might as well use Path.iterdir() since we're using pathlib: https://docs.python.org/3/library/pathlib.html#pathlib.Path.iterdir

@umbynos umbynos merged commit ae8295a into main Jul 9, 2021
@umbynos umbynos deleted the umbynos/raw_boards branch July 9, 2021 15:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type: enhancement Proposed improvement
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants