I am looking here and it appears there are two 4.7k resistors (it’s been a few years but I was the one who assembled it). I am assuming that they are pull-ups for the I2C connection.
Are you thinking the logic level for the I2C connection is too low for the LCD? That has crossed my mind and I have pulled out a SN74LVC245 logic level converter. However, the datasheet and the product description appears like it isn’t bi-directional and wouldn’t work with I2C. I have a 74AHCT125N quad level shifter handy, too.
I plugged it up and let it run on the drive home from work and it ran for nearly 30 minutes without any corruption or issues. I did, in fact, notice something I didn’t before: occasionally, the numbers on the LCD will lag but when it starts back again, it is a few digits higher, so, the net result is accurate time but there was latency in writing the numbers to the LCD. I feel I worded that in a confusing way. Please let me know if you need me to explain further.
As I am typing this, I’m at the house and I have it plugged in and running. It was good for about 15 minutes but now it is jumbled all over again.
I also wanted to add that if I hold down any of the buttons, the text scrolls to the left at a faster rate and then goes back to its normal rate once I let it go. Could it be a timing issue on SCL?
I’m not sure what is going on. Do I still need to add 10k resistors to the I2C connections on D0 and D1?
EDIT: After it went and jumbled itself up, I left it and came back to find the counter at 3314 seconds (+55 minutes) and it appears to have righted itself. I didn’t restart it after it got scrambled as I wanted to see what would happen if I left it (see if it would restart on its own, lock up completely, or anything other than fix itself). This is interesting.
I did add
lcd.clear() to the select button and flashed that before I left work a couple hours back just to see if I could correct the issue that way. It doesn’t fix it, in case you’re wondering.