なんともいえないプログラム

仕事じゃ役に立たない何とも言えないプログラムについて書いています。

文鎮化したpro microをArduino Unoを使って直す

はじめに

少し前にCorne cherryという分離型の自作キーボードのPro microを文鎮化させてしまい、せっかくなので手元にあったArduino Unoを使って直してみたのでメモ代わりに置いておきます。
正常なPro microがあればわざわざArduino Unoなんて使わなくても直せるみたいです。

用意するもの
Arduino Unoをavrライター化

Arduino Unoを文鎮化したPro microに書き込めるようにavrライター化させます。
Arduino IDE公式ページからダウンロードしてきます。Arduino UnoをつないでからIDEの メニューのファイルからスケッチ例→11. ArduinolSPを開きArduino Unoにそのまま書き込みます。この時、書き込んだUnoのシリアルポートを覚えておきます。(自分の環境ではCOM10)

Arduino UnoとPro microをつなぐ

配線は以下の通りです

Uno Pro micro
5V VCC
D12 14(PB1[SCK])
D13 15(PB3[MISO])
D11 16(PB2[MOSI])
GND GND

こんな感じ
f:id:ro1533:20201204211432j:plain

avrdudeコマンドを使ってブートローダを書き込む

avrdudeコマンドはQmk Toolboxに入っているのでそれを使います。
コマンドプロンプトからQmk Toolboxのデータファイルに飛びます

cd "AppData\Local\QMK\QMK Toolbox\QMK Toolboxのバージョン\"

私の時のバージョンは0.0.20でした。 次のコマンドで書き込みます。

avrdude.exe -p atmega32u4 -c stk500v1 -b 19200 -U flash:w:"Caterina-Micro.hexファイル":i -P さっき調べたシリアルポート -U efuse:w:0xC3:m -U hfuse:w:0xD9:m -U lock:w:0x3F:m

私の場合はCOM10です。また、Caterina-Micro.hexファイルはパスなのでダブルコーテーションつけとくといいと思います。
すぐに書き込みが始まるはずですがエラーもでず、ずっと止まってたら一度Unoの電源(USB抜き差し)しておくと治ります。

Qmk Toolboxで通常通りファームウェアを書き込む

通常通りGNDとRSTをショートさせればファームウェアが書き込めるはずです。

おわりに

試行錯誤しながら変なブートローダー書き込んだりしていたらPro microの電源回りが壊れたのかUSB電源が供給されないという微妙に壊れたままです。
USBの通信そのものはできるらしいので書き込むときは5Vのピンヘッダから電源を供給しつつUSBをつないで書き込むというかなりめんどくさいことになってます。