ESP32 3248S035 scherm werkt niet

ik heb een schermpje gekocht een ESP32 3248S035 alleen het lukt niet om hem te programeren
ik heb verschilende codes geprobeerd allen het scherm blijft zwart

Een link naar wat je hebt gekocht is hier wel essentieel. Een schermpje kan zeer veel zijn. Hier staan allemaal 'schermpjes'.

Wat heb je al geprobeerd? Welke aansluitingen heb je gemaakt of zijn er? Welke code heb je gebruikt? Heb je het juiste bord gekozen? Welke IDE gebruik je?

Er is een grote revisie van glazen bollen, met software update, aan de gang. We kunnen die nu niet gebruiken. Des te meer info je geeft, des te betere antwoorden zal je krijgen.

Lees dit ook nog eens door.

Dit bord heb ik https://www.hobbyelectronica.nl/product/esp32-3-5-tft-480-320-touch/?gclid=CjwKCAjwzo2mBhAUEiwAf7wjkjTN5VxxBZ0U9TrYdYqMxE50Zl_u2DiLssP3bVHupThQ-F9oMWlcXxoCiKwQAvD_BwE

Ik heb de bibliotheeken lvg, lovyangfx, uart al gebruikt

Volgens ik zie in de link gebruik je een tft scherm van Espressif type ili9342 3.5" maar de bibliotheken zijn zoals vernoemd in de specificaties :TFT_eSPI en LovyanGFX libraries kunnen worden gebruikt om het scherm aan te sturen. LVGL library kan worden gebruikt voor hoge resolutie GUI elementen.

/* include libraries */
#include <TFT_eSPI.h>
// I guess also the esp32 library
#include <SPI.h>
// ook LovyanGFX
#include <LovyanGFX.h>
TFT_eSPI  tft = TFT_eSPI();

void setup(){
tft.init();
tft.fillScreen(TFT_WHITE);
// mogelijk moet je het tft draaien met 90°
// tft.setRotation(1); // 1 = 90°, 2 = 180°, 3 = 240°

}

Lees ook dit eens door. Blijkbaar worden er niet standaard pinnen gebruikt. :sleepy:

Nog wat leesvoer.

Heb je de juiste processor geselecteerd? Juiste hoeveelheid RAM en PSram? Volgens de weinige gegevens die ik kan vinden 16MB flash en 8MB PSram. Maar dat wordt in hetzelfde artikel weer tegengesproken.

Ja ik heb deze code gebruikt maar mijn scherm blijft zwart ik snap er niks meer van heeft iemand een andere code

@jarnofokker Ik weet niet zeker of de jouwe dezelfde touchscreen is, maar neem eens een kijkje op volgende link https://how2electronics.com/esp32-tft-touch-screen-display-camera-based-projects/
Hier staat beschreven welke bibliotheken je moet toevoegen om deze werkend te krijgen en ja soms is dit niet zo simpel. Ik heb bv enkele versies liggen van de ili9341 bij de ene roteert het scherm, bij de andere moet ik pin 15 high plaatsen en bij de andere low. Misschien moet je ook eens kijken welke pinMode de achtergrondled aanstuurt want indien deze niet aanstaat blijft het scherm ook zwart. Heb je een pdf of een beschrijving van het type board en versie? Ook hier kan er 1 en ander veranderd zijn. Kijk eens bij Espressif of je het datablad kunt vinden. Dit helpt soms ook al. En oh ja laat maar weten indien er niets veranderd, stuur desnoods het datablad door hier op het forum. Vandaag ook een ganse dag gezocht om een functie te vereenvoudigen, nog steeds zonder resultaat ook al heb ik mijn probleem op meerdere forums staan. Het is eigenlijk zo denk ik dat de begincode niet bedoeld was om zulke complexe handelingen wat wij willen bereiken voorzien waren door de grondlegger van de taal :roll_eyes: In elk geval komen we er wel uit al neemt dit soms wel wat tijd in beslag. Hou me op de hoogte. Groetjes Rudy.

Na heel wat zoeken nog steeds geen datasheet of schema gevonden van dat scherm. Dat zou een grote stap voorwaarts zijn.

Dat is ook het meest pijnlijke aan zo een scherm. Het wordt voorgesteld als poepsimpel maar de essentiële info kan je nauwelijks of niet vinden. Dat de ene het zo uitvoert en een andere compleet anders maakt het er niet beter op.

