Error: #error Architecture or board not supported. - Problem with ESP8266 libs on linux

No, this is the Arduino (AVR) SD library.

You never declare libaries that are built into the framework via lib_deps. As per Arduino/libraries at master · esp8266/Arduino · GitHub, the SD library is built into the Arduino-ESP8266 framework.

If I use your code with the platformio.ini

[env:nodemcuv2]
platform = espressif8266
board = nodemcuv2
framework = arduino
lib_deps =
        adafruit/Adafruit SSD1306@^2.5.1
        adafruit/Adafruit GFX Library@^1.10.13
        paulstoffregen/Time@^1.6.1
        adafruit/Adafruit BusIO@^1.11.0

it already compiles successfully.

Linking .pio\build\nodemcuv2\firmware.elf
Retrieving maximum program size .pio\build\nodemcuv2\firmware.elf
Checking size .pio\build\nodemcuv2\firmware.elf
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
RAM:   [===       ]  34.8% (used 28528 bytes from 81920 bytes)
Flash: [===       ]  28.6% (used 298881 bytes from 1044464 bytes)
Building .pio\build\nodemcuv2\firmware.bin
Creating BIN file ".pio\build\nodemcuv2\firmware.bin" using "C:\Users\Max\.platformio\packages\framework-arduinoespressif8266\bootloaders\eboot\eboot.elf" and ".pio\build\nodemcuv2\firmware.elf"
===================[SUCCESS] Took 19.67 seconds ===================

And as you can see in the project task Advanced → Verbose Build, the library is sourced from the framework folder.

|-- <SD> 2.0.0 (C:\Users\Max\.platformio\packages\framework-arduinoespressif8266\libraries\SD)
|   |-- <SDFS> 0.1.0 (C:\Users\Max\.platformio\packages\framework-arduinoespressif8266\libraries\SDFS)
|   |   |-- <ESP8266SdFat> 2.0.2 (C:\Users\Max\.platformio\packages\framework-arduinoespressif8266\libraries\ESP8266SdFat)

So, just use the same platformio.ini as I do and remove the .pio folder of the project (downloaded libraries are stored in there) and recompile the project.

1 Like