LCD Backlight Timer Problem

Hi all,
I’m a complete newbie when it comes to Linux, Arduino, and pretty much everything involved with BrewPi. I am trying to learn as I go, so I apologize if this is a dumb question.

I am using an Arduino Uno and LCD shield that I made from the DIYBrewPi site. Everything appears to be up and running as expected, with one minor hitch. After about 5 or 6 minutes, the LCD on the Uno/shield shuts off. It is completely repeatable, and the only way I can figure out how to turn it back on is by completely cycling the power. It appears to be from a voltage drop on pin 15 of the LCD, which is for the backlight power. Basically, the backlight is turning off but everything else appears to continue working fine from a voltage perspective.

I first thought that it was a component issue and traced the voltage back to the P-Fet on the shield. After doing more digging and looking at the source code, I found some sections relating to backlights, timers, and resets. I also found a couple simple forum posts discussing how there is some sort of timer issue or overflow at ~18 hrs that causes issues, but I assumed that it was a different problem due to the fact that mine shuts off after about 5 minutes. I may have interpreted incorrectly, but it sounded like that other issue was also only a problem if there were no changes in the mode or LCD display for that duration, as if you were doing some kind of heat soak. I have mine controlling the fridge relay and have been messing around with the times/temperatures so that the information on the LCD is forced to update every few minutes. To be fair, I’m not sure what actually triggers the timer reset command in the code. I searched around in the GUI settings area and found nothing.

Here’s what I can tell you that might be helpful:
-The P-Fet voltage on the LCD pin 15 is 5V, as expected, for the 5 minutes and then drops down to about 2.3V which is enough to make nothing display anymore. The voltage stays there until I cycle power to the Pi/Uno.
-I currently have two temperature probes connected, but sitting in open air. They read just fine.
-I have the relay hooked up and it responds to set points and the PID loop, as well–such as if I use my finger to heat up the probe so the system kicks the fridge compressor relay on.
-I don’t really intend to use this setup for brewing control (yet), and really just have this whole setup going as a means for a cool keezer temperature control system. It’s sole function right now is to control the fridge temperature via the relay. The reason I didn’t just use a cheapo fridge controller is because I had intended to run another separate program in conjunction to BrewPi, that used the Uno and serial connection as a data logger with additional IO instead of the GPIO pins on the Pie. For the time being, none of that has been implemented at all and that’s another topic altogether. So right now, BrewPi is just running in a “fridge constant” mode and that’s all its job is.
-The LCD display in the GUI works just fine, and continues to do so even after the external LCD turns off.

Does anybody have any clue what might be going on? What triggers the LCD backlight timer to reset? Thanks in advance!

In the legacy arduino code, the screen turns off after 10 minutes. It turns back on if you use the rotary encoder. If you don’t want the screen to turn off, don’t connect it to the arduino pin that drives it, but just connect the backlight to 5V instead.

And before you ask: No, we will not change the software. The Arduino version has been discontinued long ago.

Elco,
Thanks for your input. I guess time warps when trying to troubleshoot since I could have sworn it was 5 minutes :slight_smile:
I’ve seen mention of the rotary encoder but was never sure what it’s actual purpose was since it isn’t mentioned in any of the guides I’ve seen. Good to know though.

Also no worries, I never intended to ask your or anyone to change code for me. I was just trying to figure out if the system was functioning as intended, and I now have my answer. Thanks.