HD44780 seems fine, until I try to move the cursor to a specific address.

Hello all.

I'm currently in the the process of using my arduino with a multiplexer, the MCP23017 (uses I2C). I'm currently coding this from scratch.
Now, I'm able to send commands to the multiplexer which send this off to the LCD 44780 display. I can configure the display to be in 4bit mode and write data to the display.

Now, I would like to move the cursor to and address I specify. As I'm aware, the DDRAM is addressed from 0x80, 0x80 being the first column of the first row etc. Now if I try to move to the 5th position (0x84), the screen goes blank. I've tried this with another display too. I've tried a 16x2 and a 16x4 display modules.

This seems weird, as I'm able to set the device up to send characters to, but why cannot I specify an address to move my cursor to?

Seems weird. Does anyone know if you have to specify any special commands, before moving the cursor to an arbitrary address?


It might help if you posted your code.

Are you sure that your problem does not stem from the fact that you are confusing the DDRAM addresses with the HD44780 instruction that is used to set the addresses? The 'fifth position' on the display is at address 0x04. The instruction to set the cursor to that position is 0x84.

Do you have trouble with all cursor positioning or only with that particular DDRAM location?

Are you able to successfully issue other commands such as turning the cursor on and off?