はじめに
二度と使うことがなかろうと思い,
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/ ↩