Firmware Update

This section describes ways to update the firmware. We support many different ways, such as via Bluetooth, MSD, WebUSB, Serial-COM or OpenOCD.

For more detailed information, select the method you want to use below:

Prepare for setup

Note

  • Ensure connection during the update process and avoid moving too far when the connection is Bluetooth.

  • Firmware update speed will depend on the Bluetooth device. For example, Bluetooth 4.2 and Bluetooth 5.0 have data rates of 1Mbps versus 2Mbps, respectively.

Step-by-step instructions on how to update via Bluetooth:

1. Open the LEAPS Manager application, then navigate to the Demo Selector. Additionally, you can navigate to the created network to update the devices in the network.

  1. Access firmware status. Tap the options menu (represented as three horizontal dots) within the application. Look for the Firmware status option and select it.

    ../../../_images/firmware-update9.jpg ../../../_images/firmware-update10.jpg

  2. Choose the devices to update.

  • From the list of devices presented, select the one you want to update the firmware.

  • The Update button is located in the lower left corner of the app’s interface. click it to initiate the firmware update process for the selected device.

    ../../../_images/firmware-update8.jpg ../../../_images/firmware-update5.jpg

  1. The app will provide visual indicators or progress bars to show how the update is proceeding. Be patient and let the update process run its course.

    ../../../_images/firmware-update7.jpg ../../../_images/firmware-update1.jpg

  2. Once the update is complete, you will see status is done. Additionally, the device will beep to indicate the update’s success. The board will automatically reset itself as part of the process.

    ../../../_images/firmware-update3.jpg ../../../_images/firmware-update2.jpg

The device successfully updated the firmware. Enjoy the latest features and improvements.

Prepare for setup

  • At least one device.

  • A binary file to update.

Step-by-step instructions on how to update via MSD

  1. Use a USB-C Data Cable to connect the USB-C Data Port 2 of devices to the PC.

../../../_images/leaps-connect-usb-port2.gif
  1. Once connected, the LEAPS MSD drive will appear on your PC. Open the LEAPS MSD drive.

For example, on Windows:

../../../_images/msd-win-01.png
  1. Download the LEAPS-UWBS-Firmware-v0.16.x.zip file to your PC. Use a program like WinZip or 7-Zip to extract the contents of the downloaded file.

  2. Locate the binary file at LEAPS-UWBS-Firmware-v0.16.x/LEAPS-UWBS-Firmware-OpenOCD/udk1-leaps-uwbs-v0.16.x.bin. Copy this file to the LEAPS MSD drive.

For example, on Windows:

../../../_images/msd-win-02.png
  1. Wait for the copying and flashing process, until the copying is successful. The board will automatically reset as part of the process, the RGB LEDs will light up and the hardware will beep to indicate a successful update.

The device successfully updated the firmware. Enjoy the latest features and improvements.

Prepare for setup

  • At least one device.

  • A binary file to update.

Step-by-step instructions on how to update via WebUSB

  1. Download and Install Node.js.

  • Go to the official Node.js website at https://nodejs.org/en/download.

  • Download the recommended version of Node.js.

  • Run the downloaded installer and follow the installation prompts to complete the installation.

  1. Install Dependencies.

  • Open your favorite terminal application on your computer.

    • On linux or macOS, like Terminal application.

    • On Windows, like Powershell.

  • To install the webusb dependency, run the following command:

    npm install webusb
    
  • Next, install the usb dependency by running the following command:

    npm install usb
    
  • Finally, install the node-hid dependency using the following command:

    npm install node-hid
    
  1. Use a USB-C Data Cable to connect the USB-C Data Port 2 of devices to the PC.

../../../_images/leaps-connect-usb-port2.gif
  1. Download and Extract the package to your PC. Use a program like WinZip or 7-Zip to extract the downloaded LEAPS-UWBS-Firmware-v0.16.x.zip file.

  2. Open Website DAPLink Flash .

../../../_images/daplink-flash-web02.png
  1. Click Choose a firmware image and go to select binary file at LEAPS-UWBS-Firmware-v0.16.x/LEAPS-UWBS-Firmware-OpenOCD/udk1-leaps-uwbs-v0.16.x.hex.

../../../_images/daplink-flash-web03.png
  1. Click the SELECT DEVICE button then select the DAPLink CMSIS-DAP port that is connected to the PC .

../../../_images/daplink-flash-web05.png
  1. After selecting a firmware image, the binary file flashing process will begin. Make sure the hardware is connected throughout the process.

../../../_images/daplink-flash-web06.png

Note

Some unexpected problems may appear, please disconnect the board from the computer and start again.

  1. After the Flash completed!. The board will automatically reset as part of the process, the RGB LEDs will light up and the hardware will beep to indicate a successful update.

