【ESP32S3】 【ESP-IDF】WeActStudio MiniDebugger で UART から出力されたログをみる

UART通信用に購入した下記デバイスを使ってのログ出力方法をメモする。
ESP-IDFを使った方法を書いたが Arduinoの場合はどうやるのだろうか。

github.com
アリエク公式ショップ👉️https://ja.aliexpress.com/item/1005005303809188.html

ARMのデバッガタイプ (DAPLink-APM32) を購入した。

デフォルトではコンソールログ出力先が USB Serial/JTAG Controller になっているはずなのでそこを変更する。

  • ESP-IDF環境にて idf.py menuconfig で menuconfig を起動
  • Component config -> ESP System Settings -> Channel for console output を選択
    • USB Serial/JTAG ControllerCumstom UART に変更
  • そうするとその下あたりに UART TX/RX on GPIO<num> という項目が出てくるので
    使用しているESP32S3デバイスのUART用GPIO端子(TXとRX)をそれぞれ設定
  • 保存して menuconfig を終了してリビルドする

👇️は設定変更後のmenuconfig画面

MiniDebugger を PC と接続する

接続するとデバイスマネージャの ポート(COMとLPT)USBシリアルデバイス (COMx) というデバイスが表示されるはず。

なお、このデバイスは USB Composite device であり USBDeview で見るとシリアルデバイス以外に以下の機能がある。
ARM用デバッガの機能だと思うがまだ使ったことがない。

Device Name Description Device Type VendorID ProductID USB Class USB SubClass Friendly Name
0009.0000..以下略 USB シリアル デバイス Communication 0d28 0204 02 02 USB シリアル デバイス (COM12)
0009.0000..以下略 USB Input Device HID (Human Interface Device) 0d28 0204 03 00
0009.0000..以下略 WinUsb Device Vendor Specific 0d28 0204 ff 03 WebUSB: CMSIS-DAP
0009.0000..以下略 WinUsb Device Vendor Specific 0d28 0204 ff 00 CMSIS-DAP v2
DAPLink CMSIS-DAP USB Composite Device Unknown 0d28 0204 00 00

WSL2 でみると下記となる。私の環境では /dev/ttyACM0 というデバイスファイルが作成された。

$ lsusb -t
/:  Bus 001.Port 001: Dev 001, Class=root_hub, Driver=vhci_hcd/8p, 480M
    |__ Port 001: Dev 013, If 0, Class=Communications, Driver=cdc_acm, 12M
    |__ Port 001: Dev 013, If 1, Class=CDC Data, Driver=cdc_acm, 12M
    |__ Port 001: Dev 013, If 2, Class=Human Interface Device, Driver=[none], 12M
    |__ Port 001: Dev 013, If 3, Class=Vendor Specific Class, Driver=[none], 12M
    |__ Port 001: Dev 013, If 4, Class=Vendor Specific Class, Driver=[none], 12M

MiniDebugger と ESP32S3 デバイスを接続する

MiniDebuggerの基板の裏側を見ながら接続する。
下図のとおり UART TX, RX, GND の3つだけを接続する。
線がたくさんあるので間違わないように気をつける。

※図はWeActStudioのGithubからお借りしました

PCでログをみる

windows の場合

teraterm などのシリアルモニタソフトでボーレートを115200 にして該当COMポートに接続すれば見れる。
少なくとも teraterm では見れた。

Linux の場合

こちらもシリアルモニタツールでみれるはず。
ESP-IDF環境にて idf.py -p /dev/ttyACM0 monitor を実行したところ見れた。
ボーレートは自動で設定された。

$ idf -p /dev/ttyACM0 monitor
Executing action: monitor
Running idf_monitor in directory /workspaces/esp-idf-devcontainer/esp32s3-touch-2/stream-deck-touch
Executing "/opt/esp/python_env/idf5.5_py3.12_env/bin/python /opt/esp/idf/tools/idf_monitor.py -p /dev/ttyACM0 -b 115200 --toolchain-prefix xtensa-esp32s3-elf- --target esp32s3 --revision 0 /workspaces/esp-idf-devcontainer/esp32s3-touch-2/stream-deck-touch/build/stream-deck-touch.elf /workspaces/esp-idf-devcontainer/esp32s3-touch-2/stream-deck-touch/build/bootloader/bootloader.elf -m '/opt/esp/python_env/idf5.5_py3.12_env/bin/python' '/opt/esp/idf/tools/idf.py' '-p' '/dev/ttyACM0'"...
--- esp-idf-monitor 1.7.0 on /dev/ttyACM0 115200
--- Quit: Ctrl+] | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H
ESP-ROM:esp32s3-20210327
Build:Mar 27 2021
rst:0x1 (POWERON),boot:0x29 (SPI_FAST_FLASH_BOOT)
SPIWP:0xee
mode:DIO, clock div:1
load:0x3fce2820,len:0x158c
load:0x403c8700,len:0xd30
--- 0x403c8700: _stext at ??:?
load:0x403cb700,len:0x2f34
entry 0x403c8928
--- 0x403c8928: call_start_cpu0 at /opt/esp/idf/components/bootloader/subproject/main/bootloader_start.c:25
I (24) boot: ESP-IDF v5.5.1 2nd stage bootloader
I (25) boot: compile time Dec 28 2025 15:15:51
I (25) boot: Multicore bootloader
I (25) boot: chip revision: v0.2
I (28) boot: efuse block revision: v1.3
I (31) boot.esp32s3: Boot SPI Speed : 80MHz
I (35) boot.esp32s3: SPI Mode       : DIO
I (39) boot.esp32s3: SPI Flash Size : 2MB
I (43) boot: Enabling RNG early entropy source...
I (47) boot: Partition Table:
I (50) boot: ## Label            Usage          Type ST Offset   Length
I (56) boot:  0 nvs              WiFi data        01 02 00009000 00006000
I (63) boot:  1 phy_init         RF data          01 01 0000f000 00001000
I (69) boot:  2 factory          factory app      00 00 00010000 00100000
I (76) boot: End of partition table
I (79) esp_image: segment 0: paddr=00010020 vaddr=3c030020 size=0e5c8h ( 58824) map
I (97) esp_image: segment 1: paddr=0001e5f0 vaddr=3fc94700 size=01a28h (  6696) load
I (98) esp_image: segment 2: paddr=00020020 vaddr=42000020 size=2cfdch (184284) map
I (134) esp_image: segment 3: paddr=0004d004 vaddr=3fc96128 size=012ach (  4780) load
I (135) esp_image: segment 4: paddr=0004e2b8 vaddr=40374000 size=1060ch ( 67084) load
I (152) esp_image: segment 5: paddr=0005e8cc vaddr=50000000 size=00020h (    32) load
I (164) boot: Loaded app from partition at offset 0x10000
I (164) boot: Disabling RNG early entropy source...
I (175) cpu_start: Multicore app
I (184) cpu_start: Pro cpu start user code
...
...

その他

  • 基板がなにやらビニールみたいなもので覆われているがはがさなくてよいのか?
    はがさなくてよさそう
    たまたま👇️の記事で見かけたのだが、ショート防止用に熱収縮チューブで覆ったりするようなのでこれも同じだろう。
    余談だが基板も同じ紫色だ。紫の基板は綺麗でいいですよね。
    okiraku-camera.tokyo