# driver_ek79007 C++ driver for the **EK79007 MIPI DSI LCD panel** (1024×600, RGB565) on ESP32-P4, designed for the [ESP-IDF Component Registry](https://components.espressif.com/). Inherits from [`andresragot/driver_lcd`](https://github.com/andresragot/driver_lcd) and wraps the Espressif [`esp_lcd_ek79007`](https://components.espressif.com/components/espressif/esp_lcd_ek79007) component. ## Features - MIPI DSI interface with configurable clock and timing parameters - Double-buffered frame output via `esp_lcd_panel_draw_bitmap` - Vsync-synchronized rendering with FreeRTOS semaphore - Automatic MIPI DSI PHY power and backlight initialization - Default pin configuration for the ESP32-P4 Function EV Board (reset: GPIO27, backlight: GPIO26) ## Requirements - ESP-IDF **>= 5.4.1** - Target: **ESP32-P4** ## Installation Add the dependency to your project's `idf_component.yml`: ```yaml dependencies: andresragot/driver_ek79007: "^1.0.0" ``` Then run `idf.py build` — the component manager will download it and its dependencies (`driver_lcd`, `esp_lcd_ek79007`) automatically. ## Usage ```cpp #include "driver_ek79007.hpp" // Default constructor initializes with GPIO27 (reset) and GPIO26 (backlight) Ragot::DriverEK79007 display; // Or initialize manually with custom pins Ragot::DriverEK79007 display; display.init(GPIO_NUM_27, GPIO_NUM_26); // Send a frame buffer to the panel display.send_frame_buffer(my_frame_buffer); // Clean up display.deinit(); ``` ## API | Method | Description | |---|---| | `DriverEK79007()` | Constructor — calls `init()` with default pins | | `init(reset_pin, bk_pin)` | Initialize MIPI DSI bus, panel, backlight, and vsync callback | | `deinit()` | Release panel handle and semaphore | | `send_frame_buffer(buf)` | Wait for vsync, then draw the frame buffer to the panel | | `set_pixel(x, y, color)` | Not implemented — returns `ESP_FAIL` | ## Panel Specifications | Parameter | Value | |---|---| | Resolution | 1024 × 600 | | Color format | RGB565 (16-bit) | | Pixel clock | 52 MHz | | MIPI DSI lanes | 2 | | MIPI data rate | 1000 Mbps | | Frame buffers | 2 (double-buffered) | ## Dependencies - [`andresragot/driver_lcd`](https://github.com/andresragot/driver_lcd) — Base LCD driver class - [`espressif/esp_lcd_ek79007`](https://components.espressif.com/components/espressif/esp_lcd_ek79007) — Espressif vendor driver ## License MIT — see [LICENSE](LICENSE) for details.
idf.py add-dependency "andresragot/driver_ek79007^1.0.0"