HM 4.0 Display options


 
Haha There is a 20x4 LCD here at work with a bunch of jumpers on the back too. Lord knows what they do. The data looks fine on my 20x4, and I didn't have to change a thing in the LiquidCrystal library so that leads me to believe that this is how the majority of 4 line LCDs work.

I've used one of those RGB lcds in another project. They're pretty great but to reach their potential you need to PWM the LEDs to get the colors you want. I drove them directly from Arduino pins which seems to work fine. I think I used current limiting resistors.

Bryan,
So this display you linked to on ebay works correctly with no further code mod? Hope so I just ordered one.
 
Should work just fine a a display, you will probably need to use a ribbon cable to connect it unless you relocate the 4 way selector switch. The pin header on this display(and many others) has one pin header row on the top of the display so it would sit directly on top of the HM board instead of offset. A ribbon cable would let you put the display wherever you wanted.
 
Yeah the eBay one works without any code or hardware changes, but like RJ said, it only has the LCD connector on the top (which is more standard than the NewHavens) so you'll have to wire it with a ribbon cable. I don't believe it will fit in any of the cases either though, on account of it being 2 lines taller than the 2-line, which already is sort of a tight fit.
 
The 4-line display is in github now, although the code to turn it on from the website is on my development machine which is currently trashed. If you build and flash the heatermeter code, you can switch to 4-line home with the raw set command of lb=,254 or lb=,255 (yes, lb equals comma) to switch it back to 2-line.

Bryan, have you been able to reconstruct this 4 line display code or will it be in the next update?
Got the 4 line display you got off eBay, had to tun my contrast down as far as it will go to get it to work , only getting two lines displayed at this point.
 
I can post the latest compiled code up to the online repository tonight. Check in a few hours for an updated version.
 
Dale, my linkmeter isn't working right now because of the bad wireless module so I'll see if i can do this from memory. Go to the Linkmeter tab, then AVR Firmware, select the radio button for the online repository, select the most recent, then flash to AVR.
 
Went back to the repository and did nt find the 4 line code that was there yesterday. I flashed the latest code but it did not give any 4 line option that could find.
Do I have to use Putty to turn on 4 line display?
 
Oops that's my bad. I forgot the web ui needs to be updated too to include the option. Just go to the config web page and on the bottom where you can enter a "raw set command" enter
Code:
lb=,254
 
Is there a list anywhere of the 20x4 displays that work without any hardware or software changes and also happen to fit in the case style made by Matt? I would like to go ahead and get the parts ordered but I would like to order the display at the same time. I like the transflective style but would like to not try and reinvent the wheel if I don't have to.

Thanks,
Troy
 
Last edited:
The only reason I have one is because I was looking for something else on eBay and came across this incredible deal for 20x4 LCD displays. I couldn't pass up 4 for $7.67 each shipped. They're incredibly high quality and retail for $35 from mouser. Their response time is a LOT faster than the NewHaven from the parts list, and they're transreflective so you can read them even with the backlight off.

RJ: It looks like your display has the display memory map different than others. Basically when you write to the LCD at 0,0 it puts a byte in video ram at location 0x0. When I say "move the cursor to col 0 row 2" really what you send it "set ram address to 0x14". The ram is actually layed out contiguously such that if you keep writing on row 0 you'll show up on the third row and if you keep going from there you'll show up on the second row then the fourth. It looks like your memory isn't laid out like this:
Row 0: 0x00
Row 1: 0x40
Row 2: 0x14
Row 3: 0x54

Which are the constants used by all the LCD libraries. You can adjust this in ShiftRegLCDBase::setCursor() and see if that fixes it. Looks like your row 2 is 0x10 and your row 3 is 0x50?

hey did that 20x4 work for you thinking about ordering some. they are about 9 dollars a piece
 

 

Back
Top