Bodmer / TFT_eSPI

Arduino and PlatformIO IDE compatible TFT library optimised for the Raspberry Pi Pico (RP2040), STM32, ESP8266 and ESP32 that supports different driver chips
Other
3.65k stars 1.05k forks source link

conflict with neopixelWrite or GPIO48 on ESP32S3? #3113

Closed Sisyphos0 closed 7 months ago

Sisyphos0 commented 7 months ago

I'm using this great lib already on a multitude of projects with a multitude of TFTs (most on ESP8266 and ESP32). Thanks a lot Bodmer for this great work!

I now switched to ESP32S3 in a project where I'm using the build-in RGB-Led on GPIO 48. I connected an ILI9341 and everything is working fine. But after calling tft.init() the neopixelWrite() function isn't working anymore, sketch is not hanging or crashing but the RGB-Led is no more responding to the neopixelWrite() commands... (function still working before calling tft.init()) Already checked in TFT_eSPI.h/.cpp, TFT_config.h, TFT_Drivers,Processors but could not find anything wich is obviously conflicting with neopixel functions or GPIO48. As the TFT doesn't have a MISO output I tried with TFT_MISO 12, -1 and #undef, -, no changes.

Using:

define ILI9341_DRIVER

define TFT_MISO 12 // not connected; also tried -1 and undef

define TFT_MOSI 11

define TFT_SCLK 13

define TFT_CS 10 // Chip select control pin

define TFT_DC 14 // Data Command control pin

// #define TFT_RST -1 // TFT_RST is wired to ESP_RST -> leave it commented (for ESP32S3) // #define TFT_BL xx // LED back-light is driven by main prog (TFT_BL should not be -1. comment to disable BL control)

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

define SPI_FREQUENCY 20000000

define SPI_READ_FREQUENCY 20000000



What am I missing? Did anyone had the same problem?
Bodmer commented 7 months ago

This sounds like a resource conflist. I suspect the Neopixel driver is using the SPI resource to drive the serial signal to the LED. Check your Neopixel library requirements. Maybe allocating a different SPI port will fix this?