はじめに
二度と使うことがなかろうと思い,
Arduinoのファームウェアを上書きして,Nintendo Switchにつなげて遊んでおりました.
急にArduinoとして使用する機会ができ,急いで調べたためまとめることにしました.
(またやることがありそうなので私用メモを兼ねます)
環境
| 環境 | |
|---|---|
| OS | windows(wsl使用) |
| マイコン | Maruduino UNO R31 |
| firmware | atmega16u2 |
| wsl | Ubuntu 22.04.2LTS |
※wslにはすでにgitのダウンロードと設定がされています
方法
-
wslでusbデバイスを使用する環境をインストール
ここの一番上のmsiをクリックしてインストール -
wslにも環境をインストール
sudo apt install linux-tools-generic hwdata sudo update-alternatives --install /usr/local/bin/usbip usbip /usr/lib/linux-tools/*-generic/usbip 20 -
管理者でpowershellを開く
-
powershellでデバイスの
bus idを調べるusbipd wsl list -
wslを立ち上げた後,powershellでデバイスを指定する
usbipd wsl attach --busid <busid> -
wslから接続されたデバイスを確認
lsusb -
dfu-programmerのダウンロードsudo apt-get install dfu-programmer -
githubリポジトリからファームウェアを取得
git clone https://github.com/arduino/ArduinoCore-avr.git -
ファームウェアを指定して書き込む
cd ArduinoCore-avr/firmwares/atmegaxxu2/ sudo dfu-programmer atmega16u2 erase sudo dfu-programmer atmega16u2 flash Arduino-COMBINED-dfu-usbserial-atmega16u2-Uno-Rev3.hex # ファイル名は変更されていることがあります sudo dfu-programmer atmega16u2 reset # 勝手にデバイスが切断される -
デバイスがwslから切断されていない場合は以下のコマンドを入力
usbipd wsl detach --busid <busid>
参考にしたサイト
-
Arduino UNOの互換製品です https://www.marutsu.co.jp/pc/i/605620/ ↩