Digole Oled 128x64 problem

Hello all,

I've bought one of this SerialOled displays and i was kind of making the first test with it using the the demo code in the producers webpage.

Im using it straight out of the box as UART mode and im allways getting an error when try to verify the code.

#define _Digole_Serial_UART_  //To tell compiler compile the special communication only, 
//other available is: _Digole_Serial_I2C_ and _Digole_Serial_SPI_
#include <DigoleSerial.h>
//--------UART setup, if you don't use UART, use // to comment following line
DigoleSerialDisp mydisp(&Serial, 9600); //UART:Arduino UNO: Pin 1(TX)on arduino to RX on module
//--------I2C setup, if you don't use I2C, use // to comment following 2 lines
//#include <Wire.h>
//DigoleSerialDisp mydisp(&Wire,'\x27');  //I2C:Arduino UNO: SDA (data line) is on analog input pin 4, and SCL (clock line) is on analog input pin 5 on UNO and Duemilanove
//--------SPI setup, if you don't use SPI, use // to comment following line
//DigoleSerialDisp mydisp(8,9,10);  //SPI:Pin 8: data, 9:clock, 10: SS, you can assign 255 to SS, and hard ground SS pin on module
#define LCDCol 16
#define LCDRow 2

int ptr;
const char a[] = "disp char array";
const char b = 'Q';
int c = 3456;
String d = "I'm a string";
float pi = 3.1415926535;
double lg10;

void setup() {
    /*----------for text LCD adapter and graphic LCD adapter ------------*/
    mydisp.clearScreen(); //CLear screen
    //mydisp.displayConfig(1);    //set config display ON, 0=off
    //mydisp.setI2CAddress(0x29);  //this function only working when you connect using I2C, from 1 to 127
    //mydisp.setLCDColRow(16,2);  //set LCD Col and Row, only time set up is OK
    mydisp.disableCursor(); //disable cursor, enable cursore use: enableCursor();
    mydisp.drawStr(4, 0, "Demo now"); //display string at: x=4, y=0

    //Test print function
    mydisp.setPrintPos(0, 1);
    mydisp.print(a); // display a char array
    mydisp.print("display a char:");
    mydisp.print(b); //display a char
    mydisp.print("int as DEC:");
    mydisp.print(c); //display 3456 in Dec
    mydisp.print("as HEX:");
    mydisp.print(c, HEX); //display 3456 in Hex
    mydisp.print("as OCT:");
    mydisp.print(c, OCT); //display 3456 in Oct
    mydisp.print(c, BIN); //display 3456 in Bin
    mydisp.print(d); //display String object
    mydisp.print("float pi=");
    mydisp.print(pi); //display float of PI
    mydisp.print(pi, 6); //display PI in 6 Accuracy
    mydisp.print(pi * 3, 6); //display PI time 3 in 6 Accuracy
    mydisp.print(log(5), 8); //display log(5) in 8 Accuracy
    for (uint8_t j = 0; j < 4; j++) //making "Hello" string moving
        for (uint8_t i = 0; i < 10; i++) //move string to right
            mydisp.setPrintPos(i, 1);
            mydisp.print(" Hello ");
            delay(100); //delay 100ms
        for (uint8_t i = 0; i < 10; i++) //move string to left
            mydisp.setPrintPos(9 - i, 1);
            mydisp.print(" Hello ");
    mydisp.print("Turn Off backlight after 2 seconds");
    mydisp.print("Turn On backlight");
    mydisp.setPrintPos(0, 1);
    mydisp.print("Enjoy it! www.digole.com");
    mydisp.enableCursor(); //enable cursor

void resetpos(void) //for demo use, reset display position and clean the demo line
    mydisp.setPrintPos(0, 1);
    delay(2000); //delay 2 seconds
    mydisp.println("                "); //display space, use to clear the demo line
    mydisp.setPrintPos(0, 1);
void loop() {

The error is this - no matching function for call to 'DigoleSerialDisp::DigoleSerialDisp(Serial_*, int)'

Can anyone help me here ... Why can't i use this in UART mode,I can verify and upload the code if its defined in I2C or SPI, but i really want to understand why cant i use it in UART
Is this a lame question !?

Thank you all

Please read the "how to use.." topic which you will find in any part of this forum.

The error can't be more clear.
You are calling a non existing function.

Perhaps you forgot to install (or rather copy) the library ?

Thank you MAS3

Actually i've read the How to use ... And sorry if i didnt follow any rule

I have all the libs in the right place !
Its any other problem .. but anyway thank you!

I have the same issue. Downloaded the demo code, copied the libraries and get the same error. That might not help but you are not alone :slight_smile:

It's getting really strange ....

I've installed the IDE and required lib. on my works computer this morning tested everything and was working fine!
Now that i have some free time i thought on program everything on the board... Guess what! im getting the same error again!
What have i done!?? Absolutly nothing!

Its good to know that im not alone, but im not happy with it either!

Just an update

if you write the code like this:

DigoleSerialDisp mydisp(&Serial1, 9600);

Works like a charm ... but if you leave it like the example

DigoleSerialDisp mydisp(&Serial, 9600);

It gives you the error...
Anyway this morning worked without any modification

Nice one. That didn't work with the 1.0.4 IDE, it gave a similar but slightly different error. Just upgraded to 1.0.5 and it worked first time.

I just got this display. I'm sure you've got it fixed, but this is for someone who has the same problem as I did with this same display, it took me 5 days to figure it out. All you need to do to this code for UART is change the speed to 38400 and uncomment the #include <wire.h> as below:

//--------UART setup, if you don't use UART, use // to comment following line
DigoleSerialDisp mydisp(&Serial, 38400); //UART:Arduino UNO: Pin 1(TX)on arduino to RX on module
//--------I2C setup, if you don't use I2C, use // to comment following 2 lines
#include <Wire.h>
It kinda doesn't make sense, because it sounds like it should be left commented out, but it needs to be uncommented to work. I tried moving the (#include <wire.h>) up to the (#include <DigoleSerial.h>) but it wouldn't work? I'm sort of new to this myself.