dhylands/python_lcd

16x4 LCD have 3rd and 4th line shifted by 4 chars

petrkr opened this issue · 4 comments

When you using 16x4 (instead 20x4) display, then due this line buffer is shifted by 4 chars

addr += 0x14 # Lines 2 & 3 add 0x14

when you change this 0x14 to 0x10, it works. I suggest somehow IF it based on LCD_COLS

somethings like 0x10 if LCD_COLS==16 else 0x14

0x14 == 20, so it could probably just do addr += self.num_columns

Maybe it could works for all situations... Here is that page which I wanna sent in first post, but took me 7 days to google it (shame me I do not use bookmarks)

http://web.alfredstate.edu/faculty/weimandn/lcd/lcd_addressing/lcd_addressing_index.html

Heh - I actually found that page just before answering. So it looks like it should work fine. I don't have any 16 x 4 LCD panels (just some 20 x 4 LCD panels. So if you could verify that the fix works for you, I'll verify it works on my 20 x 4.

I should have both 16x4 and 20x4 aswell.. So I can test it.. For now I did easily fix octopusengine/octopuslab@d3d98b1

But I will try do that += mentioned before... Whenever I will get time :)

Petr