duinoWitchery / hd44780

Extensible hd44780 LCD library
GNU General Public License v3.0
234 stars 56 forks source link

Update hd44780_I2Cexp.h #5

Closed mattncsu closed 6 years ago

mattncsu commented 6 years ago

I had to add (byte) to the endTransmission statement to get the library to compile for ESP32 in Arduino 1.8.5.

bperrybap commented 6 years ago

I've replicated the issue. I'll probably pull this in or do something similar; however this is a work around since this is really an issue in the ESP32 core Wire library and it affects more than just the I2Cexp i/o class in hd44780. It also affects many other existing 3rd party i2c applications and 3rd party i2c libraries. On 2018-06-27 they updated the code to include a new endTransmission(bool) function. This breaks any code that uses endTransmission(0) or endTransmission(1) They need to remove this new function to maintain Wire API compatibility. I'm in the process of getting this information to them. Hopefully they will fix this asap. ESP32 core issue is here: https://github.com/espressif/arduino-esp32/issues/1725

bperrybap commented 6 years ago

I went a different route for this fix. The endTransmission(1) calls were used vs endTransmission() to work around a bug in the TinyWireM library. Now the the TinyWireM library has been fixed, the hd44780 code can use endTransmission() which avoids the bug in the ESP32 core.

The hd44780 library has been updated and released as 1.0.1 It has been pushed to github and should be available to the IDE library manager within the hour. This should resolve your issues.

I'm still trying to get the ESP32 core developers to accept that they have an issue that they need to fix.

mattncsu commented 6 years ago

Thanks for looking in to it, I've done my share of fighting with TinyWireM too