Problem with i2c 1602 display


I have a project (a simple countdown timer) that ideally needs a display to show number of seconds being set then the seconds counting down. I have no problem with the program but including a 1602 display is causing problems.

Details of the display = QAPASS 1602A fitted with a "Smart LCD Board" with inputs for I2C, Keypad and SERIAL UART. Model number HCMODU01222 marked Hobbycomponents. The i2c default address is 0x27 with built in 10k pullup resistors for Clock, SCL & SDA lines. Chip marked 78727 8?103F3P6 & PHL048 6.

The retailers only deal with "A-----o" type microcontrollers not Picaxe's.

When I run the attached program on a PICAXE 18m2 I would expect the display read "Hello World" on line 1 followed by "Hello 1234" on the second line, then clear the screen and repeat. What is actually displayed is " H<space>H" with a delay between letters<delay>, screen then clears and sequence is repeated. I can only get the first letter of each line to display. I believe I am halfway there and that it must be possible to use this display/board combination.

As the program does make the display do something I can only assume that the i2c address is correct. I have tried lots of things to cure the problem including leaving out "hic2setup" as per booklet from Rev Ed "Serial/i2c and clock (v2)" which resulted in a syntax error. I tried the command "ic2slave" which produced the error "Not supported on this chip".

I have now run out of ideas. It may be something simple that is probably obvious to users of this forum, but not at the moment obvious to me. I know not all 1602 displays conform to the Hitachi standard but do different displays use different codes to do things like move cursors and so on. It may be that this display combination with the Smart LCD Board requires a different setup. However I have no idea how you would change such settings, assuming they were the problem.

So if anyone can help me out that would be great. Many thanks Barry ( Clockwork )



Senior Member
Link to the module:

The I2C protocol is documented here:
The protocol is rather different to the Rev-Ed AXE033 - and to the generic I2C backpacks that use port expanders - so code examples pertaining to other products won't apply to this one. It looks like Print Character command needs to be repeated for each character, so your command will look something like 0,"H",0,"e",0,"l" ...
Last edited: