Using the micropython REPL interface of the hub I've managed to dump the firmware using the built in tools. This was after I'd updated to v1.0.03.0034-c3879ab
. The commands on the hub to achieve this are:
import firmware
firmware.flash_read(BYTE_NUMBER)
This will output a 32 bytes of the firmware starting at location BYTE_NUMBER
which can be saved to a file. By calling this function repetitively, starting at BYTE_NUMBER=0
and going until the function returns false
, the entire firmware can be dumped. I couldn't find a way of getting the current firmware length so dumps will contain the full memory of the board (~1Mbyte).
I've not found any online resources for old versions of the firmware of the SPIKE Prime hub.
However, the latest firmware seems to be inside the current version of the windows application [SPIKE-PRIME_Full_1.2.0_Global_Win10
]. This can be extracted by:
- Installing the SPIKE Prime Windows 10 application.
- Navigating to the resources directory inside the installed directory: [
C:/Program Files/SPIKE/resources
]
- Creating a directory to hold the extracted source code of the electron application. (E.g. Output)
- Extracting the
app.asar
file using the asar tool and the command asar extract app.asar Output
.
- Navigating to the firmware directory found inside the extracted code
Output/app/renderer/flipper-hub/firmware/
- There you should find a
*.bin
where its name is the md5 of its contents. (E.g 09c1f4564bd22832993332820540d8c1.bin
I compared the firmware I dumped from my hub to the one I found in the SPIKE Prime Windows 10 application and they matched exactly up to the size of the found firmware (it was smaller). I've uploaded the firmware to my github please feel free to PR more versions.