Arduino IDEの環境を再確認していたところ、ESP32用の「ボードマネージャURL」が変更されていることに気付きました。
以前のURLは「https://dl.espressif.com/dl/package_esp32_index.json」でしたが、これが「https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json」に変更されていました。
上記のとおりURLを変更したところ、ESP32用ボードが「1.0.6」から「2.0.1」にアップデートされました。
また、ESP32用ボードのバージョン毎のリリース日を確認したところ、以下のとおりでした。
バージョン | リリース日 |
---|---|
2.0.1 | 09 Nov 2021 |
2.0.0 | 31 Aug 2021 |
1.0.6 | 26 Mar 2021 |
数ヶ月間にわたり、最新ではないバージョンを使っていたことになります。
さて、ESP32用ボードを「1.0.6」から「2.0.1」にアップデートしたところ、「1.0.6」では問題なく動いていたTimerCamera用スケッチにて、コンパイルエラーが発生するようになってしまいました。
TimerCamera用のライブラリが、最新版のESP32用ボードに対応できていないようです。
とりあえず、色々と調べてコンパイルエラーを回避しましたので、その内容をまとめておきます。
Timer Camera X(Yahoo!ショッピング)ESP32用ボードのバージョンを「2.0.1」にアップデートした手順は、以下のとおりです。
- 「Arduino」>「Preferences…」の「追加のボードマネージャのURL:」で、ESP32用ボードのURLを「https://dl.espressif.com/dl/package_esp32_index.json」から「https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json」に変更。
- 「ツール」>「ボード:」>「ボードマネージャ…」で「esp32 by Espressif Systems」を「2.0.1」にアップデート。
- 「ツール」>「ライブラリを管理…」で「Timer-CAM by Eeebin バージョン0.0.2」をインストール。
- 「ツール」>「ボード:」で「ESP32 Arduino」>『M5Stack-Timer-CAM」を選択。
この状態で、ESP32用ボードが「1.0.6」の時には問題なく動いていたスケッチをコンパイルすると、以下のエラーが発生しました。
/Users/family/Documents/Arduino/libraries/Timer-CAM/src/app_httpd.cpp:22:10: fatal error: fd_forward.h: No such file or directory
#include "fd_forward.h"
^~~~~~~~~~~~~~
compilation terminated.
ESP32用ボードから「fd_forward.h」「fr_forward.h」が削除されたため、エラーが発生するようになったようです(参考記事は こちら)。
「src/app_httpd.cpp」は、TimerCameraをWebサーバにするときに使うライブラリですが、今回のスケッチには不要なのでファイルそのものを削除しました。
上記を対処した後、再度スケッチをコンパイルすると、今度は以下のエラーが発生しました。
/Users/family/Documents/Arduino/libraries/Timer-CAM/src/battery.c: In function 'bat_init':
/Users/family/Documents/Arduino/libraries/Timer-CAM/src/battery.c:10:25: error: 'ADC1_GPIO38_CHANNEL' undeclared (first use in this function); did you mean 'ADC1_CHANNEL_7'?
#define BAT_ADC_CHANNEL ADC1_GPIO38_CHANNEL
^~~~~~~~~~~~~~~~~~~
ESP32ボード内の「driver/adc.h」から「#include “soc/adc_channel.h”」という記述がなくなったのが原因のようです(参考記事は こちら)。
「src/battery.c」内の「#define BAT_ADC_CHANNEL ADC1_GPIO38_CHANNEL」という記述を「#define BAT_ADC_CHANNEL ADC1_CHANNEL_2」に変更しました。
上記を対処したところ、エラーは発生せずコンパイルできるようになりました。
ところが、コンパイルはできたものの、デバイス起動時に、シリアルモニタに以下のようなエラーが表示されるようになりました。