Hasni
August 30, 2025, 9:26am
1
Hey Guys
I am trying to get my ESP32-P4-NANO + WAVESHARE_10.1"_800x1280_DSI running in ESPHOME
so i got the firmware on it and also ESPHOME in HA recognize it as online, but it doesnt work smoothly as my esp32-s3 display
1.) i get this errors in the log
2.) i also doesnt see anything on the display
maybe i configed something wrong with the backlight or so, but i searched the whole internet for this combo but it looks to be to new, so i guess not many people have got this running
3.) i also constant pinged my esp-p4 and it looks like it reboots every few minutes because its not pingable now and then
4.) here is my current code i tried with
api:
encryption:
key: "xxxxxxxxxxxxxxxxxxxxxxxxxxxx"
ota:
- platform: esphome
password: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
# Esphome
esphome:
name: hh-esphome-esp32-p4-display-1
friendly_name: HH_ESPHOME_ESP32-P4_DISPLAY_1
# Wifi Settings via Secret File
wifi:
use_address: 192.168.1.136
ssid: !secret wifi_ssid
password: !secret wifi_password
ap:
ssid: !secret wifi_ssid_backup
password: !secret wifi_password_backup
# Logging
logger:
level: debug
# esp32 Settings
esp32:
board: esp32-p4-evboard
flash_size: 16MB
cpu_frequency: 400MHz
framework:
type: esp-idf
advanced:
enable_idf_experimental_features: yes
##### CODE #####
substitutions:
name: waveshare-p4-10-1
friendly_name: Waveshare P4 10.1
external_components:
# For the backlight
- source: github://pr#9879
components: [mipi_dsi]
refresh: 1h
psram:
speed: 200MHz
esp_ldo:
- channel: 3
voltage: 2.5V
esp32_hosted:
variant: ESP32C6
reset_pin: GPIO54
cmd_pin: GPIO19
clk_pin: GPIO18
d0_pin: GPIO14
d1_pin: GPIO15
d2_pin: GPIO16
d3_pin: GPIO17
active_high: true
display:
- platform: mipi_dsi
id: my_display
model: WAVESHARE-P4-NANO-10.1
rotation: 90
update_interval: 1s
lambda: |-
it.print(0, 0, id(my_font), "Hello World");
font:
- file: gfonts://Roboto
id: my_font
size: 20
i2c:
sda: GPIO7
scl: GPIO8
frequency: 400kHz
light:
- platform: mipi_dsi
id: backlight_id
pwm_register: 0x86
restore_mode: ALWAYS_ON
maybe we have a person here who has allready solved this, i guess this combo from waveshare will be bought many times, so this would help many people
thanks up front for your helps guys
zoogara
(Daryl)
August 30, 2025, 9:52am
2
use_address:
does not do what you think it does. It is specifically for changing IP address of a known device during OTA flashing and should be used only for the flashing process.
Use manual_ip:
- eg:
manual_ip:
static_ip: 192.168.1.136
gateway: 192.168.1.1
subnet: 255.255.255.0
I haven’t look at anything else yet. Try that and see what happens first.
Hasni
August 30, 2025, 10:00am
3
thanks for this infos, but the ip is my smallest probleme
zoogara
(Daryl)
August 30, 2025, 10:04am
4
Really? The screen shot shows connection errors and you haven’t posted any logs, so apart from your description it’s a bit hard to diagnose any other issues…
How are you flashing the device? Can you get logs in text format?
1 Like
zoogara
(Daryl)
August 30, 2025, 10:13am
5
Since your backlight component is in PR and still in testing, maybe jump on Discord and see if Clyde is around to answer your issue.
You will need a stable network connection and some text logs first though.
Hasni
August 30, 2025, 11:49am
6
so i got into the discord and searched a little bit arround, i am getting near i guess
# Wifi Settings via Secret File
wifi:
manual_ip:
static_ip: 192.168.1.136
gateway: 192.168.1.1
subnet: 255.255.255.0
ssid: !secret wifi_ssid
password: !secret wifi_password
ap:
ssid: !secret wifi_ssid_backup
password: !secret wifi_password_backup
# Logging
logger:
level: debug
# esp32 Settings
esp32:
board: esp32-p4-evboard
flash_size: 16MB
cpu_frequency: 400MHz
framework:
type: esp-idf
advanced:
enable_idf_experimental_features: yes
# Esphome
esphome:
name: hh-esphome-esp32-p4-display-1
friendly_name: HH_ESPHOME_ESP32-P4_DISPLAY_1
on_boot:
priority: 850
then:
- logger.log: Writing i2c stuff
- lambda: |-
id(display_i2c).write_byte(0x95, 0x11);
id(display_i2c).write_byte(0x95, 0x17);
id(display_i2c).write_byte(0x96, 0x00);
- delay: 100ms
- lambda: |-
id(display_i2c).write_byte(0x96, 0xFF);
i2c_device:
- address: 0x45
id: display_i2c
##### CODE #####
substitutions:
name: waveshare-p4-10-1
friendly_name: Waveshare P4 10.1
external_components:
# For the backlight
- source: github://pr#9879
components: [mipi_dsi]
refresh: 1h
psram:
speed: 200MHz
esp_ldo:
- channel: 3
voltage: 2.5V
esp32_hosted:
variant: ESP32C6
reset_pin: GPIO54
cmd_pin: GPIO19
clk_pin: GPIO18
d0_pin: GPIO14
d1_pin: GPIO15
d2_pin: GPIO16
d3_pin: GPIO17
active_high: true
font:
- file: gfonts://Roboto
id: roboto_48
size: 48
display:
- platform: mipi_dsi
model: WAVESHARE-P4-NANO-10.1
rotation: 90
i2c:
sda: GPIO7
scl: GPIO8
frequency: 400kHz
touchscreen:
- platform: gt911
id: touchscreen_
transform:
swap_xy: true
mirror_y: true
mirror_x: false
light:
- platform: mipi_dsi
id: backlight_id
#pwm_register: 0x86
restore_mode: ALWAYS_ON
lvgl:
byte_order: little_endian
disp_bg_color: 0xFFFFFF
widgets:
- label:
id: hello_label
align: center
text: "HELLO WORLD"
text_font: roboto_48
text_color: 0x000000
but stil nothing showing on the display
but the logs are now very promising
INFO Upload took 2.73 seconds, waiting for result...
INFO OTA successful
INFO Successfully uploaded program.
INFO Starting log output from 192.168.1.136 using esphome API
INFO Successfully resolved hh-esphome-esp32-p4-display-1 @ 192.168.1.136 in 0.000s
INFO Trying to connect to hh-esphome-esp32-p4-display-1 @ 192.168.1.136 in the background
INFO Successfully resolved hh-esphome-esp32-p4-display-1 @ 192.168.1.136 in 0.000s
INFO Successfully connected to hh-esphome-esp32-p4-display-1 @ 192.168.1.136 in 0.004s
INFO Successful handshake with hh-esphome-esp32-p4-display-1 @ 192.168.1.136 in 0.037s
[13:47:13][I][app:200]: ESPHome version 2025.8.2 compiled on Aug 30 2025, 13:46:40
[13:47:13][C][wifi:661]: WiFi:
[13:47:13][C][wifi:444]: Local MAC: 30:ED:A0:E1:E1:89
[13:47:13][C][wifi:449]: SSID: [redacted]
[13:47:13][C][wifi:452]: IP Address: 192.168.1.136
[13:47:13][C][wifi:456]: BSSID: [redacted]
[13:47:13][C][wifi:456]: Hostname: 'hh-esphome-esp32-p4-display-1'
[13:47:13][C][wifi:456]: Signal strength: -58 dB ▂▄▆█
[13:47:13][C][wifi:467]: Channel: 1
[13:47:13][C][wifi:467]: Subnet: 255.255.255.0
[13:47:13][C][wifi:467]: Gateway: 192.168.1.1
[13:47:13][C][wifi:467]: DNS1: 0.0.0.0
[13:47:13][C][wifi:467]: DNS2: 0.0.0.0
[13:47:13][C][logger:252]: Logger:
[13:47:13][C][logger:252]: Max Level: DEBUG
[13:47:13][C][logger:252]: Initial Level: DEBUG
[13:47:13][C][logger:258]: Log Baud Rate: 115200
[13:47:13][C][logger:258]: Hardware UART: USB_SERIAL_JTAG
[13:47:13][C][logger:265]: Task Log Buffer Size: 768
[13:47:13][C][i2c.idf:081]: I2C Bus:
[13:47:13][C][i2c.idf:082]: SDA Pin: GPIO7
[13:47:13][C][i2c.idf:082]: SCL Pin: GPIO8
[13:47:13][C][i2c.idf:082]: Frequency: 400000 Hz
[13:47:13][C][i2c.idf:092]: Recovery: bus successfully recovered
[13:47:13][C][i2c.idf:102]: Results from bus scan:
[13:47:13][C][i2c.idf:108]: Found device at address 0x18
[13:47:13][C][i2c.idf:108]: Found device at address 0x45
[13:47:13][C][i2c.idf:108]: Found device at address 0x5D
[13:47:13][C][esp_ldo:024]: ESP LDO Channel 3:
[13:47:13][C][esp_ldo:025]: Voltage: 2.500000V
[13:47:13][C][esp_ldo:026]: Adjustable: NO
[13:47:13][C][light:088]: Light 'backlight_id'
[13:47:13][C][light:091]: Default Transition Length: 0.0s
[13:47:13][C][light:091]: Gamma Correct: 2.00
[13:47:13][C][i2c_device:012]: I2CDevice
[13:47:13][C][i2c_device:013]: Address: 0x45
[13:47:13][C][psram:016]: PSRAM:
[13:47:13][C][psram:019]: Available: YES
[13:47:13][C][psram:021]: Size: 32768 KB
[13:47:13][C][display.mipi_dsi:347]: MIPI_DSI RGB LCD
[13:47:13][C][display.mipi_dsi:347]: Model: WAVESHARE-P4-NANO-10.1
[13:47:13][C][display.mipi_dsi:347]: Width: 1280
[13:47:13][C][display.mipi_dsi:347]: Height: 800
[13:47:13][C][display.mipi_dsi:347]: Mirror X: NO
[13:47:13][C][display.mipi_dsi:347]: Mirror Y: NO
[13:47:13][C][display.mipi_dsi:347]: Swap X/Y: NO
[13:47:13][C][display.mipi_dsi:347]: Rotation: 0 degrees
[13:47:13][C][display.mipi_dsi:347]: DSI Lanes: 2
[13:47:13][C][display.mipi_dsi:347]: Lane Bit Rate: 1500Mbps
[13:47:13][C][display.mipi_dsi:347]: HSync Pulse Width: 20
[13:47:13][C][display.mipi_dsi:347]: HSync Back Porch: 20
[13:47:13][C][display.mipi_dsi:347]: HSync Front Porch: 40
[13:47:13][C][display.mipi_dsi:347]: VSync Pulse Width: 4
[13:47:13][C][display.mipi_dsi:347]: VSync Back Porch: 12
[13:47:13][C][display.mipi_dsi:347]: VSync Front Porch: 30
[13:47:13][C][display.mipi_dsi:347]: Buffer Color Depth: 16 bit
[13:47:13][C][display.mipi_dsi:347]: Display Pixel Mode: 16 bit
[13:47:13][C][display.mipi_dsi:347]: Color Order: RGB
[13:47:13][C][display.mipi_dsi:347]: Invert Colors: NO
[13:47:13][C][display.mipi_dsi:347]: Pixel Clock: 80MHz
[13:47:13][C][gt911.touchscreen:139]: GT911 Touchscreen:
[13:47:13][C][gt911.touchscreen:140]: Address: 0x5D
[13:47:13][C][lvgl:088]: LVGL:
[13:47:13][C][lvgl:088]: Display width/height: 800 x 1280
[13:47:13][C][lvgl:088]: Buffer size: 100%
[13:47:13][C][lvgl:088]: Rotation: 90
[13:47:13][C][lvgl:088]: Draw rounding: 2
[13:47:13][C][esphome.ota:075]: Over-The-Air updates:
[13:47:13][C][esphome.ota:075]: Address: 192.168.1.136:3232
[13:47:13][C][esphome.ota:075]: Version: 2
[13:47:13][C][esphome.ota:082]: Password configured
[13:47:13][C][safe_mode:018]: Safe Mode:
[13:47:13][C][safe_mode:019]: Boot considered successful after 60 seconds
[13:47:13][C][safe_mode:019]: Invoke after 10 boot attempts
[13:47:13][C][safe_mode:019]: Remain for 300 seconds
[13:47:13][C][api:205]: Server:
[13:47:13][C][api:205]: Address: 192.168.1.136:6053
[13:47:13][C][api:210]: Noise encryption: YES
[13:47:13][C][mdns:124]: mDNS:
[13:47:13][C][mdns:124]: Hostname: hh-esphome-esp32-p4-display-1
[13:47:59][I][safe_mode:042]: Boot seems successful; resetting boot loop counter
[13:47:59][D][esp32.preferences:142]: Writing 1 items: 0 cached, 1 written, 0 failed
Hasni
August 30, 2025, 1:46pm
7
bye the way i just found out that there are more then
one WAVESHARE_10.1”_800x1280_DSI display
i have bought the kit from waveshare
Waveshare ESP32-P4-NANO-KIT-D
the display in this kit should be the modelnumber: 10.1-DSI-TOUCH-A
Anyone gotten POE to work with the somewhat newer small form factor Waveshare POE versions with the POE hat ? Also has a single mic using a supported codec (es8311), at least on the S3, may not be a working component yet on the P4. Still, 25 US for the board with POE hat is a heck of a deal, their S3 variant is the same price with no POE hat. Need to join Discord but finally the form factor I’ve been waiting for with a smaller pico version with no Ethernet available.