今回 WiFi 機能を失った3号機(1号機に次いで2つ目)
1号機が WiFi.h を include した途端に CPU Halted になるのに対して、本3号機は少し挙動が違います。
void setup() { // put your setup code here, to run once: Serial.begin(115200, SERIAL_8N1); Serial.print("WiFi connecting to "); Serial.print(ssid); WiFi.mode(WIFI_STA); WiFi.begin(ssid, pass); while (1) { int status = WiFi.status(); Serial.println((String)status); if(status == WL_CONNECTED) break; delay(100); } Serial.println(""); Serial.print("WiFi connected"); Serial.print(" IP:"); Serial.println(WiFi.localIP()); }
こんな風で WiFi.status() の値を出力させておくと、6(WL_DISCONNECTED)が連打されたのちに停止。
恐らくは内部的に 3(WL_CONNECTED)に変化した瞬間だと思うんですね、フリーズするのは。
→ただし「3」は出力されず「6」のままフリーズ
この3号機は撮影用に組み立てたうえで、Deep Sleep(Hibernation mode)の消費電流を測定するために、ほんの軽ーく使っただけなんで、1号機ほどヘビーなことやってないのに。
使用開始した3つのうち既に2つ死亡というのは、いったいどういうことだい。
ちなみに全く同じスケッチを2号機に焼くと全く問題なく動作するので、2/23 に降ってきた最新版 arduino-esp32 の不具合でもなさそう。
- なにをすると壊れるのか分からない
- どうすると治るのかも分からない
- 壊れるときは決まって WiFi 周り
- ハード的に壊れるんじゃなくてソフト的な不整合が原因な気がする
完全に工場出荷時に戻すツールを提供してくれ
壊れた3号機はブレークアウトボードに直貼りしてしまいましたが、原因と対策が確立するまでは脱着可能なピンヘッダバージョンにしておこうと強く心に誓うのでした。
(ブレークアウトボードが足りなくなるため)