概要
WSL Linuxの環境で、Arduino IDEを使うことができた。
背景と目的
WSL Linuxの環境で、Arduino IDEを使う必要が出た。そのため、試しにSPRESENSEに書き込めるように準備する。
詳細
0.実施環境
1. Arduino IDEのインストール
まず、Arduinoの公式サイトから、Linux用App Imageというファイルをダウンロードする。
そして、WSL Linux環境の任意の場所に配置する。
https://www.arduino.cc/en/software/
起動するには、
cd /path/to/app_image chmod 755 ./arduino-ide_2.3.6_Linux_64bit.AppImage ./arduino-ide_2.3.6_Linux_64bit.AppImage
以下のように、Windowアプリのようにウインドウが起動する。

1.2 SPRESENSE ボード定義をインストール
Preferencesより、追加のボードマネージャーの設定をする。Windows版と同じ手順でボード定義をインストールすることができた。
2. USB仮想シリアルポートをLinux側で認識させる
2.1 usbipd-winのインストール
まず、usbipd-winというアプリケーションをPowerShellでインストール。これは、Windowsのアプリなので、通常のインストーラが起動して、ウィザードに沿ってインストールすればOK。
winget install --interactive --id "dorssel.usbipd-win"
2.2 認識させたいデバイスのbus-idを確認
PowerShellを 管理者として実行 し、
usbpid list
私の環境では、COM4のものを認識させたいので、bus-idとしては2-2となる。
Connected: BUSID VID:PID DEVICE STATE 1-9 0db0:0076 USB 入力デバイス Not shared 2-2 10c4:ea60 Silicon Labs CP210x USB to UART Bridge (COM4) Not shared 3-1 0a12:0001 Generic Bluetooth Radio Not shared 3-3 08bb:2704 USB Audio DAC, USB 入力デバイス Not shared 3-4 0c45:7663 USB 入力デバイス Not shared Persisted: GUID DEVICE
2-3 USBデバイスをWSLにアタッチ
usbipd bind --busid 2-2 usbipd attach --busid 2-2 --wsl Ubuntu-22.04
再度、usbipd listをしてみると、
2-2 10c4:ea60 Silicon Labs CP210x USB to UART Bridge (COM4) Attached
となり、STATEがattachedになっている。
Ubuntu側に戻り、ls /devをしてみると、
hagiwara@Takuya-Desktop:~$ ls /dev | grep USB ttyUSB0
となり、/dev/ttyUSB0が使えるようになった。
2-4 Arduino IDEで書き込み
以下のように、UbuntuのArduino IDEで認識された。

掻き込みボタンを押してみたところ、正しく書き込み出来た!

まとめと今後の課題
WSL Linuxで、Arduino IDEを使ってSPRESENSEに書き込み出来た。この環境を使って作業を進めていきたい。