LCD Text Garbled on 4x20+Arduino

Hello, I am a very happy owner of 2 of the old brewpi, with brewpi made shield and acrylic cases they have been great.

I wanted to make 1 from scratch because I have an extra raspberry and arduino.

But I am getting garbled Text on my LCD.

Here is the schematic i used for the LCD

any help would be appreciated , thanks in advance.

here is a pic of the project , running via POE but I have tryed it power both ways , with a known good power supply , as you can see from the pic its getting 5.2v

Looking at the wiring from the 595 to the lcd it looks ok. Can you upload a picture of the reverse, it could be that the connections to the 595 from the arduino are not right. Have you tried resetting the arduino once powered up? It may be a logic race, ie arduino is outputting data before the lcd has fully reset.

One other thing, is the orange wire soldered directly to pin 15?

Hello ,
thanks you for the reply. its the craziest thing
here is a pic of the back as requested

yes for not it is solder to the to of the leg , but it was doing that when it was through hole, it slipped out when i was soldering next to it, and did not want to fight to get it back it , :smile:

Hi Clayton, sorry for the delay in getting back to you. The circuit looks like it is wired up ok with the pull up resistors on the inputs. You may want to try adding a few decoupling capacitors, one across the supply to the 595 and maybe a bigger one on the lcd screen. It is most likely due to power spikes on the supply when the mechanical relays switch.

I have a similar setup and determined EMI from outside the circuit was causing the LCD screen to scramble. A decent work around for me was to have the LCD screen re-init every 60 seconds.

Here is the hex brewpi_avr_uno.hex (71.4 KB)with the codes changes.

I found the cause of my scrambled display was compounded by the sainsmart relay switching on and off.

My issues were fixed by moving to SSRs instead of the sainsmart relay.

I’m trying to compile the hex file myself. Would you mind sharing the file and line you edited to get this working? Thanks

FYI, the uno image attached in my previous post is from the brewpi-avr repo which is no longer maintained. Version.h claims it is 0.2.4.

Here is the code addition:

In brewpi.cpp line 100 add:

static unsigned long lastLcdUpdate = 0;
if( (ticks.millis() - lastLcdUpdate) >= 60000) { //reset lcd every 60 seconds
	lastLcdUpdate = ticks.millis();		
1 Like

Thanks for the response. This is, however, waay above me right now. I’ve downloaded Atmel studio 7, and I just can’t get a grip of the whole thing; when I try to compile it stops because of a missing file/directory. I am also not clear if I should be using the current Git branch or the legacy, which states it is no longer mantained. Are you planning on recompiling using the latest Arduino repository? If so please share the hex when you have it, I’ve been fighting my way through building a 3 chamber setup which is currently running properly except for the display garbling issue, and trying to wrap my head around usign Github, Atmel studio, etc is proving to bee a bit too much for me right now.

can someone please build it for 0.2.10? I cant install atmel studio on my mac :confused:

So I replaced the mechanical relays with Omron SSR boards and now all is good, display works as it should. I do get a few characters scrambled every now and then but overall the display is quite stable, so it would seem the mech relays were responsible for the scrambling.