https://github.com/vadrov/esp32_display_spi_dma_low_layer_driver_jpeg_rendering
ESP32 low layer driver for spi displays (esp-idf-v5.1.2). Optimized JPEG decoder. Demonstration of line-by-line graphics rendering running on two cpu cores.
https://github.com/vadrov/esp32_display_spi_dma_low_layer_driver_jpeg_rendering
display dma esp32 ili9341 jpeg jpeg-decoder jpg rendering spi st7789
Last synced: 16 days ago
JSON representation
ESP32 low layer driver for spi displays (esp-idf-v5.1.2). Optimized JPEG decoder. Demonstration of line-by-line graphics rendering running on two cpu cores.
- Host: GitHub
- URL: https://github.com/vadrov/esp32_display_spi_dma_low_layer_driver_jpeg_rendering
- Owner: vadrov
- License: mit
- Created: 2025-01-23T19:26:09.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-01-23T20:08:26.000Z (over 1 year ago)
- Last Synced: 2025-01-23T20:27:32.382Z (over 1 year ago)
- Topics: display, dma, esp32, ili9341, jpeg, jpeg-decoder, jpg, rendering, spi, st7789
- Language: C
- Homepage:
- Size: 28.5 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
*Copyright (C) 2019-2024, VadRov, all right reserved.*
* ESP32 low layer driver for spi displays (esp-idf-v5.1.2)
* Optimized JPEG decoder.
* Demonstration of line-by-line graphics rendering running on two cpu cores.
# How to use?
Open main.c and define connection settings. Select display module (st7789, ili9341). Select the number of cores to demonstrate the operation of graphic line rendering.
```c
//--------------------------------------------- User defines ---------------------------------------------
#define CS_PIN 17 // -1 if not used
#define DC_PIN 21
#define RST_PIN 19
#define BCKL_PIN 5
#define SPI_ SPI3 //SPI2 (GPIO13 -> MOSI, GPIO14 -> CLK)
//SPI3 (GPIO23 -> MOSI, GPIO18 -> CLK)
#define DMA_ch 1 //DMA channel 1 or 2, 0 - if DMA not used
#define ACT_DISPLAY ST7789 //ST7789 or ILI9341
#define HI_SPEED //if uncommented f_clk spi = 80 MHz, else 40 MHz
#define RENDER_USE_TWO_CORES //Use two esp32 cores for graphics rendering.
//Comment out if using one core.
#define RENDER_BUFFER_LINES 8
//--------------------------------------------------------------------------------------------------------
```

[](https://youtu.be/yXXlYOSYgoo)
* https://www.youtube.com/@VadRov
* https://dzen.ru/vadrov
* https://vk.com/vadrov
* https://t.me/vadrov_channel
* Donate: [donate.yoomoney](https://yoomoney.ru/to/4100117522443917)