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
GLCD SSD1315
-
- Posts: 186
- http://meble-kuchenne.info.pl
- Joined: Thu Dec 03, 2020 7:23 pm
- Has thanked: 54 times
- Been thanked: 26 times
-
- Matrix Staff
- Posts: 1954
- Joined: Wed Dec 02, 2020 11:07 pm
- Has thanked: 626 times
- Been thanked: 656 times
Re: GLCD SSD1315
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?
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
Re: GLCD SSD1315
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.
Any advice or ideas on how to resolve this?
Thanks!
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.
Any advice or ideas on how to resolve this?
Thanks!
Re: GLCD SSD1315
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).
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);
}
Re: GLCD SSD1315
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
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