The library is not published to platformio library manager yet
In order for platformio to recognize the library you need to clone it manually from github and then add a lib_extra_dirs
entry pointing to the directory where you have cloned the repo.
Alternatively you could set the PLATFORMIO_LIB_EXTRA_DIRS
environment variable before calling platformio run
For example, if you are using bash:
git clone https://github.com/iotexproject/arduino-sdk.git
# Set the value of PLATFORMIO_LIB_EXTRA_DIRS to the current directory
export PLATFORMIO_LIB_EXTRA_DIRS=`pwd`
cd arduino-sdk/examples/GetAccountMetadata
platformio run --environment nano_33_iot
platformio run --environment esp32
nano_33_iot builds fine
esp32 build fails because it tries to build WifiNINA. See the output below (with strict mode):
export PLATFORMIO_LIB_EXTRA_DIRS="~/Documents/Arduino/libraries" && pio run --environment esp32
Processing esp32 (platform: espressif32; board: esp32dev; framework: arduino)
-------------------------------------------------------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/esp32dev.html
PLATFORM: Espressif 32 (1.12.1) > Espressif ESP32 Dev Module
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
DEBUG: Current (esp-prog) External (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.10004.200129 (1.0.4)
- tool-esptoolpy 1.20600.0 (2.6.0)
- toolchain-xtensa32 2.50200.80 (5.2.0)
Converting GetAccountMetadata.ino
LDF: Library Dependency Finder -> http://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ deep+, Compatibility ~ strict
Found 28 compatible libraries
Scanning dependencies...
Dependency Graph
|-- <IoTeX-blockchain-client> 0.0.1
| |-- <WiFiNINA> 1.8.13
| | |-- <SPI> 1.0
| |-- <HTTPClient> 1.2
| | |-- <WiFiNINA> 1.8.13
| | | |-- <SPI> 1.0
| | |-- <WiFiClientSecure> 1.0
| | | |-- <WiFiNINA> 1.8.13
| | | | |-- <SPI> 1.0
| |-- <WiFiClientSecure> 1.0
| | |-- <WiFiNINA> 1.8.13
| | | |-- <SPI> 1.0
| |-- <EEPROM> 1.0.3
|-- <WiFiNINA> 1.8.13
| |-- <SPI> 1.0
Building in release mode
Compiling .pio/build/esp32/src/GetAccountMetadata.ino.cpp.o
Compiling .pio/build/esp32/lib9da/WiFiNINA/WiFi.cpp.o
Compiling .pio/build/esp32/lib9da/WiFiNINA/WiFiClient.cpp.o
Compiling .pio/build/esp32/lib9da/WiFiNINA/WiFiServer.cpp.o
Compiling .pio/build/esp32/lib9da/WiFiNINA/WiFiStorage.cpp.o
Compiling .pio/build/esp32/lib9da/WiFiNINA/WiFiUdp.cpp.o
Compiling .pio/build/esp32/lib9da/WiFiNINA/utility/spi_drv.cpp.o
Compiling .pio/build/esp32/lib9da/WiFiNINA/utility/wifi_drv.cpp.o
In file included from /Users/__/Documents/Arduino/libraries/WiFiNINA/src/WiFiStorage.h:23:0,
from /Users/__/Documents/Arduino/libraries/WiFiNINA/src/WiFi.h:38,
from /Users/__/Documents/Arduino/libraries/iotex-client/examples/GetAccountMetadata/GetAccountMetadata.ino:4:
/Users/__/Documents/Arduino/libraries/WiFiNINA/src/utility/wifi_drv.h:293:12: error: 'PinStatus' does not name a type
static PinStatus digitalRead(uint8_t pin);
^
In file included from /Users/__/Documents/Arduino/libraries/WiFiNINA/src/WiFi.cpp:21:0:
/Users/__/Documents/Arduino/libraries/WiFiNINA/src/utility/wifi_drv.h:293:12: error: 'PinStatus' does not name a type
static PinStatus digitalRead(uint8_t pin);
^
In file included from /Users/__/Documents/Arduino/libraries/WiFiNINA/src/WiFiClient.cpp:30:0:
/Users/__/Documents/Arduino/libraries/WiFiNINA/src/utility/wifi_drv.h:293:12: error: 'PinStatus' does not name a type
static PinStatus digitalRead(uint8_t pin);
^
*** [.pio/build/esp32/lib9da/WiFiNINA/WiFi.cpp.o] Error 1
*** [.pio/build/esp32/lib9da/WiFiNINA/WiFiClient.cpp.o] Error 1
In file included from /Users/__/Documents/Arduino/libraries/iotex-client/src/protobuf/pb_api.h:15:0,
from /Users/__/Documents/Arduino/libraries/iotex-client/src/api/rpc.h:9,
from /Users/__/Documents/Arduino/libraries/iotex-client/src/api/wallet/wallets.h:5,
from /Users/__/Documents/Arduino/libraries/iotex-client/src/api/api.h:7,
from /Users/__/Documents/Arduino/libraries/iotex-client/src/connection/connection.h:5,
from /Users/__/Documents/Arduino/libraries/iotex-client/src/account/account.h:4,
from /Users/__/Documents/Arduino/libraries/iotex-client/src/IoTeX-blockchain-client.h:4,
from /Users/__/Documents/Arduino/libraries/iotex-client/examples/GetAccountMetadata/GetAccountMetadata.ino:17:
/Users/__/Documents/Arduino/libraries/iotex-client/src/helpers/json_helper.h: In member function 'virtual void iotex::json::Uint64JsonProp::appendValueToString(String&)':
/Users/__/Documents/Arduino/libraries/iotex-client/src/helpers/json_helper.h:228:36: warning: format '%lu' expects argument of type 'long unsigned int', but argument 3 has type 'uint64_t {aka long long unsigned int}' [-Wformat=]
sprintf(buf, "%lu", _value.uint64);
^
/Users/__/Documents/Arduino/libraries/iotex-client/src/helpers/json_helper.h:228:36: warning: format '%lu' expects argument of type 'long unsigned int', but argument 3 has type 'uint64_t {aka long long unsigned int}' [-Wformat=]
In file included from /Users/__/Documents/Arduino/libraries/WiFiNINA/src/WiFiStorage.h:23:0,
from /Users/__/Documents/Arduino/libraries/WiFiNINA/src/WiFi.h:38,
from /Users/__/Documents/Arduino/libraries/WiFiNINA/src/WiFiServer.cpp:28:
/Users/__/Documents/Arduino/libraries/WiFiNINA/src/utility/wifi_drv.h:293:12: error: 'PinStatus' does not name a type
static PinStatus digitalRead(uint8_t pin);
^
/Users/__/Documents/Arduino/libraries/iotex-client/examples/GetAccountMetadata/GetAccountMetadata.ino: In function 'void initWiFi()':
/Users/__/Documents/Arduino/libraries/iotex-client/examples/GetAccountMetadata/GetAccountMetadata.ino:31:10: error: 'class WiFiClass' has no member named 'mode'
WiFi.mode(WIFI_STA);
^
/Users/__/Documents/Arduino/libraries/iotex-client/examples/GetAccountMetadata/GetAccountMetadata.ino:31:15: error: 'WIFI_STA' was not declared in this scope
WiFi.mode(WIFI_STA);
^
*** [.pio/build/esp32/lib9da/WiFiNINA/WiFiServer.cpp.o] Error 1
In file included from /Users/__/Documents/Arduino/libraries/iotex-client/src/contract/contract.h:4:0,
from /Users/__/Documents/Arduino/libraries/iotex-client/src/IoTeX-blockchain-client.h:7,
from /Users/__/Documents/Arduino/libraries/iotex-client/examples/GetAccountMetadata/GetAccountMetadata.ino:17:
/Users/__/Documents/Arduino/libraries/iotex-client/src/abi/abi.h: At global scope:
/Users/__/Documents/Arduino/libraries/iotex-client/src/abi/abi.h:41:20: warning: 'iotex::abi::EthereumTypeNameToStringLT' defined but not used [-Wunused-variable]
static const char* EthereumTypeNameToStringLT[] = {"uint", "int", "address", "bool", "fixed",
^
*** [.pio/build/esp32/src/GetAccountMetadata.ino.cpp.o] Error 1
In file included from /Users/__/Documents/Arduino/libraries/WiFiNINA/src/WiFiStorage.h:23:0,
from /Users/__/Documents/Arduino/libraries/WiFiNINA/src/WiFiStorage.cpp:20:
/Users/__/Documents/Arduino/libraries/WiFiNINA/src/utility/wifi_drv.h:293:12: error: 'PinStatus' does not name a type
static PinStatus digitalRead(uint8_t pin);
^
In file included from /Users/__/Documents/Arduino/libraries/WiFiNINA/src/WiFiUdp.cpp:29:0:
/Users/__/Documents/Arduino/libraries/WiFiNINA/src/utility/wifi_drv.h:293:12: error: 'PinStatus' does not name a type
static PinStatus digitalRead(uint8_t pin);
^
*** [.pio/build/esp32/lib9da/WiFiNINA/WiFiStorage.cpp.o] Error 1
*** [.pio/build/esp32/lib9da/WiFiNINA/WiFiUdp.cpp.o] Error 1
In file included from /Users/__/Documents/Arduino/libraries/WiFiNINA/src/WiFiStorage.h:23:0,
from /Users/__/Documents/Arduino/libraries/WiFiNINA/src/WiFi.h:38,
from /Users/__/Documents/Arduino/libraries/WiFiNINA/src/utility/spi_drv.cpp:25:
/Users/__/Documents/Arduino/libraries/WiFiNINA/src/utility/wifi_drv.h:293:12: error: 'PinStatus' does not name a type
static PinStatus digitalRead(uint8_t pin);
^
/Users/__/Documents/Arduino/libraries/WiFiNINA/src/utility/spi_drv.cpp: In static member function 'static void SpiDrv::begin()':
/Users/__/Documents/Arduino/libraries/WiFiNINA/src/utility/spi_drv.cpp:94:24: error: 'PINS_COUNT' was not declared in this scope
if (SLAVERESET > PINS_COUNT) {
^
/Users/__/Documents/Arduino/libraries/WiFiNINA/src/utility/spi_drv.cpp:103:15: error: 'NINA_GPIO0' was not declared in this scope
pinMode(NINA_GPIO0, OUTPUT);
^
/Users/__/Documents/Arduino/libraries/WiFiNINA/src/utility/spi_drv.cpp: In static member function 'static int SpiDrv::available()':
/Users/__/Documents/Arduino/libraries/WiFiNINA/src/utility/spi_drv.cpp:66:25: error: 'NINA_GPIO0' was not declared in this scope
#define NINA_GPIOIRQ NINA_GPIO0
^
/Users/__/Documents/Arduino/libraries/WiFiNINA/src/utility/spi_drv.cpp:597:25: note: in expansion of macro 'NINA_GPIOIRQ'
return (digitalRead(NINA_GPIOIRQ) != LOW);
^
In file included from /Users/__/Documents/Arduino/libraries/WiFiNINA/src/utility/wifi_drv.cpp:27:0:
/Users/__/Documents/Arduino/libraries/WiFiNINA/src/utility/wifi_drv.h:293:12: error: 'PinStatus' does not name a type
static PinStatus digitalRead(uint8_t pin);
^
*** [.pio/build/esp32/lib9da/WiFiNINA/utility/spi_drv.cpp.o] Error 1
/Users/__/Documents/Arduino/libraries/WiFiNINA/src/utility/wifi_drv.cpp:1063:1: error: 'PinStatus' does not name a type
PinStatus WiFiDrv::digitalRead(uint8_t pin)
^
*** [.pio/build/esp32/lib9da/WiFiNINA/utility/wifi_drv.cpp.o] Error 1
Please me know if you are able to reproduce the error following my instructions