From ee871208b38c02329cd25164a8bce56c1f0d704d Mon Sep 17 00:00:00 2001 From: Eagle Claw <301410538+ladyada-eagleclaw@users.noreply.github.com> Date: Fri, 2 Oct 2026 19:55:16 -0400 Subject: [PATCH 1/2] Match MIPI DSI output format and retain fractional pixel clocks Configure the DPI output format to match the requested framebuffer depth, and convert pixel-clock Hz to MHz without integer truncation. Verified RGB888 framebuffer rendering and landscape rotation across two create/release cycles on Metro ESP32-P4; physical panel verification is pending. All six P4 board builds passed. Co-authored-by: Limor Fried --- ports/espressif/common-hal/mipidsi/Display.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ports/espressif/common-hal/mipidsi/Display.c b/ports/espressif/common-hal/mipidsi/Display.c index dc70f901437..2fdbe331311 100644 --- a/ports/espressif/common-hal/mipidsi/Display.c +++ b/ports/espressif/common-hal/mipidsi/Display.c @@ -74,8 +74,9 @@ void common_hal_mipidsi_display_construct(mipidsi_display_obj_t *self, esp_lcd_dpi_panel_config_t dpi_config = { .virtual_channel = virtual_channel, .dpi_clk_src = MIPI_DSI_DPI_CLK_SRC_DEFAULT, - .dpi_clock_freq_mhz = pixel_clock_frequency / 1000000, + .dpi_clock_freq_mhz = pixel_clock_frequency / 1000000.0f, .in_color_format = color_format, + .out_color_format = color_format, .num_fbs = 1, .video_timing = { .h_size = width, From ea1ead2b6e2acb0cc23375b6f27dc33f55d7ff31 Mon Sep 17 00:00:00 2001 From: Dan Halbert Date: Mon, 5 Oct 2026 09:35:43 -0400 Subject: [PATCH 2/2] Update ports/espressif/common-hal/mipidsi/Display.c --- ports/espressif/common-hal/mipidsi/Display.c | 1 + 1 file changed, 1 insertion(+) diff --git a/ports/espressif/common-hal/mipidsi/Display.c b/ports/espressif/common-hal/mipidsi/Display.c index 2fdbe331311..ea204924fe6 100644 --- a/ports/espressif/common-hal/mipidsi/Display.c +++ b/ports/espressif/common-hal/mipidsi/Display.c @@ -74,6 +74,7 @@ void common_hal_mipidsi_display_construct(mipidsi_display_obj_t *self, esp_lcd_dpi_panel_config_t dpi_config = { .virtual_channel = virtual_channel, .dpi_clk_src = MIPI_DSI_DPI_CLK_SRC_DEFAULT, + // .dpi_clock_freq_mhz is a float; preserve fractional clock frequency .dpi_clock_freq_mhz = pixel_clock_frequency / 1000000.0f, .in_color_format = color_format, .out_color_format = color_format,