Digole UART/I2C/SPI Display Library

@timb Below is my main loop that will not compile. It will compile if I take out the digole.print(STUFF); // print stuff on the screen like Serial.print()

Here is the error I get if I add the digole.print(STUFF); // print stuff on the screen like Serial.print()

In file included from DigoleSerialDisp.cpp:9:0:
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::println(const String&)':
DigoleSerialDisp.h:146:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::println(const char*)':
DigoleSerialDisp.h:152:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::println(char)':
DigoleSerialDisp.h:158:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::println(unsigned char, int)':
DigoleSerialDisp.h:164:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::println(int, int)':
DigoleSerialDisp.h:170:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::println(unsigned int, int)':
DigoleSerialDisp.h:176:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::println(long int, int)':
DigoleSerialDisp.h:182:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::println(long unsigned int, int)':
DigoleSerialDisp.h:188:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::println(double, int)':
DigoleSerialDisp.h:194:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::println(const Printable&)':
DigoleSerialDisp.h:200:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::println()':
DigoleSerialDisp.h:204:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::print(const String&)':
DigoleSerialDisp.h:210:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::print(const char*)':
DigoleSerialDisp.h:215:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::print(char)':
DigoleSerialDisp.h:220:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::print(unsigned char, int)':
DigoleSerialDisp.h:225:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::print(int, int)':
DigoleSerialDisp.h:230:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::print(unsigned int, int)':
DigoleSerialDisp.h:235:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::print(long int, int)':
DigoleSerialDisp.h:240:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::print(long unsigned int, int)':
DigoleSerialDisp.h:245:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::print(double, int)':
DigoleSerialDisp.h:250:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::print(const Printable&)':
DigoleSerialDisp.h:255:5: warning: no return statement in function returning non-void [-Wreturn-type]
In file included from the_user_app.cpp:23:0:
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::println(const String&)':
DigoleSerialDisp.h:146:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::println(const char*)':
DigoleSerialDisp.h:152:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::println(char)':
DigoleSerialDisp.h:158:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::println(unsigned char, int)':
DigoleSerialDisp.h:164:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::println(int, int)':
DigoleSerialDisp.h:170:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::println(unsigned int, int)':
DigoleSerialDisp.h:176:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::println(long int, int)':
DigoleSerialDisp.h:182:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::println(long unsigned int, int)':
DigoleSerialDisp.h:188:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::println(double, int)':
DigoleSerialDisp.h:194:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::println(const Printable&)':
DigoleSerialDisp.h:200:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::println()':
DigoleSerialDisp.h:204:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::print(const String&)':
DigoleSerialDisp.h:210:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::print(const char*)':
DigoleSerialDisp.h:215:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::print(char)':
DigoleSerialDisp.h:220:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::print(unsigned char, int)':
DigoleSerialDisp.h:225:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::print(int, int)':
DigoleSerialDisp.h:230:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::print(unsigned int, int)':
DigoleSerialDisp.h:235:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::print(long int, int)':
DigoleSerialDisp.h:240:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::print(long unsigned int, int)':
DigoleSerialDisp.h:245:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::print(double, int)':
DigoleSerialDisp.h:250:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::print(const Printable&)':
DigoleSerialDisp.h:255:5: warning: no return statement in function returning non-void [-Wreturn-type]
the_user_app.cpp: In function 'void loop()':
the_user_app.cpp:36:18: error: 'STUFF' was not declared in this scope
make: *** [the_user_app.o] Error 1

RWB, timb, I’m sorry if there was confusion on the I2C setup! It worked for me and I was doing a quickie test for the I2C. Thanks for the clarification timb.

Now, RWB, when I said digole.print(STUFF), I really meant “STUFF” to be whatever “stuff” you wanted to print like digole.print(“Hello world”)! I think I’m losing my edge at explaining stuff (DOH!). Anyway, if you refer to digole’s demo sketch I pointed to, it’s perfect for testing your display. :smile:

As @peekay123 said, if what you want to print isn’t in quotes, it thinks it should be looking for a variable!

So…

const char STUFF[]={"Hello World!"};
digole.print(STUFF); 

…would work the same as…

digole.print("Hello World!");

…make sense? :smiley:

In the first example, STUFF has been defined as a variable (string) containing the text “Hello World!”, and the digole.print statement is being told to print said variable. In the second example we’re providing the digole.print command a string of text directly.

That’s what the error the_user_app.cpp:36:18: error: 'STUFF' was not declared in this scope was trying to tell you: A variable named STUFF was not included in your code.

Yo timb… that’s heavy stuff man :wink:

Okay, I’ve changed the DigoleSerialDisp_Demo.cpp file to be a bit more helpful for setting up your display. I’ve included #defines and class instantiation examples for all four interface types. Let me know if this a bit more newbie friendly. :smile:

By the way, your geometry stuff will be in the next release, with the sprite stuff. I'll also PM you in a bit regarding the display library stuff. Sorry, I've been swamped lately!

@timb Your new comments are a lot better for a beginner like me.

I loaded up your new demo but it still will not compile. Below is your latest demo code I pasted into the main .CPP

#define _Digole_Serial_I2C_

/* Be sure to #include "DigoleSerialDisp.h" *after* the #define above or your compile will fail. */

#include "DigoleSerialDisp.h"

/* Below are sane defaults for the various interfaces. Uncomment one and customize as needed! */


DigoleSerialDisp digole(0x27); //I2C


void setup() {
	
	digole.begin();
	delay(500);
	digole.clearScreen;
	delay(50);
	digole.print("Hello World!");

}

