andresragot/driver_ek79007

1.0.0

Latest
uploaded 4 days ago
C++ driver for the EK79007 MIPI DSI LCD panel (1024x600) on ESP32-P4. Inherits from andresragot/driver_lcd.

readme

# 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.

Links

Target

License: MIT

To add this component to your project, run:

idf.py add-dependency "andresragot/driver_ek79007^1.0.0"

download archive

Stats

  • Archive size
    Archive size ~ 8.03 KB
  • Downloaded in total
    Downloaded in total 1 time
  • Weekly Downloads Weekly Downloads (All Versions)
  • Downloaded this version
    This version: 1 time

Badge

andresragot/driver_ek79007 version: 1.0.0
|