Secure DFU OTA for nRF52840 solution modules: Guide to create hex/zip file for implementation – #2(Application)

Following up-Part A: Bootloader (Click for article link)

We will be focusing on:

in this article.

IC: nRF52840
DK: PCA10056 (for nRF52840)
SDK: 17.1.0
Softdevice: s140_nrf52_7.2.0_softdevice.hex
IDE: Keil C
PC: Win 10


Path: nRF5_SDK_17.1.0_ddde560\examples\ble_peripheral\ble_app_uart\pca10056\s140\arm5_no_packs

Before building Application code , some amendments need to be made regarding DFU-related settings and code inside Application:

Step 1.


1A. Add code in definition in C/C++ :
BL_SETTINGS_ACCESS_ONLY NRF_DFU_SVCI_ENABLED NRF_DFU_TRANSPORT_BLE=1
(Total 3 steps definitions need to be set up)


1B. Add “include path” in C/C++


1C. Add the .c files inside red frame in (Screenshots 1 & 2)
and the 2 groups of (nRF_DFU & nRF_SVC)(Screenshot 3) under Project(Screenshot 4)



1D. Add code into main.c file in Application (..\examples\ble_peripheral\ble_app_uart\main.c)
(Please refer to: main.c file at: ..\examples\ble_peripheral\ ble_app_buttonless_dfu)


1E. The code of file: sdk_config.h (..\examples\ble_peripheral\ble_app_uart\pca10056\s140\config\
sdk_config.h) inside Application needs to be modified.


1F. Adjust the IRAM1 value in Target after implementing DFU service:
Check on the IRAM1 Value of *p_app_ram_start to be modified from default: 0x20002AE8 0x3D518 to 0x20002AF8 0x3D508, as shown in the red frame in the bottom right corner.
In this case, the program should run successfully.


1G: Create a file of: nrf52840_xxaa.hex after building application code files.


Step 2. Create a bootloader setting file of nrf52840_bootloader_secure_settings.hex : (via DOS)

nrfutil settings generate –family NRF52840 –application nrf52840_xxaa.hex –application-version 3 — bootloader-version 2 –bl-settings-version 1 nrf52840_bootloader_secure_settings.hex –no-backup


※Stay tuned for #3 – Part C: Combining and merging built files in the next article,

scheduled release in next week(05/06/2024).


Technical guidelines provided by R&D Manager: Mr. MW Lee
Edited by Sales Manager: Mr. Tony Yin

Raytac Corporation 勁達國際電子股份有限公司 
Bluetooth & WiFi module maker based on Nordic nRF54, nRF53, nRF52, nRF7002 solution
BT5.4 &BT5.3 & BT5.2 & BT5.1 Qualified, FCC/IC/CE/Telec/KC/RCM/SRRC/NCC Pre-Certified.
Bluetooth Solution: nRF54, nRF5340, nRF52840, nRF52833, nRF52832, nRF52820, nRF52811, nRF52810, nRF52805, nRF51822
WiFi Solution: nRF7002
http://www.raytac.com
email: service@raytac.com
Tel: +886-2-3234-0208

Secure DFU OTA for nRF52840 solution modules: Guide to create hex/zip file for implementation – #1(Bootloader)

Below are the following steps to implement Secure DFU OTA by using nRF52840 chip set, SDK17.1.0.
It consists of 3 parts:

Part A: Bootloader

Part B: Application (Click for article link)

Part C: Combining and merging built files (Click for article link)

In this article, we will be focusing on Part A: Bootloader.

Path: nRF5_SDK_17.1.0_ddde560\examples\dfu\secure_bootloader\pca10056_s140_ble\arm5_no_packs


Step 1. An error may occur while building bootloader without a public key:
(Shown in red frames in below screenshot)


Step 2. How to generate the public key file in Bootloader?
A. Visit DOS at path: ..\Python27\Scripts
B. Then execute:

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


Step 3. Copy the pk[64] code from (public_key.c) into (dfu_public_key.c)
(Shown in red frames in below screenshot)

※Note: Make sure to save the 3 generated files:
private.pem
public_key.c
dfu_public_key.c


Step 4. Generate the bootloader file: nrf52840_xxaa_s140.hex after re-compiling the code files.


※Stay tuned for #2 – Part B: Application in the next article, scheduled release in next week(29/05/2024).



Technical guidelines provided by R&D Manager: Mr. MW Lee
Edited by Sales Manager: Mr. Tony Yin


