192X64 SLG19264B LCD display

Today i got an 192X64 SLG19264B LCD display from a friend to test.
But i don't know how to start.
I can not find any library.
The only thing i know is that the display has been bought fro aliexpress.

https://www.aliexpress.com/snapshot/0.html?spm=a2g0s.9042647.6.2.35b04c4dZIxA5d&orderId=8004483187111131&productId=32920418479

Can anyone help?
Thanks,
yannis.

Your link did not work.

But Aunty Google found https://h5.aliexpress.com/item/32920418479.html
which says:

  1. Overview
    Model: SLG19264B
    Display Type: 192*64 Dots
    Module Size: 130.0 X 65.0 X 13.0
    Viewing Area: 104.0 X 39.0
    Viewing Angle: 6 O'Clock
    Controller: KS0108 or Equal

U8g2lib supports KS0108 with 192x64. It will have three CS pins.

David.

Thanks David.
I will try it.

I see that in U8g2lib there is support for KS0108.
But i can't undestand how to connect the display in my arduino Uno R3.
I know that i have to uncomment the line:

U8G2_KS0108_ERM19264_F u8g2(U8G2_R0, 8, 9, 10, 11, 4, 5, 6, 7, /*enable=*/ 18, /*dc=*/ 17, /*cs0=*/ 14, /*cs1=*/ 15, /*cs2=*/ 16, /* reset=*/  U8X8_PIN_NONE); 	// Set R/W to low!

But since there is no 14,15,16 pins in my Uno i don't know how to wire it up.
I got the display pin out from the seller.
I attach it in my post.
Can you please explain me how to wire it up?
Thank you.
Yannis

The constructor is:

//U8G2_KS0108_ERM19264_1(rotation, d0, d1, d2, d3, d4, d5, d6, d7, enable, dc, cs0, cs1, cs2 [, reset])
U8G2_KS0108_ERM19264_1(U8G2_R0, 5, 6, 7, 8, 9, 10, 11, 12, 4, 2, 13, A1, A2, A0);

if you connect LCD pins 4-15 to Arduino digital #2-13 and LCD pins 16-18 to analog #0-2.

Connect LCD pin 1 to GND. 2,20 to 5V. Pot from LCD pin 1, 19 with slider to pin 3.
In setup() pinMode(3, OUTPUT); and digitalWrite(3, LOW);
There are a lot of wires. It is easier to connect in a nice order. Hence my wiring suggestion.

David.

david_prentice:
The constructor is:

//U8G2_KS0108_ERM19264_1(rotation, d0, d1, d2, d3, d4, d5, d6, d7, enable, dc, cs0, cs1, cs2 [, reset])

U8G2_KS0108_ERM19264_1(U8G2_R0, 5, 6, 7, 8, 9, 10, 11, 12, 4, 2, 13, A1, A2, A0);



if you connect LCD pins 4-15 to Arduino digital #2-13 and LCD pins 16-18 to analog #0-2.

Connect LCD pin 1 to GND. 2,20 to 5V. Pot from LCD pin 1, 19 with slider to pin 3.
In setup() `pinMode(3, OUTPUT);` and `digitalWrite(3, LOW);`
There are a lot of wires. It is easier to connect in a nice order. Hence my wiring suggestion.

David.

Thank you David.

Sorry David but i didn't understand where to connect LCD's pin 3(Vo) and LCD's pin 19(Vout).

Take a 22k potentiometer. Connect one outer pin to 19 (-10V) and the other outer pin to pin 1 (GND)
Connect the slider to pin 3.

If in doubt, find a schematic for a dev board. Or any board with a KS0108 display.

The pot value is not too critical. 10k or 47k would be ok.

As far as I know, you need a 3-terminal pot for a KS0108.
However we will soon hear from Paul__B

David.

I follow your instructions but the only thing i see in my display is backlight with dots.
Below is my wiring to arduino UNO R3.

LLCD Pins. Arduino UNO R3

1 (Vss) GND
2 (Vdd) 5V
3 (Vo) ————————> Pot Slider Pin
4 (RS) 2
5 (R/W) 3
6 (E) 4
7 (DB0) 5
8 (DB1) 6
9 (DB2) 7
10 (DB3) 8
11 (DB4) 9
12 (DB5) 10
13 (DB6) 11
14 (DB7) 12
15 (/CS1) 13
16 (/RST) A0
17 (/CS2) A1
18 (/CD3) A2
19 (Vout) ————————> Pot Pin1 (Pot Pin2 To GND)
20 (LED+) 5V

I have also put:

void setup(void)
{
u8g2.begin();
pinMode(3, OUTPUT);
digitalWrite(3, LOW);
}

Is this right?

I am running the Graphic Test from U8g2lib

When you adjust the pot, the contrast should change.

