1

I'm interested in tinkering with the micropython filesystem and/or firmware in the SPIKE Prime hub and was wondering:

  1. How to dump the firmware from the SPIKE Prime hub?
  2. Is there an online resource somewhere to download old firmwares for the SPIKE Prime hub?
3
  • That one is the filesystem that is on some flash memory on the board. It's mainly micropython files and sounds. The firmware is the code that runs the microprocessor. You can think of the firmware like the operating system which then runs the micropython scrips in the filesystem. – gpdaniels Jul 10 '20 at 9:04
  • Sorry, I just saw this question, remembered a similar one from a bit before, found the linked question and raised a duplicate flag. Then I noticed the small but significant differences and thus retracted the duplicate flag but forgot about the auto-added comment. I'll remove it immediately :) – zovits Jul 10 '20 at 9:13
  • No problem, it might signify that I need to edit the questions to make the differences clearer. – gpdaniels Jul 10 '20 at 9:31
1

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:

  1. Installing the SPIKE Prime Windows 10 application.
  2. Navigating to the resources directory inside the installed directory: [C:/Program Files/SPIKE/resources]
  3. Creating a directory to hold the extracted source code of the electron application. (E.g. Output)
  4. Extracting the app.asar file using the asar tool and the command asar extract app.asar Output.
  5. Navigating to the firmware directory found inside the extracted code Output/app/renderer/flipper-hub/firmware/
  6. 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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.