Been working on converting an Arduino IDE project to PlatformIO, and for whatever reason I’m having an issue with the GFX_Library_for_Arduino
library that I’ve not been able to find a solution for.
platform.ini
is as follows:
[env:touch-avionics]
platform = espressif32
board = adafruit_qualia_s3_rgb666
framework = arduino
lib_deps =
lvgl/lvgl@^9.2.2
moononournation/GFX Library for Arduino@^1.5.1
adafruit/Adafruit FT6206 Library@^1.1.0
build_flags =
-D LV_CONF_PATH="${PROJECT_DIR}/include/lv_conf.h"
Imports for the project are:
#include <Arduino.h>
#include <Arduino_GFX_Library.h>
#include <Adafruit_FT6206.h>
#include "lv_conf.h"
#include <lvgl.h>
#include "USB.h"
#include "USBHIDKeyboard.h"
#include "button_background.c"
The error during compilation is:
.pio/libdeps/touch-avionics/GFX Library for Arduino/src/databus/Arduino_ESP32RGBPanel.cpp: In member function 'uint16_t* Arduino_ESP32RGBPanel::getFrameBuffer(int16_t, int16_t)':
.pio/libdeps/touch-avionics/GFX Library for Arduino/src/databus/Arduino_ESP32RGBPanel.cpp:93:3: error: 'esp_lcd_rgb_panel_config_t::<unnamed struct>' has no non-static data member named 'refresh_on_demand'
};
^
.pio/libdeps/touch-avionics/GFX Library for Arduino/src/databus/Arduino_ESP32QSPI.cpp: In member function 'virtual bool Arduino_ESP32QSPI::begin(int32_t, int8_t)':
.pio/libdeps/touch-avionics/GFX Library for Arduino/src/databus/Arduino_ESP32QSPI.cpp:59:21: error: 'ESP_INTR_CPU_AFFINITY_AUTO' was not declared in this scope
.isr_cpu_id = ESP_INTR_CPU_AFFINITY_AUTO,
^~~~~~~~~~~~~~~~~~~~~~~~~~
*** [.pio\build\touch-avionics\libde0\GFX Library for Arduino\databus\Arduino_ESP32RGBPanel.cpp.o] Error 1
.pio/libdeps/touch-avionics/GFX Library for Arduino/src/databus/Arduino_ESP32QSPI.cpp:59:21: note: suggested alternative: 'ESP_ETH_PHY_ADDR_AUTO'
.isr_cpu_id = ESP_INTR_CPU_AFFINITY_AUTO,
^~~~~~~~~~~~~~~~~~~~~~~~~~
ESP_ETH_PHY_ADDR_AUTO
.pio/libdeps/touch-avionics/GFX Library for Arduino/src/databus/Arduino_ESP32QSPI.cpp:60:22: error: 'spi_bus_config_t' has no non-static data member named 'isr_cpu_id'
.intr_flags = 0};
^
.pio/libdeps/touch-avionics/GFX Library for Arduino/src/databus/Arduino_ESP32QSPI.cpp:73:23: error: 'SPI_CLK_SRC_DEFAULT' was not declared in this scope
.clock_source = SPI_CLK_SRC_DEFAULT,
^~~~~~~~~~~~~~~~~~~
.pio/libdeps/touch-avionics/GFX Library for Arduino/src/databus/Arduino_ESP32QSPI.cpp:73:23: note: suggested alternative: 'LCD_CLK_SRC_XTAL'
.clock_source = SPI_CLK_SRC_DEFAULT,
^~~~~~~~~~~~~~~~~~~
LCD_CLK_SRC_XTAL
.pio/libdeps/touch-avionics/GFX Library for Arduino/src/databus/Arduino_ESP32QSPI.cpp:83:25: error: 'spi_device_interface_config_t' has no non-static data member named 'clock_source'
.post_cb = nullptr};
^
*** [.pio\build\touch-avionics\libde0\GFX Library for Arduino\databus\Arduino_ESP32QSPI.cpp.o] Error 1
I can’t figure out why some of these functions and variables are not defined in PlatformIO, but are in the Arduino IDE. From what I can gather, I have everything I need, but being new to PlatformIO I’m hoping I just missed something simple.
The only place I can find a reference to ESP_INTR_CPU_AFFINITY_AUTO
, for example, is in the esp-idf
repository under spi_master.c
, but as I understand it the Arduino implementation should be including everything from esp-idf
. When I try to add the esp-idf
framework to my project, I get errors about there being whitespace in the project path, which I’ve read is a limitation of the build system they have, which makes it incompatible with any Arduino library from what I can tell.
Thanks in advance!