Skip to content

Commit

Permalink
Docs: STM32 firmware update
Browse files Browse the repository at this point in the history
  • Loading branch information
nseidle committed Aug 8, 2024
1 parent 62ba48a commit dc34174
Show file tree
Hide file tree
Showing 7 changed files with 34 additions and 8 deletions.
42 changes: 34 additions & 8 deletions docs/firmware_update_stm32.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,35 +2,61 @@

Torch: ![Feature Supported](img/Icons/GreenDot.png) / EVK: ![Feature Not Supported](img/Icons/RedDot.png)

The STM32WLE firmware runs the 915MHz LoRa radio inside the RTK Torch. The firmware version number is displayed in the radio menu:
The STM32WLE firmware runs the 915MHz LoRa radio inside the RTK Torch.

![RTK Express with firmware v3.0](<img/Displays/SparkFun%20RTK%20Boot%20Screen%20Version%20Number.png>)
![Menu showing firmware version 2.0.1](<img/Firmware/SparkFun RTK Everywhere - STM32 Firmware.png>)

*RTK Torch LoRa radio firmware version 2.0.1*

The firmware version number is displayed in the radio menu. If the device does not show this menu option the [ESP32 firmware](firmware_update_esp32.md) will need to be updated first.

Firmware updates to the STM32WLE can only be done over the serial interface. Follow these steps to update the LoRa radio firmware on the RTK Torch.

![UI of STM32CubeProgrammer](<img/Firmware/SparkFun RTK Everywhere - STM32CubeProgrammer.png>)

1. Download and install [STM32CubeProgrammer](https://www.st.com/en/development-tools/stm32cubeprog.html). While it *is* available for Windows/Linux/iOS, ST makes it rather difficult to get this software. We're sorry!


2. Download the latest STM32 LoRa binary from the [RTK Everywhere Firmware Binaries](https://github.com/sparkfun/SparkFun_RTK_Everywhere_Firmware_Binaries/tree/main/STM32_LoRa) repo. As of writing, this is **RTK_Torch_STM32_LoRa_v2_0_1.bin**.

![Debug menu showing the STM32 direct connect option](<img/Firmware/SparkFun RTK Everywhere - STM32 Passthrough Menu.png>)

2. Open the main menu and select System (**s**), Hardware Debug (**h**), STM32 direct connect (**17**).
3. Open the main menu and select System (**s**), Hardware Debug (**h**), STM32 direct connect (**17**).

![Passthrough mode output on reset](<img/Firmware/SparkFun RTK Everywhere - STM32 Passthrough 1.png>)

3. The device will automatically reset and show very little including various symbols. The device is now operating in pass-through mode at 57600bps, and ready to be programmed. If needed, to exit this pass-through mode, press and release the main power button.
4. The device will automatically reset and show instructions. The device is now operating in pass-through mode at 57600bps, and ready to be programmed. If needed, to exit this pass-through mode, press and release the main power button.

4. Close the terminal connection. This will likely cause the device to reset - that is ok.
5. Close the terminal connection. This will likely cause the device to reset - that is ok.

![Settings in STM32CubeProgrammer](<img/Firmware/SparkFun RTK Everywhere - STM32CubeProgrammer Callouts.png>)

5. Open STM32CubeProgrammer. Select UART (blue box) and the programming interface. Set the Baudrate to 57600, No parity, RTS and DTR set to high.
6. Open STM32CubeProgrammer. Select UART (blue box) and the programming interface. Set the Baudrate to 57600, No parity, RTS and DTR set to high.

![Don't select Read Unprotected](<img/Firmware/SparkFun RTK Everywhere - STM32CubeProgrammer Read Unprotected.png>)

6. Avoid **Read Unprotected**. Do not enable. This setting writes to fuse bits and if there is a problem with serial communication, it can lead to an inoperable bootloader. The device can be repaired but only at SparkFun (we have to use a ST-Link to reprogram the fust bits over the SWD interface).
7. Avoid **Read Unprotected**. Do not enable. This setting writes to fuse bits and if there is a problem with serial communication, it can lead to an inoperable bootloader. The device can be repaired but only at SparkFun (we have to use an ST-Link to reprogram the fuse bits over the SWD interface).

8. Select the COM port associated with COM-B of the RTK device. Not sure? Read [here](https://docs.sparkfun.com/SparkFun_RTK_Everywhere_Firmware/configure_with_serial/#rtk-torch). Once selected, click **Connect**.

![Connected to STM32](<img/Firmware/SparkFun RTK Everywhere - STM32CubeProgrammer Connected.png>)

9. Once connected, select *Erasing & programming* on the left side menu.

![Programming button in STM32CubeProgrammer](<img/Firmware/SparkFun RTK Everywhere - STM32CubeProgrammer Program.png>)

10. Select the binary file and click *Start Programming*.

![Programming complete confirmation](<img/Firmware/SparkFun RTK Everywhere - STM32CubeProgrammer Program Complete.png>)

11. After a few seconds, programming will complete.

![Disconnect button](<img/Firmware/SparkFun RTK Everywhere - STM32CubeProgrammer Disconnect.png>)

12. Click disconnect to close the port.

13. Now press and release the power button on the Torch. The device will beep indicating it has exited pass-through mode. You can now use your device normally.

7. Select the COM port associated with COM-B of the RTK device. Not sure? Read [here](https://docs.sparkfun.com/SparkFun_RTK_Everywhere_Firmware/configure_with_serial/#rtk-torch). Once selected, click **Connect**.
![Menu showing firmware version 2.0.1](<img/Firmware/SparkFun RTK Everywhere - STM32 Firmware.png>)

14. To confirm the version, open the Radio menu and enable the radio. Above, version 2.0.1 is seen.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit dc34174

Please sign in to comment.