.. |br| raw:: html
.. _fw: SBC firmware update ------------------- The SBC firmware is developed by ArduSimple and contains the low level functionalities to let you focus on the application high level programming in microPython. |br| We recommend to use always the latest version of the SBC firmware since it will contain new features and bug fixes. |br| If you have any suggestions related with the firmware please :ref:`contact us `. .. note:: You can find your SBC current firmware and hardware version by typing in the terminal the following command: >>> import sbc >>> sbc.get_hw_version() 'simpleRTK2B-SBC-FW1.07-R03' In this example,firmware version is FW1.07 and hardware revision is R03. To update your SBC firmware you will need the following: * SBC and USB C cable * Latest SBC firmware, you can find it below * STM32 Cube Programmer, you can `download for free here `_ .. admonition:: Warning :class: error Before updating the SBC firmware make sure you backup the content of the SBC internal memory Follow these steps: .. tabs:: .. tab:: Acess to SBC button 1. Press and keep pressed the SBC button 2. Connect the USB cable to the SBC and to your computer 3. You can now release the SBC button 4. Open STM32 Cube Programmer 5. Select USB from the dropdown menu 6. Click the refresh icon and wait until the port updates and shows a number 7. Click the *CONNECT* button 8. Click *Open file* 9. *Browse* and select the *firmware_mboot.hex* file 10. Click *Download* and wait until completes 11. Press and keep pressed the SBC button, reset your device, release button 12. Click the refresh icon and wait until the port updates and shows a number 13. Click the *CONNECT* button 14. Click *Open file* 15. *Browse* and select the *firmware.hex* file 16. Click *Download* and wait until completes 17. Congratulations, you completed the firmware update :) .. tab:: No acess to SBC button **(e.g.: SBC inside an enclosure)** 1. Connect the USB cable to the SBC and to your computer 2. Open a microPython terminal **DO NOT PLACE THIS CODE ON THE main.py FILE!** 3. Send >>> import machine >>> import time >>> print("Entering bootloader in 10 seconds, press CTRL+C to prevent it") >>> time.sleep(10) >>> machine.bootloader(True) Connection lost (EOF) Use Stop/Restart to reconnect. 4. Open STM32 Cube Programmer 5. Select USB from the dropdown menu 6. Click the refresh icon and wait until the port updates and shows a number 7. Click the *CONNECT* button 8. Click *Open file* 9. *Browse* and select the *firmware_mboot.hex* file 10. Click *Download* and wait until completes 11. Reset your device, repeat step 3 12. Click the refresh icon and wait until the port updates and shows a number 13. Click the *CONNECT* button 14. Click *Open file* 15. *Browse* and select the *firmware.hex* file 16. Click *Download* and wait until completes 17. Congratulations, you completed the firmware update :) .. tab:: Programmatically **(e.g.: SBC inside an enclosure, firmware update can be programmed, useful for FOTA)** .. admonition:: Warning :class: error Make sure the microSD card is not plugged in! .. note:: This procedure is valid only if *firmware_mboot.hex* is already loaded. |br| Check the other methods to learn how to load it. 1. Drag and drop your firmware **firmware.dfu.gz** into the SBC flash memory. 2. Send >>> import sbc >>> sbc.mboot.fw_update("firmware.dfu.gz") hdr b'DfuSe\x01' Fw update from firmware.dfu.gz . It will take about 30 seconds 3. Wait about 30 seconds, SBC will reboot automatically Download Firmware ----------------- Latest SBC firmware release: * :download:`FW1.07-20230323 ` Old versions: * :download:`FW1.05-20220701 ` * :download:`FW1.04-20220628 ` * :download:`FW1.03-20220609 ` * :download:`FW1.02-20220204 ` * :download:`FW1.01-20210401 ` Firmware changelog ------------------ **2023-03-23 - FW1.07** *Fixes:* * Increased PointPerfect maximum buffer size **2022-07-09 - FW1.05** *New features:* * FTPlib implemented **2022-06-28 - FW1.04** *Fixes:* * MahonyAHRS numerical issue solved **2022-06-09 - FW1.03** *New features:* * Added MQTT Client * PointPerfect ready *Fixes:* * (Documentation only) SBC system schematic * (Documentation only) SBC Firmware load procedure * (Documentation only) ubx.config_from_cls_ide method **2022-02-04 - FW1.02** *New features:* * Added original uasyncio micropython directory contents with two addons: * Semaphores * Queues * Added ubx.builder to compose UBX messages * Added safety feature: in case that USB can't be initialized, duplicate REPL terminal so it can be accessed via RS232#1 * Added MicroWebSrv2 micropython library * Added mboot support to update firmware by drag&drop firmware (.dfu.gz) to external flash memory * Added open_connection_udp to uasyncio * Added NTRIP client and NTRIP server classes * Added asynchronous TCP socket client * Add .dfu file to allow flashing from dfuse * Allow main.mpy execution on power up *Fixes:* * Added IMU FIFO flush with 64 values to prevent failed readings during tests * Fix small bug with SPI transfer DMA irqs * Fix bug in IMU gyro scale * Fix RXM-RAWX UBX message parsing **2021-04-01 - FW1.01** * First official firmware version Hardware changelog ------------------ **R03** * First official hardware version