Difference between revisions of "Firmware Update"

From Medusa
Line 2: Line 2:


# Download firmware from [//medusa-sc.org/firmware/ Medusa Firmwares Page]. Firmware updater is a binary application that will update the firmware automatically. Binaries are available for Linux (64bit binary for Intel), Max OS X (Intel and ARM binaries) and Windows (32bit and 64bit binaries for Intel).
# Download firmware from [//medusa-sc.org/firmware/ Medusa Firmwares Page]. Firmware updater is a binary application that will update the firmware automatically. Binaries are available for Linux (64bit binary for Intel), Max OS X (Intel and ARM binaries) and Windows (32bit and 64bit binaries for Intel).
# Make sure that Medusa has been correctly detected by your operating system. Medusa uses standard "virtual serial port" (CDC) protocol on USB, so usually it should work without any drivers on Linux and Macos. In case of Windows the needed driver is usually installed, but if it is not, then install it. Description is [https://docs.microsoft.com/en-us/windows-hardware/drivers/usbcon/usb-driver-installation-based-on-compatible-ids here]
# Make sure that Medusa has been correctly detected by your operating system. Medusa uses standard "virtual serial port" (CDC) protocol on USB, so usually it should work without any drivers on Linux, Macos and Windows 10+. In case of Window 8.1 and olders you need this file: [//medusa-sc.org/firmware/medusa.inf medusa.inf].
# Run the application. On the console you should see something like this (typically it takes less than 10 seconds):
# Run the application. On the console you should see something like this (typically it takes less than 10 seconds):
<pre>
<pre>

Revision as of 16:16, 26 February 2023

Firmware Update

  1. Download firmware from Medusa Firmwares Page. Firmware updater is a binary application that will update the firmware automatically. Binaries are available for Linux (64bit binary for Intel), Max OS X (Intel and ARM binaries) and Windows (32bit and 64bit binaries for Intel).
  2. Make sure that Medusa has been correctly detected by your operating system. Medusa uses standard "virtual serial port" (CDC) protocol on USB, so usually it should work without any drivers on Linux, Macos and Windows 10+. In case of Window 8.1 and olders you need this file: medusa.inf.
  3. Run the application. On the console you should see something like this (typically it takes less than 10 seconds):
$ ./firmware_updater_macosx_arm
firmware leng: 170328B
Found port: /dev/cu.usbmodemF2ECEB871
port: /dev/cu.usbmodemF2ECEB871 - main app
Sending fwupdater data
......................................
Sending fwupdater hmac
Found port: /dev/cu.usbmodemF2ECEB871
port: /dev/cu.usbmodemF2ECEB871 - updater
Sending main code data
...................................................................................................................................
Sending main code hmac
Sending fpga core data
........................................................................................................................................................................
Sending fpga core hmac

To brick or not to brick

Firmware in Medusa is divided into two parts - simple updater (let's call it part A) and the main program (call it part B).

Part A updates part B (plus FPGA core) and part B updates part A

Boot code in Medusa checks checksums for both parts. If both checksums are correct then it jumps to part B (or part A when "right" button is pressed). If only one of them is correct then it jumps to this part directly. This design prevents device "bricking". Even you loose power during Medusa firmware update, after you turn it back on it will just use the valid part of the firmware. You will only need to run the updater again to complete the procedure.