Raytac Corporation 勁達國際電子股份有限公司 
Bluetooth & WiFi module maker based on Nordic nRF54, nRF53, nRF52, nRF7002 solution
BT5.4 &BT5.3 & BT5.2 & BT5.1 Qualified, FCC/IC/CE/Telec/KC/RCM/SRRC/NCC Pre-Certified.
Bluetooth Solution: nRF54, nRF5340, nRF52840, nRF52833, nRF52832, nRF52820, nRF52811, nRF52810, nRF52805, nRF51822
WiFi Solution: nRF7002
http://www.raytac.com
email: service@raytac.com
Tel: +886-2-3234-0208

How To Use nRF52840/nRF52833 module DevKit(MDBT50Q series) – 2024 Update – Applied to nRF5 SDK & nRF Connect SDK

Preface:
Here provides an easy introduction of How to set up of nRF52840 & nRF52833 Module Demo board MDBT50Q-DB-40 (for nRF52840) & MDBT50Q-DB-33 (for nRF52833)

 
 
MDBT50Q-DB-40  is a Demo Board built by Raytac’s MDBT50Q-1MV2  with Red PCBA deployed nRF52840 SoC with Bluetooth 5 & Thread Combo, with 1MB Flash Memory and 256KB RAM and Chip Antenna.
 
MDBT50Q-DB-33 is a Demo Board built by Raytac’s MDBT50Q-512K with Green PCBA deployed nRF52833 SoC with Bluetooth 5 & Thread Combo, with 512KB Flash Memory and 128KB RAM and Chip Antenna.
 
Both demo boards are Bluetooth BT5.4 qualified and FCC, IC, CE, Telec, KC, SRRC, RCM, NCC, WPC pre-certified.

Table of contents:

1.1 Hardware Set Up

1.2 Software Kits resources & preparations

1.3 Flash the ready firmware into Raytac’s module

1.4 DFU to MDBT50Q-DB-XX through USB interface 


1.1 Hardware Set Up
 
MDBT50Q-DB-XX package contains:
  • 1 x MDBT50Q-DB-40/MDBT50Q-DB-33
  • 1 x IDC Wire
  • 1 x Data/Power Mini USB Wire(for data transferring)

Where to buy MDBT50Q-DB-XX?

MDBT50Q-DB-40 (nRF52840 Solution)

MDBT50Q-DB-33 (nRF52833 Solution)
Connect Nordic NRF52-DK/NRF52840-DK Connect with MDBT50Q-DB-40 by IDC Wire

※Note: PCA10056 (NRF52840-DK) / PCA10040 (NRF52832-DK) / PCA10100(NRF52833-DK)

Power up MDBT50Q-DB-XX using Mini USB

IMG_0064.jpg
MDBT50Q-DB-40

MDBT50Q-DB-40 Schematic:

MDBT50Q Demo Board Schematic-V2.jpg

MDBT50Q-DB-33 Schematic:

MDBT50Q-DB-33 Schematic


1.2 Software kits resources & preparations

Resources:

Download nRF Connect For Desktop (Please Click Me)

Download nRF Command Line Tools (Please Click Me)

Download NRF5 SDK (The latest V17.1.0) (Please Click Me)

Download Visal Studio Code(Please Click Me)

Preparations:

Option 1.  NRF5 SDK (The latest version V17.1.0)

  1. 1.0_ddde560\components\softdevice\s140\hex\ s140_nrf52_7.2.0_softdevice.hex
  2. 1.0_ddde560\examples\ble_peripheral\ble_app_uart\pca10056\s140\arm5_no_packs\_build\ nrf52840_xxaa.hex

*Tips: If you go with nRF5 SDK option, please consider to add a bootloader hex file if you’re going to make DFU requests in the future.

Option 2.  NCS (Recommended version V2.6.0)

螢幕擷取畫面 2024-06-04 161138

2A.  Find “Toolchain Manager” in app nRFConnect for Desktop

螢幕擷取畫面 2024-06-04 161251

2B.  Install nRFConnect SDK V2.6.0 to your working site.

螢幕擷取畫面 2024-06-04 161333

2C. Prepared with the latest version of nRF Command Line Tools
螢幕擷取畫面 2024-06-04 161627
 
**Note: SEGGER J-LINK Upgrade message might pop up while you’re doing above download.
螢幕擷取畫面 2024-06-04 161724
 
2D. Locate all the necessary kits for programming in PC

螢幕擷取畫面 2024-06-04 161810


