ESP-WROOM-32 を低消費電力で動かす基板

KiCad を使って初めて基板を起こしてみたので紹介します.

はじめに

ESP-WROOM-32 を Deep Sleep を活用して低消費電力で動かす場合,次のような基板が欲しくなります.

  • 電力を消費するデバイスが載っていない (USB-UART変換IC等)
  • ソフトが書き換えやすい
  • サイズがコンパクト
  • 無線 LAN の感度が良い

既存の ESP-WROOM-32 用の基板(Breakout Board)だと,これらのニーズを満たすものがなかったので,自分で作ってみました.

既存の基板の問題点

先ほどのニーズに最も合致しているのが,aitendo の P-ESP32DP-ESP32E です.

動かすのに必要最低限のデバイスしか載っておらず,ソフト書き換え用のスイッチが搭載されて,サイズもコンパクトです.


P-ESP32D は GND 周りが貧弱だったり,スイッチが半田付けしにくいといった何点がありましたが,P-ESP32E ではそれらが改善されており,いい感じです.

しかし,無線 LAN の感度に課題があります.具体的には,ESP-WROOM-32 のアンテナの周囲に基板があるのが望ましくありません.

ESP32 Hardware Design Guidelines [キャッシュ]には次のように,アンテナの周囲 15nn は間隔をあけるように記載されています.

ところが,P-ESP32D と P-ESP32E は共にアンテナの周囲に基板が存在します.

基板設計

設計した基板は次のようなものです.KiCad で作成しました.データは github の kimata/ESP32-breakout に上げてあります.


工夫したのは次の点です.

ESP32 のアンテナの周囲に空間を確保
アンテナを基板から飛び出させることで,ESP32 Hardware Design Guidelines に記載されているアンテナ周囲の空間を確保.
電源ラインのインピーダンスを低減
電源端子の直近に 0.1uF と 10uF を配置するとともに,GND ベタにビアを多数打ち,電源ラインのインピーダンスを下げました.
I2C デバイス用のコネクタを配置
電源供給,ソフト書き込み,I2C デバイス接続のそれぞれの用途に専用のコネクタを配置しました.また,信号モニター用のチェック端子ランドも設けています.

部品は全て入手製の良い表面実装部品で構成しています.スイッチは秋月電子の表面実装用タクトスイッチ SKRPACE010,コネクタは AliExpress で購入できる PH コネクタです.

基板製造

基板は allpcb.com で作りました.

基板サイズとして 35mm * 50mm を指定し,ESP32-breakout/tree/master/gerber/SMDの内容を zip で固めて登録するだけで発注できます.

15枚で送料込み $15.76,カードへの請求額は1,743円でした.1枚当たり 116円

発注してからの流れは次のような感じで,2週間で到着.

2019/07/08 発注
2019/07/12 発送
2019/07/22 到着

基板に部品を実装するとこんな感じ.

部品は全て表面実装タイプですが,Aliexpress で売られている NC-559-ASM-UV というフラックスを使うと手半田でも割と簡単に実装できます.

無線 LAN の感度比較

ESP32 で React アプリケーション』で作成したアプリを書き込み,無線 LAN の感度を比較してみました.

比較したのは,次の3つです.

  • aitendo の P-ESP32D
  • ESP32-DevKitC
  • 今回作成した基板

結果はこちら.A~E は検出したアクセスポイントで,縦軸は受信信号強度です.数字が小さいほど強い信号を受信できていることを示します(すなわち良い).

今回作成した基板は,aitendo 基板に比べて 10dB ほど受信強度が強く,ESP32-DevKitC に比べても全てのアクセスポイントに対して受信強度が良くなっています.

まとめ

既存の基板に対して無線 LAN の受信強度が良い基板を作成することができました.電池駆動したときの電池寿命の比較もいずれ行ってみたいと思います.