“Give a man a fish, and you'll feed him for a day. Teach a man to fish, and you've fed him for a lifetime.” This was the kind of tutorial I've always wanted. You just taught us how to fish, while tonnes of other tutorials here just gave us a fish.
I m a newbie to digital electronics. Was using such a display through Arduino and built in libraries. After watching this, my whole perception changed. Now I realise how much stuff goes on in the background and what actually the microcontroller is doing. Amazing video. Really grateful.
This is the perfect way to teach this. Turning the Enable on and off was quite confusing to me in class because it was all in code, but having everything physically on a breadboard cleared so much up. Thank you!
Aaaaaannnddddd I subscribed. That was the most detailed explanation of the workings of that screen I have ever seen. And it yet again shows me why Arduino is but a stepping stone... With libraries always missing vital functions >.>
Hi, I'm a Student from Centennial College, ON CA. I found your video in our course shell, and it is very helpful. I'm coming to thank you, and give you a thumb up.
Hi Mitch... Just came across this presentation on display programming ... A pleasure to listen to. Unpretentious, honest and accurate .... engineering needs more of your style and skill.
Hi Mitch, a great Video indeed! After a couple of minutes i was playing around with breadboards, wires and a 16/2 display. It worked perfectly fine! Thanks a lot for showing the important parts of the datasheet. the next 300p doc i‘ll try to read by my own.
Thanks Mitchel, I love the low levels tutorial, where things are done by hand, and I found very useful how you explain how you read the datasheet. Indeed datasheet can be scary...
I love how for a software engineer programming a microcontroller is considered extremely low level but for electronic engineers even microcontrollers are conaidered high level :Dd
I love how you're going through the thought process of the average beginner, Like oh RW that could mean read and write. You are single handedly reshaping the thought process of every newbie watching you.
Hey Mitch, brand new to electronics here! This is by far the best video I have seen on learning a topic. Loved the journey and hope to learn more through exploring datasheets!
Wish I had found a video like this in High School! 😂 But it's so true, if the only answer to my question is in the datasheet, I'm doing something else. Hopefully not anymore!
I am at this stage, where I'm almost graduating, but still a bit afraid to go through the datesheet for some reason. This was extremely helpful, especially the Enable timing diagram. I always try to avoid that part, because it looks so scary. Thank you for breaking this down to such an easy understanding :)
This was very helpful. In other websites, they were showing that D7 of the lcd receives the least signicant bit, but it's obviously the one that receives the most significant bit.
This was very helpful and appreciated! I've been trying to find tutorials that dive into the datasheets while explaining them well and this did that perfectly!
A very good educational video. I’ve stumbled across this video because I was looking for the data sheets on the internet without any luck … Finally got it from the link in the description ☺️👍
I know this is a somewhat old video but thank you so much for this video. I'm working on my senior design project which I want to use these as our UI to keep cost down but the library for the msp430 I found wasn't working and this video is allowing me to write my own drivers for it. Appreciate the time and effort to make such a high quality video.
Absolutely great ! clear, straightforward No stupid music a genuine effort to make it understandble and a great idea to single step. thanks for your efforts
Thank you so much for this video. Specifically I was preparing my own toggle switch LCD box project and at the bread phase of testing this out. I had actually got beyond the point of clearing the display and sending characters but then in my final checked all I kept getting was a complete 1st line of "block" characters. After a good hour of rechecking all my connections and swapping the two LCD modules back and forth between the "toggle switch" breadboard and an Arduino to sanity-check the damn things where still working, I figure it must be something to do with the initialisation but alas by understanding of the datasheet commands was weak. Thanks to 10:45 & 11:14 this helped enormously in getting my project back on track by realising that potentiometer was set a little too high but only spotted this when I send the show cursor & blink cursor commands ❤
When I have seen how you managed the wires on the breadboard and heard the (zerooos and ones) I remember Ben Eater. By the way the video is very informative
He’s 100% the reason that I wired everything up that way. It’s incredible how much more understandable everything is with neat wiring. This same circuit using jumpers looks like a spaghetti mess
Very solid approach to approaching a datasheet. I did the dumb mistake of shoving myself head first into trying to make my own Raspberry Pi Library for a 16x2 before even having a method... Eventually worked, but I wish I had seen this video sooner
Correct me if I am wrong, but in setting the bit mode (8 or 4) the zeros after the first one are inconsequential. This is something I learned reading the data sheet. So, say at 24:29 thereabouts, in setting the bit mode, you don't actually have to physically tie pins D0 to D3 to ground (as you have done so). Someone may say, its a good idea to tie unused pins to ground. Sure! But, according to the data sheet you shouldn't have to.
I've been messing with electronics for about 10 years, I do PCB design, power electronics, been to university and did all sorts of automation, embedded programing and electronics, but... IT'S NOW THAT I FIND OUT WHAT VDD AND VSS MEAN.
Thank you very much friend, this explanation was very useful. Now I am using my LCD but I implemented in microcontroller for avoid the issues with the enable bit
You know what's weird? I'm watching this video about 2 days after playing a bunch of Shenzen I/O and the two things don't even vaguely correlate. I came here because I started watching a CompSci course It is wild how close the documentation used here is to the fake docs you get in SI/O
Hello and thanks for the video although I didn't make it! And I didn't understand what the problem was with me because I followed your every step exactly! The problem, and of course I don't blame you, is that sometimes we viewers come across a video from a year ago or even his or seven years ago and when a problem occurs, the advertiser usually doesn't have the time to help. But that's how it is on TH-cam!
I really appreciate it, i know that you spent a lot of times for editing video just make those people can understand it in simply way, i hope you make new contents about "read datasheet"
I agree entirely, if you don't know, read the data sheet. The more of them you read the easier it will get. If you still can't find the answer THEN ask someone else. You learn more when you solve problems and make your own mistakes.
Excellent stuff. Am however not sure about suitability of using an output pin to show how pullup resistor works. Is this arrangement not appropriate for input only not output unless we are using open collector arrangement for output. I thought an MCU supplies voltage onto output pin and not switch the pin to ground or leave it floating( open collector arrangement)
EXCELLENT! Datasheets and timing diagrams can seem overwhelming when you first get into it, but you just need to just walk through each step on by one. Learn some terminology and nomenclature and you're well on your way. In the early 90s I used one of these displays with a 68C705 microcontroller to interface with my 1986 corvette. I tapped into the line for the tachometer (right off the transmission) and did some math to be able to display my speed, and then did some fun stuff like make an automated 0-60 (ok 0-100) timer... All written in assembly, I remember diagnosing that datasheet for the display and getting all the timing to work. Unfortunately I don't think I have that source code anymore. I had an eeprom programmer, but unlike today's flash memory, I had to erase the eprom with a UV light every time I need to upload a new firmware. So what you'd do is have 5 or 6 microcontrollers sitting under the UV lamp while you programmed and work on one of them, then you could just rotate them in and out of the UV as needed. That way you'd always have one which was erased and ready to program. Making this kind of stuff is immensely easier now!
A very good demystifying video. Shows you can do a lot with simple programming, without the use of libraries. Next a simple graphic display, like the cheap tough screen shields for on an Arduino UNO.
D0-D7 have internal pulled-up's, you don't have to hook them up to a rail(ground or VCC) when you don't use them. All commands are working in the 4-bit mode, you never need the D0-D3 in 4bit mode. If I'm not mistaken, the D0-D3 do nothing after the 4 bit command(right?). Edit/ My own driver code send all the commands in 4bits, and I used many HD44780 in past 25 years with that code(ported to many different systems in the years).
Nice video. The only question i have is how to configure the lcd in 4bit mode and 2 lines (0b0010 1000)? I'm using a pcf8574 with i2c so i can't set the lower nibble.
“Give a man a fish, and you'll feed him for a day. Teach a man to fish, and you've fed him for a lifetime.”
This was the kind of tutorial I've always wanted. You just taught us how to fish, while tonnes of other tutorials here just gave us a fish.
Or let the man starve to death and you have more fish for yourself.
This video is a highly in-depth explanation. It seems like a slow-motion version of the way the microcontroller works.
That’s one of the reasons I’m mesmerized by these displays. There’s not a whole lot of things that I can manually interface with like this
I m a newbie to digital electronics. Was using such a display through Arduino and built in libraries. After watching this, my whole perception changed. Now I realise how much stuff goes on in the background and what actually the microcontroller is doing. Amazing video. Really grateful.
Thanks for your magical explanation, we have now only one teacher on TH-cam, for crystal clear understanding.
Amazing video, both keeping it relatively simple but also highlighting pitfalls/possible misunderstandings. Love it!
This is the perfect way to teach this. Turning the Enable on and off was quite confusing to me in class because it was all in code, but having everything physically on a breadboard cleared so much up. Thank you!
Aaaaaannnddddd I subscribed.
That was the most detailed explanation of the workings of that screen I have ever seen. And it yet again shows me why Arduino is but a stepping stone... With libraries always missing vital functions >.>
Hi, I'm a Student from Centennial College, ON CA. I found your video in our course shell, and it is very helpful. I'm coming to thank you, and give you a thumb up.
Hi Mitch... Just came across this presentation on display programming ... A pleasure to listen to. Unpretentious, honest and accurate .... engineering needs more of your style and skill.
I applied this to a Raspberry pi pico and I have succesfully transmitted the letter H in 93 lines of code
I have always looked for someone who would explain how LCDs work. Your video was the one, a job well done!
Hi Mitch, a great Video indeed! After a couple of minutes i was playing around with breadboards, wires and a 16/2 display. It worked perfectly fine! Thanks a lot for showing the important parts of the datasheet. the next 300p doc i‘ll try to read by my own.
Thanks Mitchel, I love the low levels tutorial, where things are done by hand, and I found very useful how you explain how you read the datasheet. Indeed datasheet can be scary...
I love how for a software engineer programming a microcontroller is considered extremely low level but for electronic engineers even microcontrollers are conaidered
high level :Dd
I love how you're going through the thought process of the average beginner, Like oh RW that could mean read and write.
You are single handedly reshaping the thought process of every newbie watching you.
Hey Mitch, brand new to electronics here! This is by far the best video I have seen on learning a topic. Loved the journey and hope to learn more through exploring datasheets!
I'm very excited about the stm32 series... 😃
Thank you. I just watched three videos from your TH-cam channel, and I got a lot of information on how to work with microcontrollers.
Wish I had found a video like this in High School! 😂 But it's so true, if the only answer to my question is in the datasheet, I'm doing something else. Hopefully not anymore!
I learned more from this video than I ever did in 1 semester at uni
I am at this stage, where I'm almost graduating, but still a bit afraid to go through the datesheet for some reason. This was extremely helpful, especially the Enable timing diagram. I always try to avoid that part, because it looks so scary. Thank you for breaking this down to such an easy understanding :)
one step at a time and you will be come more comfortable working with them. Best Wishes
Wish I could like this video a million times dude your amazing
This is as low level and simple as it gets. Wonderful tutorial.
Great video. I have started to dabble with electronic projects and this video is a gem in itself!
This was very helpful. In other websites, they were showing that D7 of the lcd receives the least signicant bit, but it's obviously the one that receives the most significant bit.
This was very helpful and appreciated! I've been trying to find tutorials that dive into the datasheets while explaining them well and this did that perfectly!
A very good educational video. I’ve stumbled across this video because I was looking for the data sheets on the internet without any luck … Finally got it from the link in the description ☺️👍
Very good work. I can't wait for the STM32 videos.
I know this is a somewhat old video but thank you so much for this video. I'm working on my senior design project which I want to use these as our UI to keep cost down but the library for the msp430 I found wasn't working and this video is allowing me to write my own drivers for it. Appreciate the time and effort to make such a high quality video.
very interesting. I have used these a few times but now I understand how they work, thanks for your effort. You are a good teacher.
Absolutely great ! clear, straightforward No stupid music a genuine effort to make it understandble and a great idea to single step. thanks for your efforts
amazing demo for reaaaaaly understanding how to run an LCD
Hey Mitch I like your videos so much, you have a talent for this. Keep doing it. Youll become more well known over time.
i love videoes like this. calm and relaxed i hate when people try to explain it in the minimal amount of time.
Thanks for the time invested to explain in so deep way. Congratulations!
Thank you so much for this video. Specifically I was preparing my own toggle switch LCD box project and at the bread phase of testing this out. I had actually got beyond the point of clearing the display and sending characters but then in my final checked all I kept getting was a complete 1st line of "block" characters.
After a good hour of rechecking all my connections and swapping the two LCD modules back and forth between the "toggle switch" breadboard and an Arduino to sanity-check the damn things where still working, I figure it must be something to do with the initialisation but alas by understanding of the datasheet commands was weak.
Thanks to 10:45 & 11:14 this helped enormously in getting my project back on track by realising that potentiometer was set a little too high but only spotted this when I send the show cursor & blink cursor commands ❤
Dear Sir, thanks for the detailed explanation and integrity information about 16x2 display
I'm too lazy to read the datasheet and prefer watching great TH-cam videos like this one that explains what I need to know. Awesome work 👍
@Benito Daudier Ohh u successfully wasted $11
You are amzing.This video is fantastic
This video is awesome. I was able to write this in Arduino without using the code library.
Thank you so much
The best vedio I watch about LCD display!
Please make this sort of detailed videos waiting for more knowledge from you. But the content available is just amazing 😃
I appreciate your making this video.
It's quite useful and informative.
Thank you!
When I have seen how you managed the wires on the breadboard and heard the (zerooos and ones) I remember Ben Eater. By the way the video is very informative
He’s 100% the reason that I wired everything up that way. It’s incredible how much more understandable everything is with neat wiring.
This same circuit using jumpers looks like a spaghetti mess
Absolutely amazing! Why did get this as a suggestion after freaking 3 years😢 anyways got to learn a lot❤
This is totally insane!!! Awesome job
Thank you so much for the help reading the datasheet, i now know what to look for when trying out other components!
This is a fantastic explanation with superb task breakdown. And it can’t be better than this.
Very solid approach to approaching a datasheet. I did the dumb mistake of shoving myself head first into trying to make my own Raspberry Pi Library for a 16x2 before even having a method... Eventually worked, but I wish I had seen this video sooner
Greetings from Azerbaijan and thanks for the amazing content ❤️ Keep going man.. Everytime i realize that i have much things have to learn :)
omg huge thanks for the video man. exactly what i needed, u saved my project.
This is the video I was looking for. Thanks Mitch Davis
This was amazing thank you so much, I have been trying to figure out what you explained in the video for days at this point.
Correct me if I am wrong, but in setting the bit mode (8 or 4) the zeros after the first one are inconsequential. This is something I learned reading the data sheet.
So, say at 24:29 thereabouts, in setting the bit mode, you don't actually have to physically tie pins D0 to D3 to ground (as you have done so).
Someone may say, its a good idea to tie unused pins to ground. Sure! But, according to the data sheet you shouldn't have to.
I've been messing with electronics for about 10 years, I do PCB design, power electronics, been to university and did all sorts of automation, embedded programing and electronics, but...
IT'S NOW THAT I FIND OUT WHAT VDD AND VSS MEAN.
😂😂😂😂😂😂😂😂🤣🤣🤣🤣🤣🤣🤣🤣🤣 omg hahahhahahhahahahahhaa how is that even possible vss vdd are like basic stuff for per electronics 😂😂😂
Thank you very much friend, this explanation was very useful.
Now I am using my LCD but I implemented in microcontroller for avoid the issues with the enable bit
Huh, who knew Shenzen IO would actually prepare me for learning real electronics. Also great video, you made this a lot less intimidating!
You know what's weird? I'm watching this video about 2 days after playing a bunch of Shenzen I/O and the two things don't even vaguely correlate. I came here because I started watching a CompSci course
It is wild how close the documentation used here is to the fake docs you get in SI/O
Hello and thanks for the video although I didn't make it! And I didn't understand what the problem was with me because I followed your every step exactly! The problem, and of course I don't blame you, is that sometimes we viewers come across a video from a year ago or even his or seven years ago and when a problem occurs, the advertiser usually doesn't have the time to help. But that's how it is on TH-cam!
I really appreciate it, i know that you spent a lot of times for editing video just make those people can understand it in simply way, i hope you make new contents about "read datasheet"
Personally, I love a good datasheet. Amazing video man! I absolutely believe it was not as easy as you made it look.
I agree entirely, if you don't know, read the data sheet. The more of them you read the easier it will get. If you still can't find the answer THEN ask someone else. You learn more when you solve problems and make your own mistakes.
Dude, you are amazing. I have simulated this circuit in proteus and it works perfectly.
Thank you for the detailed and clear explanation. This is very cool!
Excellent stuff. Am however not sure about suitability of using an output pin to show how pullup resistor works. Is this arrangement not appropriate for input only not output unless we are using open collector arrangement for output. I thought an MCU supplies voltage onto output pin and not switch the pin to ground or leave it floating( open collector arrangement)
Keep these videos going, please.
Hey, @JLCPCB, please sponsor this guy.
Very helpful fantastic work thanks a lot we are missing such a content on TH-cam professional deep understanding
EXCELLENT! Datasheets and timing diagrams can seem overwhelming when you first get into it, but you just need to just walk through each step on by one. Learn some terminology and nomenclature and you're well on your way.
In the early 90s I used one of these displays with a 68C705 microcontroller to interface with my 1986 corvette. I tapped into the line for the tachometer (right off the transmission) and did some math to be able to display my speed, and then did some fun stuff like make an automated 0-60 (ok 0-100) timer... All written in assembly, I remember diagnosing that datasheet for the display and getting all the timing to work. Unfortunately I don't think I have that source code anymore.
I had an eeprom programmer, but unlike today's flash memory, I had to erase the eprom with a UV light every time I need to upload a new firmware. So what you'd do is have 5 or 6 microcontrollers sitting under the UV lamp while you programmed and work on one of them, then you could just rotate them in and out of the UV as needed. That way you'd always have one which was erased and ready to program.
Making this kind of stuff is immensely easier now!
In-depth explanation 🔥
very useful and your video gave a very good clarity on LCD operation .Thanks alot brother
Amazing video, greetings from Ecuador.
This is, What I exactly want! Thanks so much! Now I can make my own Library in C++! Thanks
you are awesome bro.
hats off to you.
Simply the best
This is some great video. Having fun while watching it. Thank you!
A very good demystifying video. Shows you can do a lot with simple programming, without the use of libraries. Next a simple graphic display, like the cheap tough screen shields for on an Arduino UNO.
Very nice.. You really work hard bro...
Keep on
Thanks for the kind words. These videos take forever to make, so it’s nice when people appreciate them
just subscribed....but seeing your videos quite awhile...i really like the way you explained and the way you present it... Kudos....
Come back go TH-cam you are the best at this stuff on youtube
wow, you explain how it works so clearly:) thank you a lot
👍👍 best video for learning
This video is gold! Thank you! :)
Very interesting! You made it look easy but I definitely learned some stuff. Thanks for sharing!
Thanks for the correct information
This is really useful.Thanks for sharing
You are an excellent teacher! I needed this.
Thank God for let me see your video today!
just thank for all your effort !
Wow that's a different experience 😊
Great vid. I like the low level stuff. Subscribed
That was great. I'm wondering if you could add a clock signal and EEPROM.
Very educational channel! Thanks for your effort!
This is really a brilliant video. I guess you could manually interface with any I2C device as well.
Great work man !!😄
Thank you for sharing well explained, keep up the good work
Looks like Ben Eater has got some competition going on.
really apreciate your effort
D0-D7 have internal pulled-up's, you don't have to hook them up to a rail(ground or VCC) when you don't use them. All commands are working in the 4-bit mode, you never need the D0-D3 in 4bit mode. If I'm not mistaken, the D0-D3 do nothing after the 4 bit command(right?).
Edit/ My own driver code send all the commands in 4bits, and I used many HD44780 in past 25 years with that code(ported to many different systems in the years).
WELL DONE !👏👏
Thank you so much for this content!!!
this is amazing dude
Nice video. The only question i have is how to configure the lcd in 4bit mode and 2 lines (0b0010 1000)? I'm using a pcf8574 with i2c so i can't set the lower nibble.