GLCD SSD1315

Post here to discuss any new features, components, chips, etc, that you would like to see in Flowcode.
Post Reply
Alan_37
Posts: 186
http://meble-kuchenne.info.pl
Joined: Thu Dec 03, 2020 7:23 pm
Has thanked: 54 times
Been thanked: 26 times

GLCD SSD1315

Post by Alan_37 »

Hi there,

I recently picked up a few I2C OLED displays that use the SSD1315 driver. I assumed they’d work just fine with the SSD1306 component in Flowcode, but it turns out they’re not fully compatible. I’m guessing this might be because these are 1.3-inch displays, whereas the usual SSD1306 ones are smaller (like 0.96-inch).

Would it be possible to add official support for SSD1315 displays in Flowcode?
Thanks a lot!

https://www.aliexpress.com/item/1005007 ... 5e5bPW0ayq

medelec35
Matrix Staff
Posts: 1954
Joined: Wed Dec 02, 2020 11:07 pm
Has thanked: 626 times
Been thanked: 656 times

Re: GLCD SSD1315

Post by medelec35 »

Hello.
What happens when you adjust the pixel width and height to match SSD1315 and select I2C address of 7A?
It could be that the SA0 of the SSD1315 is fixed high or low?
Perhaps you can determine the correct address using the I2C address scanner/ sniffer here?
Martin

Alan_37
Posts: 186
Joined: Thu Dec 03, 2020 7:23 pm
Has thanked: 54 times
Been thanked: 26 times

Re: GLCD SSD1315

Post by Alan_37 »

Hi medelec35,

The SSD1315 display also uses I2C address 0x78 and has a resolution of 128x64 just like SSD1306

The display is receiving data and showing Text, but the output isn’t correct. There’s a noticeable offset issue — for example, if I set X = 0, part of the text on the left side gets cut off.

Additionally, the text itself doesn’t render properly — it appears as a series of horizontal lines instead of clear characters ( this issue is also present on the SSD1306 )

There’s also a vertical line always present on the right edge of the display.

It seems like either the initialization sequence or the memory addressing isn’t fully compatible with the SSD1306 driver in Flowcode.
photo_2025-03-06_17-58-29.jpg
photo_2025-03-06_17-58-29.jpg (159.87 KiB) Viewed 5244 times
Any advice or ideas on how to resolve this?

Thanks!

medelec35
Matrix Staff
Posts: 1954
Joined: Wed Dec 02, 2020 11:07 pm
Has thanked: 626 times
Been thanked: 656 times

Re: GLCD SSD1315

Post by medelec35 »

Thanks Alan, that is useful information .
I will create the requested display and the information you supplied will hopefully help me to do that.
Martin

Alan_37
Posts: 186
Joined: Thu Dec 03, 2020 7:23 pm
Has thanked: 54 times
Been thanked: 26 times

Re: GLCD SSD1315

Post by Alan_37 »

Hi medelec35,

Problem Description:
The display has a 3-pixel offset to the left, leaving a 3-pixel wide uncleared area on the right side.

Temporary workaround :

I tried this C code that initializes the display with a horizontal offset of 3 pixels to the right. This should have fixed it but when printing text it resets
the parameters , So Piexl Width in Properties should be set to 131x64 at least the code fixes the text rendering problem.

Just a quick note: After you apply this fix, make sure that all X positions — whether you’re drawing text, graphics, or anything else — start at position 3 instead of 0.

Also, don’t forget to place this code right after Flowcode’s initialize function for your display ( Display Handle: SSD1306_1).

Code: Select all

const unsigned char initCommands[] = {
    0xAE, // Display OFF
    0xD5, 0x80, // Clock
    0xA8, 0x3F, // Multiplex ratio (64 rows)
    0xD3, 0x00, // Offset
    0x40, // Start line at 0
    0x8D, 0x14, // Charge pump
    0x20, 0x00, // Horizontal addressing mode
    0xA1, // Segment re-map
    0xC8, // Scan direction
    0xDA, 0x12, // COM hardware config
    0x81, 0x7F, // Contrast
    0xD9, 0xF1, // Pre-charge
    0xDB, 0x40, // VCOMH deselect
    0xA4, // Entire display ON
    0xA6, // Normal display
    0x21, 0x03, 0x82, // Column address range (shift +3)
    0x22, 0x00, 0x07, // Page address range (0-7)
    0xAF // Display ON
};

// Send all commands in 1 loop
for (int i = 0; i < sizeof(initCommands); i++)
{
    FCD_0cc51_SSD1306_1__SendCommand(initCommands[i]);
}

// Clear screen after init
for (int i = 0; i < 1024; i++)
{
    FCD_0cc51_SSD1306_1__SendCommand(0x00);
}
photo_2025-03-06_20-29-08.jpg
photo_2025-03-06_20-29-08.jpg (137.12 KiB) Viewed 5192 times

Alan_37
Posts: 186
Joined: Thu Dec 03, 2020 7:23 pm
Has thanked: 54 times
Been thanked: 26 times

Re: GLCD SSD1315

Post by Alan_37 »

Hello again,

After further testing, I discovered that the SH1106 I2C display is fully compatible with the SSD1315—no additional code is needed. The display also communicates on address 0x3C.

The only difference is that the SH1106 has a reset pin, whereas the SSD1315 does not. However, if the reset pin is left unconnected in the properties, the project fails to compile.

If someone could create a clone of the SH1106 without the reset pin and name it SSD1315, that would be perfect.

Thanks

Post Reply