ILI9xxx SPI broken in 2026.1.1 - SOLVED: E32R28T

I have a CYD, based on an ESP32-32E. The board looks like this, link but is the 2.8 inch version and running an ILI9341 screen, rather than the ST7796U in this doc. But the GPIOs are the same.

The below code worked in 2025.12.x. Updated to 2026.1 (and now 2026.1.1 due to an SPI issue) and the screen is blank.

esp32:
  board: nodemcu-32s
  framework:
    type: arduino

logger:
  level: DEBUG

spi:
  - id: tft_spi
    clk_pin: GPIO14
    mosi_pin: GPIO13
    miso_pin: GPIO12

display:
  - platform: ili9xxx
    model: ILI9341
    spi_id: tft_spi
    cs_pin: GPIO15
    dc_pin: GPIO2
    reset_pin: GPIO4
    rotation: 90
    dimensions:
      width: 240
      height: 320
    color_palette: 8BIT # Use 8-bit to save RAM; avoid 16-bit
    auto_clear_enabled: true
    invert_colors: false
    show_test_card: false
    lambda: |-
      it.print(10, 10, id(font_large), TextAlign::TOP_LEFT, "Hello world");

output:
  - platform: ledc
    pin: GPIO27
    id: backlight_pwm

light:
  - platform: monochromatic
    output: backlight_pwm
    name: "Backlight"
    id: backlight
    restore_mode: ALWAYS_ON   

What I’ve tried:

  • mipi_spi
  • Removing the color palette, greyscale and 8bit
  • Removing the dimensions
  • Removing the reset pin, enabling pullup
  • Different models, 9486 specifically
  • ChatGPT & Co-Pilot suggested this was due to driver rewrites in 2026.1, but I can’t find that in the release notes - went down the init path for a long time and gave up as it was making up stuff (as usual!)
  • Changing the data rate from 80MHz to 40, 20 and 10

Wondering if anyone has any ideas or can help? My other thought is to host a version of 2025.12 as I only need this screen device for a standalone project, but will need to make updates.

Maybe try the esp-idf framework?

Also, explicitly enable PSRAM if you have it.

This is my last resort for intractable problems:

I have a 3000 line yaml running on 2025.5, easy to maintain using this.

Victory! I took the screen off the board and discovered “E32R28T” written on the board. This lead to me to here: https://www.elecrow.com/download/product/DHO26028B/2.8inch_ESP32-32E_Display_Specification_V1.0.pdf which is the full correct data sheet. The backlight IO was wrong in the other doc I was referencing. Made that change and we’ve got an RGB test screen. I was using 2025.10 as the version thanks @zoogara for the heads up on this, really useful to know.

Compiled under 2026.1.1 and it’s working still. Added back in the touch controller and that’s working too.

Hoping anyone with this board will find this info as long a lot of hours tearing my hair out over this :grinning:

1 Like

So how it was working with wrong pin on Esphome 2025.12.x ?

The amount of editing / changing code I’d done I’m putting it down to a mistake I made changing this along the way.

I know it worked as I had 2 of these and had flashed them both to test. One I then went on with one to test

Eitherway, hoping this helps someone out

Lesson is, never tinker with the code when upgrading.

Pfft, tinker and test in live and forget version control…

Yeah, but the problem is that when / if you want to make some changes you unwillingly update, too, if in the mean time esphome was updated…

What i miss in esphome is version control…

I agree, but update first, verify all is working and then change the code.

That would be great

1 Like