Chuck:The fmalpartida library, that was suggested to be used (post #6), is not working for the same displays.If you are suggesting to use the fdebrabander library, then you are linking to the library I am using and is working for me (see post #9). Is that what I am reading?
The situation started as a question about a library capable of running both the 16x2 and 20x4 LCD via I2C. I have been using the fdebrabander library, which you suggested, to run the 16x2 I2C LCD quite successfully. Paul suggested using the fmalpartida library, which when implemented did not work on any of my LCDs. Do you know if the fdebrabander library is compatible and will also drive a 20x4 LCD?
I used Nick Gammon's I2C scanner in addition to the fact that I already knew and had working the displays. The address is 0x27 and the only thing connected to the Arduino UNO (nothing else on the I2C or anywhere else on the Arduino).
It is not generalised.You have not exhibited code that includes a full descriptor - you appear not to understand what a descriptor is. While I have not deeply studied the instructions for the fmalpartida library as I already know - from inspecting the code - how to use it, I am sure that actually reading such instructions would reveal what a descriptor is and how to use it. I can only then conclude that you have not.And you claim to have tried "Nick Gammon's I2C scanner", which suggests you have not read my instruction to use the I2Cguesser code.You are reading superficially (a problem my wife and I share as we have discussed - when we explain things, we mean what we say, not what people imagine we have said because they did not pay attention) - you think " I2C scanner" means "I2Cguesser" - it does not.If you can assure me (and prove) that you have actually done what I recommended, well I will be concerned that a genuine problem exists, but I think you simply have not.
you appear not to understand what a descriptor is
You have not exhibited code that includes a full descriptor.
You are correct I have not run your "I2CGuesser" program. Why would I? It sounds the same as I2CScanner by Nick.
After doing research on my own due to the lack of specific information the name in the post is wrong. Some explanation had been provided about what the program you were referring to did would have been specific and useful.
So if I read between the lines of your comments in general on the descriptor, you are saying the example code provided (post #6) does not include a full descriptor? Based on the instructions that is the descriptor for use with the library. If there is more information on the descriptor or the descriptor given is incomplete, please provide specifics.
Per your requirements, I have run the I2CLCDGuesser (the correct name) program. It had limited success. It was able to locate the chip at 0x27 (no surprise there). But it does not flicker the backlight 3 times on any of my displays as the comments state.
Are you familiar with the inner workings of the I2CLCDGuesser program? Any specific points I should be looking to modify? Any specific items to look at would be helpful.
I don't follow. Which example code is this? From the fmalpartida library, or something else?
And you ran it using the - correctly installed as the only LiquidCrystal_I2C LCD library in the IDE - fmalpartida library? (Naturally, you had the contrast control correctly set.) And I did not realise it was supposed to "flicker the backlight 3 times", for me it simply lights the backlight when you get to the correct descriptor (and some incorrect ones as well).
Actually it does not work as such for me due to a problem with the "serial" library not responding to input from the Serial Monitor when I hit Enter, so I tend to use a modified version which just cycles continuously through the options. Clearly that does get the results I need with a little jiggery-pokery with the Reset button, but I do not know whether or why you would need to modify it in any way.
When you get the working descriptor (at least 7 arguments) from the "guesser", you cut-and paste that from the Serial Monitor into your code.
As previously mentioned, I deleted the old library and replaced it. When that did not work, I uninstalled the Arduino IDE and deleted the Arduino directory from My Documents to ensure a clean install of both the IDE and the fmalpartida library.
Which of course means you have to again delete the supplied LiquidCrystal_I2C LCD library from the installed IDE when you install the fmalpartida library.
OK, so fmalpartida clearly doesn't properly describe the descriptor in the direct example given. The presumption is extended from the original LiquidCrystal library that you are using one particular model of backpack - I guess he needs to update and correct it, wherever he now is! The description is hidden within the branch "/LiquidCrystal/docs/html/class_liquid_crystal___i2_c.html".
Ah well. The point is, at least the i2cLCDguesser sketch contains the full prototype code for using the library.
There isn't one! There is no LiquidCrystal_I2C library as part of the native IDE install. Only a LiquidCrystal library for direct IO is included with the IDE. I figured that out 6 months ago when I had to find a I2C LCD library in the first place.
Not sure where you are intending to send me with the html link. Unfortunately, my HTML never came up to the same grade as my C/C++.
I'm going to take a stab that the complete descriptor is like lcd(addr, EN, RW, RS, D4, D5, D6, D7, BL, POL). If so, would it have killed you to just post that two days ago.
So I have a full constructor now (I think), with 7 parameters just like you wanted but only know one of them (addr=0x27). Now can you provide any insight as to why the I2CLCDGuesser doesn't guess so well?
Nevertheless, you need to remove the original LiquidCrystal library to make the new one (which covers virtually all of the various interfaces) work.
Not removing the original LiquidCrystal library?
Sorry, it just works for me with the modules I have on hand (and as the topic comes up so often, I have deliberately attempted to collect all available versions of the I2C backpack in order to verify them and post a comprehensive HOWTO). Had you chosen to post a picture of the board you are using (as suggested by the master instructions) I probably would have simply located and posted the corresponding descriptor for you.