Digole 160*128 Oled and welcome screen

Hello,

I recently get a Digole Serial Oled 160*128 (http://www.digole.com/index.php?productID=859) and find the particle library on Github (https://github.com/timothybrown/Spark-Core-Sundries). It’s pretty easy to display text, change color or whatever but I can’t put my start screen.

I use the Digole’s tool available at http://www.digole.com/tools/PicturetoC_Hex_converter.php to convert a bmp to char with all possibility (Black and white, 256 color, 262K color, other lcd adapter welcome screen, etc). Note : By the way, in the list “used for” I don’t find an option like 160128 Adaptor welcome screen like other. (there is simply 12864 for 12864 screen and 24060 for 24064)

I have also used examples provides by Digole, but nothing.

On the lcd, I get :

Downloading... Don't
 turn me off!0x04 0X
00 - >Done Downloadi
ng !

The transfer works seems to work, but when I restart my photon, Nothing ! Not even “No welcome screen or wrong”, I get an empty screen.

Here’s my code :

#define _Digole_Serial_I2C_

#include "DigoleSerialDisp.h"

static const uint8_t screen[] =
{
0,0,0,0,0,0,1,255,255,128,0,0,0,0,0,0
,0,0,0,0,0,0,127,255,255,254,0,0,0,0,0,0
,0,0,0,0,0,15,255,255,255,255,240,0,0,0,0,0
,0,0,0,0,0,127,255,255,255,255,254,0,0,0,0,0
,0,0,0,0,3,255,255,255,255,255,255,192,0,0,0,0
,0,0,0,0,15,255,255,255,255,255,255,240,0,0,0,0
,0,0,0,0,127,255,255,255,255,255,255,254,0,0,0,0
,0,0,0,1,255,255,255,255,255,255,255,255,128,0,0,0
,0,0,0,7,255,255,255,255,255,255,255,255,224,0,0,0
,0,0,0,15,255,255,255,255,255,255,255,255,240,0,0,0
,0,0,0,63,255,255,255,255,255,255,255,255,252,0,0,0
,0,0,0,127,255,255,255,255,255,255,255,255,254,0,0,0
,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0
,0,0,3,255,255,255,255,255,255,255,255,255,255,192,0,0
,0,0,7,255,255,255,255,255,255,255,255,255,255,224,0,0
,0,0,15,255,255,255,255,255,255,255,255,255,255,240,0,0
,0,0,31,255,7,255,255,255,255,240,31,255,255,248,0,0
,0,0,63,248,3,255,255,255,255,128,15,255,255,252,0,0
,0,0,63,240,7,255,255,255,254,0,63,255,255,252,0,0
,0,0,127,224,15,255,255,255,252,0,63,255,255,254,0,0
,0,0,255,192,15,255,255,255,248,0,63,255,255,255,0,0
,0,0,255,128,15,255,255,255,240,0,63,255,255,255,0,0
,0,1,255,128,3,243,255,255,240,0,15,207,255,255,128,0
,0,1,255,128,0,3,255,255,224,0,0,15,255,255,128,0
,0,3,255,0,0,3,255,255,224,0,0,15,255,255,192,0
,0,3,255,0,0,3,255,255,224,0,0,15,255,255,192,0
,0,3,255,128,0,3,255,255,224,0,0,15,255,255,192,0
,0,7,255,128,0,3,255,255,224,0,0,15,255,255,224,0
,0,7,255,255,255,255,255,255,255,255,255,255,255,255,224,0
,0,7,255,255,255,255,255,255,255,255,255,255,255,255,224,0
,0,7,255,255,255,255,255,255,255,255,255,255,255,255,224,0
,0,7,255,255,255,255,255,255,255,255,255,255,255,255,224,0
,0,7,255,255,255,255,255,255,255,255,255,255,255,255,224,0
,0,7,255,255,255,255,255,255,255,255,255,255,255,255,224,0
,0,7,255,255,255,255,255,255,255,255,255,255,255,255,224,0
,0,7,255,255,255,255,255,255,255,255,255,255,255,255,224,0
,0,7,255,255,255,255,255,255,255,255,255,255,255,255,224,0
,0,3,255,255,255,255,255,255,255,255,255,255,255,255,192,0
,0,3,255,255,255,255,255,255,255,255,255,255,255,255,192,0
,0,3,255,255,255,255,255,255,255,255,255,255,255,255,192,0
,0,1,255,255,255,255,255,255,255,255,255,255,255,255,128,0
,0,1,255,255,255,255,255,255,255,255,255,255,255,255,128,0
,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0
,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0
,0,0,127,255,255,255,255,255,255,255,255,255,255,254,0,0
,0,0,63,255,255,255,255,255,255,255,255,255,255,252,0,0
,0,0,63,255,255,255,255,255,255,255,255,255,255,252,0,0
,0,0,31,255,255,255,255,255,128,63,255,255,255,248,0,0
,0,0,15,255,255,255,255,248,0,7,255,255,255,240,0,0
,0,0,7,255,255,255,255,224,0,0,255,255,255,224,0,0
,0,0,3,255,255,255,255,128,0,0,63,255,255,192,0,0
,0,0,0,255,255,255,255,0,0,0,31,255,255,0,0,0
,0,0,0,127,255,255,254,0,0,0,127,255,254,0,0,0
,0,0,0,63,255,255,252,0,0,3,255,255,252,0,0,0
,0,0,0,15,255,255,248,0,0,31,255,255,240,0,0,0
,0,0,0,7,255,255,248,0,1,255,255,255,224,0,0,0
,0,0,0,1,255,255,255,255,255,255,255,255,128,0,0,0
,0,0,0,0,127,255,255,255,255,255,255,254,0,0,0,0
,0,0,0,0,15,255,255,255,255,255,255,240,0,0,0,0
,0,0,0,0,3,255,255,255,255,255,255,192,0,0,0,0
,0,0,0,0,0,127,255,255,255,255,254,0,0,0,0,0
,0,0,0,0,0,15,255,255,255,255,240,0,0,0,0,0
,0,0,0,0,0,0,127,255,255,254,0,0,0,0,0,0
,0,0,0,0,0,0,1,255,255,128,0,0,0,0,0,0
};

DigoleSerialDisp mydisp(0x27);

void setup() {
    mydisp.begin();

    mydisp.clearScreen();

    delay(500);            //this delay is very important, it will let module to clear the receive buffer
    mydisp.uploadStartScreen(sizeof(screen), screen);
    delay(5000);
    mydisp.displayStartScreen(0);

}
void loop() {
}

I used many bitmap, changed the LCD by another one, nothing

I used I2C connection.

The method drawBitmap works perfectly by the way, I could get a start screen this way, but this isn’t proper.

@Raph, it would be nice to give a little more details on what device you are using (Core, Photon), how you compiled your code and which Digole examples you tried. Also, which Digole library did you use?

As for I2C, I can’t recall if the Digole boards have pull-up resistors or not. If not, you will need to add a 4.7K ohm pull-up resistors to both I2C lines. Without them, nothing will work. :smile:

1 Like

Hi peekay123, thanks for your reply :smile:

I’m working on a photon trough Particle Dev. I put the github link of the Digole library I use in my post.
And like I tell, I can print text and bitmap on my display, so the I2C connection is ok !

I simply used the startScreens in chars located in sampledata.h provided by Digole official library, but the problem is the same.

@Raph, I have one of those display and I can test, possibly tonight. :smile:

This is kind of you, thanks :blush:

1 Like

@Raph, I tested the screen upload via serial which is very reliable. However, though I could get the program to run telling me it had uploaded my image, when I rebooted the display, I got a blank welcome screen. If I then reloaded the stock image in their demo app (Digole_Welcome_Screen.ino), then that seemed to work! I think you’ll need to post a querry on their forum for that.

@peekay123 What do you mean a blank welcome ?
And it’s work with the image stock in the demo app ? You can see it when the oled turn on ?

I had to pass my system on an arduino uno for some reasons, and it’s exactly the same problem here…

Yep, i’ll do that tomorrow, thank you for helping me !

Good night from France ! :blush:

@Raph I have the same issue… I am uploading using serial and although it appears to save just fine, it just won’t display at reboot.

Like you I tried even a basic bitmap or basic commands (to write a few letters). I also tried using the SSS command directly (making sure to respect their format and especially the ‘double’ byte count at the beggining). Mind you, even the Digole example won’t work!

Have you progressed over the last month? Any update?

Hey @sdelgran
Nop, I didn’t try anything more… I still display a welcome screen with DrawBitmap(), despite it’s not proper

Thanks for getting back to me.

I somewhat progressed on my side. It is not perfect but I am almost there. Looking at your code above, I see that you did not start with the data length (on 2 bytes). You should try and add it, Digole said it was still needed for the underlying PIC function (“SSS”) to be backward compatible with monochrome display. The library wrapper (uploadStartScreen) will insert a second data length on 2 bytes which is also needed…

OK, I think I have it now. In my case, it was a combination of mistakes in the bitmap code and the display not being ready for the upload and still reporting success (and partially drawing the start screen at times).

I would be happy to try to upload your screen if you post it here or send it to me privately. We can maybe work it out together and report here what we found? (I am in France too).

1 Like