要開始玩 ChameleonUltra 的第一步就是要學會如何更新韌體,目前要幫 ChameleonUltra 更新韌體最簡單的方式,就是使用 ChameleonUltraGUI 來更新。
[!NOTE]
下載連結
- GitHub: https://github.com/GameTec-live/ChameleonUltraGUI
- Google Play: https://play.google.com/store/apps/details?id=io.chameleon.ultra
- Windows: 需要前往 GitHub Actions 頁面,找到最新的 Build APP workflow run,然後在 Artifacts 下載最新的執行檔。
可以透過上方的連結下載 ChameleonUltraGUI,然後透過 USB 連接 ChameleonUltra,就可以開始使用 ChameleonUltraGUI 來更新韌體。
如果沒辦法用 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 有幾種方法:
software/script/chameleon_cli_main.py
然後執行 hw connect
及 hw dfu
指令。resource/tools/enter_dfu.py
指令。如果成功進入 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