ESP32 S3 pantalla

Hola a todos, tengo un ESP32 S3 pantalla de 7 pulgadas.
Al compilar todo correcto, pero luego en el monitor serial me aparece este error y no funciona la pantalla.
¿Alguien puede ayudarme a solucionarlo?

Gracias.

18:38:41.650 -> Rebooting...
18:38:41.650 -> �ESP-ROM:esp32s3-20210327
18:38:41.650 -> Build:Mar 27 2021
18:38:41.650 -> rst:0xc (RTC_SW_CPU_RST),boot:0xa (SPI_FAST_FLASH_BOOT)
18:38:41.650 -> Saved PC:0x4202877e
18:38:41.650 -> SPIWP:0xee
18:38:41.650 -> mode:DIO, clock div:1
18:38:41.650 -> load:0x3fce3808,len:0x44c
18:38:41.650 -> load:0x403c9700,len:0xbe4
18:38:41.650 -> load:0x403cc700,len:0x2a38
18:38:41.650 -> entry 0x403c98d4
18:38:41.757 -> E (18) lcd_panel.rgb: esp_lcd_new_rgb_panel(151): no mem for frame buffer
18:38:41.757 -> ESP_ERROR_CHECK failed: esp_err_t 0x101 (ESP_ERR_NO_MEM) at 0x4037a938
18:38:41.757 -> file: "c:\Users\fosch\Documents\Arduino\libraries\GFX_Library_for_Arduino\src\databus\Arduino_ESP32RGBPanel.cpp" line 118
18:38:41.757 -> func: uint16_t* Arduino_ESP32RGBPanel::getFrameBuffer(int16_t, int16_t)
18:38:41.757 -> expression: esp_lcd_new_rgb_panel(_panel_config, &_panel_handle)
18:38:41.790 ->
18:38:41.821 -> abort() was called at PC 0x4037a93b on core 1
18:38:41.821 ->
18:38:41.821 ->
18:38:41.821 -> Backtrace: 0x4037776e:0x3fcebd70 0x4037a945:0x3fcebd90 0x40380989:0x3fcebdb0 0x4037a93b:0x3fcebe30 0x42002923:0x3fcebe50 0x420043f9:0x3fcebea0 0x4200192e:0x3fcebec0 0x42006b3a:0x3fcebef0
18:38:41.821 ->

Moderador:
Tu publicación fue MOVIDA a su ubicación actual porque es más adecuada.
¿Podría también tomarse unos minutos para aprender a usar el foro?
Cada sección sugiere los temas que pueden postearse.
Todo lo no Arduino de origen, que no sea AVR o Microchip va en microcontroladores.


Por favor, lee las Normas del foro y edita tu código/error usando etiquetas de código.
Ve a edición, luego selecciona todo el código que has publicado, lo cortas y click en (<CODE/>)


El mensaje de error cita una librería de la TFT, no lo has observado?
Igualmente nunca pongas un mensaje de error sin también acompañar el mismo (con etiquetas) con su respectivo código, indicando de donde descargaste las librerías para que funcione.
Que chip estas usando, que IDE (version), y demás datos que ayudan a darle contexto al problema.

Hola @foscher lograste obtener solución ? estoy recibiendo el mismo error y sospecho que incluso estamos usando la misma dev board, saludos

Hola broadw3ll, este fin de semana me pongo a aplicar las soluciones que me han ofrecido. Ya te contaré.

Enviado desde Outlook para Android

El reporte dice que no tiene memoria suficiente para el buffer de cuadro.

esp_lcd_new_rgb_panel(151): no mem for frame buffer

Revisen la documentación de la librería para ver si hay una posible solución.

1 Like

Y el código? hablan de un error y no muestra un código?

Una disculpa colega @Surbyte en mi caso el codillo es un hello word para el tft:

#include <Arduino_GFX_Library.h>
#include <Arduino_GFX.h>
#include <lvgl.h>

#define GFX_BL DF_GFX_BL // default backlight pin, you may replace DF_GFX_BL to actual backlight pin
#define TFT_BL 2
/* More dev device declaration: https://github.com/moononournation/Arduino_GFX/wiki/Dev-Device-Declaration */
#if defined(DISPLAY_DEV_KIT)
Arduino_GFX *gfx = create_default_Arduino_GFX();
#else /* !defined(DISPLAY_DEV_KIT) */

/* More data bus class: https://github.com/moononournation/Arduino_GFX/wiki/Data-Bus-Class */
//Arduino_DataBus *bus = create_default_Arduino_DataBus();

/* More display class: https://github.com/moononournation/Arduino_GFX/wiki/Display-Class */
//Arduino_GFX *gfx = new Arduino_ILI9341(bus, DF_GFX_RST, 0 /* rotation */, false /* IPS */);

