2025年5月29日 星期四

使用勁達模MDBT50Q-DB-40 藍芽低功耗模組模塊開發板,結合Nordic NCS SDK V2.9.1開發環境進行MCUboot DFU(裝置韌體更新) – 使用說明

本文章將會教您如何使用勁達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


DFU over USB
的硬體更新方式

您仍然需要按住 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 連接埠。(請跟隨下列步驟來執行)


切換到該標籤並執行下圖步驟1~6。


您可以使用檔案: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)

2025年2月23日 星期日

勁達 Raytac 隆重宣布,我們nRF7002模組模塊-AN7002Q系列的 Wi-Fi Alliance (WFA) 認證申請已成功獲得批准!

[2025.02.19]
此認證,進一步實現了我們對於提供高品質、可靠且符合標準的無線解決方案的承諾。透過這項認證,我們的模組可確保無縫互通性、增強安全性,並在各種物聯網 (IoT) 應用中提供卓越的性能。



選擇 Raytac WFA 認證WiFi 模組 - AN7002Q系列的優勢列舉如下:

  1. 顯著降低成本 – 相較於 Chip-on-Board (COB) 方案,採用 Raytac 的 Wi-Fi 模組可直接進入 FlexTrack 和 Derivative 計劃(請點擊連結以查看詳細資訊),透過沿用Raytac 的 CID 來大幅減免認證費用,並有效節省上市時間。
  2. 穩定且安全的連接 – 確保與其他 Wi-Fi 認證設備的無縫通信,並符合業界領先的安全標準,以提供穩定且安全的數據傳輸。
  3. 加速產品上市時程 – 預先通過認證的模組可簡化合規流程,大幅縮短開發時間。
  4. 全球市場通行 – 獲得認證有助於符合多個地區的法規要求,拓展商業機會。



如果想了解更多Wi-Fi認證和Wi-Fi + ble應用的相關須知,
您隨時可通過service@raytac.com與我們聯絡。


Edited by Account Manager: Ms. Mandy Chao


Raytac Corporation 勁達國際電子股份有限公司
A Bluetooth, Wi-Fi, and LoRa Module Maker based on
Nordic nRF54; nRF53: nRF52; nRF51; nRF7002
Semtech Specification: SX1262
Bluetooth Specification: 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
email: sales@raytac.com

2024年12月26日 星期四

MDBT50Q-CX-40做為藍牙封包分析工具的使用說明

藍牙技術日益普及,應用場景廣泛。然而,在開發過程中,開發者常常遇到各類問題。這些問題可能來自於硬體的不穩定性、軟體版本的不兼容性、環境干擾等。準確識別問題的根源並找到有效的解決方案,是開發過程中的關鍵之一。


常見的不確定性問題

連線不穩定:藍牙裝置之間的連線容易受到外界干擾,如其他無線訊號、物理障礙物。
配對問題:不同裝置之間的藍牙配對過程可能出現失敗,導致無法建立連線。
資料傳輸錯誤:藍牙封包在傳輸過程中可能出現遺失或損壞,導致資料不完整或錯誤。
相容性問題:不同版本的藍牙協議之間可能存在不兼容問題,影響裝置的互操作性。

問題解析方法

在程式開發過程中,設備間可能會出現訊號異常問題,如傳輸速度受限、資料遺漏、無法連線或資料長度超出藍牙規範等。由於藍牙訊號以光速傳播於空中,無法透過導線直接檢測,需特定軟硬體來捕捉與分析訊號。

為快速定位並解決問題,Nordic 提供與 Wireshark 結合的韌體,可燒錄至 Raytac MDBT50Q-CX-40 Dongle,透過 USB 在電腦接收與分析空中的藍牙訊號。以下介紹如何設定該 Dongle 及環境配置。


Dongle FW燒錄

1. 到下列網址下載nRF Sniffer for Bluetooth LE並解壓縮:https://www.nordicsemi.com/Products/Development-tools/nRF-Sniffer-for-Bluetooth-LE

2. 在解壓縮的目錄中我們可以找到sniffer_nrf52840dongle_nrf52840_4.1.1.hex;我們需要燒錄這個Firmware到MDBT50Q-CX-40。









3. 按住MDBT50Q-CX-40 Dongle按鍵後插入PC USB插槽,當LED亮起時即進入bootloader,在此模式我們可以用nRF Programmer來燒錄。


4. 開啟nRF Programmer依下圖的方式操作即可將Firmware燒錄到Dongle中:
– 選擇要燒錄程式的裝置:







– MDBT50Q-CX-40 Dongle進入open bootloader時所產生的裝置名稱:







– 將要燒錄的Firmware檔案加入到programmer中:







– 選擇要燒錄的Firmware – sniffer_nrf52840dongle_nrf52840_4.1.1.hex











按Write鍵即可將Firmware燒錄到MDBT50Q-CX-40中:

再按SELECT DEVICE可以看到Dongle名稱已變成nRF Sniffer for Bluetooth即已燒錄成功:







Wireshark軟體環搭建步驟

1. 到下列網址下載nRF-Util並安裝:

https://www.nordicsemi.com/Products/Development-tools/nRF-Util

2. 安裝完成後在命令提示字元視窗中使用nrfutil list查看有沒有ble-sniffer的項目,如果沒有可以使用下列的命令安裝:nrfutil install ble-sniffer











3. 到下列網址下載Wireshark並安裝:

https://www.wireshark.org/download.html


4. 安裝完成後依下列設定:Help → About Wireshark → Folders












5. 從Personal Extcap path的Location字串開啟extcap目錄:













6. 將之前下載nrf_sniffer_for_bluetooth_le_4.1.1\extcap中的檔案複製到Wireshark\extcap中,關閉Wireshark應用程式,並重新開啟:











7. 可以看到dongle的interface左邊有一個可設定的圖示出現:
















8. Edit → Configuration Profiles → Import → From Directory → 選取nrf_sniffer_for_bluetooth_le_4.1.1\Profile_nRF_Sniffer_Bluetooth_LE目錄後按選擇資料夾:



















9. Profile已被匯入,按確定鍵:


























到此所有設定都已完成。