johnrickman / LiquidCrystal_I2C

LiquidCrystal Arduino library for the DFRobot I2C LCD displays
590 stars 389 forks source link

Don't work correctly with Arduino 1.6.7 IDE Release #7

Open eipporko opened 8 years ago

eipporko commented 8 years ago

I just upgraded the IDE to the latest version (1.6.7), and I found that when I tried to print in the LCD, it shows only the first character of the string sended. So I decided to return to the 1.6.5 IDE Release. Any idea?

BoingNZ commented 8 years ago

Same issue here

csamuelson commented 8 years ago

Same issue

marcoschwartz commented 8 years ago

Sorry to hear that! If somebody wants to take over this library I'm totally up for it, I didn't write it, just put it out there so it is in the library manager.

t3chguy commented 8 years ago

In theory it should work, the return here (https://github.com/marcoschwartz/LiquidCrystal_I2C/blob/master/LiquidCrystal_I2C.cpp#L12) is what broke a lot of similar libraries.

sethiele commented 8 years ago

I can confirm @t3chguy is right.

bperrybap commented 8 years ago

Marco, you appear to have fixed this 4 months ago, but you need to re-tag it for the new 1.1.2 version. This is very important as tags is how the Arduino library manager discovers library updates. With out a tag, people will not get the update. --- bill

marcoschwartz commented 8 years ago

Done, let me know if it works :)

Bisotronic commented 8 years ago

(I was waiting for other answers but...) @marcoschwartz it seems to be correctly fixed. Thanks.

jkalinovskis commented 8 years ago

Working! THANK YOU!!!

alexbojko commented 8 years ago

I'm using latest version of this lib (1.1.2) installed from library manager and it seem this bug is still reproducible for me.

scaytrase commented 8 years ago

Same here, 1.6.9 + 1.1.2 (tried both from manager and custom zip from latest release)

highcastle1945 commented 7 years ago

I downloaded 1.1.2 from the Arduino library manager. Still had issue. I changed the LiquidCrystal_I2C.cpp file, lines 18-21 as below (changed function so it was not a void, and added the return 1 line):

#define printIIC(args)  Wire.send(args)
inline LiquidCrystal_I2C::write(uint8_t value) {
    send(value, Rs);
    return 1;
}

This seems to work. I was able to run the example code 'HelloWorld' in the library directory with some tweaks to fit my smaller 16x2 screen.

bperrybap commented 7 years ago

Those lines you modified are for pre 1.0 IDE builds. write() cannot return a value in pre 1.0 Kind of looks like there may be some kind of issue with your build tools or core platform recipe file.

highcastle1945 commented 7 years ago

Better lucky than right I guess. I will reinstall IDE and see if that works.

I reinstalled the IDE and the driver for the arduino. The library works fine now without any modifications.

bperrybap commented 7 years ago

I'd look at the compiler command line the IDE is using first. That will tell you what the value of ARDUINO is.

DavidStockford commented 5 years ago

I am suffering from the same issue. I am running Arduino 1.8.9 IDE. I have installed the latest libray from Keyestudio. The CustomChar program shows that all the LED elements are working it appears to only be when trying to print a Character string that the problem occurs. Please can I have some guidance as I am new to this.

bperrybap commented 5 years ago

It has been three years and this is still an issue. While the code was re tagged for vesion 1.1.3 but the library.properties was not properly updated and still says 1.1.2 which confuses the library manager. The library appears to have been assigned to a new person and from the readme, it now appears the project may be moving over to gitlab. I'm not sure if the Arduino IDE library manager works with gitlab. My recommendation would be to switch to the hd44780 library and use the hd44780_I2Cexp i/o class. https://github.com/duinoWitchery/hd44780 The library will "just work", as it auto detects the i2c address and the pin mapping used on the backpack so it will work with any of the backpack designs (where there are several) vs just the one that is hard coded into LiquidCrystal_I2C It is available in the IDE library manager so you can install it and be up and running in just a couple of minutes. First run the included I2CexpDiag sketch to test everything, then you can run and look at the other hd44780_I2Cexp examples. There is lots of additional information and documentation in an included "Documentation" sketch.

DavidStockford commented 5 years ago

Thank you for your advice. I will get this library

darkworks commented 4 years ago

It has been three years and this is still an issue. While the code was re tagged for vesion 1.1.3 but the library.properties was not properly updated and still says 1.1.2 which confuses the library manager. The library appears to have been assigned to a new person and from the readme, it now appears the project may be moving over to gitlab. I'm not sure if the Arduino IDE library manager works with gitlab. My recommendation would be to switch to the hd44780 library and use the hd44780_I2Cexp i/o class. https://github.com/duinoWitchery/hd44780 The library will "just work", as it auto detects the i2c address and the pin mapping used on the backpack so it will work with any of the backpack designs (where there are several) vs just the one that is hard coded into LiquidCrystal_I2C It is available in the IDE library manager so you can install it and be up and running in just a couple of minutes. First run the included I2CexpDiag sketch to test everything, then you can run and look at the other hd44780_I2Cexp examples. There is lots of additional information and documentation in an included "Documentation" sketch.

you lib seems complex , please make it simpler easy and quick to use ... examples of your lib are scary :D