Compile fails appear to be in-part caused by an ESP32 library update, which appears to have broken a bunch of libraries that require it.
Much greater detail here: https://github.com/espressif/esp-idf/issues/9184
Appears that GPIO was never supposed to be exposed, and removing access to the struct is causing this issue.
Full Error Attached
In file included from c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp:16: c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp: In member function 'void TFT_eSPI::spi_begin()': c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.h:231:5: error: 'GPIO' was not declared in this scope 231 | GPIO.out_w1tc = (1 << TFT_CS); \ | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp:58:9: note: in expansion of macro 'CS_L' 58 | CS_L; | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp: In member function 'void TFT_eSPI::spi_end()': c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.h:233:14: error: 'GPIO' was not declared in this scope 233 | #define CS_H GPIO.out_w1ts = (1 << TFT_CS) //;GPIO.out_w1ts = (1 << TFT_CS) | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp:74:13: note: in expansion of macro 'CS_H' 74 | CS_H; | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp: In member function 'void TFT_eSPI::spi_begin_read()': c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.h:231:5: error: 'GPIO' was not declared in this scope 231 | GPIO.out_w1tc = (1 << TFT_CS); \ | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp:93:9: note: in expansion of macro 'CS_L' 93 | CS_L; | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp: In member function 'void TFT_eSPI::spi_end_read()': c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.h:233:14: error: 'GPIO' was not declared in this scope 233 | #define CS_H GPIO.out_w1ts = (1 << TFT_CS) //;GPIO.out_w1ts = (1 << TFT_CS) | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp:112:13: note: in expansion of macro 'CS_H' 112 | CS_H; | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp: In member function 'void TFT_eSPI::writecommand(uint8_t)': c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.h:166:14: error: 'GPIO' was not declared in this scope 166 | #define DC_C GPIO.out_w1tc = (1 << TFT_DC) //;GPIO.out_w1tc = (1 << TFT_DC) | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp:569:5: note: in expansion of macro 'DC_C' 569 | DC_C; | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp: In member function 'void TFT_eSPI::writedata(uint8_t)': c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.h:167:14: error: 'GPIO' was not declared in this scope 167 | #define DC_D GPIO.out_w1ts = (1 << TFT_DC) //;GPIO.out_w1ts = (1 << TFT_DC) | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp:585:5: note: in expansion of macro 'DC_D' 585 | DC_D; // Play safe, but should already be in data mode | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp: In member function 'uint8_t TFT_eSPI::readcommand8(uint8_t, uint8_t)': c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.h:166:14: error: 'GPIO' was not declared in this scope 166 | #define DC_C GPIO.out_w1tc = (1 << TFT_DC) //;GPIO.out_w1tc = (1 << TFT_DC) | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp:622:5: note: in expansion of macro 'DC_C' 622 | DC_C; | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp: In member function 'uint16_t TFT_eSPI::readPixel(int32_t, int32_t)': c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.h:233:14: error: 'GPIO' was not declared in this scope 233 | #define CS_H GPIO.out_w1ts = (1 << TFT_CS) //;GPIO.out_w1ts = (1 << TFT_CS) | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp:748:5: note: in expansion of macro 'CS_H' 748 | CS_H; | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp: In member function 'void TFT_eSPI::readRect(int32_t, int32_t, int32_t, int32_t, uint16_t*)': c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.h:233:14: error: 'GPIO' was not declared in this scope 233 | #define CS_H GPIO.out_w1ts = (1 << TFT_CS) //;GPIO.out_w1ts = (1 << TFT_CS) | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp:907:5: note: in expansion of macro 'CS_H' 907 | CS_H; | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp: In member function 'void TFT_eSPI::readRectRGB(int32_t, int32_t, int32_t, int32_t, uint8_t*)': c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.h:233:14: error: 'GPIO' was not declared in this scope 233 | #define CS_H GPIO.out_w1ts = (1 << TFT_CS) //;GPIO.out_w1ts = (1 << TFT_CS) | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp:1589:5: note: in expansion of macro 'CS_H' 1589 | CS_H; | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp: In member function 'void TFT_eSPI::setWindow(int32_t, int32_t, int32_t, int32_t)': c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.h:166:14: error: 'GPIO' was not declared in this scope 166 | #define DC_C GPIO.out_w1tc = (1 << TFT_DC) //;GPIO.out_w1tc = (1 << TFT_DC) | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp:2949:5: note: in expansion of macro 'DC_C' 2949 | DC_C; | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp: In member function 'void TFT_eSPI::readAddrWindow(int32_t, int32_t, int32_t, int32_t)': c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.h:166:14: error: 'GPIO' was not declared in this scope 166 | #define DC_C GPIO.out_w1tc = (1 << TFT_DC) //;GPIO.out_w1tc = (1 << TFT_DC) | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp:3083:5: note: in expansion of macro 'DC_C' 3083 | DC_C; | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp: In member function 'virtual void TFT_eSPI::drawPixel(int32_t, int32_t, uint32_t)': c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.h:166:14: error: 'GPIO' was not declared in this scope 166 | #define DC_C GPIO.out_w1tc = (1 << TFT_DC) //;GPIO.out_w1tc = (1 << TFT_DC) | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp:3318:5: note: in expansion of macro 'DC_C' 3318 | DC_C; | ^~~~
Describe the bug
Compile fails appear to be in-part caused by an ESP32 library update, which appears to have broken a bunch of libraries that require it. Much greater detail here: https://github.com/espressif/esp-idf/issues/9184 Appears that GPIO was never supposed to be exposed, and removing access to the struct is causing this issue.
It was fixed in the M5StickC library, but not the StickCPlus: https://github.com/m5stack/M5StickC/pull/171
To reproduce
Attempt to Compile
Expected behavior
Compile success
Screenshots
No response
Environment
Additional context
Full Error Attached
In file included from c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp:16: c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp: In member function 'void TFT_eSPI::spi_begin()': c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.h:231:5: error: 'GPIO' was not declared in this scope 231 | GPIO.out_w1tc = (1 << TFT_CS); \ | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp:58:9: note: in expansion of macro 'CS_L' 58 | CS_L; | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp: In member function 'void TFT_eSPI::spi_end()': c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.h:233:14: error: 'GPIO' was not declared in this scope 233 | #define CS_H GPIO.out_w1ts = (1 << TFT_CS) //;GPIO.out_w1ts = (1 << TFT_CS) | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp:74:13: note: in expansion of macro 'CS_H' 74 | CS_H; | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp: In member function 'void TFT_eSPI::spi_begin_read()': c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.h:231:5: error: 'GPIO' was not declared in this scope 231 | GPIO.out_w1tc = (1 << TFT_CS); \ | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp:93:9: note: in expansion of macro 'CS_L' 93 | CS_L; | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp: In member function 'void TFT_eSPI::spi_end_read()': c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.h:233:14: error: 'GPIO' was not declared in this scope 233 | #define CS_H GPIO.out_w1ts = (1 << TFT_CS) //;GPIO.out_w1ts = (1 << TFT_CS) | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp:112:13: note: in expansion of macro 'CS_H' 112 | CS_H; | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp: In member function 'void TFT_eSPI::writecommand(uint8_t)': c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.h:166:14: error: 'GPIO' was not declared in this scope 166 | #define DC_C GPIO.out_w1tc = (1 << TFT_DC) //;GPIO.out_w1tc = (1 << TFT_DC) | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp:569:5: note: in expansion of macro 'DC_C' 569 | DC_C; | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp: In member function 'void TFT_eSPI::writedata(uint8_t)': c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.h:167:14: error: 'GPIO' was not declared in this scope 167 | #define DC_D GPIO.out_w1ts = (1 << TFT_DC) //;GPIO.out_w1ts = (1 << TFT_DC) | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp:585:5: note: in expansion of macro 'DC_D' 585 | DC_D; // Play safe, but should already be in data mode | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp: In member function 'uint8_t TFT_eSPI::readcommand8(uint8_t, uint8_t)': c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.h:166:14: error: 'GPIO' was not declared in this scope 166 | #define DC_C GPIO.out_w1tc = (1 << TFT_DC) //;GPIO.out_w1tc = (1 << TFT_DC) | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp:622:5: note: in expansion of macro 'DC_C' 622 | DC_C; | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp: In member function 'uint16_t TFT_eSPI::readPixel(int32_t, int32_t)': c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.h:233:14: error: 'GPIO' was not declared in this scope 233 | #define CS_H GPIO.out_w1ts = (1 << TFT_CS) //;GPIO.out_w1ts = (1 << TFT_CS) | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp:748:5: note: in expansion of macro 'CS_H' 748 | CS_H; | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp: In member function 'void TFT_eSPI::readRect(int32_t, int32_t, int32_t, int32_t, uint16_t*)': c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.h:233:14: error: 'GPIO' was not declared in this scope 233 | #define CS_H GPIO.out_w1ts = (1 << TFT_CS) //;GPIO.out_w1ts = (1 << TFT_CS) | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp:907:5: note: in expansion of macro 'CS_H' 907 | CS_H; | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp: In member function 'void TFT_eSPI::readRectRGB(int32_t, int32_t, int32_t, int32_t, uint8_t*)': c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.h:233:14: error: 'GPIO' was not declared in this scope 233 | #define CS_H GPIO.out_w1ts = (1 << TFT_CS) //;GPIO.out_w1ts = (1 << TFT_CS) | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp:1589:5: note: in expansion of macro 'CS_H' 1589 | CS_H; | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp: In member function 'void TFT_eSPI::setWindow(int32_t, int32_t, int32_t, int32_t)': c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.h:166:14: error: 'GPIO' was not declared in this scope 166 | #define DC_C GPIO.out_w1tc = (1 << TFT_DC) //;GPIO.out_w1tc = (1 << TFT_DC) | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp:2949:5: note: in expansion of macro 'DC_C' 2949 | DC_C; | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp: In member function 'void TFT_eSPI::readAddrWindow(int32_t, int32_t, int32_t, int32_t)': c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.h:166:14: error: 'GPIO' was not declared in this scope 166 | #define DC_C GPIO.out_w1tc = (1 << TFT_DC) //;GPIO.out_w1tc = (1 << TFT_DC) | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp:3083:5: note: in expansion of macro 'DC_C' 3083 | DC_C; | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp: In member function 'virtual void TFT_eSPI::drawPixel(int32_t, int32_t, uint32_t)': c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.h:166:14: error: 'GPIO' was not declared in this scope 166 | #define DC_C GPIO.out_w1tc = (1 << TFT_DC) //;GPIO.out_w1tc = (1 << TFT_DC) | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp:3318:5: note: in expansion of macro 'DC_C' 3318 | DC_C; | ^~~~
Issue checklist