No offense meant, sorry. I'm just saying that not everyone prefers that library.
I have been using I2C LCD's for quite sometime now. I was using them LONG before I got on the forum. Had to get on the forum though as I needed David Prentice's help on a TFT screen.
I don't mind if I'm in the minority. If no one else wants to use that library it's completely up to them, but until someone makes the hd44780 library better, I will continue to use the one that works for ME.
I'm not trying to be rude, just adding my advice, which is probably worthless because no one else uses the same things as me. ![]()
No, you're not. You said:
I guarantee you that if the LiquidCrystal_I2C library from the IDE library manager worked for you, then the hd44780 library with the hd44780_I2Cexp i/o class and its examples will work for you straight out of the box with no modifications.
It will auto detect everything and "just work".
While the LiquidCrystal_I2C library in the IDE library manager tends to work for many people, it does have issues and is no longer maintained.
It also does not work on all versions of the PCF8574 based backpacks since there are multiple backpack designs and that LiquidCrystal_I2C library is hardcoded for just one of them.
(the hd44780_I2Cexp i/o class can work with all of the backpack designs - and it autodetects which one you have)
If you believe you really have found an issue with the library, I would be very interested to know about to fix it.
Start a new thread, and we can discuss there.
However, I'm guessing your issue is very likely to be user error.
This is based on interaction with many users across several years.
The most common user error is from not reading any of the documentation before diving in and then using the incorrect i/o class.
It tends to be especially common from the users that seem to be the loudest about the library not working.
The library has been very stable with very few issues over the years as I do extensive testing on many IDE versions and many Arduino platforms and boards within those platforms and several different LCD h/w platforms for each i/o class prior to each release.
It a massive matrix of combinations.
The few times (like 3 or 4) the issue was not a user error, I worked with the user to resolve the issue.
And of those maybe 2 of them were an issue with the library and they were both specialized situations / use cases that most users would never see.
In terms of examples, the library comes with more examples, and documentation than any other hd44780 type LCD library.
For backpack type devices using the hd44780_I2Cexp i/o class it has 9 class specific examples, including a diagnostic sketch which can be used to check for h/w issues.
No other library comes with a diagnostic sketch to help diagnose potential issues.
Each sketch includes lots of comments in it that explains which LCD h/w the sketch is for and the expected behavior of the sketch.
Each sketch also has numerous comments describing what each portion of the code does.
The library also comes with documentation that can brought up directly from the library IDE GUI. This includes information about the library, its structure, all the library API functions, as well as links to additional information on the chipsets, and third party tools for things like custom character generators.
It has links to the hd44780 library wiki which has additional about the hd44780 library and each of the library i/o classes.
Again,
If you believe you really have found an issue with the library, I would be very interested to know about to fix it.
Start a new thread, and we can discuss there.
--- bill
Yes, most likely.
![]()
I take that as you meaning me?? ![]()
![]()
If it's not me (which it probably is) it could be this. I have a very odd I2C LCD. Cost a princely sum of $7.
If it's any consolation i went thru the exact same issue with the same results. After chasing the hd44780 driver and others I finally wound up with:
#include <LiquidCrystal_I2C.h> //I2C LCD display driver for all LCD's
And it just works. I've had four simultaneous displays, three 4x20 and one 2x16, and they all run like a top.
It also has the diagnostic sketch for reading any available I2C device addresses, which is a great help.
I tried also the following with no success.
- #include <hd44780.h>
- #include <Adafruit_LiquidCrystal.h>
- #include <LCD_I2C.h>
- #include <LCD03.h>
- #include <LiquidCrystal.h>
However, I have THREE copies of LiquidCrystal_I2C.h from three different sources. Are they the same? Are they different? Are the up to date? Who knows? And acutally I don't care unless something breaks.
Delete all three, then download
from the Library Manager.
Then you know you have the correct one. PM me if you need more help with that.
HOW? AFAIK you can't DELETE libraries. That was one of my first Q's here and I was told there is no clean way to do it.
@madmark2150
Open your File Explorer.
Double click on Documents.
Select Arduino.
Open libraries.
Select the libraries you wish to delete, and press delete on your keyboard.
If your really worried, permanently delete them.
I've never had a single issue with that, and SEEMS quite clean.
Then reinstall from the library manager.
That is an external delete. Is there a delete built into the IDE?
YES but ONLY in the brand new 2.0 release.
Follow the below instructions:
Since there a tech note on it I'll use it, but with complex programs that I'm unfamiliar with, I assume that if the program didn't provide a delete function, that it gets fussy about where its files are, and might react badly to an OS level delete vs an internal program clean up. If you've ever tried manually deleting and cleaning DLL's and all the garbage that windows carries you'll understand my hesitancy. The windoze installer/uninstaller is the only practical way to get rid of something root & branch.
You can always download the new release...
From experience, it does not get fussy. It's advised to restart the IDE after the OS delete; or close the IDE, do the delete and start the IDE again.
Note that this only applies to libraries in C:\Users\YourUserName\Documents\Arduino\libraries; do not delete libraries from the installation directory unless you know what you're doing.
Agreed. I do that every time.
Absolutely. Most people don't want to have to reinstall the software, or worse.
Since I have no clue how or what it needs I'm a great believer in leaving well enough alone. I spent HOURS configuring the registry manually trying to uninstall badly behaved apps I just don't even go there. I must admit lots of the GPL stuff works better than ANYTHING that ever came out of Micro$oft.
At Dell I would ask users if they wanted a 30% speed up for free. All I would do is default the GUI back to Classic and optimize for performance instead of looks. You wouldn't BELIEVE the overhead in rounded corners on boxes and color gradients. Windoze is just SOOOOOOO resource intensive to do simple crap.
All the MIS heavy lifting is still done with batch jobs. You think every phone/electric/store bill you get or payment you send is selected from a drop down and someone manually clicks "send"? LOL Give me simplicty over glitz every time. Like they say in the biker world; "Chrome don't get ya home."
There is no issue with manually removing the libraries.
The 1.x IDE has no tracking information for the libraries.
You can install them or uninstall them manually.
The IDE is pretty dumb, it scans for libraries at start up (or when you change platforms) and remembers them.
That is why you should exit the IDE when you remove libraries then restart it.
Having the ability to remove libraries has been a sore spot in the community for MANY YEARS. The arduino.cc dev team has over and over and over again, said that they would not implement this as it would be too confusing to users and users could accidentally remove their libraries.
Always seemed like a BS reason to me.
My suggestion was to simply toss up a dialog box asking for the user to confirm the library removal and warn them that the operation cannot be undone.
But they didn't like that idea.
IMO, you can't really call it a library "manager" when you have no ability to remove/uninstall an installed library.
--- bill
Yeah, if the "manager" can't do it, i figured it was too fragile to play with.
I've spent hours polishing the my first bike (it actually had little chrome). The only part to polish on my second bike was the exhaust (which I never did), the rest was basically plastic ![]()
That's why the new 2.0 version is so good... You can do both in it! ![]()
![]()
Hi
This has been a wonderfully informative discussion for me.
It was difficult to post the question that kicked it off. As somebody who is not only over the hill, but halfway down the other side, I spend a lot of time feelling as dumb as a brick.
And I don't want to breach the Forum's rules but I do have another question. Can I simply ask it or do I need to start another topic?
I am curious to know what hardware is best to set up the LCDs permanently. I have just sent away for a Nano as part of the lessons I am going through. Is that a good option?
Woodie
I