1.3 Flash the ready firmware into Raytac’s module

Intro:

With the ready built code of zephyr.hex (Made through NCS) or nrf52840_xxaa.hex & s140_nrf52_7.2.0_softdevice.hex (Made through nRF5-SDK) file for application, we would like to move onto  flashing code into the MDBT50Q BLE module(mounted on MDBT50Q-DB-XX demo board).

Step1.  

Execute nRF Connect >>  Programmer  > > Open

螢幕擷取畫面 2024-06-04 161858

Step2.

Click “SELECT DEVICE” >> Find icon “nRF52840 DK” which is detected by the programmer app

螢幕擷取畫面 2024-06-04 162005

Step3.

Click “nRF52840 DK”>> “Erase All” to remove flash memory inside MDBT50Q BLE Module

螢幕擷取畫面 2024-06-04 162106

Step4.

Click “Add File” to load application zephyr.hex into programmer

螢幕擷取畫面 2024-06-04 162202

✓ If you’re using nRF Connect SDK for code compiling as above, Program the hex file to MDBT50Q BLE module on the MDBT50Q-DB Demo board:

C:\ncs\v2.6.0\nrf\samples\bluetooth\peripheral_uart\build\zephyr\zephyr.hex

✓ If you’re using NRF5 SDK for code compiling, you need to program the following two hex files into the MDBT50Q BLE module on the demo board:

nRF5_SDK_17.1.0_ddde560\components\softdevice\s140\hex\s140_nrf52_7.2.0_softdevice.hex

nRF5_SDK_17.1.0_ddde560\examples\ble_peripheral\ble_app_uart\pca10056\s140\arm5_no_packs\_build\ nrf52840_xxaa.hex

 

!! Important Tips to securing DFU:!!

If it is confirmed to require DFU in this project, it is recommended to build a 4-in-1 bootloader.  (The 4-in-1 bootloader should be created by your own after having the private key activated uniquely).

(1) bootloader.hex

(2) bootloader_setting_file.hex

(3) s140_nrf52_7.2.0_softdevice.hex

(4) nrf52840_xxaa.hex

螢幕擷取畫面 2024-06-04 162300


1.4 DFU to MDBT50Q-DB-XX through USB interface

Intro : Before DFU implement , Please make sure the bootloader file has been installed in your MDBT50Q BLE module.

※Note: NRF52840 SoC supports USB interface to utilize Device Firmware Update (DFU).

How do I prepare the software??

  • Download nrfutil.exe file from Nordic website .
  • It is workable to do List, Program, Recover, Erase, and operations with nRFutil device command to Nordic device.
  • Open DOS mode to install device command type: nrfutil install device

(Jocelyn) How To Use NRF52840 NRF52833 module Dev Kit (MDBT50Q Series) 2024 version - Release file

How do I setup the hardware??

  1. Press Switch 4 and hold
  2. Power up Demo Board
  3. Blue LED Lights on
  4. Demo Board successfully enters into USB DFU Mode

螢幕擷取畫面 2024-06-04 162504

How do I prepare the firmware??

**USB DFU works only in DOS mode.

**USB DFU only works when USB Bootloader installed in current loaded firmware (inside BLE Module)

A single, merged 4-in-1 hex file is required, which includes:

Bootloader, Bootloader setting, Softdevice, and Application.

Firmware DFU requires a .zip file.

USB DFU Execution Steps:

Step 1. When Blue LED Lights on with MDBT50Q-DB (Ready to enter USB DFU Mode)

Step 2. Find out Com Port No. “nRF52 SDFU USB(COMxx)”

螢幕擷取畫面 2024-06-04 162542


Step 3. Execute USB DFU

Option 1. Using device program command:

(1) List the devices with a DFU trigger interface by running:

nrfutil device list –traits nordicDfu

Option1-1

(2) Program new firmware to a device identified by its serial number by running:

nrfutil device program –firmware .zip nrf52840_xxaa.zip –serial-number XXXXXXXXXXXX

Option1-2

Nordic Mesh Network Development Update

Mesh Network has grabbed the highlight of BLE development.
To keep all Nordic users get the updated information post, Raytac keep closely watching for every step Nordic achieved and summarized current status in below.
Mesh-Message Relay & Flooding.png

Nordic Licensed A Free Development IDE-Embedded Studio

Nordic announced it recently has signed with SEGGER to license all developers allowed to use Embedded Studio to develop Nordic nRF51 & nRF52 application freely without any limitations.

