Need help with SSD1283A and ESP32

the screen

the board

Hi, I wanted to use the SSD1283A on my ESP32 but i couldn't find any examples that works on my board (i’ve seen examples or an arduino but not for ESP32 ecause it works on AVR base)

i didn't find the exact model of the board but this one looks very similar except it's an usb-C connector on my own (it's also the same company)

i tried to ask chatGPT about a code that would suit the board either the screen and it give me this long code that didn’t work either.

#include <SPI.h>




#define TFT_CS   5

#define TFT_DC   16

#define TFT_RST  4

#define TFT_LED  12




#define TFT_MOSI 23

#define TFT_SCLK 18




#define TFT_WIDTH  130

#define TFT_HEIGHT 130




SPIClass spi = SPI;




void writeCommand(uint8_t cmd) {

  digitalWrite(TFT_DC, LOW);

  digitalWrite(TFT_CS, LOW);

  spi.transfer(cmd);

  digitalWrite(TFT_CS, HIGH);

}




void writeData(uint8_t data) {

  digitalWrite(TFT_DC, HIGH);

  digitalWrite(TFT_CS, LOW);

  spi.transfer(data);

  digitalWrite(TFT_CS, HIGH);

}




void writeData16(uint16_t data) {

  digitalWrite(TFT_DC, HIGH);

  digitalWrite(TFT_CS, LOW);

  spi.transfer(data >> 8);

  spi.transfer(data & 0xFF);

  digitalWrite(TFT_CS, HIGH);

}




void setAddrWindow(uint8_t x0, uint8_t y0, uint8_t x1, uint8_t y1) {

  writeCommand(0x44);

  writeData(x0);

  writeData(x1);




  writeCommand(0x45);

  writeData(y0);

  writeData(y1);




  writeCommand(0x22);

}




void fillScreen(uint16_t color) {

  setAddrWindow(0, 0, TFT_WIDTH - 1, TFT_HEIGHT - 1);

  for (int i = 0; i < TFT_WIDTH * TFT_HEIGHT; i++) {

    writeData16(color);

  }

}




void initSSD1283A() {

  digitalWrite(TFT_RST, LOW);

  delay(100);

  digitalWrite(TFT_RST, HIGH);

  delay(100);




  writeCommand(0x01); delay(50);      // Software reset

  writeCommand(0x11); delay(120);     // Sleep out




  writeCommand(0x3A); writeData(0x05); // RGB565




  writeCommand(0x36); writeData(0x00); // Memory access




  writeCommand(0x29);                 // Display ON

  delay(50);

}




void setup() {

  pinMode(TFT_CS, OUTPUT);

  pinMode(TFT_DC, OUTPUT);

  pinMode(TFT_RST, OUTPUT);

  pinMode(TFT_LED, OUTPUT);




  digitalWrite(TFT_LED, HIGH); // rétroéclairage ON




  spi.begin(TFT_SCLK, -1, TFT_MOSI, TFT_CS);

  spi.beginTransaction(SPISettings(20000000, MSBFIRST, SPI_MODE0));




  initSSD1283A();




  fillScreen(0xF800); delay(1000);

  fillScreen(0x07E0); delay(1000);

  fillScreen(0x001F); delay(1000);

}




void loop() {}

This library references the SSD1283A

This shows library functions for the SSD1283A

These show examples of use (zero and super mini)

That thing only finds statistics, then makes whatever goulash/chowder/chili code emerge from the results. Use examples to learn.

firstly, thank you for your speed.

but i get an error when i try to compile the second example you gave me : it says “no such file or directory” i downloaded the zip file from the github (the first link which after a minute i think it’s the wrong one) and extract it to the librairies folder of arduino.

however i found this library which seems to support ESP32

I gave bad instructions... see Post #8...
Use the IDE to install libraries with TOOLS >> INSTALL LIBRARIES FROM ZIP >>

when i try to do it it gives me an error : Error: 13 INTERNAL: Library install failed: moving extracted archive to destination dir: library not valid

I am sorry. I gave bad instructions.

  1. Send browser to this page: GitHub - ZinggJM/SSD1283A: SSD1283A for Arduino
  2. Click the GREEN button "CODE"
  3. Click "DOWNLOAD ZIP" (do not extract the library)
  4. IDE >> SKETCH >> INCLUDE LIBRARY >> ADD ZIP LIBRARY >> find downloaded ZIP >> OPEN
  5. Wait for it to finish....

  1. Delete ZIP file.

thank, it didn’t work either, so i guess the screen is broken.

it does really weird things like blinking a little bit (i dropped a video below)

i also check the connection between the esp32 and the screen and nothing wrong

No need to jump to conclusions. Just follow some steps.

Blinking? An image? Random pixels?

Again... step-by-step. Know that 100% of mistakes are cause by humans.

Show your wiring (a photo of it). Also, show the wiring diagram (draw one or take a picture of the diagram).

Check the datasheet for the TFT. Specifically, is it 3v3 or 5v... but also all the other datasheet information, too.

i think i dropped a video of the blinking but the entire screen blink sometimes and only in white (so grey)

and i cant really make schematic (because i dont know how to do it) but here is a a picture and a pin mapping table

SSD1283A ESP32 Colonne 3 Colonne 4
VCC 5V
GND GND
CS 5
RST 16
A0/DC 17
SDA 23
SCK 18
LED 4

and i think i know exactly the problem, i forgot the resistance between the LED and the ESP32 pin

also i dont have any kind of datasheets (i found the screen in a friend stock)

so hope this helps, you have a great day.