Love this tutorial. I've been coding C for over 20 years yet I found this explanation fascinating. You know by now they are pointers and the * dereferences the memory location. But it didn't affect the video that you weren't sure back in 2014. Really, really interesting video Julian. Loved it!
I just had to drop a comment here. I've finally got around to working with this display. And low and behold, after viewing many YT video, this one potted up. 2013, wow, I had to watch it. Yes, we've come a long way in how things used to be done. I've watched MANY of your others videos. Great content, interesting and amusing too. And yes, I've come to realize that the data sheets are the Bible of how things work. Thanks for all the time and effect! Now on to part II
So this is how to drive the LCD fully manual without any library. Because I saw most tutorials playing this lcd with the help of library to make it easier to work.
Thank you for posting these tutorials on the Nokia 5110. I bought two of them over two years ago, and they were just sitting unused because I couldn't work out how to use them, but your instructions made it easy. Thanks.
I had bought the lcd and had connected by looking at the goodled images of wiring diagrams. Your video has provided with a huge help in correcting my mistake. I was completely fed up of the display as it wont work, but this tutorial was just too good and was a huge help. Thanks :)
You should define the commands to the LCD like #define LCD_SEG_ON 0x09 Then you dont need to worry about sending the correct number to the display in a further application.
How do you manage such excellent noise free audio and high video quality besides highly content reach presentation? What is that camera you use and the microphone?
I have a different screen, and even though I found the data sheet..I had no idea how to read it. Specifically ~9:00 - 13:45 was extremely helpful. Much appreciated. .
Julian - I see that someone else previously asked the question, but I didn't see an answer, so I will ask it again. The breakout board you used. As soon as I started watching this video I tried to find the breakout board that you used. Man there are a lot of them, and they seem to be specialized. Would you tell what you used, or give a recommendation ?
Hi Julian, thanks for this series. Definitely saved me some time. After a lot of experimentation with this display, and the u8glib, I've come to the conclusion that this display definitely does not want to be driven from 5V VCC, and with 5V logic. It does survive the ordeal, but the display quality suffers a lot. If you run the GraphicsTest example from u8glib from 3.3V and from 5V, you will clearly see a huge difference in display quality. Its virtually impossible to get good bias, temp and contrast values with 5V. But with 3.3V it works just fine. The values (for u8glib) are defined in a file at /Arduino/libraries/U8glib/src/clib/ u8g_dev_pcd8544_84x48.c on my Mac. Should be somewhere similar for Windoze users. This may vary, but I got excellent results with temp=0x005, bias=0x011, contrast(Vop)=0x0BF. I'm busy getting a ATMEGA328P running at 3.3V, 8MHz, so no level conversions are necessary. This will be a "backpack" I2C processor for the 5110. Lots of memory and I/O lines available. PS: I'm using the 5110 from Sparkfun - slightly different from yours: learn.sparkfun.com/tutorials/graphic-lcd-hookup-guide. Hope this helps someone. Best regards!
*Hello **Julian Ilett** !!!* *First of all, thanks so much for submiting this video wich is super well explained and full of information.* *I need to ask you a few questions:* *1- It is nesesary to use the comand for the temperature control? because i tried the code without this line of code and it* *seems to work fine* *2-Can i change the LCD VOP to C2 and the BIA's to 13 without sufering any damage ? (I think the contrast is bette with this* *configuration)* *3- where did you find that hexadecimal font?* *SORRY for my english but i am Mexican.* *Greatings from Mexico and thanks for your videos :P*
Iam very glad to found this video thank you Just two questions How did you figured out that the data input of the display is a shiftregister? Is there somewhere in the datasheet a hint or did you decide it by the signal diagram? Dc ias ow for the whole datasend procedure . I just wonder because while reading the sheet i thought dc must be low for just the first bit of sendet data. Is this a common way to use this type of interface?
My 5110 screen came integrated into it's own shield. If the code doesn't work, I'm guessing it means that my screen is using different pins to the ones you're using here?
Thank you for all your very informative videos! Just a comment: You read from the EBAY comments that part of the display may become black when running on 5V. I have experienced that if you do not set a specific LCD Vop (contrast) and leave that in its default value, the display becomes relativly black after it has been running for approx 5-10 minutes.
Thanks Bjorn. Yes, I'm sure that's what the seller is describing. I have 2 of these displays, (one with blue backlight and one with white) and the Vop contrast value has to be set differently for each of them. The bias setting also affects the contrast.
Hurrah! Agreed that it really helps to be a stickler on datasheets. I did that when trying to figure out how to use an old speech synthesizer chip (SPO256-AL2) with my arduino. It really helped.
Hi Julian, have you considered doing some reviews / tutorials for other color ttf displays for the Arduino. there are a lot of them out there for not a lot of $$. Great vids, keep up the good work.
I have two solenoids that needs to be triggered when arduino see's an analog signal. The solenoids are on digital pwm pins driven by solidstate relay. There is also another thing. I want to put a Potentiometer to adjust the duty cycle while the input is active. This way I don't have to go into the program to change it.
I also have a Nokia 5110 LCD, but my pins are different, instead of the pins that you showed I have: 1.VCC, 2.GND, 3.SCE, 4.RST, 5.D/C, 6.DN(MOSI), 7.SCLK, 8.LED. How should I connect them to my Arduino in comparision with your example? Thanks
Thanks for this very informative video ....I have a problem when I connect the Backlight pin to the ground it is not lighting up and when when I connect it to 3.3V pin it is working fine .But in your tutorial you mentioned connecting BackLight pin to ground which is not working .
Yupp... spent the last 2 hours thinking that I got a bad piece.. .BL should be connected to 3.3v , the fact that there is a dedicated pin on the LCD means that, I came to know that now.. fuckk
I find the blue backlight to be too dim and very unreadable. if you can, rather get the white backlight version of the Nokia 5110 display. very thorough tutorial Julian.
Hi Julian, nice video. I am new to working with the Nokia 5110 display. I am using an Arduino UNO. Hooked up everything the way described, uploaded the sketch and nothing showed on the screen. The led lights came on, but nothing else. Checked all the wiring. Do you think the display is bad? Not sure what to check next. Thanks, Robert
Very good video. Is there a good link to get the tech-manual for the LCD you are using in the video (specifically)? I have the exact same LCD as the one on this video. Thank you. Freddy
Thanks! keep up the videos and may be irrelevant but in response to your project with the Li-ion bicycle battery mod, You could put a solar panel and PWN Solar charge controller on the bike too as that seems to be your repeating motif haha.
I assume that the metalwork and red pcb have nothing to do with an actual 5110 phone. The lighting looks poor as you mentioned, is it only coming in from the sides? I have an old 3330 phone which has a PC8544-driven LCD. I cut out the PCB from under the LCD to reuse the lighting SMD leds (on the PCB) which light up the LCD quite evenly via reflection off a clear plastic moulding. There is no LIGHTING pin on the LCD, but you do have to add a capacitor to one of the 8 pins. The other connections are made by soldering directly to the PCB, a bit fiddly but it costs nothing if you can reuse an old phone!
Not sure about the metalwork, but the PCB is not original. I'm sure the LEDs would look better if they weren't so bright. They can be connected to an Arduino PWM pin for brightness control. I may have an old Nokia phone with this display - I'll see how it compares.
Yes. All lines (but CE) are the same. CE is for selecting the display to write data to. You should use different data pin on arduino for display selection or some kind of shift register to toggle between displays.
I have a few of these 5110 lcd displays and mine say vcc 3.3v to 5v? I will try them on 5v first just to see and thanks for the tutorial good concise explanation.
I used you first tutorial and got it to work as described, but then I came to this tutorial and did exactly as described, however it still just showed the result of the 1 tutorial. Any ideas
Hey man , thanks a lot . It is the best tutorial I've ever seen. Actually I had problem with the contrast of screen that I fixed it with your tutorial. Thanks a lot. 👌👍🙏
Ok time out! We did this 10 years ago with a serial bus on an old Pentium 2 Laptop. the whole 2.7 - 3.3VDC thing and the black out effect are a thing IF you try to drive it with 5 VDC and more than 1 amp = typical USB voltage and current. its best to use a 500mA 3 VDC supply (wall wart) or if you have a bench supply like I do you can set the current and voltage limits. To bring this up to speed We can do in via a Rasberry Pi also as well an as Arduino and with a variety of LCD and LED type screens both static and touch capable... This is an interesting tutorial for those wanting to dabble in old tech and low res displays... I guess it helps to mention that I worked on hundreds of these phones in the past and their internal components as I am an Authorized Nokia service repair technician along with many many other brands including Apple and Motorola..
why when you can usually get them free from the old phones free from people who still have them laying around? I happen to have a box of these nokia phones..
Who is "they". I don't know any one person buying these things let alone droves of people buying them like its the "next best thing" . I do however know people that buy late model phone screens and touch screens for their projects but I guess some parts of the world haven't caught up to that yet.. Those LCD's are either NOS "New Old Stock" or Salvaged from old phones and put on a custom board with non original back lighting.. A genuine original Nokia NOS version should have the traditional green back lighting since blue or white was not a viable thing back then. Chinese versions have blue or white back lights and the LCD's are salvaged from old recycled phones and may not even work...
ElfNet Gaming WHO CARES....Do you not get the point yet! For a couple of bucks (including shipping) to learn about driving a simple LCD screen that is easy to interface with and you're all up in arms over it. Get over yourself
Julian Ilett I am going to use this code you provide on a few online projects with proper credits. If you don't have any cons. If you do, please tell me, i will remove it.
Another question. :) How to display some values from sensors within your code? I have float value and it need to be char inside LcdWriteString(). Tried few solutions but no luck. Or how to display float value anyway?
You need a library routine to convert numbers (a float in this case) into strings. You can make your own, but I'm sure there are libraries already defined for the purpose. In the case of a float, I believe the routine requires you to say how many digits of precision you want and it will round off the float to the nearest value. eg. If you ask for it to convert 1.5 with no decimal portion, it will be rounded up to 2 when it's converted to a string.
I have seen some sources say that this can work with 5 volts, but no guarantees. my UNO has a 3.3v power pin, but the digital pins are 5v. any chance this will work ? would I be better powering the whole thing from 5v and take the risk ? or go multi-volt and try it with 3.3v power and raw data pins ?
If the display data sheet says that the data lines are 5 volt tolerant then you can do it, otherwise not. If you don't mind inverting all of the data pins, you can convert between 5V and 3.3V by using a NPN transistor such as 2N2222 or BC549 and a couple of resistors for each data line. One resistor is used as a "pull up" between 3.3V (or 5V if you're going the opposite direction) and the data pin which is taking the data. The collector of the transistor connects to the data pin and the emitter connects to ground. The remaining resistor goes between the data pin which is sending the data and the base of the transistor. If you didn't understand any of the above, then you're probably better off buying a display which is 5V tolerant in the first place.
i guess what i was asking without saying, if all the data lines are inputs, and the only action from the arduino is to pull to ground, then, they would work without alteration. as a note some of the mini's are able to run on 3.3v
Hi Julian, I've been noodling a bit more with your ultra lean shift-out code for these Nokia 5110 displays. I wanted the smallest possible footprint so that we could add them to data loggers that are already compile near the memory limits. As it turns out, stuffing those fonts (and some calibration data) into the internal EEprom was pretty easy to do and it does not noticeably affect the speed of the display: thecavepearlproject.org/2018/08/24/tutorial-using-the-arduinos-internal-eeprom-for-fonts-header-data/
For me(supply voltage=3.3V), setting the temp coefficent to 0x04 (=temp coefficent "0" according to datasheet), results in a far too high contrast making it seem like all pixels are active even though it's supposed to be displaying a blank screen. Setting the coefficient to 0x05 (=temp coefficent "1" according to datasheet) fixed that problem entirely. Anyways, thx for the video, helped me a lot!
Since the display doesn't have any built-in text font, you'd need to define your own font in the size you need. This isn't simple. If you reduce the size, you also reduce the resolution. You also have to handle characters which cross over byte boundaries. In theory, you could define a font which is 4 x 4 pixels in size, but then you'd need to figure out the programming to handle the fact that you would be putting part of each of two characters into the upper and lower 4 bits of each byte of data. Yes, it's complicated.
Sir, thank you for the video, the way you explained how to understand lcd commands helped a lot. I had a different issue with my 5510 lcd which I think might be useful to explain. I've connected the lcd and MCU (I use AVR attiny2313a) directly to the USB port of my PC. It works, but due to unstable USB voltage the picture flickered a lot. After I've added l7805 5V stabilizer it worked perfectly. There goes, maybe it helps somebody. Again, thank you for the tutorial!!!
Nice videos, and good code to start with! You described problems in 3rd video, and I had problems when connecting 5110 as you described to Arduino Nano: after some time the display got darker and darker. Solution for me was simply to connect 5110 VCC to 3.3V pin of Nano instead of 5V. I did play a lot with your code, and made your simple clear display loop speed up from 11.44fps to 206.27fps. And finally I was able to draw a complete (arbitrary) frame with 142.94fps: forum.arduino.cc/index.php?topic=382585.0
Hi Julian, thanks for your excellent tutorial. I was looking for information to use this display with Forth on STM32 and you saved me a substantial amount of time getting to the 'light all pixels' stage. During my development I captured the initialization logic sequences and have included the pics in a article I wrote on my Forth site. I hope they may assist anyone going thru this 5110 learning curve who also isn't using Arduino. hightechdoc.net/mecrisp-stellaris/_build/html/nokia-5110.html#lcd
Love this tutorial.
I've been coding C for over 20 years yet I found this explanation fascinating.
You know by now they are pointers and the * dereferences the memory location. But it didn't affect the video that you weren't sure back in 2014.
Really, really interesting video Julian. Loved it!
I just had to drop a comment here. I've finally got around to working with this display. And low and behold, after viewing many YT video, this one potted up. 2013, wow, I had to watch it. Yes, we've come a long way in how things used to be done. I've watched MANY of your others videos. Great content, interesting and amusing too. And yes, I've come to realize that the data sheets are the Bible of how things work. Thanks for all the time and effect! Now on to part II
So this is how to drive the LCD fully manual without any library. Because I saw most tutorials playing this lcd with the help of library to make it easier to work.
This helped me get my Nokia 5110 - which I thought was dead - to show life. Great, clear, and thorough!
Thank you for posting these tutorials on the Nokia 5110. I bought two of them over two years ago, and they were just sitting unused because I couldn't work out how to use them, but your instructions made it easy. Thanks.
I had bought the lcd and had connected by looking at the goodled images of wiring diagrams. Your video has provided with a huge help in correcting my mistake. I was completely fed up of the display as it wont work, but this tutorial was just too good and was a huge help. Thanks :)
I am a couple of years late, but these 3 videos were great. I not only got the display working, but learned a lot as well. Thanks
you are a smart man. You literally decoded that unreadable datasheet.
Very nice tutorial. You added code in description is what everyone like. Thank you
You should define the commands to the LCD like #define LCD_SEG_ON 0x09
Then you dont need to worry about sending the correct number to the display in a further application.
The best tutorial I've ever seen ! Thank you ! ! !
This is just what I needed to get my project going. Thanks.
How do you manage such excellent noise free audio and high video quality besides highly content reach presentation? What is that camera you use and the microphone?
I have a different screen, and even though I found the data sheet..I had no idea how to read it. Specifically ~9:00 - 13:45 was extremely helpful.
Much appreciated.
.
Julian -
I see that someone else previously asked the question, but I didn't see an answer, so I will ask it again. The breakout board you used. As soon as I started watching this video I tried to find the breakout board that you used. Man there are a lot of them, and they seem to be specialized. Would you tell what you used, or give a recommendation ?
Great Tutorial!! Probably the most accessible i've seen for working with this kind of display.
Hi Julian, thanks for this series. Definitely saved me some time. After a lot of experimentation with this display, and the u8glib, I've come to the conclusion that this display definitely does not want to be driven from 5V VCC, and with 5V logic. It does survive the ordeal, but the display quality suffers a lot. If you run the GraphicsTest example from u8glib from 3.3V and from 5V, you will clearly see a huge difference in display quality. Its virtually impossible to get good bias, temp and contrast values with 5V. But with 3.3V it works just fine. The values (for u8glib) are defined in a file at /Arduino/libraries/U8glib/src/clib/ u8g_dev_pcd8544_84x48.c on my Mac. Should be somewhere similar for Windoze users. This may vary, but I got excellent results with temp=0x005, bias=0x011, contrast(Vop)=0x0BF. I'm busy getting a ATMEGA328P running at 3.3V, 8MHz, so no level conversions are necessary. This will be a "backpack" I2C processor for the 5110. Lots of memory and I/O lines available. PS: I'm using the 5110 from Sparkfun - slightly different from yours: learn.sparkfun.com/tutorials/graphic-lcd-hookup-guide. Hope this helps someone. Best regards!
*Hello **Julian Ilett** !!!*
*First of all, thanks so much for submiting this video wich is super well explained and full of information.*
*I need to ask you a few questions:*
*1- It is nesesary to use the comand for the temperature control? because i tried the code without this line of code and it* *seems to work fine*
*2-Can i change the LCD VOP to C2 and the BIA's to 13 without sufering any damage ? (I think the contrast is bette with this* *configuration)*
*3- where did you find that hexadecimal font?*
*SORRY for my english but i am Mexican.*
*Greatings from Mexico and thanks for your videos :P*
Iam very glad to found this video
thank you
Just two questions
How did you figured out that the data input of the display is a shiftregister? Is there somewhere in the datasheet a hint or did you decide it by the signal diagram?
Dc ias ow for the whole datasend procedure . I just wonder because while reading the sheet i thought dc must be low for just the first bit of sendet data.
Is this a common way to use this type of interface?
Did u add any external library like pcd8544??
My 5110 screen came integrated into it's own shield. If the code doesn't work, I'm guessing it means that my screen is using different pins to the ones you're using here?
Thank you for all your very informative videos! Just a comment:
You read from the EBAY comments that part of the display may become black when running on 5V. I have experienced that if you do not set a specific LCD Vop (contrast) and leave that in its default value, the display becomes relativly black after it has been running for approx 5-10 minutes.
Thanks Bjorn. Yes, I'm sure that's what the seller is describing. I have 2 of these displays, (one with blue backlight and one with white) and the Vop contrast value has to be set differently for each of them. The bias setting also affects the contrast.
Hurrah! Agreed that it really helps to be a stickler on datasheets. I did that when trying to figure out how to use an old speech synthesizer chip (SPO256-AL2) with my arduino. It really helped.
Hi Julian,
have you considered doing some reviews / tutorials for other color ttf displays for the Arduino. there are a lot of them out there for not a lot of $$.
Great vids, keep up the good work.
I have two solenoids that needs to be triggered when arduino see's an analog signal. The solenoids are on digital pwm pins driven by solidstate relay. There is also another thing. I want to put a Potentiometer to adjust the duty cycle while the input is active. This way I don't have to go into the program to change it.
I also have a Nokia 5110 LCD, but my pins are different, instead of the pins that you showed I have: 1.VCC, 2.GND, 3.SCE, 4.RST, 5.D/C, 6.DN(MOSI), 7.SCLK, 8.LED. How should I connect them to my Arduino in comparision with your example? Thanks
Thanks for this very informative video ....I have a problem when I connect the Backlight pin to the ground it is not lighting up and when when I connect it to 3.3V pin it is working fine .But in your tutorial you mentioned connecting BackLight pin to ground which is not working .
Same here, my module also likes to turn on the backlight when the BL pin is high.
Yupp... spent the last 2 hours thinking that I got a bad piece.. .BL should be connected to 3.3v , the fact that there is a dedicated pin on the LCD means that, I came to know that now.. fuckk
I find the blue backlight to be too dim and very unreadable. if you can, rather get the white backlight version of the Nokia 5110 display. very thorough tutorial Julian.
Can I use other I/O pins?
Thank you!
Your little Script in the Discription surved me well. :)
How much mA does this display consumes at its maximum?
Hi Julian, nice video. I am new to working with the Nokia 5110 display. I am using an Arduino UNO. Hooked up everything the way described, uploaded the sketch and nothing showed on the screen. The led lights came on, but nothing else. Checked all the wiring. Do you think the display is bad? Not sure what to check next.
Thanks,
Robert
Very good video. Is there a good link to get the tech-manual for the LCD you are using in the video (specifically)? I have the exact same LCD as the one on this video.
Thank you.
Freddy
I'm not aware of any tech manual as such, just the data sheet for the driver chip (Philips PCD8544).
+Julian Ilett
Adafruit has it:
learn.adafruit.com/nokia-5110-3310-monochrome-lcd
also the libraries as well.
Hey, Julian. Could you post a link to the datasheet you used, I've looked pretty much everywhere but I can't find it at all.
Chef Geoffrey Excellence Search Google for PCD8544
Thanks! keep up the videos and may be irrelevant but in response to your project with the Li-ion bicycle battery mod, You could put a solar panel and PWN Solar charge controller on the bike too as that seems to be your repeating motif haha.
I assume that the metalwork and red pcb have nothing to do with an actual 5110 phone. The lighting looks poor as you mentioned, is it only coming in from the sides?
I have an old 3330 phone which has a PC8544-driven LCD. I cut out the PCB from under the LCD to reuse the lighting SMD leds (on the PCB) which light up the LCD quite evenly via reflection off a clear plastic moulding. There is no LIGHTING pin on the LCD, but you do have to add a capacitor to one of the 8 pins. The other connections are made by soldering directly to the PCB, a bit fiddly but it costs nothing if you can reuse an old phone!
Not sure about the metalwork, but the PCB is not original. I'm sure the LEDs would look better if they weren't so bright. They can be connected to an Arduino PWM pin for brightness control. I may have an old Nokia phone with this display - I'll see how it compares.
is possible connect any display?Like from radio,or HI-FI,or similar...
What is the name of this shield arduino?
hi julian ..could you send me a link to learn how to use this lcd with avr
hi - what do you mean by mentioning 'cascading displays'? can you hook up more than one and have them display different data?
Yes. All lines (but CE) are the same. CE is for selecting the display to write data to. You should use different data pin on arduino for display selection or some kind of shift register to toggle between displays.
I have a few of these 5110 lcd displays and mine say vcc 3.3v to 5v? I will try them on 5v first just to see and thanks for the tutorial good concise explanation.
Thank you for your instructional video. It was very helpful Looking forward to more of your videos.
Can you run this Nokia display with the Bus Pirate???
I used you first tutorial and got it to work as described, but then I came to this tutorial and did exactly as described, however it still just showed the result of the 1 tutorial. Any ideas
I am trying 5110 LCD having different pin layout but only background light runs
Nitin Gautam i have same problem if you know how my lcd works can you tell me
Hey man , thanks a lot .
It is the best tutorial I've ever seen.
Actually I had problem with the contrast of screen that I fixed it with your tutorial.
Thanks a lot.
👌👍🙏
Thank you! Excellent tutorial.
Ok time out!
We did this 10 years ago with a serial bus on an old Pentium 2 Laptop.
the whole 2.7 - 3.3VDC thing and the black out effect are a thing IF you try to drive it with 5 VDC and more than 1 amp = typical USB voltage and current.
its best to use a 500mA 3 VDC supply (wall wart) or if you have a bench supply like I do you can set the current and voltage limits.
To bring this up to speed We can do in via a Rasberry Pi also as well an as Arduino and with a variety of LCD and LED type screens both static and touch capable...
This is an interesting tutorial for those wanting to dabble in old tech and low res displays...
I guess it helps to mention that I worked on hundreds of these phones in the past and their internal components as I am an Authorized Nokia service repair technician along with many many other brands including Apple and Motorola..
you're missing the point. it is popular because you can get them from china for a couple of $$ with free shipping.
why when you can usually get them free from the old phones free from people who still have them laying around? I happen to have a box of these nokia phones..
ElfNet Gaming Yeah everyone has these lying around, that's why they buying them in droves.
Who is "they".
I don't know any one person buying these things let alone droves of people buying them like its the "next best thing"
. I do however know people that buy late model phone screens and touch screens for their projects but I guess some parts of the world haven't caught up to that yet..
Those LCD's are either NOS "New Old Stock" or Salvaged from old phones and put on a custom board with non original back lighting..
A genuine original Nokia NOS version should have the traditional green back lighting since blue or white was not a viable thing back then.
Chinese versions have blue or white back lights and the LCD's are salvaged from old recycled phones and may not even work...
ElfNet Gaming
WHO CARES....Do you not get the point yet! For a couple of bucks (including shipping) to learn about driving a simple LCD screen that is easy to interface with and you're all up in arms over it. Get over yourself
Thanks for your POST, Very helpful. Would you show me how to add a LCD Assistance .generated code to it?. Thanks once again
what if i wanted to use it with interfac atmega1284
Nice, I'll get into that datasheet and see if I can make some demo in asm on a tiny13a.
Julian Ilett
I am going to use this code you provide on a few online projects with proper credits. If you don't have any cons. If you do, please tell me, i will remove it.
Go for it :)
Another question. :)
How to display some values from sensors within your code? I have float value and it need to be char inside LcdWriteString(). Tried few solutions but no luck. Or how to display float value anyway?
You need a library routine to convert numbers (a float in this case) into strings. You can make your own, but I'm sure there are libraries already defined for the purpose.
In the case of a float, I believe the routine requires you to say how many digits of precision you want and it will round off the float to the nearest value. eg. If you ask for it to convert 1.5 with no decimal portion, it will be rounded up to 2 when it's converted to a string.
I have seen some sources say that this can work with 5 volts, but no guarantees. my UNO has a 3.3v power pin, but the digital pins are 5v. any chance this will work ?
would I be better powering the whole thing from 5v and take the risk ? or go multi-volt and try it with 3.3v power and raw data pins ?
If the display data sheet says that the data lines are 5 volt tolerant then you can do it, otherwise not.
If you don't mind inverting all of the data pins, you can convert between 5V and 3.3V by using a NPN transistor such as 2N2222 or BC549 and a couple of resistors for each data line. One resistor is used as a "pull up" between 3.3V (or 5V if you're going the opposite direction) and the data pin which is taking the data. The collector of the transistor connects to the data pin and the emitter connects to ground. The remaining resistor goes between the data pin which is sending the data and the base of the transistor.
If you didn't understand any of the above, then you're probably better off buying a display which is 5V tolerant in the first place.
i guess what i was asking without saying, if all the data lines are inputs, and the only action from the arduino is to pull to ground, then, they would work without alteration. as a note some of the mini's are able to run on 3.3v
i keep bloody coming across you all the bloody time!! haha i give in! iv subbed ;)
Thanks Julian just what I needed to get going with my Nokia display and Nano.
what is your controller
uno ??
Mega??
he said he was using a nano in the video
Great video. Thanks. I got my nokia 5110 working with my TI LaunchPad. Same code, same pinout.
Hi Julian, I've been noodling a bit more with your ultra lean shift-out code for these Nokia 5110 displays. I wanted the smallest possible footprint so that we could add them to data loggers that are already compile near the memory limits. As it turns out, stuffing those fonts (and some calibration data) into the internal EEprom was pretty easy to do and it does not noticeably affect the speed of the display:
thecavepearlproject.org/2018/08/24/tutorial-using-the-arduinos-internal-eeprom-for-fonts-header-data/
I'm using an arduino uno and there are no such "VCC ports on it.
+Abdurrahman Potapov It is power source 5v or 3.3v
For me(supply voltage=3.3V), setting the temp coefficent to 0x04 (=temp coefficent "0" according to datasheet), results in a far too high contrast making it seem like all pixels are active even though it's supposed to be displaying a blank screen. Setting the coefficient to 0x05 (=temp coefficent "1" according to datasheet) fixed that problem entirely.
Anyways, thx for the video, helped me a lot!
Hello, can i use an Arduino Uno? I'm gonn use a clone Arduino Uno. Do you show the code in your video? Tank you!
the arduino uno and nano is same but one of them smaller
Anyone got a link to the screen's data sheet please?
Edit/
www.sparkfun.com/datasheets/LCD/Monochrome/Nokia5110.pdf
Thanks mate, I was struggling!
Thank you so much for all the information
You are a diamond. Thanks for this!
how to change the size of the text ??
Since the display doesn't have any built-in text font, you'd need to define your own font in the size you need.
This isn't simple. If you reduce the size, you also reduce the resolution. You also have to handle characters which cross over byte boundaries.
In theory, you could define a font which is 4 x 4 pixels in size, but then you'd need to figure out the programming to handle the fact that you would be putting part of each of two characters into the upper and lower 4 bits of each byte of data.
Yes, it's complicated.
your code doesn't compile. I get "macro names must be identifiers"
I had the same problem, just retype the #define rules and is will work.
Connecting 5v to the LCD is ok but the life time of your display wil get shorter and thats true, good tutorial btw.
can i use these tutorials to arduino uno ???
Mine only works at 3.3v not 5v
Transistors can convert the signal voltage, but I think you can also get level converter chips.
But it might be easier to just get a 5V display.
very good tutorial. thank you!
Nice tutorial, thanks!
Chief...Many thanks for very easy to understand instructions. Helped me a lot...
My screen is dark when I use 5v to Vcc
Adam Giancola Try altering the contrast setting or the bias mode
it still doesn't work for me...
Sir, thank you for the video, the way you explained how to understand lcd commands helped a lot. I had a different issue with my 5510 lcd which I think might be useful to explain. I've connected the lcd and MCU (I use AVR attiny2313a) directly to the USB port of my PC. It works, but due to unstable USB voltage the picture flickered a lot. After I've added l7805 5V stabilizer it worked perfectly. There goes, maybe it helps somebody. Again, thank you for the tutorial!!!
P.S. By 'a lot' I mean A LOT, the image was impossible to see.
thanks for for the code in the discription :)
thanks for the explanation - so the obvious solution is to get some bigger diplay simply :D
"Take it to bed" lol I'm not the only one.
Nice videos, and good code to start with!
You described problems in 3rd video, and I had problems when connecting 5110 as you described to Arduino Nano: after some time the display got darker and darker. Solution for me was simply to connect 5110 VCC to 3.3V pin of Nano instead of 5V.
I did play a lot with your code, and made your simple clear display loop speed up from 11.44fps to 206.27fps. And finally I was able to draw a complete (arbitrary) frame with 142.94fps:
forum.arduino.cc/index.php?topic=382585.0
good tutorial
Thank Sr , Brazilian oldstudent, in recycle,
Thank you.
Maybe to put this lines in code?
#include
#include
#include
SAME FOR ME
Hi Julian, thanks for your excellent tutorial. I was looking for information to use this display with Forth on STM32 and you saved me a substantial amount of time getting to the 'light all pixels' stage. During my development I captured the initialization logic sequences and have included the pics in a article I wrote on my Forth site. I hope they may assist anyone going thru this 5110 learning curve who also isn't using Arduino. hightechdoc.net/mecrisp-stellaris/_build/html/nokia-5110.html#lcd
Fifty-one-ten, not five-one-one-oh surely?
WOW IT is a mini C=64!!
when he said this wire is female to female I automatically thought "lesbian wire"
and that's what I'll call it from this point on ;)
That means you'll also have to say "gay wire"
Julian Ilett :-)
Arduino projects look like a joke compared to real embedded programming.
Dont use anybody else's Library.....
My display goes black on some parts of the display if I use 5v