diff --git a/docs/firmware_update_stm32.md b/docs/firmware_update_stm32.md index 80446118c..f854b2bcf 100644 --- a/docs/firmware_update_stm32.md +++ b/docs/firmware_update_stm32.md @@ -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]() +![Menu showing firmware version 2.0.1]() *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]() 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]() -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]() -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]() -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]() -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]() + +9. Once connected, select *Erasing & programming* on the left side menu. + + ![Programming button in STM32CubeProgrammer]() + +10. Select the binary file and click *Start Programming*. + + ![Programming complete confirmation]() + +11. After a few seconds, programming will complete. + + ![Disconnect button]() + +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]() +14. To confirm the version, open the Radio menu and enable the radio. Above, version 2.0.1 is seen. diff --git a/docs/img/Firmware/SparkFun RTK Everywhere - STM32 Firmware.png b/docs/img/Firmware/SparkFun RTK Everywhere - STM32 Firmware.png new file mode 100644 index 000000000..44874a3d1 Binary files /dev/null and b/docs/img/Firmware/SparkFun RTK Everywhere - STM32 Firmware.png differ diff --git a/docs/img/Firmware/SparkFun RTK Everywhere - STM32 Passthrough 1.png b/docs/img/Firmware/SparkFun RTK Everywhere - STM32 Passthrough 1.png index 32458b205..546d083e7 100644 Binary files a/docs/img/Firmware/SparkFun RTK Everywhere - STM32 Passthrough 1.png and b/docs/img/Firmware/SparkFun RTK Everywhere - STM32 Passthrough 1.png differ diff --git a/docs/img/Firmware/SparkFun RTK Everywhere - STM32CubeProgrammer Connected.png b/docs/img/Firmware/SparkFun RTK Everywhere - STM32CubeProgrammer Connected.png new file mode 100644 index 000000000..ec602c0fb Binary files /dev/null and b/docs/img/Firmware/SparkFun RTK Everywhere - STM32CubeProgrammer Connected.png differ diff --git a/docs/img/Firmware/SparkFun RTK Everywhere - STM32CubeProgrammer Disconnect.png b/docs/img/Firmware/SparkFun RTK Everywhere - STM32CubeProgrammer Disconnect.png new file mode 100644 index 000000000..757fe0534 Binary files /dev/null and b/docs/img/Firmware/SparkFun RTK Everywhere - STM32CubeProgrammer Disconnect.png differ diff --git a/docs/img/Firmware/SparkFun RTK Everywhere - STM32CubeProgrammer Program Complete.png b/docs/img/Firmware/SparkFun RTK Everywhere - STM32CubeProgrammer Program Complete.png new file mode 100644 index 000000000..802bc331c Binary files /dev/null and b/docs/img/Firmware/SparkFun RTK Everywhere - STM32CubeProgrammer Program Complete.png differ diff --git a/docs/img/Firmware/SparkFun RTK Everywhere - STM32CubeProgrammer Program.png b/docs/img/Firmware/SparkFun RTK Everywhere - STM32CubeProgrammer Program.png new file mode 100644 index 000000000..e3c929215 Binary files /dev/null and b/docs/img/Firmware/SparkFun RTK Everywhere - STM32CubeProgrammer Program.png differ