Library supporting SSD1329 OLED controller

Hello !

I'm trying to write to a 128x96 OLED display using the SSD1329 controller, BUT i haven't had any luck finding a library supporting the above mentioned controller...

I have however tried using the u8glib with the SSD1325 constructor, knowing that it's only 128x64, i thought i would give it a try and it works... except it has the wrong resolution.

attached is the Controller datasheet + the test code im running.

any help is much appreciated !

  • Kris

SSD1329.pdf (539 KB)

display.ino (556 Bytes)

Hi

In the u8glib library files you could locate u8g_dev_ssd1325_nhd27oled_bw_new.c or u8g_dev_ssd1325_nhd27oled_gr_new.c (whatever you have used) and change the line

#define HEIGHT 64

to

#define HEIGHT 96

I had tried to make the device specific files as flexible as possible, so maybe this works.

Good Luck,
Oliver

olikraus:
Hi

In the u8glib library files you could locate u8g_dev_ssd1325_nhd27oled_bw_new.c or u8g_dev_ssd1325_nhd27oled_gr_new.c (whatever you have used) and change the line

#define HEIGHT 64

to

#define HEIGHT 96

I had tried to make the device specific files as flexible as possible, so maybe this works.

Good Luck,
Oliver

Hi

Thank you for the suggestion, but unfortunately it didn't Work.
I have attached a Picture of the display while running the code below, and this is after i tried changing #define HEIGHT from "64" to "96".

#include <U8glib.h>

 U8GLIB_NHD27OLED_BW u8g(4, 5, 6, 7, 8);
 
void setup()
{
  u8g.setFont(u8g_font_unifont);
  u8g.setColorIndex(1);
}

void loop()
{  
  u8g.firstPage();
  do 
  {  
    draw();    
  }
 
  while( u8g.nextPage() );
  delay(1000); 
}


void draw()
{
  u8g.drawStr( 0, 0, "Top"); 
  u8g.drawStr( 0, 48, "Middle");
  u8g.drawStr( 0, 95, "Bottom"); 
}

It's as if the top half of the display won't display anything...

  • Kris

display.jpg

ok, then probably things are more complicated: You need to adjust the setup sequence for the display controller.
Maybe this command has to be changed:

0x0a2, 0x04c, /* display offset, shift mapping ram counter */

But for this we probably would need to investigate the controller manual AND the display manual more closly.
A wild guess could be to set the argument to zero (or some other random values) and see what happens:

0x0a2, 0x000, /* display offset, shift mapping ram counter */

Oliver

Hi

Yeah, i tried this exact thing an hour or so after my last post, and it WORKED! (sorry for not updating the post)

Thanks for the help and this GREAT library ! :slight_smile:

  • Kris

Great. Nice to see that this works.

Oliver