ファームウェア(nanoCLR)を書き込む
Seeed Studio XIAO ESP32C3に、nanoCLRファームウェアをインストールします。
公式手順はこちら。
先駆者の日本語記事はこちら。
nanoff実行
手順に従い、nanoffを実行します。
PS C:\Users\takashi\source\repos> nanoff --platform esp32 --serialport COM4 --update nanoFramework Firmware Flasher v1.19.0+3520e0fd83 Copyright (C) 2019 nanoFramework project contributors Error E4000: Error executing esptool command. (esptool.py v2.6 Serial port COM4 Connecting... Chip is ESP32D0WDQ6 (revision 0) Features: WiFi, BT, Dual Core, Coding Scheme None MAC: 00:00:00:00:00:00 Uploading stub... Running stub... A fatal error occurred: Invalid head of packet (0x47)
A fatal error occurred: Invalid head of packet (0x47)というエラーが発生しちゃいました。😢
どうやら、nanoffが昔に入れた古いバージョンのようです。
dotnet tool update nanoff -g
してから再実行したところ、問題なくファームウェアが書き込まれました。わーい。
PS C:\Users\takashi\source\repos> nanoff --platform esp32 --serialport COM4 --update .NET nanoFramework Firmware Flasher v2.4.24+49f2228d09 Copyright (C) 2019 .NET Foundation and nanoFramework project contributors Using COM4 @ 1500000 baud to connect to ESP32. Reading details from chip... OK Connected to: ESP32-C3 (ESP32-C3 (revision 3)) Features Wi-Fi Flash size 4MB unknown from ST (manufacturer 0x32 device 0x16406) PSRAM: undetermined Crystal 40MHz MAC 10:91:A8:02:BD:7C No target name was provided! Using 'ESP32_C3_REV3' based on the device characteristics. Trying to find ESP32_C3_REV3 in stable repository...OK Extracting ESP32_C3_REV3-1.8.0.912.zip...OK Updating to 1.8.0.912 Erasing flash... OK Flashing firmware... Wrote 18480 bytes (11402 compressed) at 0x00000000 in 0.4 seconds (effective 350.1 kbit/s)... Hash of data verified. Wrote 1018080 bytes (622361 compressed) at 0x00010000 in 13.9 seconds (effective 586.7 kbit/s)... Hash of data verified. Wrote 3072 bytes (136 compressed) at 0x00008000 in 0.1 seconds (effective 314.4 kbit/s)... Hash of data verified. OK
なにを書き込んでいるのか?
nanoffに-v diag
を付けると、esptool.pyのパラメータが表示されて、なんとなく分かります。
PS C:\Users\takashi\source\repos> nanoff --platform esp32 --serialport COM4 --update -v diag ... Executing esptool with the following parameters: '--port COM4 --chip auto --after no_reset_stub flash_id' ... Executing esptool with the following parameters: '--port COM4 --chip esp32c3 --after no_reset_stub erase_flash' ... Executing esptool with the following parameters: '--port COM4 --baud 1500000 --chip esp32c3 --after hard_reset write_flash --flash_mode dio --flash_freq 40m --flash_size 4MB 0x0 "C:\Users\takashi\.nanoFramework\fw_cache\ESP32_C3_REV3\bootloader.bin" 0x10000 "C:\Users\takashi\.nanoFramework\fw_cache\ESP32_C3_REV3\nanoCLR.bin" 0x8000 "C:\Users\takashi\.nanoFramework\fw_cache\ESP32_C3_REV3\partitions_4mb.bin"'
- 0x0 ... bootloader.bin
- 0x8000 ... partitions_4mb.bin
- 0x10000 ... nanoCLR.bin
ですね。
UART
再起動すると、USBのCOM(左図)とTX/RXピン(右図)には、次のメッセージが出力されていました。(どちらも115200, 8N1。)