../../../_images/daplink-flash-web07.png

The device successfully updated the firmware. Enjoy the latest features and improvements.

You will need:

  • At least one device connected via the USB port.

  • The script and the firmware binary included in the package.

  • The python3 installed on you system.

Step-by-step instructions on how to update via Serial-COM:

  1. Download and Extract the package to your PC. Use a program like WinZip or 7-Zip to extract the downloaded LEAPS-UWBS-Firmware-v0.16.x.zip file.

  2. Open your favorite terminal application.

  • On linux or macOS, like Terminal application.

  • On Windows, like Powershell.

  1. Navigate to the folder containing the extracted package.

  2. Install python dependencies.

$ pip install pyserial libusb tqdm
  1. Can choose to use one of two ports for the update.

If using USB-C Data Port 1, you can update ELDR binaries and MAIN binaries independently. On the contrary, if you use USB-C Data Port 2 you can update multiple devices continuously at the same time.

  1. Use USB-C Data Cable to connect the USB-C Data Port 1 of the device.

    ../../../_images/leaps-connect-usb-port1.gif

    Run the following command to update the ELDR and the MAIN binaries.

    ~/LEAPS-UWBS-Firmware-Serial-COM$ sudo python3 ./udk1-leaps-uwbs-serial-com.py --main ./udk1-leaps-uwbs-fira-v0.15.0-rc8.bin --eldr ./udk1-leaps-uwbs-eldr-v0.15.0-rc8.bin
    03:11:55 Device 01/02 (SerialNumber=3DB15A2CCB8053C8): Reset
    03:11:55 Device 02/02 (SerialNumber=904AD29FD29D2452): Reset
    15:12:15 Device 01/02 (SerialNumber=904AD29FD29D2452): Uploading MAIN: 100%|████████████████████████████| 716192/716192 [00:16<00:00, 44623.94it/s]
    15:12:15 Device 02/02 (SerialNumber=3DB15A2CCB8053C8): Uploading MAIN: 100%|████████████████████████████| 716192/716192 [00:16<00:00, 44630.31it/s]
    15:12:37 Device 01/02 (SerialNumber=904AD29FD29D2452): Uploading ELDR: 100%|████████████████████████████| 235748/235748 [00:05<00:00, 42419.44it/s]
    15:12:37 Device 02/02 (SerialNumber=3DB15A2CCB8053C8): Uploading ELDR: 100%|████████████████████████████| 235748/235748 [00:05<00:00, 42498.01it/s]
    03:12:43 Resetting devices
    
  2. Use a USB-C Data Cable to connect the USB-C Data Port 2 of the device. Run the following command to update either the ELDR or the MAIN binary:

    ../../../_images/leaps-connect-usb-port2.gif

    Note

    Might need to install the udev rules to be able to update the firmware over the USB-C Data Port 2. Can refer to the udev rules installation for the Debian-like distributions.

    ~/LEAPS-UWBS-Firmware-Serial-COM$ python3 ./udk1-leaps-uwbs-serial-com.py -d /dev/ttyACM0 --eldr ./udk1-leaps-uwbs-eldr-v0.15.0-rc8.bin
    02:54:30 Resetting device
    02:54:33 Uploading file /home/leaps/LEAPS-UWBS-Firmware-v0.15.0/LEAPS-UWBS-Firmware-Serial-COM/udk1-leaps-uwbs-eldr-v0.15.0-rc8.bin (235748 bytes)
    100%|████████████████████████████| 235748/235748 [00:28<00:00, 8129.43it/s]
    02:55:07 Ok (upload time = 34.70 seconds)
    02:55:10 Resetting device
    
    ~/LEAPS-UWBS-Firmware-Serial-COM$ python3 ./udk1-leaps-uwbs-serial-com.py -d /dev/ttyACM0 --main ./udk1-leaps-uwbs-fira-v0.15.0-rc8.bin
    02:56:25 Resetting device
    02:56:28 Uploading file /home/leaps/LEAPS-UWBS-Firmware-v0.15.0/LEAPS-UWBS-Firmware-Serial-COM/udk1-leaps-uwbs-fira-v0.15.0-rc8.bin (716192 bytes)
    100%|████████████████████████████| 716192/716192 [01:27<00:00, 8175.81it/s]
    02:58:11 Ok (upload time = 102.74 seconds)
    02:58:14 Resetting device
    
  1. Wait for the update to finish.

  2. Once the update is complete, the board will automatically reset as part of the process.

The device successfully updated the firmware. Enjoy the latest features and improvements.

Prepare for setup

  • At least one device.

  • A package includes a script and a binary for the update.

  • Installed OpenOCD.

