(2024-10-17 追記: いただいたコメントの内容を本文に追記しました.)
Freenove ESP32-S3-WROOM CAM ボード (Arduino IDE 互換)、オンボード カメラ ワイヤレス、Python C コード、詳細なチュートリアル、サンプル プロジェクト | Freenove | ベアボーンPC 通販 https://www.amazon.co.jp/dp/B0BMQ8F7FN/ref=as_li_ss_shr?&linkCode=shr&tag=amazonoike-22
Freenove の「ESP32-S3-WROOM CAM ボード」を購入した.
「ESP32-WROVER CAMボード」のほうが少しだけ安いのだけど,こっちは microSDカードスロットがないとの噂があるので,実際のところはどうなのかはわからないけれど,ESP32-S3 のほうにした.
ちょっと思うところあって,SDカード読み書きを勉強というか,自分の理解を再確認したい.
チュートリアルにあるサンプルコードの「Sketch_17.1_CameraWebServer」が立派な Webアプリになっていて,これを書き込むだけでブラウザ越しに使える UI のあるワイヤレス Webカメラとして使える.
単なるワイヤレスカメラとして使うのだったら,私がやることはほとんどないわー.
とりあえず,Wi-Fi の接続を定期的にチェックして,接続が切れていたら自動的に再接続するコードを足しておしまい.
ほかにもいろいろと勉強(再確認)するんだー.
起動時に
「
E (nnn) esp_core_dump_flash: No core dump partition found!
」
というエラーが出てしまうのを解決するのに少し手こずったので,未来の自分のためにメモ書きしておきます.
これは,[Tools] -> [Partition Scheme] の設定をどうこうしても消えない.
要は,エラーメッセージのとおりで,core dump するためのパーティションを作れば解決します.
パーティションの設定は簡単で,Sketch_17.1_CameraWebServer に入っている partitions.csv を次のように書き換えればよいです.
書き換え前:
「
# Name, Type, SubType, Offset, Size, Flags
nvs, data, nvs, 0x9000, 0x5000,
otadata, data, ota, 0xe000, 0x2000,
app0, app, ota_0, 0x10000, 0x3d0000,
fr, data, , 0x3e0000, 0x20000,
」
書き換え後:
「
# Name, Type, SubType, Offset, Size, Flags
nvs, data, nvs, 0x9000, 0x5000,
otadata, data, ota, 0xe000, 0x2000,
app0, app, ota_0, 0x10000, 0x3d0000,
# fr, data, , 0x3e0000, 0x20000,
fr, data, , 0x3e0000, 0x1ff00,
coredump, data, coredump, 0x3fff00, 0x100,
」
(2024-10-17 追記)
lzpel さんからコメントをいただきまして,いつの頃からかパーティションのアライン単位が 0x100 から 0x1000 に変わっているようです.
もし,上に記した「書き換え後」のパーティション設定で
「Partition coredump invalid: Offset 0x3fff00 is not aligned to 0x1000」
というエラーが出てしまうときは,
「
# Name, Type, SubType, Offset, Size, Flags
nvs, data, nvs, 0x9000, 0x5000,
otadata, data, ota, 0xe000, 0x2000,
app0, app, ota_0, 0x10000, 0x3d0000,
fr, data, , 0x3e0000, 0x1f000,
coredump, data, coredump, 0x3ff000, 0x1000,
」
というふうに,0x1000 単位でパーティションを区切るとよいそうです.
コメントをくださって,どうもありがとうございました!
(2024-10-17 追記,ここまで)
coredumpパーティションのサイズに合わせて,直前の frパーティションのサイズを縮めるのが肝です.
partitions.csv を書き換えたら,スケッチのコンパイル & 書き込みをすれば,次回の起動時から「core dump 用のパーティションがない」というエラーは表示されなくなります.
この問題の解決には,次の URL の情報が大変役立ちました.ありがとうございました.
「M5stack core3でのカメラ操作 #PlatformIO – Qiita」
https://qiita.com/yutaka_m/items/0ae5cfe342c59db28338
「ESP32-CAM esp_core_dump_flash – Using Arduino / Microcontrollers – Arduino Forum」
https://forum.arduino.cc/t/esp32-cam-esp-core-dump-flash/1074812/54?page=3
==