ESPシリーズを使っていて過去にハマったことをメモしておきます
Arduino IDEからダウンロード(書き込み)しようとするとエラーになる †
- ポート番号は合っているのに、いざ書き込みしようとすると応答がない状態でエラーに落ちる
- 互換品のモジュールで起きるものがあります。これはCPU RESETのタイミングがうまく制御出来ないため。
モジュールを改造したり、モジュール上のボタン操作を併用することで書けることがあります。
安いモジュールはこのようなモジュールの設計バグが残ったままのがあるので、引いてしまったら諦めましょう。
- 書き込みはスタートするがすぐにエラーになってしまう
- FTDIやSilicone Lab等の有名メーカー製USB-UARTチップが使われておらず、中国製の安価なCH340シリーズが使われているとエラーが起きやすいです。
これは、CH340が高速動作に対応できない(信号品質が悪い、通信速度の誤差が大きい)ことに由来し、大丈夫なモジュールもあればダメなモジュールもあります。
この場合、速度を115200に落としてやれば安定します。
WiFiを動かすと不安定になる †
- 原因
- WiFiが通信時に大電力を使用するため、5V入力の電圧が低かったりケーブルロスが多いとLDOの動作電圧を下回って3.3Vが不安定になるため。
- 特に互換モジュールで発生しやすいです。
- USB 5Vから内部動作用の3.3Vを作っているLDO LT1117-3.3が原因です。
LT1117のドロップアウト電圧は最大1.2Vですので、5V入力が4.5Vを下回ると3.3V側が不安定になります。
- LT1117は色々なメーカーが互換品を出しています。そのメーカーに寄ってドロップアウト電圧に差があります。
- 対策
- PCのUSBポートで動かさず、ACアダプタやモバイルバッテリーを使う。(出力電圧が実測で5.1Vや5.2Vといった高めの物が良い)
- USBケーブルに急速充電対応の物を使う(太くて硬いものが良い)。
- モジュールに使用されているLM1117-3.3をADP3338AKCZ-3.3に交換する。
ADP3338AKCZはLT1117とピン互換でドロップアウト電圧がとても低く高性能ですが、とても高価(1個300円)です。
ADP3338AKCZのドロップアウト電圧は標準で0.19V、最悪値でも0.4Vです。
DEEP SLEEPに入れても待機時消費電流が多い †
- 本来は数μAオーダーに落ちてWAKE待ちになるはずです。
- 互換モジュール等で使われているCH340が原因です。CH340は待機時電流が大きく、15mA程度までしか落ちません。
- 極限までSLEEPに時待機電流を削減したい場合は、USB-UARTが乗っていないモジュールを使い、電源管理を外部で行うことです。
作例通りに配線したが動かない †
- モジュールは色々なメーカーが互換品を発売しています
- 最初は作例で使用されているものと全く同じ発売元のモジュールを使うことを強く推奨します。
- 初めて使う場合は安価な互換品ではなく多少高くても有名ショップ(秋月、スイッチサイエンス等)で買うことを推奨します。
- いきなりESP系を扱うのではなく、Arduinoの基本であるAVR(Arduino Uno等)から始めて慣れる事も必要です。
- メーカーごとにピン定義が微妙に違うものがあります(特に端っこの方)
- 指定したモジュール型名が違っていて、モジュール上に印刷してあるピン名称(番号)が違う
- 使用しているモジュールと、Arduino IDEに設定したモジュール名が合致していないと、モジュールの表示ピン名と合わなくなります。
- 一見そっくりでもピン数が多い(少ない)モジュールがあります。
- 乗っているESPのピン番号(GPIO番号)とモジュールのピン名称の対象をデータシートを見て確認すること。
動かないポートが有る、そのポートを使おうとすると起動しなくなる †
- SPI FLASHが使用しているポートは避けるのが原則です
ESPシリーズはFLASHメモリーがSoCに外付けです。4MBや16MBのFLASHがつながっていて、ここからコードをロードしています。
このポートは一般IOとしてピンに出ていますが、ここに適切な処理を行っていない外部デバイスや回路を繋ぐと起動できなくなります。
ESP32(WiFi/BT付き)からESP8266に移植したらうまくいかない †
- 使用しているライブラリがESP32専用のものがある
- FLASH容量の違い、パーティショニングの違い
- その他、細かい違い
- 同一ピン数、同一サイズであってもピンの役割が違う
WeMOSシリーズはどこに行った? †
- WeMOS製品の偽物が大量に出回ってしまい、ブランドをLOLINに変えたようです
- 今手に入るWeMOS刻印の製品は全部偽物と思って良さそうです
技適(電波法) †
- 技適マークが刻印されていないものは注意が必要。
- 原則として、技適が取れていないモジュールで電波を出すと電波法違反になります。
無線局の不法開設となり、1年以下の懲役または100万円以下の罰金に処されます。
万が一重要無線に妨害を与えた場合は、5年以下の懲役または250万円以下の罰金です。
- 刻印がなくても、添付資料や袋や箱に技適マークと番号が印刷されているものもあります。
この場合は、その資料等を捨てないようにしないとなりません。
また、技適は実際に取っておらず、嘘の番号を添付している例もあるので注意が必要です。
これは総務省の電波利用ホームページから技適番号を検索して調べられます。違うメーカーの全く違うものの番号が使われていた例があります。
- AmazonやAlliexpressで買わず、国内の信頼のおける有名ショップで買いましょう。