2026年11月12日木曜日

wsl2でArduino Leonardo

2026/11/12:追記
wsl2側でArduinoデバイスを認識しても、arduino-cliコマンドでビルド後のプログラムを
デバイスに書き込む際に、下記のリセット後にどうしてもポートを再認識出来なかったので、
wsl2からの書き込みは断念!
【リセットする理由】
Arduino Leonardo、Micro、SAMD、UNO R4などのネイティブUSB搭載ボードでは、
書き込み前に「1200bpsでシリアルポートを開閉してリセットをかける(1200bps touch)」処理と、
その後のポート再検出待ちが発生します。

他にUbuntuのノートPCが余ってたので、そちらで、Ubuntu直でUSBポートを認識させて
Arduinoデバイスに書き込みするようにしました。

$ ./build_upload.sh
FQBN: arduino:avr:leonardo
Using board 'leonardo' from platform in folder: /home/alfaalfa/.arduino15/packages/arduino/hardware/avr/1.8.8
Using core 'arduino' from platform in folder: /home/alfaalfa/.arduino15/packages/arduino/hardware/avr/1.8.8

Detecting libraries used...
~~途中省略 ~~
AVR device initialized and ready to accept instructions
Device signature = 1E 95 87 (ATmega32U4)
Reading 3956 bytes for flash from input file Blink.ino.hex
in 1 section [0, 0xf73]: 31 pages and 12 pad bytes
Writing 3956 bytes to flash
Writing | ################################################## | 100% 0.31s
3956 bytes of flash written
Avrdude done. Thank you.

Used platform Version Path
arduino:avr 1.8.8 /home/alfaalfa/.arduino15/packages/arduino/hardware/avr/1.8.8

無事書き込み出来て、LEDが点滅しました。

===<以下は旧投稿内容>===============================================
wsl2上で、Arduino Leonardoが認識されてる状態で、arduino-cliを使用して「接続しているボードのFQBN」を確認
$ arduino-cli board list
Port Protocol Type Board Name FQBN Core
/dev/ttyACM0 serial Serial Port (USB) Arduino Leonardo arduino:avr:leonardo arduino:avr

上記で確認出来たボード(FQBN)を使用して詳細を確認
$ arduino-cli board details -b arduino:avr:leonardo
Board name: Arduino Leonardo
FQBN: arduino:avr:leonardo
Board version: 1.8.8

Official Arduino board: ✔

Identification properties: pid=0x0036
vid=0x2341

Identification properties: pid=0x8036
vid=0x2341

Identification properties: pid=0x0036
vid=0x2A03

Identification properties: pid=0x8036
vid=0x2A03

Identification properties: board=leonardo

Package name: arduino
Package maintainer: Arduino
Package URL: https://downloads.arduino.cc/packages/package_index.tar.bz2
Package website: https://www.arduino.cc/
Package online help: https://www.arduino.cc/en/Reference/HomePage

Platform name: Arduino AVR Boards
Platform category: Arduino
Platform architecture: avr
Platform URL: https://downloads.arduino.cc/cores/staging/avr-1.8.8.tar.bz2
Platform file name: avr-1.8.8.tar.bz2
Platform size (bytes): 7162150
Platform checksum: SHA-256:a234c2a43dcd01ce54be665806f183b8e6ec4e966d2e3e0c3358b63023d6390c

Required tool: arduino:arduinoOTA 1.3.0
Required tool: arduino:avr-gcc 7.3.0-atmel3.6.1-arduino7
Required tool: arduino:avrdude 8.0.0-arduino1

Programmers: ID Name
arduinoasisp Arduino as ISP
arduinoasispatmega32u4 Arduino as ISP (ATmega32U4)
arduinoisp ArduinoISP
arduinoisporg ArduinoISP.org
atmel_ice Atmel-ICE (AVR)
avrisp AVR ISP
avrispmkii AVRISP mkII
buspirate BusPirate as ISP
jtag3 Atmel JTAGICE3 (JTAG mode)
jtag3isp Atmel JTAGICE3 (ISP mode)
parallel Parallel Programmer
stk500 Atmel STK500 development board
usbGemma Arduino Gemma
usbasp USBasp
usbtinyisp USBtinyISP

ユーザーのグループ権限不足(Linux / Ubuntu等)に注意!

• 現象: /dev/ttyACM0 にアクセスする権限がなく、ポートを開けずにエラーになっている。
• 対策: ターミナルでユーザーを dialout グループに追加します。bash
sudo usermod -a -G dialout $USER
上記コマンドを実行後は、一度ターミナルを入り直す。

$ cat ./build_upload.sh
#!/bin/bash

# arduino-cli compile [--clean] -b [--upload -p <シリアルポート> [-c オプション]] . [-v]
arduino-cli compile -v -b arduino:avr:leonardo --upload -p /dev/ttyACM0

wsl2上からは書き込みに失敗します。

0 件のコメント: