Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Horizontal = Page #91

Closed
NedEisele opened this issue Jun 19, 2024 · 1 comment
Closed

Horizontal = Page #91

NedEisele opened this issue Jun 19, 2024 · 1 comment

Comments

@NedEisele
Copy link

Hello,
I have a ssd1309 and I try using your library. However, it doesn't really works for me. When I do the function Fill(White) i have only a Line on the left and when I do TestCircle() I only have half of circles. They are uncomplete. After multiples test I've figured something is wrong with the Init().

I tried doing my own version do just show a pixel as bellow:
uint8_t tab [16]={0}; //Initialisation tableau
/for (int i=0;i<16;i++){
tab[i]=0xFF;
}
/
tab[4]=2; //après test 1= rien,0= rien,3=glitch vsiblement 2 marche

ssd1306_WriteCommand(0xB0); //adresse de la page
ssd1306_WriteCommand(0x00); // valeur byte bas
ssd1306_WriteCommand(0x10); //byte haut
ssd1306_WriteData(tab,128); //

/*ssd1306_WriteCommand(0x8D); // Charge Pump Setting
ssd1306_WriteCommand(0x14); // Enable charge pump
ssd1306_WriteCommand(0xC8);*/
ssd1306_WriteCommand(0x20); //Set Memory Addressing Mode
ssd1306_WriteCommand(0x00); //0x00=Horizontal,0x01=Vertical,0x02=Page


ssd1306_WriteCommand(0xA4); // Lecture Ram




ssd1306_WriteCommand(0xAF); //

SSD1306.CurrentX = 0;
SSD1306.CurrentY = 0;

SSD1306.Initialized = 1;

and when i do x00 for Horizontal after the memory x20 it give me the same result as x02, which is a page. Only x01 work as it should. This is I think where my problem is

@afiskon
Copy link
Owner

afiskon commented Jan 30, 2025

Many thanks for your report.

Yes, these displays can be a little finicky. Some manufacturers claim their displays are for instance SSD1309 but the are in fact SSD1309-compatible to some extent. I don't know whether your display was the right one and mine was wrong or vice versa.

Unfortunatelly changing Init() may or may not break the displays it worked with before. Personally I tested in on a dozen or so. Considering the fact that your report seems to be the only one I got in many years (since 2018) I would rather keep the code as is. Anyone who encounters a similar issue can always modify Init() for a particular device, as you did.

Considering all the above I don't think there are any actionable items.

@afiskon afiskon closed this as completed Jan 30, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants