Libraries are a huge pain almost all the time

The following worked just fine for me…

[env:esp32dev]
platform = espressif32
board = esp32dev
framework = arduino
monitor_speed = 9600
lib_deps =
   paulstoffregen/Time
   adafruit/Adafruit SSD1306
   lbernstone/Tone32

In other words, I told PlatformIO to manage the libraries itself, and it did just fine. If you encounter the fatal error: Adafruit_SPIDevice.h: No such file or directory error… try adding lib_ldf_mode = chain+ or lib_ldf_mode = deep+ to the platformio.ini and see if that resolves it. It sometimes fails due to how Adafruit coded that particular include, and PlatformIO needs to work harder to figure out what they are doing.

You are probably also having issues due to the version of BusIO you are using… 0.0.2??? Really? This is what your dependency graph should have looked like…

Scanning dependencies...
Dependency Graph
|-- <Time> 1.6.0
|-- <Adafruit SSD1306> 2.4.0
|   |-- <Adafruit GFX Library> 1.10.0
|   |   |-- <Adafruit BusIO> 1.4.1
|   |   |   |-- <SPI> 1.0
|   |   |   |-- <Wire> 1.0.1
|   |   |-- <Wire> 1.0.1
|   |   |-- <SPI> 1.0
|   |-- <SPI> 1.0
|   |-- <Wire> 1.0.1
|-- <Tone32> 1.0.0
|-- <Adafruit GFX Library> 1.10.0
|   |-- <Adafruit BusIO> 1.4.1
|   |   |-- <SPI> 1.0
|   |   |-- <Wire> 1.0.1
|   |-- <Wire> 1.0.1
|   |-- <SPI> 1.0
|-- <Adafruit BusIO> 1.4.1
|   |-- <SPI> 1.0
|   |-- <Wire> 1.0.1
|-- <Wire> 1.0.1
Building in release mode
1 Like