Post a photo of your wiring if there is still a problem.
Paste the constructor line that you have used in the U8g2lib example.
Quote the name of the example.

David.

When i adjust the pot the contarst change.
This works fine.
Just now i tried the "Hello Word" example
I attach a photo of what i see in my display.

Woo-hoo. Success !!

You are using the U8G2_KS0108_ERM19264_1() constructor. It is only writing a small buffer's worth.
You can change to the U8G2_KS0108_ERM19264_2() or even the U8G2_KS0108_ERM19264_F()

Oliver's examples should work with paged constructors.
Your Uno should be ok with the _2() version. But the _F() version will take too much SRAM.

That is why I asked for example name and for your constructor statement.

David.

I am not Oliver.
If he used the RW pin, you can avoid the buffer in the Uno. And use the KS0108 RAM.

Of course, not all displays are "readable". Hence a universal library will not rely on reading display memory.

David.

But in the library there is only U8G2_KS0108_ERM19264_F
Where can i find U8G2_KS0108_ERM19264_2 ?

david_prentice:
When you adjust the pot, the contrast should change. Yes, pot is good

Post a photo of your wiring if there is still a problem. wiring is good
Paste the constructor line that you have used in the U8g2lib example. I am waiting
Quote the name of the example. I am waiting

David.

If you provide the information, I can give you an accurate reply.

Constructor:

U8G2_KS0108_ERM19264_1 u8g2(U8G2_R0, 5, 6, 7, 8, 9, 10, 11, 12, 4, 2, 13, A1, A2, A0);

Example:
u8g2 library
HelloWorld

/*

HelloWorld.ino

#include <Arduino.h>
#include <U8g2lib.h>

#ifdef U8X8_HAVE_HW_SPI
#include <SPI.h>
#endif
#ifdef U8X8_HAVE_HW_I2C
#include <Wire.h>
#endif

U8G2_KS0108_ERM19264_1 u8g2(U8G2_R0, 5, 6, 7, 8, 9, 10, 11, 12, 4, 2, 13, A1, A2, A0);


void setup(void) {
  u8g2.begin();
   pinMode(3, OUTPUT);
   digitalWrite(3, LOW);  
}

void loop(void) {
  u8g2.clearBuffer();					// clear the internal memory
  u8g2.setFont(u8g2_font_ncenB08_tr);	// choose a suitable font
  u8g2.drawStr(0,10,"Hello World!");	// write something to the internal memory
  u8g2.sendBuffer();					// transfer internal memory to the display
  delay(1000);  
}

This is from the Paged Buffer HelloWorld.ino example

void loop(void) {
  u8g2.firstPage();
  do {
    u8g2.setFont(u8g2_font_ncenB10_tr);
    u8g2.drawStr(0,24,"Hello World!");
  } while ( u8g2.nextPage() );
  //delay(1000);
}

Your code will only work with a Full Buffer constructor. e.g.

U8G2_KS0108_ERM19264_F u8g2(U8G2_R0, 5, 6, 7, 8, 9, 10, 11, 12, 4, 2, 13, A1, A2, A0);

Your Uno has only got 2048 bytes of SRAM
A 192x64 display needs 1536 bytes for "Full Buffer"
HelloWorld will probably be ok. But any real life programs will run out of SRAM unless you are very careful.

David.

I tried your constructor but it doesn't work.
I have nothing on the screen.
And you are right,It consumes much SRAM.

Is there any posibility to run with ESP8266?

I have wasted lots of time.

Why don't you just try the Paged Buffer examples with the constructor that I suggested. e.g.

#include <Arduino.h>
#include <U8g2lib.h>

#ifdef U8X8_HAVE_HW_SPI
#include <SPI.h>
#endif
#ifdef U8X8_HAVE_HW_I2C
#include <Wire.h>
#endif


/*
  U8g2lib Example Overview:
    Frame Buffer Examples: clearBuffer/sendBuffer. Fast, but may not work with all Arduino boards because of RAM consumption
    Page Buffer Examples: firstPage/nextPage. Less RAM usage, should work with all Arduino boards.
    U8x8 Text Only Example: No RAM usage, direct communication with display controller. No graphics, 8x8 Text only.
    
  This is a page buffer example.    
*/

U8G2_KS0108_ERM19264_1 u8g2(U8G2_R0, 5, 6, 7, 8, 9, 10, 11, 12, 4, 2, 13, A1, A2, A0);

void setup(void) {
  pinMode(3, OUTPUT);
  digitalWrite(3, 0); 
  u8g2.begin();  
}

void loop(void) {
  u8g2.firstPage();
  do {
    u8g2.setFont(u8g2_font_ncenB10_tr);
    u8g2.drawStr(0,24,"Hello World!");
  } while ( u8g2.nextPage() );
  //delay(1000);
}

OK David. I will try more.
Thanks for your help.