Hi Rob, I tested on several PIC types, all worked well. Nice solution with the sh1106_goto_pixel option. Thanks, with kind regards, Bill.
On Sunday, January 25, 2026 at 12:10:52 PM UTC+1 Rob CJ wrote: > Hi Bill, > > Update on font positioning! > > I had a look at writing characters pixel by pixel in the glcd_common > routine. I needed to made some minor changes to glcd_common to get it > working. > > For the library and the sample program the following was changed: > > 1. When using TEXT only mode nothing was changed. For horziontal fonts > you still need to set the size of the character buffer. Text can > vertically > only be positioned on page locations (0..7) as before (so no change). > 2. When using graphics mode, characters are writing using pixels. This > means that text can be positioned starting at any x- and y-coordinate. In > this mode the extra character buffer, needed when writing horizontal > fonts, > is not needed since the cache is used instead. Pixel writing is a bit > slower. > 3. Note that if you want to position your text at any random location > in graphics mode you need to use the procedure sh1106_goto_pixel() > 4. For TEXT only mode, the procedure sh1106_goto() remains. > > > Attached an update of the sample file for graphics and the glcd_common > library. In this example I started the larger font at y_coordinate 5 to > show that it works. > > I plan to include this feature for the SSD1306 library later. > > Kind regards, > > Rob > > ------------------------------ > *Van:* [email protected] <[email protected]> namens Rob CJ < > [email protected]> > *Verzonden:* zaterdag 24 januari 2026 16:54 > > *Aan:* jallib <[email protected]> > *Onderwerp:* Re: [jallib] Re: Update SSD1306 library supporting bigger > font > Hi Bill, > > Good to see that it works now for you. > > I uploaded the library and two sample files to Github so they will be in > the next Jallib release and the next bee-package. I tested them using I2C > and SPI using the samples I created (one using font and graphics and one > using only fonts). > > I started with the option to goto any pixel location but that will be a > problem when using only fonts since you cannot read data back from the > display (which is needed if a character like 8x12 only use half of the next > line). Only in graphics mode this would be possible since then a cache is > created and a character could then be written pixel by pixel but that > required 1k of data space. > > I thought there is a glcd function for in the common library for writing > character pixel by pixel but have not tried that. I may look at it later > and as you suggested maybe add it as an option. > > And for the random pixels. It may also help to add an additional capacitor > on +3.3Volt. > > Good luck with your project. > > Kind regards, > > Rob > > ------------------------------ > *Van:* [email protected] <[email protected]> namens Bill Beek > <[email protected]> > *Verzonden:* zaterdag 24 januari 2026 16:34 > *Aan:* jallib <[email protected]> > *Onderwerp:* Re: [jallib] Re: Update SSD1306 library supporting bigger > font > > > Hi Rob, I got your new lib tested with the 16F18857, everything looked > fine. > > No trace of unwanted pixels. With the 16F1825 I still have unwanted pixels, > > I'll look into that further, maybe there's something wrong with the chip. > > I have performed all tests with 3.3 Volt Vdd. As you rightly pointed out, > > the displays are intended for a working voltage of max 3V3. > > As for the text lines, I think it's better to choose the position on the > screen yourself, > > especially if you want to keep a little more space between the text lines. > > Perhaps you can do this as an option for users who do not want the fixed > line spacing. > > For example, the 8x12 font gives problems with the fixed pages. > > Many Thanks for the good work. > > Kind regards, Bill. > > > On Friday, January 23, 2026 at 6:50:41 PM UTC+1 Rob CJ wrote: > > Hi Bill, > > Today I received the displays and I tested the I2C version and it worked! > I had of course the same issue with the characters on the left that where > cut off. > > Attached you find an update of the library and a sample program. I made > the following changes: > > 1. Fixed the pixel shift no now the '8' are positioned correctly > 2. Removed the horizontal scroll procedures and diagonal scroll > procedures since the SH1106 does not support that. > > > The big font was also working but make sure you increase the character > buffer as shown in the sample program since the default size is 1 byte > which is insufficient. > > Then about your random pixels. I did not have them and I think I know why. > When I used an ssd1306 in the past I also had random pixels. I saw on an > osciloscope that the SSD1306 module generated a lot of noice on the IIC > lines. This is also the case for the SH1106. The problem occurs when you > use the module and the PIC both on 5Volt because the SH1106 operates at 3.3 > Volt and so the I2C signals do not have a full swing to +5Volt and the > noise is so high that it disturbs those signals changing a 1 into a 0 and > the other way around. I solved this in the past by operating both the > SSD1306 and the PIC at 3.3 Volt so that the whole level swing is used and > that is also the set-up I used today for the SH1106. I had no random pixels > in this set-up. > > So you have two options: > > 1. Operate both devices at 3.3. Volt > 2. Use a level shifter between the PIC and the SH1106 if you want your > PIC to run at 5Volt. > > > If you look at the datasheet of both the SSD1306 and the SH1106 the inputs > do not seem 5Volt tolerant so I wonder if they break down after some time > if you use the PIC at 5Volt but I am not sure if that will occur. > > Next test is to see if the SPI version also works correctly. > > Last but not least a question (for all JAL users). The device - and the > goto function - works for fonts horizontal with pixels but vertical with > pages 0..7. I used pages since that is what I also saw in other libraries > but it limits where you can place text vertically. I wonder if I should > change that so that you can also use pixels for the vertical orientation so > that you could position your charaters anywhere vertically and not only on > pages 0..7. Do you think that is a feature that would be useful? I need to > write additional code for this and if that works it should also be changed > for the SSD1306 but this will result in all users that use this library to > implement some changes to rearrange the text based on pixels. > > Let me know what you - all - think. > > Thanks. > > Kind regards, > > Rob > > > > ------------------------------ > *Van:* [email protected] <[email protected]> namens Rob CJ < > [email protected]> > *Verzonden:* donderdag 22 januari 2026 18:51 > > *Aan:* jallib <[email protected]> > *Onderwerp:* Re: [jallib] Re: Update SSD1306 library supporting bigger > font > Hi Bill, > > Good to know. > > About the fonts. The two fonts you mentioned are vertical oriented fonts > like the display. The larger fonts are most likely horizontal fonts for > which extra code is in the library to rotate this but it needs a character > buffer for that. > > If you want to use the larger fonts you have to increase that character > buffer as described in the library, see info below. In the SSD1306 I made > this character buffer as large as was needed for the biggest fonts we > currently have but if you do not use such a big font, it is waste of data > space. In the SH1106 library I have set this buffer to the minimum of 1 so > for each horizontal font you use (which are the larger fonts) you have to > increase this size. I also changed this for the SSD1306 library - so that > you know - but I did not upload that since I first want to see what comes > out of testing the SH1106 library, > > > -- When using a horizontal oriented character font, a character buffer > -- is needed with the size of the used font, see the font library value > -- FONT_xxxx_BYTE_PER_CHAR for the font you are using. > -- The default size of this buffer is set to the minimum value of 1. > -- For example the 12x16 horizontal font uses 32 bytes for one character > -- and so we can set the character buffer to this size by: > -- -) const SH1106_CHAR_BUFFER_SIZE = 32 > -- No buffer is required for vertical oriented fonts. For vertical fonts > -- only fonts with a maximum height of 8 pixels are supported. > > Kind regards, > > Rob > > > > ------------------------------ > *Van:* [email protected] <[email protected]> namens Bill Beek > <[email protected]> > *Verzonden:* woensdag 21 januari 2026 20:25 > *Aan:* jallib <[email protected]> > *Onderwerp:* Re: [jallib] Re: Update SSD1306 library supporting bigger > font > > > 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. > > > On Tuesday, January 20, 2026 at 6:47:41 PM UTC+1 Rob CJ wrote: > > Hi Bill, > > Thanks for the info. I expect the LCD's to arrive soon so I can test it > myself. > > Strange all those random pixels (I assume after clear display. It may be > that the shift 1 pixel to the left may be caused by the fact that this > controller support 132x64 while the SSD1306 supports 128x64 and I still > used 128x64 in this library but I will test that too. I head something > similar from Rob Hamerling to add an offset. > > I noticed when testing the SSD1306 library that some scrolling > funtionality only worked for the version with SPI and not IIC. I do not > know why that is. > > As soon as I get it all working I will send you an update. > > Kind regards, > > Rob > > > > ------------------------------ > *Van:* [email protected] <[email protected]> namens Bill Beek > <[email protected]> > *Verzonden:* dinsdag 20 januari 2026 16:37 > > *Aan:* jallib <[email protected]> > *Onderwerp:* Re: [jallib] Re: Update SSD1306 library supporting bigger > font > I meant Horizontal and diagonal scrolling. > > > On Tuesday, January 20, 2026 at 4:33:27 PM UTC+1 Bill Beek wrote: > > 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. > > > On Monday, January 19, 2026 at 6:58:17 PM UTC+1 Rob CJ wrote: > > Hi Bill, > > I had a detailed look at the datasheet of the SH1106 and saw that setting > the device on a certain position works differently so I changed that. This > way of positioning the device uses a page addressing mode. This mode is > also available in the SSD1306 but there the library uses horizontal > addressing mode and so a different method is used. You can also select the > page addressing mode on the SSD1306 and then the same approach is used as > in the SH1106. > > Not sure if this solves all problems but this version will not work on the > SSD1306 since the command to select the addressing mode is not present in > the SH1106 so I removed that command in total to prevent any side effects. > In the future it might be possible to make one library for both (maybe with > a 'define') but maybe it is better to keep them separate otherwise the > library name should change to glcd_ssd1306_sh1106. > > If this does not work then you have to wait until I can test it myself. > > Kind regards, > > Rob > > > > ------------------------------ > *Van:* [email protected] <[email protected]> namens Rob CJ < > [email protected]> > *Verzonden:* zondag 18 januari 2026 16:28 > *Aan:* [email protected] <[email protected]> > > *Onderwerp:* Re: [jallib] Re: Update SSD1306 library supporting bigger > font > Hi Bill, > > OK. These where settings that supposed to work for both. I will do some > more research and will test it first myself before sending an update. > > Kind regards, > > Rob > > ------------------------------ > *Van:* [email protected] <[email protected]> namens Bill Beek > <[email protected]> > *Verzonden:* zondag 18 januari 2026 16:15 > *Aan:* jallib <[email protected]> > *Onderwerp:* Re: [jallib] Re: Update SSD1306 library supporting bigger > font > > The latest lib make it worst, both displays are now up side down. > And the 1306 is now messy and the 1106 behavior is further unchanged. > Kind regards, Bill. > On Sunday, January 18, 2026 at 3:45:30 PM UTC+1 Bill Beek wrote: > > Hi Rob, > Only for the video together, when used > separately the same results on the display > > > > > On Sunday, January 18, 2026 at 3:21:23 PM UTC+1 Rob CJ wrote: > > Hi Bill, > > Are you using both at the same time on the same IIC bus with the same IIC > address? That may give problems. > > I updated the library and used other initialization settings that I > received from the other Rob. They should work both for the ssd1306 as well > as for the sh1106. > > Kind regards, > > Rob > > ------------------------------ > *Van:* [email protected] <[email protected]> namens Bill Beek > <[email protected]> > *Verzonden:* zondag 18 januari 2026 12:41 > > *Aan:* jallib <[email protected]> > *Onderwerp:* Re: [jallib] Re: Update SSD1306 library supporting bigger > font > > my mistake > > > -- > You received this message because you are subscribed to the Google Groups > "jallib" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion visit > https://groups.google.com/d/msgid/jallib/c6d86474-5d12-4826-b55a-a4c2d74f2e69n%40googlegroups.com > > <https://groups.google.com/d/msgid/jallib/c6d86474-5d12-4826-b55a-a4c2d74f2e69n%40googlegroups.com?utm_medium=email&utm_source=footer> > . > > -- > You received this message because you are subscribed to the Google Groups > "jallib" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion visit > https://groups.google.com/d/msgid/jallib/8e75facb-27fd-4700-89f4-592250bc2e2an%40googlegroups.com > > <https://groups.google.com/d/msgid/jallib/8e75facb-27fd-4700-89f4-592250bc2e2an%40googlegroups.com?utm_medium=email&utm_source=footer> > . > > -- > You received this message because you are subscribed to the Google Groups > "jallib" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion visit > https://groups.google.com/d/msgid/jallib/AM6PR02MB4053C37C61C5EC28C09619D8E68BA%40AM6PR02MB4053.eurprd02.prod.outlook.com > > <https://groups.google.com/d/msgid/jallib/AM6PR02MB4053C37C61C5EC28C09619D8E68BA%40AM6PR02MB4053.eurprd02.prod.outlook.com?utm_medium=email&utm_source=footer> > . > > -- > You received this message because you are subscribed to the Google Groups > "jallib" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion visit > https://groups.google.com/d/msgid/jallib/ae6bfd7c-b7d3-47ca-8dc8-b3fab5174eddn%40googlegroups.com > > <https://groups.google.com/d/msgid/jallib/ae6bfd7c-b7d3-47ca-8dc8-b3fab5174eddn%40googlegroups.com?utm_medium=email&utm_source=footer> > . > > -- > You received this message because you are subscribed to the Google Groups > "jallib" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion visit > https://groups.google.com/d/msgid/jallib/ca4c4c8b-c505-409e-bd4f-de6cae878986n%40googlegroups.com > > <https://groups.google.com/d/msgid/jallib/ca4c4c8b-c505-409e-bd4f-de6cae878986n%40googlegroups.com?utm_medium=email&utm_source=footer> > . > > -- > You received this message because you are subscribed to the Google Groups > "jallib" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion visit > https://groups.google.com/d/msgid/jallib/AM0PR02MB4052E9D0E13610BF7DB3A8A6E697A%40AM0PR02MB4052.eurprd02.prod.outlook.com > > <https://groups.google.com/d/msgid/jallib/AM0PR02MB4052E9D0E13610BF7DB3A8A6E697A%40AM0PR02MB4052.eurprd02.prod.outlook.com?utm_medium=email&utm_source=footer> > . > > -- > You received this message because you are subscribed to the Google Groups > "jallib" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion visit > https://groups.google.com/d/msgid/jallib/68c04822-15a1-4e24-b30a-3027b7f84f97n%40googlegroups.com > > <https://groups.google.com/d/msgid/jallib/68c04822-15a1-4e24-b30a-3027b7f84f97n%40googlegroups.com?utm_medium=email&utm_source=footer> > . > > -- > You received this message because you are subscribed to a topic in the > Google Groups "jallib" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/jallib/JdXGKBOcq1A/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > [email protected]. > To view this discussion visit > https://groups.google.com/d/msgid/jallib/AM0PR02MB405224AF04EE502D8BB4BA77E695A%40AM0PR02MB4052.eurprd02.prod.outlook.com > > <https://groups.google.com/d/msgid/jallib/AM0PR02MB405224AF04EE502D8BB4BA77E695A%40AM0PR02MB4052.eurprd02.prod.outlook.com?utm_medium=email&utm_source=footer> > . > -- You received this message because you are subscribed to the Google Groups "jallib" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion visit https://groups.google.com/d/msgid/jallib/a8e27ec1-b025-4e8b-9aee-14f55bc96764n%40googlegroups.com.
