本文章將會教您如何使用勁達Raytac的MDBT50Q模組,結合 nRF Connect SDK (NCS) V2.9.1的開發環境,進行 DFU(裝置韌體更新)。
大綱
1. 硬體架設
2. 軟體資源下載&載入
3. 編譯&燒錄程序
3a. 開啟 VS Code (Visual Studio Code)
3b. DFU 環境建立: DFU over UART(經由UART進行DFU) / DFU over USB(經由USB進行DFU)
3c. 開始編譯您的專案內容
3d. 將專案燒錄進MDBT50Q-DB-40開發板內
4. 用MDBT50Q開發板完成DFU over UART(經由UART進行DFU) / DFU over USB(經由USB進行DFU)
5. 透過 AuTerm (軟體) 進行DFU over USB
6. 在執行DFU時帶入自訂義金鑰(Custom Key)
1. 硬體架設
- 準備一片勁達Raytac 的 MDBT50Q-DB-40開發板(產品連結)
- 確定板端有透過USB跟與電腦連結(如下圖)
2. 軟體資源下載&載入
請下載以下軟體並載入
- nRF Connect for Desktop下載(請點我)
- nRF Command Line Tools下載(請點我)
- Visual Studio Code下載(請點我)
下載 nRF Connect for Desktop ➔ 下載Programmer 和 Toolchain Manager。
開啟 Open Toolchain Manager 並下載 SDK V2.9.1。

下載 Visual Studio Code。
3. 編譯&燒錄程序
3a. 開啟 VS Code (Visual Studio Code) [如下圖]
備註:
如果您第一次使用VS Code,當載入全部軟體之後,你會看到下圖。
點擊 Open VS Code 即可。
建立新專案
我們將建立一個新專案 - peripheral_uart,請根據以下步驟。
Create a new application ➔ Copy a sample ➔ NCS V2.9.1
將專案命名為 peripheral_uart。
鍵入 peripheral_uart ,相應的範例程式會出現在下面的選擇項目中。
備註:我們將專案取名是為了方便辨別我們為此設立的專案,之後該專案將在您指定的目錄中建立名為peripheral_uart_mcuboot的子目錄。
3b. DFU 環境建立: DFU over UART(經由UART進行DFU) / DFU over USB(經由USB進行DFU)
請跟循下列步驟建立
在剛剛創立的專案名稱上 (peripheral_uart_mcuboot)點擊滑鼠右鍵,會跳出一個可供選擇的目錄;
選擇顯示全部 "Show in Explorer"。
如下圖,選擇 New File 並創立 sysbuild.conf 檔案。
創立sysbuild.conf 後,點擊滑鼠左鍵,會出現一個空格可填入內容。
請鍵入檔案名稱及寫入參數,如下:
SB_CONFIG_BOOTLOADER_MCUBOOT=y
設定參數及說明
在sysbuild.conf 底下建立一個新的mcuboot.conf 檔案。
要定義的參數取決於要使用DFU over UART(經由UART進行DFU)還是DFU over USB(經由USB進行DFU)。
備註:
如確定使用DFU over UART,此後的參數及環境設定都須使用 UART 相關的參數及設定;
如確定使用DFU over USB,此後的參數及環境設定都須使用 USB 相關的參數及設定。
使用DFU over UART的參數設定
# Enable logging for MCUboot
CONFIG_LOG=y
CONFIG_MCUBOOT_LOG_LEVEL_WRN=y
# Enable Serial Recovery over UART
CONFIG_MCUBOOT_SERIAL=y
# Disable UART, since Serial Recovery uses it
CONFIG_UART_CONSOLE=n
# Configure the bootloader to use two slots
CONFIG_SINGLE_APPLICATION_SLOT=n
# Turn on a LED so we can see when Serial Recovery mode is active
CONFIG_MCUBOOT_INDICATION_LED=y
使用DFU over USB的參數設定
# Enable logging for MCUboot
CONFIG_LOG=y
CONFIG_MCUBOOT_LOG_LEVEL_WRN=y
# Enable Serial Recovery over UART
CONFIG_MCUBOOT_SERIAL=y
# Disable UART, since Serial Recovery uses it
CONFIG_UART_CONSOLE=n
# Configure bootloader to use two slots
CONFIG_SINGLE_APPLICATION_SLOT=n
# Turn on a LED so we can see when Serial Recovery mode is active
CONFIG_MCUBOOT_INDICATION_LED=y
# Configure serial recovery to use CDC_ACM, which by default uses the USB
CONFIG_BOOT_SERIAL_CDC_ACM=y
# Increase flash space for the MCUboot image to fit USB drivers
CONFIG_PM_PARTITION_SIZE_MCUBOOT=0x10000
接著建立一個新的檔案,取名為 mcuboot.overlay。
依據DFU over UART / DFU over USB 選擇不同的參數。
使用DFU over UART的overlay檔設定
/* Configure button and LED for Serial Recovery */
/ {
aliases {
mcuboot-button0 = &button0;
mcuboot-led0 = &led0;
};
};
使用DFU over USB的overlay檔設定
/* Configure button and LED for Serial Recovery */
/ {
aliases {
mcuboot-button0 = &button0;
mcuboot-led0 = &led0;
};
};
/* Configure CDC ACM */
&zephyr_udc0 {
cdc_acm_uart0: cdc_acm_uart0 {
compatible = "zephyr,cdc-acm-uart";
};
};
備註:若您使用DFU over USB,請依下圖增加以下指令。
完成上列的全部步驟之後,就可以開始編譯您的專案內容了。
3c. 開始編譯您的專案內容
點選下圖左側的新增建置設定 ➔ 選擇 Board ➔ 選擇raytac_mdbt50q_db_40/nrf52840。
點擊右側螢幕下方的 Generate and Build 即可開始編譯。
編譯完成並且沒有顯示錯誤,如下圖。
3d. 將專案燒錄進MDBT50Q-DB-40開發板內。
如成功燒錄,則會如下圖顯示:...flashed successfully。
4. 用MDBT50Q開發板完成DFU over UART(經由UART進行DFU) / DFU over USB(經由USB進行DFU)
請注意:
若選擇使用 UART 建立環境及鍵入參數,請使用 UART 進行硬體更新。
同樣,若選擇USB,請使用 USB 進行硬體更新。
DFU over UART 的硬體更新方式
按住 SW2 按鈕,並將電源插入 USB 連接器。系統將進入bootloader模式。
您可以進行DFU over UART。
您仍然需要按住 SW2 按鈕並連接USB上電。

