Re: [PATCH] auxdisplay: hd44780: move cursor home after clear display command

From: David Reaver
Date: Sat Jul 22 2023 - 10:54:58 EST



poeschel@xxxxxxxxxxx writes:

> Am 2023-07-06 21:49, schrieb Hugo Villeneuve:
>> On Thu, 6 Jul 2023 21:33:05 +0200
>> Miguel Ojeda <miguel.ojeda.sandonis@xxxxxxxxx> wrote:
>>
>>> On Thu, Jul 6, 2023 at 8:51 PM Hugo Villeneuve <hugo@xxxxxxxxxxx> wrote:
>>> >
>>> > The "clear display" command on the NewHaven NHD-0220DZW-AG5 display
>>> > does NOT change the DDRAM address to 00h (home position) like the
>>> > standard Hitachi HD44780 controller. As a consequence, the starting
>>> > position of the initial string LCD_INIT_TEXT is not guaranteed to be
>>> > at 0,0 depending on where the cursor was before the clear display
>>> > command.
>>> >
>>> > Extract of CLEAR_DISPLAY command from datasheets of:
>>> >
>>> > Hitachi HD44780:
>>> > ... It then sets DDRAM address 0 into the address counter...
>>> >
>>> > NewHaven NHD-0220DZW-AG5 datasheet:
>>> > ... This instruction does not change the DDRAM Address
>>> >
>>> > Move the cursor home after sending clear display command to support
>>> > non-standard LCDs.
>>> >
>>> > Signed-off-by: Hugo Villeneuve <hvilleneuve@xxxxxxxxxxxx>
>>> Thanks! Sounds good to me, as long the extra command does not
>>> introduce some issue with the actual HD44780 -- can we double-check
>>> the HD44780 still works as expected?
>>> Cc'ing Lars and Geert since they may be able to give it a quick test.
>> Hi Miguel,
>> I do not have a standard Hitachi controller to test it on, so lets wait
>> for feedback from Lars and Geert or others.
>
> Sorry guys,
> I do not have access to the relevant hardware anymore. I am CC'ing Christian,
> who has the relevant hardware and maybe he can help testing the patch.
> Christian is on vacation up until mid august, so we have to wait a bit more
> for someone able to test this.
>
> BTW: The displays I did the work back then on were for sure not genuine
> Hitachi ones either.
> I do not see, that the little patch should do any harm.
>
> Regards,
> Lars


I was actually hooking up a 16x2 HD44780 on my BeagleBone Black last
night before I came across this patch, so I was able to test this. It
works fine for me. I tested with:

$ printf '\f' > /dev/lcd
$ printf 'Hello\nWorld!\n' > /dev/lcd
$ printf '\x1b[LR' > /dev/lcd
$ printf '\x1b[LR' > /dev/lcd
$ printf '\x1b[LR' > /dev/lcd
$ printf '\f' > /dev/lcd
$ printf 'Goodbye\nWorld!\n' > /dev/lcd

As expected, "Goodbye World!" was correctly placed left-aligned on the
display, split over both lines. Let me know if there is something else
you would like me to do to test this!

Tested-by: David Reaver <me@xxxxxxxxxxxxxxx>