Friday, February 7, 2020

Firmware Coding & DFU onto MDBT50Q-RX

Hi there, 

Here introduce the firmware perspective about how to program your code onto MDBT50Q-RX dongle.

Believed all readers have done the hardware setting and now has well prepared to load the code onto the dongle. (If not yet done the hardware setting, pls find it here)

In this blog, we will introduce the procedure based on below 2 scenarios
  • First time to load the code
  • DFU Firmware update by USB or OTA (through Bluetooth over the air)

First time to load the code:

1. Generate Public Key

For security reason, Public Key is the first step to proceed (DOS Environment MUST)
   Command to produce Public Key is in below:

      nrfutil keys generate public_key.pem
nrfutil keys display --key pk --format code public_key.pem --out_file public_key.c

2. Edit Bootloader (Use Keil C as the example)
    2.1 Open a project

\nRF5_SDK_15.3.0_59ac345\examples\dfu\secure_bootloader\pca10056_ble

    2.2 Paste the Public Key produced from step 1 in the red square.

    2.3 Set up Button behavior to trigger the Bootloader function start
    2.3.1 Activate to enter the Bootloader function by using button pressed. (Developers may change to others if don't like this way. Just enter "secure_bootloader" project and modify "sdk_config.h")


    2.3.2 Modify button pin no. (Developers can modify "sdk_config.h" in "secure_bootloader" project)


    2.3.3 Modify LED pin no. (Developers can modify "pca10056.h" in "secure_bootloader" project)


3. Edit Application
   Open and edit the project

\nRF5_SDK_15.3.0_59ac345\examples\peripheral\usbd_ble_uart\pca10056\s140\arm5_no_packs

4. Generate bootloader_settings.hex file

nrfutil.exe settings generate --family NRF52840 --application USBD_TO_UART.hex --application-version 3 --bootloader-version 2 --bl-settings-version 1 bootloader_settings.hex

5. Merge files
1Bootloader.hex
2bootloader_settings.hex
3s140_nrf52_6.1.1_softdevice.hex
4USBD_TO_UART.hex
mergehex.exe -m Bootloader.hex bootloader_settings.hex -o Combind0.hex
mergehex.exe -m Combind0.hex s140_nrf52_6.1.1_softdevice.hex -o Combind1.hex
mergehex.exe -m Combind1.hex USBD_TO_UART.hex x -o USBD_TO_UART_BT_SD_APP.hex



6. Use nRFconnect to burn the merged code onto dongle (nRF52840 IC)
Launch the programmer

Load the merged .hex file
Program the .hex file



Right here, the code should be loaded onto dongle successfully.
Hope all you guys enjoy the journey and completed the setup.

In case you are not happy about the code you just loaded?
No worry, we now introduce DFU process in below to retrieve your happiness.




DFU Firmware update by OTA (through Bluetooth over the air) 

1. Generate DFU File (.zip)

nrfutil pkg generate --hw-version 52 --sd-req 0xb6 --application-version 0xFF --application USBD_TO_UART.hex --key-file public_key.pem USBD_TO_UART.zip

2. Activate Dongle's DFU mode
Press and hold the button on the dongle and plug into PC USB hub, the dongle then enter to DFU mode.

3. Connect Nordic nRF52DK (or nRF52840-DK / nRF52833-DK /nRF51-DK) to PC and execute Bluetooth Low Energy in nRF Connect.

4. Select device to proceed DFU

5. Press "Yes" (this page only shown for first time DFU)

6. Press start scan for find the DFU objective device

7. Select Dfu Targ

8 Select Start Secure DFU Option

9. Select File

10. Start DFU

11. DFU Progress Start


12. DFU Progress Completed



DFU Firmware update by USB

1. Generate DFU File (.zip)

nrfutil pkg generate --hw-version 52 --sd-req 0xb6 --application-version 0xFF --application USBD_TO_UART.hex --key-file public_key.pem USBD_TO_UART.zip

2. Activate Dongle's DFU mode
Press and hold the button on the dongle and plug into PC USB hub, the dongle then enter to DFU mode. PC finds the nRF52 comport


3. Execute USB DFU
Under DOS environment (Windows's Command Line Interface) proceed below command
nrfutil dfu usb-serial -pkg USBD_TO_UART.zip -p COM69
DFU starts immediately and completed when the bar goes to 100%.




Thanks for your time reading through the introduction.
Hope the this article can cover most queries about coding issue for MDBT50Q-RX.
In case there is anything not clear, we encourage developers to contact us directly at cs@raytac.com.
Have a good day and we at Raytac wish you smooth and happy tinkering)

Raytac Corporation 勁達國際電子有限公司
A BT5.1 & BT5 & BT4.2 module maker based on Nordic nRF52 & nRF51 solution
(nRF52840 & nRF52833 & nRF52832 & nRF52810 & nRF52811 & nRF51822)

www.raytac.comemail: cs@raytac.comTel: +886.2.3234.0208

No comments:

Post a Comment