iT邦幫忙

2023 iThome 鐵人賽

DAY 3
0

Day 03 韌體更新

要開始玩 ChameleonUltra 的第一步就是要學會如何更新韌體,目前要幫 ChameleonUltra 更新韌體最簡單的方式,就是使用 ChameleonUltraGUI 來更新。

ChameleonUltraGUI

[!NOTE]
下載連結

可以透過上方的連結下載 ChameleonUltraGUI,然後透過 USB 連接 ChameleonUltra,就可以開始使用 ChameleonUltraGUI 來更新韌體。

透過 nrfutil 更新韌體 (macOS)

如果沒辦法用 ChameleonUltraGUI 來更新韌體(筆者一開始有遇到這個狀況),或是想要自行修改並且編譯韌體,你就會需要採用官方提供的 nrfutil 方法來更新韌體。

[!NOTE]
ChameleonUltra 官方提供的韌體更新教學: https://github.com/RfidResearchGroup/ChameleonUltra/blob/main/docs/firmware.md

安裝所需套件

筆者是在 macOS 上面進行操作,如果你是使用其他作業系統,你會需要看官方提供的教學文件做相對應的修改。

第一步是要去下載 nrfutil 並且加上執行的權限,然後安裝一些額外的 nrfutil 套件:

$ curl -o /usr/local/bin/nrfutil https://developer.nordicsemi.com/.pc-tools/nrfutil/universal-osx/nrfutil
$ sudo chmod +x /usr/local/bin/nrfutil
$ nrfutil install device

接下來要去下載 ChameleonUltra 專案(裡面有提供以 python 開發的 cli):

$ git clone https://github.com/RfidResearchGroup/ChameleonUltra.git

如果你下載的專案版本太舊,可以透過以下指令更新:

$ cd ChameleonUltra
$ git pull

下載開發測試版的韌體

目前 ChameleonUltra 還沒有提供穩定版的韌體,所以我們只能退而求其次,去下載開發測試版的韌體,但這個版本的韌體有可能會有程式 bug 存在。

[!NOTE]
開發測試版韌體下載連結: https://github.com/RfidResearchGroup/ChameleonUltra/releases/tag/dev

開啟網址後,請根據你的硬體來選擇,ChameleonUltra 跟 Dev Kit 請選擇 ultra-dfu-app.zip,ChameleonLite 請選擇 lite-dfu-app.zip

假設你要把開發測試版的韌體下載到 ~/Downloads 資料夾,可以透過以下指令下載:

# ChameleonUltra 跟 Dev Kit 請選擇 `ultra-dfu-app.zip`
$ curl -o ~/Downloads/ultra-dfu-app.zip https://github.com/RfidResearchGroup/ChameleonUltra/releases/download/dev/ultra-dfu-app.zip

# ChameleonLite 請選擇 `lite-dfu-app.zip`
$ curl -o ~/Downloads/lite-dfu-app.zip https://github.com/RfidResearchGroup/ChameleonUltra/releases/download/dev/lite-dfu-app.zip

讓 ChameleonUltra 進入 DFU 模式

要讓 ChameleonUltra 進入 DFU 有幾種方法:

  • 執行專案中的 software/script/chameleon_cli_main.py 然後執行 hw connecthw dfu 指令。
  • 執行專案中的 resource/tools/enter_dfu.py 指令。
  • 按住 B 鍵然後透過 USB 線接上電腦,就可以進入 DFU 模式,如果以上的方法都不能用就只能使用這個方法。

如果成功進入 DFU 模式,ChameleonUltra 的第 4,5 個 LED 會顯示綠燈🟢🟢並閃爍。

如果進入 DFU 模式後沒有任何操作,會在幾秒後自動離開 DFU 模式,如果 ChameleonUltra 的第 3,4,5,6 個 LED 會呈現綠色的呼吸燈,代表 ChameleonUltra 正在充電。

開始更新韌體

假設你的開發測試版的韌體被下載到 ~/Downloads/ultra-dfu-app.zip,在裝置成功進入 DFU 模式後,就可以執行韌體更新指令了:

nrfutil device program --traits nordicDfu --firmware ~/Downloads/ultra-dfu-app.zip

如果開始進行韌體更新,ChameleonUltra 的第 4,5 個 LED 會顯示藍燈🔵🔵並快速閃爍。

如果 ChameleonUltra 的第 4,5 個 LED 顯示紅燈🔴🔴並緩慢閃爍,代表韌體更新失敗,你可能需要拔掉重新連線裝置,並重新進行韌體更新。

如果韌體更新成功,此時 ChameleonUltra 的第 3,4,5,6 個 LED 會呈現綠色的呼吸燈,代表 ChameleonUltra 正在充電。

出廠韌體 (備份)

這個韌體是網友從募資發起人提供的的 hex 出廠韌體轉換成 dfu 的格式,下載後可以透過 nrfutil 來更新韌體。如果真的遇到需要降版時,為了避免資料出現問題,需要在降版後執行回復出廠設定的指令,這個指令會導致所有資料消失,請自行評估。

備份網址: https://gist.github.com/taichunmin/e38a90fd50e934cbba79259c3a8493a1


上一篇
Day 02 專案初步規劃
下一篇
Day 04 示範程式:裝置資訊及設定管理
系列文
用 Web Serial/Bluetooth 來控制 ChameleonUltra 硬體30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言