Arduino_ESP32RGBPanel *bus = new Arduino_ESP32RGBPanel(
    GFX_NOT_DEFINED /* CS */, GFX_NOT_DEFINED /* SCK */, GFX_NOT_DEFINED /* SDA */,
    41 /* DE */, 40 /* VSYNC */, 39 /* HSYNC */, 42 /* PCLK */,
    14 /* R0 */, 21 /* R1 */, 47 /* R2 */, 48 /* R3 */, 45 /* R4 */,
    9 /* G0 */, 46 /* G1 */, 3 /* G2 */, 8 /* G3 */, 16 /* G4 */, 1 /* G5 */,
    15 /* B0 */, 7 /* B1 */, 6 /* B2 */, 5 /* B3 */, 4 /* B4 */
);
// option 1:
// 7寸 50PIN 800*480
Arduino_RPi_DPI_RGBPanel *gfx = new Arduino_RPi_DPI_RGBPanel(
  bus,
//  800 /* width */, 0 /* hsync_polarity */, 8/* hsync_front_porch */, 2 /* hsync_pulse_width */, 43/* hsync_back_porch */,
//  480 /* height */, 0 /* vsync_polarity */, 8 /* vsync_front_porch */, 2/* vsync_pulse_width */, 12 /* vsync_back_porch */,
//  1 /* pclk_active_neg */, 16000000 /* prefer_speed */, true /* auto_flush */);

    800 /* width */, 0 /* hsync_polarity */, 210 /* hsync_front_porch */, 30 /* hsync_pulse_width */, 16 /* hsync_back_porch */,
    480 /* height */, 0 /* vsync_polarity */, 22 /* vsync_front_porch */, 13 /* vsync_pulse_width */, 10 /* vsync_back_porch */,
    1 /* pclk_active_neg */, 16000000 /* prefer_speed */, true /* auto_flush */);

#endif /* !defined(DISPLAY_DEV_KIT) */
/*******************************************************************************
 * End of Arduino_GFX setting
 ******************************************************************************/

void setup(void)
{
    gfx->begin();
    gfx->fillScreen(BLACK);

#ifdef TFT_BL
    pinMode(TFT_BL, OUTPUT);
    digitalWrite(TFT_BL, HIGH);
#endif

    gfx->setCursor(10, 10);
    gfx->setTextColor(RED);
    gfx->println("Hello World!");

    delay(2000); // 5 seconds
}

void loop()
{
    gfx->setCursor(random(gfx->width()), random(gfx->height()));
    gfx->setTextColor(random(0xffff), random(0xffff));
    gfx->setTextSize(random(6) /* x scale */, random(6) /* y scale */, random(2) /* pixel_margin */);
    gfx->println("Hello World!");

    delay(1000); // 1 second
}

Y el error que estoy obteniendo es el siguiente:

lcd_panel.rgb: esp_lcd_new_rgb_panel(151): no mem for frame buffer
ESP_ERROR_CHECK failed: esp_err_t 0x101 (ESP_ERR_NO_MEM) at 0x4037a84c
file: “/Users/luisdiaz/Documents/Arduino/libraries/Arduino_GFX-master/src/databus/Arduino_ESP32RGBPanel.cpp” line 252
func: uint16_t* Arduino_ESP32RGBPanel::getFrameBuffer(uint16_t, uint16_t, uint16_t, uint16_t, uint16_t, uint16_t, uint16_t, uint16_t, uint16_t, uint16_t, uint16_t, int32_t)
expression: esp_lcd_new_rgb_panel(_panel_config, &_panel_handle)

abort() was called at PC 0x4037a84f on core 1

Este lo leo desde el serial monitor en el cual claramente hace referencia a la librería Arduino_GFX

saludos :slight_smile:

Repito

Además te faltó un dato importante, ¿qué placa S3 estás utilizando? Porque hay varias versiones, con y sin PSRAM, de esta última la hay con 2MB ó 8MB.

hola @MaximoEsfuerzo una disculpa por la falta de información mira es el devboard: Sunton ESP32-S3 7" 800*480 TN Display with Touch HMI 8M PSRAM 16M Model:[SUTESPS307], with Parallel RGB-565 interface.

Saludos.

Ah, pantalla con micro incluido.
Qué raro que te de ese error, memoria le sobra.
Fijate en la documentación de la librería si no hay que definir alguna macro para habilitar la PSRAM o algo parecido y que no esté definida por defecto.

Hi,
Haz tratado de correr los exemplos que vienen con la libreria?
Otra cosa es que el error esta en la libreria Arduino_ESP32RGBPanel.cpp" line 118<<<<<<<<<<
"c:\Users\fosch\Documents\Arduino\libraries\GFX_Library_for_Arduino\src\databus\Arduino_ESP32RGBPanel.cpp" line 118

Buenas tardes, debes configurar el ESP32-S correctamente en el IDE de Arduino.
A mí también me daba ese mismo error, hasta que lo configuré.
Si necesitas saber cómo lo hice, te puedo enviar copia de lo que hice.

Enviado desde Outlook para Android

Buenas @foscher
estoy teniendo el mismo problema y me sería de mucha utilidad el enlace en el que te basaste para configurar tu ESP32 (o la copia de lo que hiciste).
Gracias por adelantado!

Te adjunto foto donde pongo la configuración para el ESP32-S.

A mí me funcionó con estos cambios.

Enviado desde Outlook para Android

1 Like

Gracias!

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.