以前からLED時計やLCD時計でお世話になっているD1miniだが、7セグLED時計のプログラムを書き換えようとPCと接続したところ、シリアルポートとしては認識するものの、プログラムの書き込みができない状況になっていた。
電源ラインは生きているようで、時計としては正常に動作するのでESP8266が壊れている訳ではないし、USB接続時にシリアルポートとして認識しているのでUSB-UARTチップのCH340が壊れた訳でも無さそう。たぶんCH340とESP8266の接続部分がダメになったのかな…
何をどうやっても復活しなさそうな感じだったので、別のUSB-Serial基板を使ってプログラムを書き換える事にした。
基板のシルク印刷で書かれている型番「AE-FT231X」で検索してみたら、どうやら秋月通商で販売されていた基板のようだ。
いつ買ったかのかも覚えていないUSB-UART変換基板なのだが、チップはFTDIのFT231Xを使っているのでCH340よりは高級というか安心して使用できる気がする。
この基板の良いところは3.3V出力や5V出力のピンがある事で、とりあえずD1miniのプログラムを書き換えるだけなら、電源や信号系の配線を全てこの基板から取れるので面倒がない。
D1miniとAE-FT231Xの接続は簡単で、
AE-FT231X - D1 mini
3.3VOUT - 3V3
GND - G
TXD - RX
RXD - TX
と繋ぐだけだ。
他にはD1miniを書き換えモードにする為に、D3ポートをGNDに落としながらRESETボタンを押す必要があるので、その配線も必要。
書き換えの手順としては、
1.ArduinoIDEを起動して、書き込みたいスケッチを用意する。
2.AE-FT231Xを接続すると仮想COMポートが出現するので、そのポートにD1miniを割り当てる。
3.上記の通り接続してから、D3ポートをGNDとショートさせながらRESETボタンを押してやると、D1miniが書き込みモードに入るので、D3とRESETを共にオープン状態にして、ArduinoIDEでスケッチの書き込みを開始する。
というわけで、何とかプログラムの書き換えはできたのだけれど、思いのほか面倒くさいので、次にプログラムを書き換える時には、D1miniのモジュールごと交換した方が良いかな。
モジュールの値段も使い捨てレベルの値段なので、時間をかけて作業する方がコスパが悪い。