Got the same error, it’s due to framework/platform versions.
After fiddling around a bit, I got it working.
Here is my YAML, the only new thing I did is the RGB LED light control.
substitutions:
id: esp32c6_lcd
esp32:
board: esp32-c6-devkitc-1
variant: esp32c6
flash_size: 4MB
framework:
type: esp-idf
version: 5.3.1
platform_version: 6.9.0
sdkconfig_options:
CONFIG_ESPTOOLPY_FLASHSIZE_DETECT: y
CONFIG_ESPTOOLPY_FLASHSIZE_4MB: y
CONFIG_OPENTHREAD_ENABLED: n
CONFIG_USE_MINIMAL_MDNS: y
# Memory optimization
COMPILER_OPTIMIZATION_SIZE: y
COMPILER_OPTIMIZATION_LEVEL_RELEASE: y
CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE: y
CONFIG_HEAP_POISONING_DISABLED: y
esphome:
friendly_name: "ESP32-C6 1.47 LCD"
name: esp32c6-lcd
name_add_mac_suffix: false
project:
name: "Waveshare.ESP32-C6-LCD-1-47in"
version: "v"
platformio_options:
board_build.flash_mode: dio
build_flags:
- "-DI2C_NUM_1=I2C_NUM_0"
- "-DBOARD_HAS_PSRAM"
- "-Wl,-Map,output.map"
board_build.arduino.memory_type: qio_opi
platform_packages:
- platformio/toolchain-xtensa-esp-elf @ 14.2.0+20241119
logger:
# RGB LED
light:
- platform: esp32_rmt_led_strip
id: "${id}_led"
name: "Led"
rgb_order: RGB
pin: GPIO8
num_leds: 1
chipset: SK6812
api:
encryption:
key: "..."
ota:
- platform: esphome
password: "..."
wifi:
use_address: 10.0.30.55
ssid: !secret wifi_ssid
password: !secret wifi_password
i2c:
- id: bus_a
sda: GPIO1
scl: GPIO2
scan: False
spi:
clk_pin: GPIO7
miso_pin: GPIO5
mosi_pin: GPIO6
one_wire:
- pin: GPIO10
platform: gpio
binary_sensor:
- platform: status
name: "Status"
id: "${id}_status"
icon: mdi:check-network
entity_category: diagnostic
button:
- platform: safe_mode
name: "(Safe Mode)"
icon: mdi:restart-alert
id: "${id}_safe_mode"
entity_category: config
disabled_by_default: True
- platform: restart
name: "Restart"
icon: mdi:restart
id: "${id}_restart"
# entity_category: diagnostic
disabled_by_default: True
- platform: shutdown
name: "Shutdown"
id: "${id}_shutdown"
# entity_category: diagnostic
disabled_by_default: True
time:
- platform: homeassistant
id: homeassistant_time
sensor:
- platform: uptime
type: timestamp
name: Uptime
entity_category: diagnostic
- platform: wifi_signal
name: WiFi Signal
id: wifi_signal_db
icon: mdi:wifi-strength-outline
entity_category: diagnostic
update_interval: 30s
disabled_by_default: True
- platform: homeassistant
id: bureau_temperature
entity_id: sensor.aqara_t_h_bureau_temperature
- platform: homeassistant
id: bureau_conso
entity_id: sensor.consommation_totale_bureau
- platform: homeassistant
id: ups_baie_puissance_reelle_actuelle
entity_id: sensor.ups_baie_puissance_reelle_actuelle
- platform: homeassistant
id: ups_pc_puissance_reelle_actuelle
entity_id: sensor.ups_pc_puissance_reelle_actuelle
output:
- platform: ledc
pin: GPIO22
id: lcd_backlight
frequency: 1000 Hz
number:
- platform: template
name: "Display Brightness"
id: display_brightness
optimistic: true
min_value: 0
max_value: 100
step: 1
initial_value: 100
restore_value: true
mode: slider
on_value:
then:
- output.set_level:
id: lcd_backlight
level: !lambda "return x / 100.0;"
display:
- platform: st7789v
cs_pin: GPIO14
dc_pin:
number: GPIO15
ignore_strapping_warning: true
reset_pin: GPIO21
model: Waveshare 1.47in 172X320
id: tft_ha
rotation: 0
lambda: |-
ESP_LOGD("display", "Display update running");
auto color = Color(40, 140, 186);
// Draw the background image
it.image(0, 0, id(background));
// Time
auto cur_time = id(homeassistant_time).now();
if (cur_time.is_valid()) {
auto hour = cur_time.hour;
// Print formatted time
it.printf((it.get_width()/2), +14, id(font20), color, TextAlign::CENTER, "%2d:%02d", hour, cur_time.minute);
}
// Ups #1
if (id(ups_baie_puissance_reelle_actuelle).has_state()) {
if (!isnan(id(ups_baie_puissance_reelle_actuelle).state)) {
it.printf((it.get_width()/2)-38, 57, id(font20), color, TextAlign::CENTER, "%.0fw", id(ups_baie_puissance_reelle_actuelle).state);
}
}
// Ups #2
if (id(ups_pc_puissance_reelle_actuelle).has_state()) {
if (!isnan(id(ups_pc_puissance_reelle_actuelle).state)) {
it.printf((it.get_width()/2)+38, 57, id(font20), color, TextAlign::CENTER, "%.0fw", id(ups_pc_puissance_reelle_actuelle).state);
}
}
// Measurement
if (id(bureau_temperature).has_state()) {
if (!isnan(id(bureau_temperature).state)) {
it.printf(it.get_width()/2, (it.get_height()/2)-8, id(font62), color, TextAlign::CENTER, "%.0f", id(bureau_conso).state);
}
}
// Measurement
if (id(bureau_temperature).has_state()) {
if (!isnan(id(bureau_temperature).state)) {
it.printf(it.get_width()/2, (it.get_height()/2)+44, id(font22), color, TextAlign::CENTER, "WATTS");
}
}
// Bottom Temperature
if (id(bureau_temperature).has_state()) {
if (!isnan(id(bureau_temperature).state)) {
it.printf(it.get_width()/2, it.get_height()-23, id(font20), color, TextAlign::CENTER, "%.1f °C", id(bureau_temperature).state);
}
}
font:
- file: "gfonts://Orbitron"
id: font20
size: 20
- file: "gfonts://Orbitron"
id: font22
size: 22
- file: "gfonts://Orbitron"
id: font62
size: 62
image:
- file: "images/1.47/background.png"
type: rgb565
id: background
And here is the result :
Hope that helps !
