キノコの自省録

テクノロジーとコンテンツの融合を目指して

ESP-WROOM-02のライターを作る

SwitchScienceに、ESP-WROOM-02の開発ボードが売っていますが、これはFTDIのUSBシリアルモジュールとLDOレギュレータが最初から乗っている上、書き込みモードとフラッシュブートモードが切り替えられ、形も非常におさまりが良い優れものですが、単価1944円とちょっと値が張ります。

ESPr Developer(ESP-WROOM-02開発ボード)

積んでいる部品を足し算するとまあそれくらいにはなるんですが、入手難易度を度外視すると、RaspberryPi Zero Wとコストが変わらなくなります。開発用にはいいんですけど、このモジュール積んだプロダクトを数個作ろうとなると、この値段が重しになります。

そもそもFTDIは書き込み時と、必要に応じてデバッグ時に用いる程度で、ランニング時には不要です。ということで、専用ライターを作ることにしました。対象は、秋月電子DIP化モジュールです。これなら1個650円で済みます。

Wi−Fiモジュール ESP−WROOM−02 DIP化キット: 無線、高周波関連商品 秋月電子通商 電子部品 ネット通販

ということで、ESP-WROOM-02用のライターを作ってみました。

ちなみに、形が気にくわない場合、矩形のピッチ変換基板が単体で売っています。ただし、自分で半田付けの必要があります。

ESP-WROOM-02ピッチ変換用基板《フル版》(基板のみ) - スイッチサイエンス

部品

ざっと箇条書きで。

ユニバーサル基板

ライターは2つ作ったのですが、1つ目はサンハヤトICB-86という、ICによく使われるパターンのユニバーサル基板を使用しました。使用しましたが、今回の用途にはあんまり向いていない感じがしました。普通のユニバーサル基板の方が配線しやすいです。かなり無理やりワイヤー引っ張る羽目になりました。2つ目は普通のCタイプです。

USBシリアルモジュール

1つ目はFT234Xを積んだ小型モジュール(AE-FT234X)を使用しています。FTDI積んでいるにしては安価です。秋月電子で600円です。ただし、100mAまでしか出力できないので、ESP-WROOM-02をフル稼働させると電流不足に陥ります。とはいえ、書き込みだとWiFi動かさないので、これで足りることは確認しました。足少ないので楽というのもあります。

2つ目はFT232RLを使用したモジュール使用しています。なんとAmazonで1つ326円です。奇跡の安さ。はんだ付けしなくてもRX,TX,DTR,CTSとVCC,GNDピンは最初から出ているという親切設計で、VCCは3.3Vか5Vかをジャンパピンで設定可能。ちなみにマイクロBではなく、ミニBです。3.3Vだと50mAしか流れず、動作しません。5Vを使用しましょう。

SODIAL®FT232RLモジュール5V 3.3V FTDI USB TTL変換アダプタレッド

※ちなみに最大170mAとありますが、Flashブートの起動時、波形を確認すると300mAくらい流れているように見えます。500mAは欲しいところです。

コンデンサとレギュレータ

コンデンサパスコンです。降圧している分、コンデンサを差さないと電圧が安定しませんので、手抜きしないようにしましょう。秋月で三端子レギュレータを買うと、同梱していることが多いです。VIN-GND, VOUT-GNDに少なくとも1つずつアルミ電解コンデンサを配置しておきましょう。

レギュレータは三端子レギュレータでOK。5Vから3.3Vへ降圧します。別にDCDCでも構いません。

配線

1次資料であるESPrのデータシートを参考に。

http://espressif.com/sites/default/files/documentation/0c-esp-wroom-02_datasheet_en.pdf

  • 3.3V … 3.3V直結
  • GND … GND直結
  • IO0 … GNDへ
  • EN … 10K接続して3.3Vへ
  • IO15 ,,, 10K接続してGNDへ
  • RST … プルアップ3.3V, タクトスイッチ経由でGNDへ接続
  • TX … RXへ接続
  • RX … TXへ接続

残りはオープンのままです。ライターなので、IO0は直GNDでOK。RSTについては、書き込み時にsync failedが出ることがたまにあるので、その場合、スイッチ押してリセットをかけます。なので、GNDへタクトスイッチ通して繋いでおきます。

完成品

f:id:kinokorori:20170904231443j:plain:w400

2作目のライターです。L字のピンソケットがなかったので、USBシリアルモジュールが真上から刺さるという少々間抜けな形をしていますが。

ArduinoIDEからも、ちゃんと書き込み確認できました。

f:id:kinokorori:20170905011922p:plain