# Sunton ESP32-8048S043C: 4.3" 800x480 RGB LCD + GT911 capacitive touch. # Edit bambu-display/printers.yaml, then run its generate.py to change the fleet. substitutions: device_name: bambu-printer-display friendly_name: Bambu Printer Display esphome: name: ${device_name} friendly_name: ${friendly_name} min_version: 2026.9.0 includes: - bambu-display/dashboard.h esp32: board: esp32-s3-devkitc-1 flash_size: 16MB flash_mode: dio cpu_frequency: 240MHz framework: type: esp-idf sdkconfig_options: CONFIG_ESP32S3_DATA_CACHE_64KB: "y" CONFIG_ESP32S3_DATA_CACHE_LINE_64B: "y" CONFIG_SPIRAM_FETCH_INSTRUCTIONS: "y" CONFIG_SPIRAM_RODATA: "y" psram: mode: octal speed: 80MHz logger: hardware_uart: UART0 # GPIO19/20 are the touch bus, not native USB. api: id: ha_api encryption: key: !secret api_encryption_key ota: - platform: esphome encryption: key: !secret api_encryption_key wifi: ssid: !secret wifi_iot_ssid password: !secret wifi_password i2c: id: touch_bus sda: GPIO19 scl: GPIO20 scan: true display: - platform: mipi_rgb id: panel_display model: RPI dimensions: 800x480 color_order: RGB byte_order: little_endian de_pin: GPIO40 hsync_pin: GPIO39 vsync_pin: GPIO41 pclk_pin: GPIO42 pclk_inverted: true pclk_frequency: 16MHz hsync_front_porch: 8 hsync_pulse_width: 4 hsync_back_porch: 8 vsync_front_porch: 8 vsync_pulse_width: 4 vsync_back_porch: 8 data_pins: red: [GPIO45, GPIO48, GPIO47, GPIO21, GPIO14] green: [GPIO5, GPIO6, GPIO7, GPIO15, GPIO16, GPIO4] blue: [GPIO8, GPIO3, GPIO46, GPIO9, GPIO1] auto_clear_enabled: false update_interval: never touchscreen: - platform: gt911 id: panel_touch display: panel_display i2c_id: touch_bus address: 0x5D # Polling avoids the GT911 INT pin's boot/address-selection behaviour. update_interval: 20ms output: - platform: ledc id: backlight_output pin: GPIO2 light: - platform: monochromatic id: panel_backlight name: Backlight output: backlight_output restore_mode: ALWAYS_ON default_transition_length: 0s packages: fleet: !include bambu-display/generated.yaml lvgl: id: dashboard displays: [panel_display] touchscreens: [panel_touch] buffer_size: 12% color_depth: 16 byte_order: little_endian bg_color: 0x0D131B text_color: 0xEDF3F7 default_font: montserrat_18