3.0 KiB
Web Bluetooth DFU
Device firmware update with Web Bluetooth
Update device firmware via Web Bluetooth following the protocol here:
Device Configuration
You will need an nRF51 or nRF52 development kit, flashed with the appropriate image:
nrf51_boot_s110.hex. The mbed bootloader merged with Nordic's s110 SoftDevice. Upon flashing the device will be in bootloader mode and ready to receive a DFU transfer.
nrf52_boot_s132.hex. Nordic's bootloader merged with Nordic's s132 SoftDevice. Upon flashing the device will be in bootloader mode and ready to receive a DFU transfer.
Web Example
Open this site in a Web Bluetooth enabled browser:
https://thegecko.github.io/web-bluetooth-dfu/
Node Example
Clone this repository, install the npm dependencies and execute.
$ npm install
$ node example_node <device-type>
Where <device-type> is one of nrf51 or nrf52.
Updating the SoftDevice or Bootloader
When updating the application the only input required is APPLICATION.hex. However it is possible to update the SoftDevice or Bootloader as well. The user will need to specify the image type of the update when transferring a SoftDevice or Bootloader in dfu.provision() (i.e. dfu.provision(device, buffer, dfu.ImageType.SoftDevice);).
Softdevice: The .hex file below can be transferred via DFU to test SoftDevice updates. (The end address of the Master Boot Record (MBR) must be specified in hex2bin (i.e. hex2bin(SOFTDEVICE.hex, 0x1000);) as it must not be rewritten during DFU). nrf52_softdevice_only.hex. Nordic's s132 SoftDevice (nRF52 only).
Bootloader: The .hex file below can be transferred via DFU to test bootloader updates. nrf52_bootloader_only.hex. Nordic's standard bootloader (nRF52 only).
Note: Currently updating the SoftDevice and Bootloader at the same time is not supported.