1 Like

@jarnofokker Kun je eens kijken wat er op de print gedrukt staat? Serienummer, versie, fabrikant? Bij Espressif niet gevonden.
Kun je het tft van de print halen zonder te desolderen? Indien het een ili9431 is zou normaal GPIO15 van de ESP32 moeten verbonden zijn met de LED-pin op de tft print, of de LED-pin met een 3.3V.
Kun je dit uitmeten?
Datasheet ESP-32-WROOM-32 vind je hier:
https://www.espressif.com/sites/default/files/documentation/esp32-wroom-32_datasheet_en.pdf
Volgens mij is dit geen ili9431 datasheet hier:
https://www.digikey.com/htmldatasheets/production/1640716/0/0/1/ili9341-datasheet.html zoals beschreven op de site maar een ili9488 of 9486, is het zoals deze?https://www.amazon.sa/-/en/3-5inch-480x320-Resolution-Support-Arduino/dp/B07N36ZBSX
Datasheet ili9488:
https://www.hpinfotech.ro/ILI9488.pdf

Ik heb deze ESP32-3248S035 (3.5" capacitive - https://nl.aliexpress.com/item/1005005752164353.html) zonder problemen aan de praat gekregen met een zelf geschreven klokje (Arduino IDE). Vooropig het touchgedeelte nog niet gebruikt, maar dat is hoe dan ook geen probleem om dat ook te activeren. Ik zet het over in een html (met wat uitleg). Laat iets weten als je geïnteresseerd bent.

1 Like

@palmdomein hopelijk is @jarnofokker zijn probleem hiermee opgelost.:grin: Fijn zou wel wat uitleg en of code zijn om andere forum leden op weg te helpen die dezelfde problemen ervaren.

De uitleg (instellingen) en een sketch met voorbeeld staan op Klokjes met esp8266 / esp32 met verschillende displays
https://espgo.be/

Het voorlaatste item is de ESP32 3248S035 in kwestie.

Hopelijk heeft er iemand iets aan.

1 Like

user_setup.h is niet het bestand waar je dit soort aanpassingen maakt. Dat is niet de filosofie van Bodmer. Er staat trouwens een fout in. Het zou me verwonderen dat de compiler hier niet minimaal een waarschuwing voor geeft.

Lijn 4

#define TFT_BL   27 

Lijn 13

#define TFT_BL   27 

Het gemakkelijkste is te werken via de methode die Bodmer onderaan deze pagina beschrijft in Tips.

Wat staat er dan in mijn User_Setup.h? Niks meer. Alles in commentaar.
Wat staat er dan in mijn User_Setup_Select.h?

#include <../TFT_eSPI_Setups/my_custom_setups_select.h>

In de librarie map werd een map aangemaakt met als naam TFT_eSPI_setups.
In die map een bestand met als naam my_custom_setups_select.h. Inhoud.

// This header file contains a list of user setup files and defines which one the
// compiler uses when the IDE performs a Verify/Compile or Upload.
//
// Users can create configurations for different boards and TFT displays.
// This makes selecting between hardware setups easy by "uncommenting" one line.

// The advantage of this hardware configuration method is that the examples provided
// with the library should work with immediately without any other changes being
// needed. It also improves the portability of users sketches to other hardware
// configurations and compatible libraries.
//
// Create a shortcut to this file on your desktop to permit quick access for editing.
// Re-compile and upload after making and saving any changes to this file.

// Customised User_Setup files are stored in the "User_Setups" folder.

// It is also possible for the user tft settings to be included with the sketch, see
// the "Sketch_with_tft_setup" generic example. This may be more convenient for
// multiple projects.
						  
//#include <001_ESP32_TFT_eSPI_OpenWeather_LittleFS_GPS.h> // TFT instellingen van het gelijknamige project
#include <002_ESP8266_TFT_eSPI_OpenWeather_LittleFS.h> // TFT instellingen van het gelijknamige project



/////////////////////////////////////////////////////////////////////////////////////
//                                                                                 //
//     DON'T TINKER WITH ANY OF THE FOLLOWING LINES, THESE ADD THE TFT DRIVERS     //
//       AND ESP8266 PIN DEFINITONS, THEY ARE HERE FOR BODMER'S CONVENIENCE!       //
//                                                                                 //
/////////////////////////////////////////////////////////////////////////////////////


// Identical looking TFT displays may have a different colour ordering in the 16 bit colour
#define TFT_BGR 0   // Colour order Blue-Green-Red
#define TFT_RGB 1   // Colour order Red-Green-Blue

// Legacy setup support, RPI_DISPLAY_TYPE replaces RPI_DRIVER
#if defined (RPI_DRIVER)
  #if !defined (RPI_DISPLAY_TYPE)
    #define RPI_DISPLAY_TYPE
  #endif
#endif

// Legacy setup support, RPI_ILI9486_DRIVER form is deprecated
// Instead define RPI_DISPLAY_TYPE and also define driver (e.g. ILI9486_DRIVER) 
#if defined (RPI_ILI9486_DRIVER)
  #if !defined (ILI9486_DRIVER)
    #define ILI9486_DRIVER
  #endif
  #if !defined (RPI_DISPLAY_TYPE)
    #define RPI_DISPLAY_TYPE
  #endif
#endif

// Invoke 18 bit colour for selected displays
#if !defined (RPI_DISPLAY_TYPE) && !defined (TFT_PARALLEL_8_BIT) && !defined (TFT_PARALLEL_16_BIT) && !defined (ESP32_PARALLEL)
  #if defined (ILI9481_DRIVER) || defined (ILI9486_DRIVER) || defined (ILI9488_DRIVER)
    #define SPI_18BIT_DRIVER
  #endif
#endif

// Load the right driver definition - do not tinker here !
#if   defined (ILI9341_DRIVER) || defined(ILI9341_2_DRIVER) || defined (ILI9342_DRIVER)
     #include <TFT_Drivers/ILI9341_Defines.h>
     #define  TFT_DRIVER 0x9341
#elif defined (ST7735_DRIVER)
     #include <TFT_Drivers/ST7735_Defines.h>
     #define  TFT_DRIVER 0x7735
#elif defined (ILI9163_DRIVER)
     #include <TFT_Drivers/ILI9163_Defines.h>
     #define  TFT_DRIVER 0x9163
#elif defined (S6D02A1_DRIVER)
     #include <TFT_Drivers/S6D02A1_Defines.h>
     #define  TFT_DRIVER 0x6D02
#elif defined (ST7796_DRIVER)
      #include "TFT_Drivers/ST7796_Defines.h"
      #define  TFT_DRIVER 0x7796
#elif defined (ILI9486_DRIVER)
     #include <TFT_Drivers/ILI9486_Defines.h>
     #define  TFT_DRIVER 0x9486
#elif defined (ILI9481_DRIVER)
     #include <TFT_Drivers/ILI9481_Defines.h>
     #define  TFT_DRIVER 0x9481
#elif defined (ILI9488_DRIVER)
     #include <TFT_Drivers/ILI9488_Defines.h>
     #define  TFT_DRIVER 0x9488
#elif defined (HX8357D_DRIVER)
     #include "TFT_Drivers/HX8357D_Defines.h"
     #define  TFT_DRIVER 0x8357
#elif defined (EPD_DRIVER)
     #include "TFT_Drivers/EPD_Defines.h"
     #define  TFT_DRIVER 0xE9D
#elif defined (ST7789_DRIVER)
     #include "TFT_Drivers/ST7789_Defines.h"
     #define  TFT_DRIVER 0x7789
#elif defined (R61581_DRIVER)
     #include "TFT_Drivers/R61581_Defines.h"
     #define  TFT_DRIVER 0x6158
#elif defined (ST7789_2_DRIVER)
     #include "TFT_Drivers/ST7789_2_Defines.h"
     #define  TFT_DRIVER 0x778B
#elif defined (RM68140_DRIVER)
     #include "TFT_Drivers/RM68140_Defines.h"
     #define  TFT_DRIVER 0x6814
#elif defined (SSD1351_DRIVER)
     #include "TFT_Drivers/SSD1351_Defines.h"
     #define  TFT_DRIVER 0x1351
#elif defined (SSD1963_480_DRIVER)
     #include "TFT_Drivers/SSD1963_Defines.h"
     #define  TFT_DRIVER 0x1963
#elif defined (SSD1963_800_DRIVER)
     #include "TFT_Drivers/SSD1963_Defines.h"
     #define  TFT_DRIVER 0x1963
#elif defined (SSD1963_800ALT_DRIVER)
     #include "TFT_Drivers/SSD1963_Defines.h"
     #define  TFT_DRIVER 0x1963
#elif defined (SSD1963_800BD_DRIVER)
     #include "TFT_Drivers/SSD1963_Defines.h"
     #define  TFT_DRIVER 0x1963
#elif defined (GC9A01_DRIVER)
     #include "TFT_Drivers/GC9A01_Defines.h"
     #define  TFT_DRIVER 0x9A01
#elif defined (ILI9225_DRIVER)
     #include "TFT_Drivers/ILI9225_Defines.h"
     #define  TFT_DRIVER 0x9225
#elif defined (RM68120_DRIVER)
     #include "TFT_Drivers/RM68120_Defines.h"
     #define  TFT_DRIVER 0x6812
#elif defined (HX8357B_DRIVER)
     #include "TFT_Drivers/HX8357B_Defines.h"
     #define  TFT_DRIVER 0x835B
#elif defined (HX8357C_DRIVER)
     #include "TFT_Drivers/HX8357C_Defines.h"
     #define  TFT_DRIVER 0x835C

                              // <<<<<<<<<<<<<<<<<<<<<<<< ADD NEW DRIVER HERE
                              // XYZZY_init.h and XYZZY_rotation.h must also be added in TFT_eSPI.cpp
#elif defined (XYZZY_DRIVER)
     #include "TFT_Drivers/XYZZY_Defines.h"
     #define  TFT_DRIVER 0x0000
#else
     #define  TFT_DRIVER 0x0000
#endif

// These are the pins for ESP8266 boards
//      Name   GPIO    NodeMCU      Function
#define PIN_D0  16  // GPIO16       WAKE
#define PIN_D1   5  // GPIO5        User purpose
#define PIN_D2   4  // GPIO4        User purpose
#define PIN_D3   0  // GPIO0        Low on boot means enter FLASH mode
#define PIN_D4   2  // GPIO2        TXD1 (must be high on boot to go to UART0 FLASH mode)
#define PIN_D5  14  // GPIO14       HSCLK
#define PIN_D6  12  // GPIO12       HMISO
#define PIN_D7  13  // GPIO13       HMOSI  RXD2
#define PIN_D8  15  // GPIO15       HCS    TXD0 (must be low on boot to enter UART0 FLASH mode)
#define PIN_D9   3  //              RXD0
#define PIN_D10  1  //              TXD0

#define PIN_MOSI 8  // SD1          FLASH and overlap mode
#define PIN_MISO 7  // SD0
#define PIN_SCLK 6  // CLK
#define PIN_HWCS 0  // D3

#define PIN_D11  9  // SD2
#define PIN_D12 10  // SD4

Waar

//#include <001_ESP32_TFT_eSPI_OpenWeather_LittleFS_GPS.h> // TFT instellingen van het gelijknamige project
#include <002_ESP8266_TFT_eSPI_OpenWeather_LittleFS.h> // TFT instellingen van het gelijknamige project

verwijzen naar de gelijknamige setup files. Elk gekoppeld aan een bepaald project. Komen er in de toekomst duplicaat setups? Meer dan waarschijnlijk wel maar een wijziging in de ene setup infecteert dan niet het andere project. Voorlopig staan hierin 2 setups. De aanpassingen werden deze week gemaakt en uiteraard heb ik alle voorgaande projecten nog geen update gegeven.

1 Like

Dank voor de tip.
De compiler gaf geen waarschuwing, toch de dubbele lijn weggehaald.

Normaal geeft die een waarschuwing dat in lijn x van bestand y een variabele is geherdefinieerd.

1 Like

De controller is een ILI9341, een goed ondersteunde chip, speciaal met de ESP32 door TFT_eSPI.
Omdat je niet aangeeft welke ESP32 je gebruikt, en of het schermpje een SPI interface of parallel interface gebruikt (parallel zou me niet verbazen als de ESP32 en het schermpje met elkaar verlijmd zijn) heb je keuze uit een aantal User_Setups: ik zou eens experimenteren met de volgende kandidaat-setups 1, 14, 29, 30, 32, 35, 42, 70, 70b, 70c, 70d, 102, 107. Werk aan de winkel! Succes, photoncatcher

1 Like

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