Getting started with SEGGER Embedded Studio and the nRF5 SDK Tutorial Video:

Nordic nRF52810 Module MDBT42Q-P192K by Raytac in Mass Production

With Nordic nRF52810 SoC volume production, Raytac announced nRF52810 module MDBT42Q-P192K and MDBT42Q-192K will be available by 2017/11

Nordic Semiconductor News Release For Raytac’s BT5.0 Module

Nordic Semiconductor announces that Raytac Corporation has selected Nordic’s nRF52832 wafer level-chip scale package (WL-CSP) System-on-Chip (SoC) for its compact Bluetooth low energy, Bluetooth® 5 ready MDBT42V and MDBT42V-P modules……… The modules comes in an 8.4 by 6.4 by 1.75mm form factor and offers a high performance ceramic chip antenna delivering a wireless connectivity range of over 100m in open space according to Raytac.
For more detail, please refer to below link of Nordic News Releases Press
 img_0467-1
Raytac Nordic Module Line
Raytac Corporation
A BT4.1 & BT4.2 & BT5 module maker based on Nordic nRF51 & nRF52 solution 
(nRF51822 & nRF51422 & nRF52832 & nR52810 & nRF52840)
www.raytac.com            Tel: +886.2.3234.0208
email: service@raytac.com

New NFC feature on nRF52 Series: Read/write capable Type 4 Tag NFC library in nRF5 SDK

beacon_config-01.png
NFC feature is an interesting function in nRF52 series which can help developers and consumers to extent the device flexibility and accessibility.
Mostly, people knows that the NFC for nRF52 can work for paring work only.
Here Nordic Developer Zone introduced the new features of nRF52 for Type 4 Tag in nRF5 SDK.
Thus, not only used as a standard tag type for storing a web link or a text to launch apps and secure BLE pairing as known as Type 2 Tag. (The library already in nRF5 SDK), but also supports more features which enhance a faster communication and exposing data (known as NFC Type 4 Tag). Thus, nRF52 now can even write data to a tag with an NFC Reader/Writer such as smartphone and used in many secure transactions systems.
For more detail information, you can continue the reading in below which quoted from original post, or simply visit Nordic Developer Zone

Bluetooth 5-ready Nordic nRF52840 multi-protocol SoC released!

 

Raytac Corporation

Bluetooth module maker based on Nordic nRF51 & nRF52 solution 
(Nordic nRF51822 & nRF5142 & nRF52832 & nRF52840)
Bluetooth Specification Version: BT4.0 & BT4.1 & BT4.2
Tel: +886.2.3234.0208
email: service@raytac.com
http://raytaccorp.blogspot.tw/2016/12/bluetooth-5-ready-nordic-nrf52840-multi.html

Quoted from Nordic Press released!
https://www.nordicsemi.com/eng/News/News-releases/Product-Related-News/Bluetooth-5-ready-SoC-from-Nordic-redefines-scope-for-smart-home-IoT-and-wearables-by-delivering-4x-range-2x-bandwidth-and-best-in-class-security

Nordic Semiconductor has today released the new nRF52840 multi-protocol SoC with on-chip support for the upcoming Bluetooth 5 specification. In addition to Bluetooth 5 the nRF52840 also introduces on-chip support for the 802.15.4 standard. With Bluetooth 5’s new high throughput and long range modes and 802.15.4, it offers unparalleled development opportunities for connected devices for IoT. These opportunities include advanced single-chip wearables, wearables with payment options and connected home devices.
 
Bluetooth 5 will undergo ratification by the Bluetooth SIG beginning December 6th2016. Upon completion, we will provide Bluetooth 5-ready SoftDevices to support nRF52840 and the nRF52832 (high-throughput mode only).

Nordic nRF5 SDK v.12.1.0 Released

Raytac Corporation
A BT4.1 & BT4.2 module maker based on Nordic nRF51 & nRF52 solution 
(nRF51822 & nRF51422 & nRF52832 & nRF51802)
Tel: +886.2.3234.0208
Nordic relleased nRF5 SDK V12.1.0

Software Update

nRF5 SDK v.12.1.0
Software Development Kit for the nRF51 Series and nRF52 Series.
Highlights of this release:
  • Added serialization of the S132 SoftDevice v3.0.0. Serialization of S130 is now deprecated.
  • Included the latest MDK v8.9.0 with a crucial workaround for nRF52832 Errata 108.
More information in the release notes (inside the download).