I am having general struggles with PlatformIO. I’ll have something working for awhile, then, inexplicably, something trivial that should work (e.g., a build of a simple program) fails.
Here’s my latest struggle.
I have a simple light flash with BLE program that runs on an ESP32-DevKitC-32E board. My platformio.ini has this:
[env:esp32dev]
platform = espressif32
board = esp32dev
framework = espdif
monitor_speed = 115200
lib_extra_dirs = ~/Documents/Arduino/libraries
The source just includes these headers at the top:
#include <BLEDevice.h>
#include <BLEUtils.h>
#include <BLEServer.h>
When I attempt to build, I get the following error almost immediately:
rocessing esp32dev (platform: espressif32; board: esp32dev; framework: espdif)
-----------------------------------------------------------------------------------------------------------------------------------------------Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/esp32dev.html
PLATFORM: Espressif 32 (3.2.0) > 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:
- tool-esptoolpy 1.30000.201119 (3.0.0)
- toolchain-xtensa32 2.50200.97 (5.2.0)
Error: This board doesn't support espdif framework!
========================================================= [FAILED] Took 0.74 seconds =========================================================
The terminal process "C:\Users\mdbra\.platformio\penv\Scripts\platformio.exe 'run', '--environment', 'esp32dev'" terminated with exit code: 1.
I tried completely removing and re-installing PlatformIO but that did not get rid of the problem.
What I really want to use for framweork is ‘arduino’, but this is what I was getting when I set framwork to ‘arduino’. What I need to use is the ESP32 library for BLE but Arduino framework. This was previously working for me.
Processing esp32dev (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 (3.2.0) > 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.10006.210326 (1.0.6)
- tool-esptoolpy 1.30000.201119 (3.0.0)
- toolchain-xtensa32 2.50200.97 (5.2.0)
LDF: Library Dependency Finder -> http://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 50 compatible libraries
Scanning dependencies...
Dependency Graph
|-- <ArduinoBLE> 1.2.0
|-- <ESP32 BLE Arduino> 1.0.1
|-- <TaskJockey> 0.1.0
Building in release mode
Compiling .pio\build\esp32dev\src\main.cpp.o
Generating partitions .pio\build\esp32dev\partitions.bin
Compiling .pio\build\esp32dev\lib7e4\ArduinoBLE\BLEAdvertisingData.cpp.o
Compiling .pio\build\esp32dev\lib7e4\ArduinoBLE\BLECharacteristic.cpp.o
Compiling .pio\build\esp32dev\lib7e4\ArduinoBLE\BLEDescriptor.cpp.o
Compiling .pio\build\esp32dev\lib7e4\ArduinoBLE\BLEDevice.cpp.o
Compiling .pio\build\esp32dev\lib7e4\ArduinoBLE\BLEService.cpp.o
Compiling .pio\build\esp32dev\lib7e4\ArduinoBLE\BLEStringCharacteristic.cpp.o
Compiling .pio\build\esp32dev\lib7e4\ArduinoBLE\BLETypedCharacteristics.cpp.o
Compiling .pio\build\esp32dev\lib7e4\ArduinoBLE\local\BLELocalAttribute.cpp.o
Compiling .pio\build\esp32dev\lib7e4\ArduinoBLE\local\BLELocalCharacteristic.cpp.o
Compiling .pio\build\esp32dev\lib7e4\ArduinoBLE\local\BLELocalDescriptor.cpp.o
Compiling .pio\build\esp32dev\lib7e4\ArduinoBLE\local\BLELocalDevice.cpp.o
Compiling .pio\build\esp32dev\lib7e4\ArduinoBLE\local\BLELocalService.cpp.o
Compiling .pio\build\esp32dev\lib7e4\ArduinoBLE\remote\BLERemoteAttribute.cpp.o
Compiling .pio\build\esp32dev\lib7e4\ArduinoBLE\remote\BLERemoteCharacteristic.cpp.o
Compiling .pio\build\esp32dev\lib7e4\ArduinoBLE\remote\BLERemoteDescriptor.cpp.o
Compiling .pio\build\esp32dev\lib7e4\ArduinoBLE\remote\BLERemoteDevice.cpp.o
Compiling .pio\build\esp32dev\lib7e4\ArduinoBLE\remote\BLERemoteService.cpp.o
Compiling .pio\build\esp32dev\lib7e4\ArduinoBLE\utility\ATT.cpp.o
Compiling .pio\build\esp32dev\lib7e4\ArduinoBLE\utility\BLEUuid.cpp.o
Compiling .pio\build\esp32dev\lib7e4\ArduinoBLE\utility\GAP.cpp.o
Compiling .pio\build\esp32dev\lib7e4\ArduinoBLE\utility\GATT.cpp.o
Compiling .pio\build\esp32dev\lib7e4\ArduinoBLE\utility\HCI.cpp.o
Compiling .pio\build\esp32dev\lib7e4\ArduinoBLE\utility\HCICordioTransport.cpp.o
Compiling .pio\build\esp32dev\lib7e4\ArduinoBLE\utility\HCIUartTransport.cpp.o
Compiling .pio\build\esp32dev\lib7e4\ArduinoBLE\utility\L2CAPSignaling.cpp.o
Compiling .pio\build\esp32dev\lib070\BLE\BLE2902.cpp.o
Compiling .pio\build\esp32dev\lib070\BLE\BLE2904.cpp.o
C:\Users\mdbra\Documents\Arduino\libraries\ArduinoBLE\src\utility\HCIUartTransport.cpp:33:2: error: #error "Unsupported board selected!"
#error "Unsupported board selected!"
^
C:\Users\mdbra\Documents\Arduino\libraries\ArduinoBLE\src\utility\HCIUartTransport.cpp:99:40: error: 'SerialHCI' was not declared in this scope HCIUartTransportClass HCIUartTransport(SerialHCI, 912600);
^
*** [.pio\build\esp32dev\lib7e4\ArduinoBLE\utility\HCIUartTransport.cpp.o] Error 1
========================================================= [FAILED] Took 24.03 seconds =========================================================The terminal process "C:\Users\mdbra\.platformio\penv\Scripts\platformio.exe 'run', '--environment', 'esp32dev'" terminated with exit code: 1.
Terminal will be reused by tasks, press any key to close it.
This program was building for me using the arduiino framework previously. I’m not sure what changed which would cause this error.