It has been one week I am trying to compile a code that would allow me to use my TFT display in parallel with an esp32.
Now, I have modified the User_Seteup_Select.h for the ILI9341 so I uncommented this line: #include <User_Setups/Setup14_ILI9341_Parallel.h>
And I have not edited the file Setup14_ILI9341_Parallel.h:
// See SetupX_Template.h for all options available
#define USER_SETUP_ID 14
#define TFT_PARALLEL_8_BIT
#define ILI9341_DRIVER
// ESP32 pins used for the parallel interface TFT
#define TFT_CS 33 // Chip select control pin
#define TFT_DC 15 // Data Command control pin - must use a pin in the range 0-31
#define TFT_RST 32 // Reset pin
#define TFT_WR 4 // Write strobe control pin - must use a pin in the range 0-31
#define TFT_RD 2
#define TFT_D0 12 // Must use pins in the range 0-31 for the data bus
#define TFT_D1 13 // so a single register write sets/clears all bits
#define TFT_D2 26
#define TFT_D3 25
#define TFT_D4 17
#define TFT_D5 16
#define TFT_D6 27
#define TFT_D7 14
#define LOAD_GLCD // Font 1. Original Adafruit 8 pixel font needs ~1820 bytes in FLASH
#define LOAD_FONT2 // Font 2. Small 16 pixel high font, needs ~3534 bytes in FLASH, 96 characters
#define LOAD_FONT4 // Font 4. Medium 26 pixel high font, needs ~5848 bytes in FLASH, 96 characters
#define LOAD_FONT6 // Font 6. Large 48 pixel font, needs ~2666 bytes in FLASH, only characters 1234567890:-.apm
#define LOAD_FONT7 // Font 7. 7 segment 48 pixel font, needs ~2438 bytes in FLASH, only characters 1234567890:.
#define LOAD_FONT8 // Font 8. Large 75 pixel font needs ~3256 bytes in FLASH, only characters 1234567890:-.
#define LOAD_GFXFF // FreeFonts. Include access to the 48 Adafruit_GFX free fonts FF1 to FF48 and custom fonts
#define SMOOTH_FONT
However, I do get the following error message (see below). What I find interesting is that no matter what microcontroller I select, it is always the same message. I do not know what to do now, and I have no clue on what happens.
Error message:
*In file included from c:\Users\Administrator\Documents\Arduino\libraries\TFT_eSPI\TFT_eSPI.cpp:24:*
*c:\Users\Administrator\Documents\Arduino\libraries\TFT_eSPI\Processors/TFT_eSPI_ESP32.c: In member function 'uint8_t TFT_eSPI::readByte()':*
*c:\Users\Administrator\Documents\Arduino\libraries\TFT_eSPI\Processors/TFT_eSPI_ESP32.c:113:9: error: 'gpio_input_get' was not declared in this scope; did you mean 'gpio_num_t'?*
* 113 | reg = gpio_input_get(); // Read three times to allow for bus access time*
* | ^~~~~~~~~~~~~~*
* | gpio_num_t*
*exit status 1*
*Compilation error: exit status 1*
I'm really wondering why this error message is thrown regardless of the board or TFT_eSPI version I choose. Could it be because the Arduino IDE is not suited for setting 8-bit parallel communications, and I should switch to PlatformIO instead? ChatGPT, which has been very helpful so far, from helping me writing the setup_user.h file to identifying numerous code errors, has been useless in this case.
I will try Platformio and see if it works.
I could connect myESP32 Wroom32 to my 4.0' ILI9486 in 8bit parallel.
For that, I have used PlatformIO, for some reason, it did not work on the Arduino IDE.
For that, I had to edit a setup file, here is the result:
Setup10000_ILI9486_Parallel.h
// See SetupX_Template.h for all options available
#define USER_SETUP_ID 10000
#define TFT_PARALLEL_8_BIT
#define ILI9486_DRIVER
// ESP32 pins used for the parallel interface TFT
#define TFT_CS 33 // Chip select control pin
#define TFT_DC 15 // Data Command control pin - must use a pin in the range 0-31
#define TFT_RST 32 // Reset pin
#define TFT_WR 4 // Write strobe control pin - must use a pin in the range 0-31
#define TFT_RD 2
#define TFT_D0 12 // Must use pins in the range 0-31 for the data bus
#define TFT_D1 13 // so a single register write sets/clears all bits
#define TFT_D2 26
#define TFT_D3 25
#define TFT_D4 17
#define TFT_D5 16
#define TFT_D6 27
#define TFT_D7 14
#define LOAD_GLCD // Font 1. Original Adafruit 8 pixel font needs ~1820 bytes in FLASH
#define LOAD_FONT2 // Font 2. Small 16 pixel high font, needs ~3534 bytes in FLASH, 96 characters
#define LOAD_FONT4 // Font 4. Medium 26 pixel high font, needs ~5848 bytes in FLASH, 96 characters
#define LOAD_FONT6 // Font 6. Large 48 pixel font, needs ~2666 bytes in FLASH, only characters 1234567890:-.apm
#define LOAD_FONT7 // Font 7. 7 segment 48 pixel font, needs ~2438 bytes in FLASH, only characters 1234567890:.
#define LOAD_FONT8 // Font 8. Large 75 pixel font needs ~3256 bytes in FLASH, only characters 1234567890:-.
#define LOAD_GFXFF // FreeFonts. Include access to the 48 Adafruit_GFX free fonts FF1 to FF48 and custom fonts
#define SMOOTH_FONT
Of coursde, the User_setup_select.h contains:
#include <User_Setups/Setup10000_ILI9486_Parallel.h> // Setup file configured for ESP32 parallel 8bit
In file included from c:\Users\andik\OneDrive\Documents\Arduino\libraries\TFT_eSPI\TFT_eSPI.cpp:24: c:\Users\andik\OneDrive\Documents\Arduino\libraries\TFT_eSPI\Processors/TFT_eSPI_ESP32.c: In member function 'uint8_t TFT_eSPI::readByte()': c:\Users\andik\OneDrive\Documents\Arduino\libraries\TFT_eSPI\Processors/TFT_eSPI_ESP32.c:113:9: error: 'gpio_input_get' was not declared in this scope; did you mean 'gpio_num_t'?
** 113 | reg = gpio_input_get(); // Read three times to allow for bus access time**
** | ^~~~~~~~~~~~~~**
** | gpio_num_t**