5. 透過 AuTerm (軟體) 進行DFU over USB
AuTerm 是在 Windows 系統上運行的 PC 軟體(免費下載)。
它允許您在 MDBT50Q-DB-40 進行DFU over USB。
下載網址:
https://github.com/thedjnK/AuTerm/releases/download/v0.35a-pre/AuTerm_test_Win_x64_v0.35a.7z
選擇“配置”標籤來設定正確的 COM 連接埠。(請跟隨下列步驟來執行)
您可以使用檔案:peripheral_uart_mcuboot.signed.bin 進行測試。
該檔案位於 peripheral_uart_mcuboot/build,請跟隨下列步驟來執行。
當進度條達到100%,代表韌體更新已經完成。
6. 在執行DFU時帶入自訂義私人金鑰(Private Key)
開發韌體時,您必須擁有自訂義的私人金鑰 (Private Key) 來保證韌體安全。
若沒有私人金鑰,您會看到如下圖的警告。
步驟一:使用 pip 安裝 imgtool 程式
步驟二:安裝完成後,輸入下圖片命令以在您的專案資料夾中產生私人金鑰。
步驟三:在 sysbuild.conf 中設定如以下,以使用私人金鑰
# Add MCUboot
SB_CONFIG_BOOTLOADER_MCUBOOT=y
#Add private key for MCUboot
SB_CONFIG_BOOT_SIGNATURE_KEY_FILE="\${APP_DIR}/private_key.pem"
# Configure key type
SB_CONFIG_BOOT_SIGNATURE_TYPE_ECDSA_P256=y
步驟四:重新燒錄專案後,您的韌體將受到安全保護。
Edited by Account Manager: Mr. Welson Kuo
Raytac Corporation 勁達國際電子股份有限公司 / Raytac Corporation (USA)
A Bluetooth, Wi-Fi, and LoRa Module Maker/ODM & OEM Manufacturer based on
Nordic nRF54; nRF53: nRF52; nRF51; nRF7002
Semtech Specification: SX1262
Bluetooth Specification: BT6.1 ; BT6 ; BT5.4 ; BT5.3 ; BT5.2.
Wi-Fi Specification: Wi-Fi 6
LoRa Specification: LoRaWAN
All products are FCC/IC/CE/Telec/KC/RCM/SRRC/NCC/WPC Pre-Certified.
http://www.raytac.com
https://www.raytac.com/contact/
email: sales@raytac.com
Tel: +886-2-3234-0208(TW)/+1-626-217-3139(USA)