Step-by-step instructions on how to update via OpenOCD (Open On-Chip Debugger):

  1. Installing the OpenOCD Debugger.

  1. Installing OpenOCD on Windows.

  1. Download the binary zip file for Windows.

  2. Extract into the C:\xpack-openocd-0.11.0-1 folder.

  3. Add the path: C:\xpack-openocd-0.11.0-1\bin to your Windows User Path environment variable.

  1. Installing OpenOCD on Linux or Mac OS.

  1. Download the binary tarball for Linux .

  2. Untar the tarball and install into local.

mkdir -p ~/.local/xPacks/openocd
cd ~/.local/xPacks/openocd
tar -zxvf ~/Downloads/xpack-openocd-0.11.0-1-linux-arm.tar.gz (with PC’s AMD core, using … linux-x64.tar.gz with PC’s Intel core)
....
sudo chmod -R -w xpack-openocd-0.11.0-1/
~/.local/xPacks/openocd/xpack-openocd-0.11.0-1/bin/openocd --version
export PATH="~/.local/xPacks/openocd/xpack-openocd-0.11.0-1/bin/:$PATH"
cd ~
source .bashrc
  1. Check the OpenOCD version.

openocd --version
xPack OpenOCD, x86_64 Open On-Chip Debugger 0.11.0-00155-ge392e485e (2021-03-15-16:43)
Licensed under GNU GPL v2
For bug reports, read
  http://openocd.org/doc/doxygen/bugs.html
  1. Download and Extract the package to your PC. Use a program like WinZip or 7-Zip to extract the downloaded LEAPS-UWBS-Firmware-v0.16.x.zip file.

  2. Open your favorite terminal application.

  • On linux or macOS, like Terminal application.

  • On Windows, like Powershell.

  1. Navigate to the folder containing the extracted package.

  • cd to /path/to/LEAPS-UWBS-Firmware-OpenOCD

  1. Use a USB-C data cable to connect the USB-C Data Port 2 of devices to your PC.

../../../_images/leaps-connect-usb-port2.gif
  1. Execute the script to update the firmware automatically.

  • On linux or macOS, Use the reflash-leaps-rtls-2ab.sh command.

  • On Windows, Use the reflash-leaps-rtls-2ab.bat command.

./reflash-leaps-rtls-2ab.sh
xPack OpenOCD, x86_64 Open On-Chip Debugger 0.11.0-00155-ge392e485e (2021-03-15-16:43)
Licensed under GNU GPL v2
For bug reports, read
  http://openocd.org/doc/doxygen/bugs.html
DEPRECATED! use 'adapter speed' not 'adapter_khz'
set_test_mode
Info : Using CMSIS-DAPv2 interface with VID:PID=0x0d28:0x0204, serial=01100E003602002e003f4146570120313238
Info : CMSIS-DAP: SWD Supported
Info : CMSIS-DAP: FW Version = 2.1.0
Info : CMSIS-DAP: Serial# = 01100E003602002e003f4146570120313238
Info : CMSIS-DAP: Interface Initialised (SWD)
Info : SWCLK/TCK = 1 SWDIO/TMS = 1 TDI = 0 TDO = 0 nTRST = 0 nRESET = 1
Info : CMSIS-DAP: Interface ready
Info : High speed (adapter speed 10000) may be limited by adapter firmware.
Info : clock speed 10000 kHz
Info : SWD DPIDR 0x2ba01477
Info : nrf52.cpu: hardware has 6 breakpoints, 4 watchpoints
Info : starting gdb server for nrf52.cpu on 3333
Info : Listening on port 3333 for gdb connections
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x000031ec msp: 0x20003488
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0xfffffffe msp: 0xfffffffc
Info : nRF52840-CKAA(build code: D0) 1024kB Flash, 256kB RAM
auto erase enabled
wrote 1048576 bytes from file leaps-rtls-all-2ab-v0.14-rc25.hex in 38.776192s (26.408 KiB/s)
  1. Once the update is complete, the device will beep to indicate the update’s success. The board will automatically reset itself as part of the process.

The device successfully updated the firmware. Enjoy the latest features and improvements.

Troubleshooting

In case of “Error: Could not find MEM-AP to control the core”.

../../../_images/firmware-update-error.png

Please execute the following command to restore:

openocd -f ./openocd-swd-nrf52.cfg -c "init;nrf52833_workaround;exit_debug_mode;shutdown;sleep 250"

Then continue execute ./reflash-leaps-rtls-2ab.sh.

Note

  • For any comments or questions about our products, we encourage you to visit our LEAPS Forum.

  • For detail of known limitation and issue list, please refer section Releases