I have been successfully using PlatformIO and coding for ArduinoIOTCloud for about 18 months withuout issue. Thank you - it is great!
However, I have now run into a problem whereby build fails, due to
.pio/libdeps/az-delivery-devkit-v4/ArduinoIoTCloud/src/utility/ota/OTA.h:65:36: error: ‘NetworkAdapter’ has not been declared
This problem was happening with my project but I have since used the ArduinoIoTCloud-Basic example sketch to prove it is not my code!
In the following output:
- Executing task in folder AIoTC Test: C:\Users\mick.platformio\penv\Scripts\platformio.exe run
Processing az-delivery-devkit-v4 (platform: espressif32; board: az-delivery-devkit-v4; framework: arduino)
--------------------------------------------------------------------------------------------------------------------------------------Verbose mode can be enabled via-v, --verbose
option
CONFIGURATION: Redirecting...
PLATFORM: Espressif 32 (6.1.0) > AZ-Delivery ESP-32 Dev Kit C V4
HARDWARE: ESP32 240MHz, 520KB RAM, 4MB Flash
DEBUG: Current (cmsis-dap) External (cmsis-dap, esp-bridge, esp-prog, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa)
PACKAGES:
- framework-arduinoespressif32 @ 3.20007.0 (2.0.7)
- tool-esptoolpy @ 1.40500.0 (4.5.0)
- toolchain-xtensa-esp32 @ 8.4.0+2021r2-patch5
LDF: Library Dependency Finder → Library Dependency Finder (LDF) — PlatformIO latest documentation
LDF Modes: Finder ~ chain, Compatibility ~ strict
Found 43 compatible libraries
Scanning dependencies…
Dependency Graph
|-- ArduinoIoTCloud @ 1.11.0
| |-- Arduino_ConnectionHandler @ 0.6.6
| | |-- WiFi @ 2.0.0
| | |-- Arduino_DebugUtils @ 1.4.0
| |-- WiFi @ 2.0.0
| |-- Arduino_DebugUtils @ 1.4.0
| |-- WiFiClientSecure @ 2.0.0
| | |-- WiFi @ 2.0.0
| |-- ArduinoMqttClient @ 0.1.7
|-- Arduino_ConnectionHandler @ 0.6.6
| |-- WiFi @ 2.0.0
| |-- Arduino_DebugUtils @ 1.4.0
Building in release mode
Compiling .pio\build\az-delivery-devkit-v4\libb4e\ArduinoIoTCloud\ArduinoIoTCloudTCP.cpp.o
Compiling .pio\build\az-delivery-devkit-v4\libb4e\ArduinoIoTCloud\tls\bearssl\i31_modpow.c.o
Compiling .pio\build\az-delivery-devkit-v4\libb4e\ArduinoIoTCloud\tls\bearssl\i31_modpow2.c.o
Compiling .pio\build\az-delivery-devkit-v4\libb4e\ArduinoIoTCloud\tls\bearssl\i31_montmul.c.o
Compiling .pio\build\az-delivery-devkit-v4\libb4e\ArduinoIoTCloud\tls\bearssl\i31_mulacc.c.o
Compiling .pio\build\az-delivery-devkit-v4\libb4e\ArduinoIoTCloud\tls\bearssl\i31_muladd.c.o
Compiling .pio\build\az-delivery-devkit-v4\libb4e\ArduinoIoTCloud\tls\bearssl\i31_ninv31.c.o
Compiling .pio\build\az-delivery-devkit-v4\libb4e\ArduinoIoTCloud\tls\bearssl\i31_reduce.c.o
Compiling .pio\build\az-delivery-devkit-v4\libb4e\ArduinoIoTCloud\tls\bearssl\i31_rshift.c.o
Compiling .pio\build\az-delivery-devkit-v4\libb4e\ArduinoIoTCloud\tls\bearssl\i31_sub.c.o
Compiling .pio\build\az-delivery-devkit-v4\libb4e\ArduinoIoTCloud\tls\bearssl\i31_tmont.c.o
Compiling .pio\build\az-delivery-devkit-v4\libb4e\ArduinoIoTCloud\tls\bearssl\i32_add.c.o
Compiling .pio\build\az-delivery-devkit-v4\libb4e\ArduinoIoTCloud\tls\bearssl\i32_bitlen.c.o
Compiling .pio\build\az-delivery-devkit-v4\libb4e\ArduinoIoTCloud\tls\bearssl\i32_decmod.c.o
Compiling .pio\build\az-delivery-devkit-v4\libb4e\ArduinoIoTCloud\tls\bearssl\i32_decode.c.o
Compiling .pio\build\az-delivery-devkit-v4\libb4e\ArduinoIoTCloud\tls\bearssl\i32_decred.c.o
Compiling .pio\build\az-delivery-devkit-v4\libb4e\ArduinoIoTCloud\tls\bearssl\i32_div32.c.o
Compiling .pio\build\az-delivery-devkit-v4\libb4e\ArduinoIoTCloud\tls\bearssl\i32_encode.c.o
Compiling .pio\build\az-delivery-devkit-v4\libb4e\ArduinoIoTCloud\tls\bearssl\i32_fmont.c.o
Compiling .pio\build\az-delivery-devkit-v4\libb4e\ArduinoIoTCloud\tls\bearssl\i32_iszero.c.o
Compiling .pio\build\az-delivery-devkit-v4\libb4e\ArduinoIoTCloud\tls\bearssl\i32_modpow.c.o
Compiling .pio\build\az-delivery-devkit-v4\libb4e\ArduinoIoTCloud\tls\bearssl\i32_montmul.c.o
Compiling .pio\build\az-delivery-devkit-v4\libb4e\ArduinoIoTCloud\tls\bearssl\i32_mulacc.c.o
Compiling .pio\build\az-delivery-devkit-v4\libb4e\ArduinoIoTCloud\tls\bearssl\i32_muladd.c.o
Compiling .pio\build\az-delivery-devkit-v4\libb4e\ArduinoIoTCloud\tls\bearssl\i32_ninv32.c.o
Compiling .pio\build\az-delivery-devkit-v4\libb4e\ArduinoIoTCloud\tls\bearssl\i32_reduce.c.o
Compiling .pio\build\az-delivery-devkit-v4\libb4e\ArduinoIoTCloud\tls\bearssl\i32_sub.c.o
Compiling .pio\build\az-delivery-devkit-v4\libb4e\ArduinoIoTCloud\tls\bearssl\i32_tmont.c.o
Compiling .pio\build\az-delivery-devkit-v4\libb4e\ArduinoIoTCloud\tls\bearssl\i62_modpow2.c.o
Compiling .pio\build\az-delivery-devkit-v4\libb4e\ArduinoIoTCloud\tls\bearssl\md5.c.o
Compiling .pio\build\az-delivery-devkit-v4\libb4e\ArduinoIoTCloud\tls\bearssl\md5sha1.c.o
Compiling .pio\build\az-delivery-devkit-v4\libb4e\ArduinoIoTCloud\tls\bearssl\mgf1.c.o
Compiling .pio\build\az-delivery-devkit-v4\libb4e\ArduinoIoTCloud\tls\bearssl\multihash.c.o
Compiling .pio\build\az-delivery-devkit-v4\libb4e\ArduinoIoTCloud\tls\bearssl\pemdec.c.o
Compiling .pio\build\az-delivery-devkit-v4\libb4e\ArduinoIoTCloud\tls\bearssl\pemenc.c.o
Compiling .pio\build\az-delivery-devkit-v4\libb4e\ArduinoIoTCloud\tls\bearssl\poly1305_ctmul.c.o
In file included from .pio/libdeps/az-delivery-devkit-v4/ArduinoIoTCloud/src/ArduinoIoTCloudTCP.cpp:43:
.pio/libdeps/az-delivery-devkit-v4/ArduinoIoTCloud/src/utility/ota/OTA.h:65:36: error: ‘NetworkAdapter’ has not been declared
static int onRequest(String url, NetworkAdapter iface);
^~~~~~~~~~~~~~
.pio/libdeps/az-delivery-devkit-v4/ArduinoIoTCloud/src/ArduinoIoTCloudTCP.cpp: In member function ‘ArduinoIoTCloudTCP::State ArduinoIoTCloudTCP::handle_Connected()’:
Compiling .pio\build\az-delivery-devkit-v4\libb4e\ArduinoIoTCloud\tls\bearssl\poly1305_ctmul32.c.o
.pio/libdeps/az-delivery-devkit-v4/ArduinoIoTCloud/src/ArduinoIoTCloudTCP.cpp:582:60: error: ‘class ConnectionHandler’ has no member named ‘getInterface’
_ota_error = OTA::onRequest(_ota_url, _connection->getInterface());
Compiling .pio\build\az-delivery-devkit-v4\libb4e\ArduinoIoTCloud\tls\bearssl\poly1305_ctmulq.c.o
^~~~~~~~~~~~
Compiling .pio\build\az-delivery-devkit-v4\libb4e\ArduinoIoTCloud\tls\bearssl\poly1305_i15.c.o
*** [.pio\build\az-delivery-devkit-v4\libb4e\ArduinoIoTCloud\ArduinoIoTCloudTCP.cpp.o] Error 1
==================================================== [FAILED] Took 26.60 seconds ====================================================
- The terminal process “C:\Users\mick.platformio\penv\Scripts\platformio.exe ‘run’” terminated with exit code: 1.
- Terminal will be reused by tasks, press any key to close it.
My platform.ini
[env:az-delivery-devkit-v4]
platform = espressif32
board = az-delivery-devkit-v4
framework = arduinolib_ignore =
WiFiNINAlib_compat_mode = strict
lib_deps =
arduino-libraries/ArduinoIoTCloud@^1.1.1
arduino-libraries/Arduino_ConnectionHandler@^0.6.4upload_speed = 115200
monitor_speed = 115200
upload_port = COM25
monitor_port = COM25
monitor_filters =
esp32_exception_decoder
You will see it is loading the latest release of ArduinoIoTCloud @ 1.11.0
Reverting the ArduinoIoTCloud @ 1.10.0 gives an error for missing OTA.h. I recall this was a problem which was worked around by downloading a separate version of OTA.h and I found the solution to this problem in this forum - Thank you!
However, now reverting to ArduinoIoTCloud @ 1.9.0 now builds without error.
I would like to see if I can reproduce the same issue in Arduino IDE (V2.0), however I find that IDE unhelpful in fault analysis!
I’ll try to report it on the Arduino.cc site!