Hi Rob,
The 12x16 font now works fine, the error was on my side, the hex file worked fine as expected.
After compilation of your program it went wrong again.
After investigation, the glcd_font lib turned out to be corrupted, so I apologize for the inconvenience.
I have looked at the I2C lines, and also see that interference signals are
getting bigger as the voltage increases between 3 and 5 Volts.
What I also noticed was that the pulses were not very steep,
which is of course due to by the weak pullups.
After placing 2 x 4k7 resistors it looked much better and realized a more stable data transfer.
I noticed that the display regularly fails at 5V, after placing the resistors everything worked well at 5 Volts.
According to my info there is some kind of voltage regulator on the display board which would make it applicable from 3 to 5 Volt.
Many thanks for the good work,
Kind regards, Bill.
Hi Rob,
I tried to make the SSD1306 library suitable for the SH1106, but it won’t work.
Addressing the memory is different, with line, page and column addresses.
Because I don’t fully understand the 1306 lib, it is difficult for me to make it work.
Maybe you want to look at the data sheet to make some suggestions.
I send the lib along. I deleted the SPI and scroll functions to keep it simple.
Thank you in advance, and best wishes for 2026 to the group.
Bill.
Hi Rob,
Not working at all, see picture. I studied several arduino libs but that didn't give me a solution.
While the programmers write, that it is a small modification of the SSD1306, I don't see it.
When I use the 1306 with this lib, the first line written from right to left with the text in mirrored image.
Kind regards, Bill.
As far as sending a 0x00 prior to the command transmission was concerned,
I thought the procedure "_sh1106_start_transmission" took care of that.
Also I did try to add an extra write _byte(0x00) in the send_command procedure.
But nothing changed. If it's too much work for you to look in to it further, it's no problem.
I will try further to understand several libraries, but i am not very good in the C coding.
Thank you for your effort.
Kind regards, Bill.
I tested the lib with 1106 and 1306, the 1106 was not all right the
1306 works well.
Then I controlled both displays at the same time and made a video of it.
Maybe you can determine what goes wrong from it.
Kind regards, Bill.
Hi Rob,
You're on the right track, that addressing also gave me some problems to figure out.
I'll send some pictures so you can see what's happening on the display.
The "8" at the bottom left has been moved 1 position so that the full character is visible.
That is not a big problem. Only the vertical scrolling functions work, the horizontal and
vertical ones don't.
And of course the unwanted pixels are the problem as far as I've been able to discover,
as you can see in the pictures.
Kind regards, Bill.
Hello Rob,
It seems that the memory is not completely erased by the clear_screen procedure.
I made a work around that overwriting all 8 lines of text with spaces,
so that the unwanted pixels disappear.
Furthermore, I saw that only the 5x7 and the 6x8 fonts works, the larger one doesn't.
It's hard not to be able to test with the right display, so for now I'm waiting to see
what you can discover.
Kind regards, Bill.