原因
結論を先に書くと、ENをプルアップし忘れてただけでした。
もし忘れてた人いたらちゃんとプルアップしましょう。
起こった事象
DEVKITCなどの開発ボードではなく、単体のESP32-WROOM32を自分で設計したPCBに載せて使っていたところ、突然リセットを繰り返すように。
ググるとブートストラップピンのうちフラッシュの供給電圧を決めるGPIO12が起動時にHiになっているとフラッシュへの供給電圧が1.8Vとなり、通常フラッシュは3.3Vで動作するため電圧が足りず起動失敗になるらしい。
そのため起動時にGPIO12はローに落とすか、下の記事のようにefuse書き換えでGPIO12の状態にかかわらずフラッシュの電圧を3.3に固定することで解決している情報をぼちぼち見かけました。
確かデフォでIO12はプルダウン設定だったよな..?と思いつつIO12をGNDに落とす配線を繋げてテストするも状況は変わらず再起動ループ。
別の事例としてフラッシュ消去すると治るというのもありましたが、そもそも再起動ループで書き込みすらできない状況...
そこでいろいろ試しているうちに気づきました。
リセット用のENボタンを触ってると再起動の嵐が止む時があるぞ...?と。
そこからはすぐDEVKITCの回路図を見に行き...するとなんということでしょう。ENピンが10kΩでしっかりプルアップ結線されているではありませんか。
結論
...というわけで、ただの初歩的な配線忘れでした。おばか。
ENをプルアップしたら嘘のように安定動作しました。
さいごに
初めてのQiita記事ですが、こうして覚書的に当たった問題の解決法を記していくのってなんかいいですね。こういうのに助けられてきた身としては、書いた記事で誰か助けられたら嬉しいな...とは思いますが、さすがに今回のは初歩的過ぎて誰もやらかさなさそう...