5.7 DFU Commands

In addition to the Data mode and Command mode, the RNBD350 supports a special mode called Device Firmware Update (DFU) mode. This is a special mode implemented in the RNBD350 to carry out the DFU operation. There are different possible ways to update the firmware with the help of rich command set support.

  • Serial DFU – In this method, the firmware update on the RNBD350 device is achieved via serial UART communication. The RNBD350 command set supports the DFU commands to carry out serial DFU. To make use of the DFU update feature, the device must be first configured in DFU mode. After that, the DFU commands are passed as serial commands in the correct order to successfully update the firmware.
  • Over-the-Air (OTA) DFU – In this method, the OTA DFU process combines HOST OTA DFU and Serial DFU processes. Initially, the firmware image from the OTAU manager (for example, a mobile device) initiates the host DFU process. Subsequently, the image passes through the RNBD350 and is saved on the host device. Upon complete reception and saving of the firmware image via the host DFU process, the user must initiate a serial DFU to write the saved image to the RNBD350. This upgrade process effectively updates the firmware inside the RNBD350. The OTA DFU in RNBD350 is a combination of the host DFU and serial DFU.
  • Host OTA DFU through RNBD350 – This OTA update feature using a RNBD350 enables you to remotely and securely update the firmware on a host MCU over a wireless Bluetooth Low Energy connection. This feature is crucial for keeping embedded systems up-to-date, improving functionality and addressing security vulnerabilities without the need for physical access to the device.
Note: The firmware version in DIS is configurable by the Set Firmware Version (SDF) command. Although it is same as the result of the V command by default, they could be different after DFU, because the SFD/GDF command writes/reads the version information to/from PDS but the V command prints the version information directly from the program code segment.