Thursday, March 24, 2011

I2C LCD performance

I am a bit disappointed in the performance of the Arduino LCD driver, especially with the I2C interface enabled.  I am not sure how much time I want to spend optimizing the standard Arduino libraries, especially since a beacon in operation really doesn't need a display.  Realistically, it is just convenient for me while developing this project.  I think what I will do is just optimize the display usage to only update what actually changes rather than repainting everything whenever anything changes.  If that is insufficient, I will turn off the frequently updated portions of the LCD when doing time critical operations such as when transmitting signals with critical timing criteria such as WSPR.


  1. Which lib are you using? I have a New Haven LCD and was using the LCDi2cNHD library and it was very slow until I tweaked the g_cmdDelay variable in the *.cpp file.

  2. The performance of the i2c driver on the AdaFruit site is poor. However, there is one that is much improved. Check out the work by falconfour on this link:

    falconfour's code has a bug on reset, but there is code in the thread to fix it. Performance is so good you can do animations using this driver.