RSL10 Dongle - ONSemi IDE - Firmware Flash *.elf via updater.py with --force?

Hi, new to OnSemi and to RSL10 dongle.
After compiling the blinky example, I get an *.elf file, which contains the bootloader, right?

If I am right, then using the updater.py script with --force parameter should overwrite bootloader and application, which should result in an working example and non-broken dongle…

If I am wrong, what would be the right way to develope BLE applications with the On Semi IDE and the RSL10 dongle?

Hi @SLatESG,

Please see my answer to your questions below:

No, the ‘blinky’ sample firmware does not include the Bootloader. This ‘Bootloader’ is a separate sample firmware available in the same CMSIS Pack.

Unfortunately this is not the case. The RSL10 Dongle does not have onboard JLink, and as such the only way to interact with the device is using UART to communicate with the ‘Bootloader’ portion of the firmware. By using the ‘--force’ parameter, you have told the device to overwrite the ‘Bootloader’ portion of the firmware with the ‘Blinky’ project. Without an intact ‘Bootloader’, there is no way to interact with the RSL10 Dongle over UART, and you are effectively locked out of the device.

You can develop firmware for the RSL10 USB Dongle by simply avoiding the ‘--force’ parameter unless you intend to update the ‘Bootloader’ portion of the firmware. If you run the ‘updater.py’ script without the ‘--force’ parameter, it will place you firmware after the ‘Bootloader’ portion, allowing you to continue to access the device over UART.

1 Like

Thank you. Further question for understanding:

For resetting the dongle you ship the file DongleFW.bin, which is not an ELF file by extension and magic bytes signature.
What kind of filetype is it and how is then possible to flash the *.elf file.

[ Somewhere I read about the *-objcopy -O binary *.elf *.bin command as a part of the compiler chain. I it should partly answer my question; will it strip unnecessary information which is already given by the bootloader ? ]

Hi @SLatESG,

You are supposed to use a .bin (Binary) file with the ‘updater.py’ script to write a new firmware to the RSL10 USB Dongle. When you use the ‘--force’ parameter is overrides these requirements and will write whatever file you provide.

You are correct that the best way to create this Binary file is to use the ‘objcopy’ provided within the Eclipse install, as it will generate the necessary .bin file during the build process. This can be done by adding the string below to the ‘Post-Build Steps’ of your Eclipse project settings:

${cross_prefix}objcopy -O binary "${BuildArtifactFileName}" "${BuildArtifactFileBaseName}.bin"