void loop() {

}

When I try to compile this I get the following errors now:

In file included from DigoleSerialDisp.cpp:9:0:
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::println(const String&)':
DigoleSerialDisp.h:146:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::println(const char*)':
DigoleSerialDisp.h:152:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::println(char)':
DigoleSerialDisp.h:158:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::println(unsigned char, int)':
DigoleSerialDisp.h:164:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::println(int, int)':
DigoleSerialDisp.h:170:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::println(unsigned int, int)':
DigoleSerialDisp.h:176:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::println(long int, int)':
DigoleSerialDisp.h:182:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::println(long unsigned int, int)':
DigoleSerialDisp.h:188:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::println(double, int)':
DigoleSerialDisp.h:194:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::println(const Printable&)':
DigoleSerialDisp.h:200:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::println()':
DigoleSerialDisp.h:204:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::print(const String&)':
DigoleSerialDisp.h:210:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::print(const char*)':
DigoleSerialDisp.h:215:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::print(char)':
DigoleSerialDisp.h:220:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::print(unsigned char, int)':
DigoleSerialDisp.h:225:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::print(int, int)':
DigoleSerialDisp.h:230:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::print(unsigned int, int)':
DigoleSerialDisp.h:235:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::print(long int, int)':
DigoleSerialDisp.h:240:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::print(long unsigned int, int)':
DigoleSerialDisp.h:245:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::print(double, int)':
DigoleSerialDisp.h:250:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::print(const Printable&)':
DigoleSerialDisp.h:255:5: warning: no return statement in function returning non-void [-Wreturn-type]
In file included from the_user_app.cpp:27:0:
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::println(const String&)':
DigoleSerialDisp.h:146:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::println(const char*)':
DigoleSerialDisp.h:152:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::println(char)':
DigoleSerialDisp.h:158:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::println(unsigned char, int)':
DigoleSerialDisp.h:164:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::println(int, int)':
DigoleSerialDisp.h:170:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::println(unsigned int, int)':
DigoleSerialDisp.h:176:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::println(long int, int)':
DigoleSerialDisp.h:182:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::println(long unsigned int, int)':
DigoleSerialDisp.h:188:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::println(double, int)':
DigoleSerialDisp.h:194:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::println(const Printable&)':
DigoleSerialDisp.h:200:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::println()':
DigoleSerialDisp.h:204:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::print(const String&)':
DigoleSerialDisp.h:210:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::print(const char*)':
DigoleSerialDisp.h:215:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::print(char)':
DigoleSerialDisp.h:220:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::print(unsigned char, int)':
DigoleSerialDisp.h:225:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::print(int, int)':
DigoleSerialDisp.h:230:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::print(unsigned int, int)':
DigoleSerialDisp.h:235:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::print(long int, int)':
DigoleSerialDisp.h:240:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::print(long unsigned int, int)':
DigoleSerialDisp.h:245:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::print(double, int)':
DigoleSerialDisp.h:250:5: warning: no return statement in function returning non-void [-Wreturn-type]
DigoleSerialDisp.h: In member function 'size_t DigoleSerialDisp::print(const Printable&)':
DigoleSerialDisp.h:255:5: warning: no return statement in function returning non-void [-Wreturn-type]
the_user_app.cpp: In function 'void setup()':
the_user_app.cpp:39:20: error: statement cannot resolve address of overloaded function
make: *** [the_user_app.o] Error 1    

RWB, try changing:

DigoleSerialDisp digole(0x27);

to

DigoleSerialDisp digole('\x27');

@peekay123 Tried that but still get the same error message. I have no idea what the deal is. I’m sure I have copied the code that is provided though.

What exactly is the error code trying to tell us?

RWB, can you post your demo code cause I don't know what is a line 39?

the_user_app.cpp: In function 'void setup()':
the_user_app.cpp:39:20: error: statement cannot resolve address of overloaded function

Line 39 is

digole.clearScreen;

@peekay123 I know 0x27 works because it’s compiling and running just fine on my display.

@RWB I found the problem!

Change digole.clearScreen; to digole.clearScreen();

I forgot the opening and closing parenthesis! Doh!

My bad–sorry. I delete my post already.

@bko Deleted mine too! No worries.

Okay, fixed the demo app again! This compiles and runs for me.

timb, I took a chance on the 0x27 thing, not knowing what line 39 was. It looked ok but with the web IDE, who knows! :smile:

Yeah, the Web IDE isn’t very good at showing correct line numbers!

Hey @timb and @peekay123—AFAIK the line numbers have been accurate since the beginning of February—I’m surprised to hear they’re not. Give us some test code that gets incorrect numbers so we can fix it! :bug:

Yep! Compiles fine now :smile:

I got the screen to show the Digole + I2C 0x27 but nothing else after I loaded the demo code.

I double sided taped the circuit board to the back of the LCD screen. When I could not get it to go past the the Digole screen I decided to take off the circuit board from the back of the LCD screen. The tape was really good and in the process of trying to get it off I ripped the ribbon cable in half that connected the screen to the backpack. LOL

So game over on this for now :smile: Hey at least I was able to help get the library code working better :smile:

Time to order some new screens I guess.

@zachary Oh, my bad, I guess it is working now! I hadn’t even noticed.

Hey @timb, with the next release, can you include return values in the print functions to remove the warnings (or change them to voids)? I did it in my instance, but I would bet that will throw off a bunch of folks who are trying to track down other bugs in their code.

Can’t wait for sprites! You are going God’s work my friend!