Hi Tony, I use them in 4-bit mode quite often. Here is my initialization routine, copied from comments. I figured you probably have code to talk to an LCD already. Notice the first four data are nybbles only. e.g. you send only 4 bits. Then you start sending 8 bits, 4bits at a time. This code works for me. If using the busy flag, it does not become valid until the interface has been set to 4 bits (the fifth command 0x28) ; - wait at least 15ms after Vdd > 4.5V ; - Send 0x3, wait 5ms ; - Send 0x3 again, wait 160us ; - Send 0x3 yet again, wait 160us ; - Send 0x2 to get 4 bit interface ; - Send 0x28 (4 bit interface, 2 lines, 5x7 font), wait 160us ; - Send 0x08 (display off, cursor off, blink off), wait 160us ; - Send 0x01 (clear display and return to home position), wait 5ms ; - Send 0x06 (auto-increment cursor, no shift display), wait 160us ; - Send 0x0C (display on, cursor off, blink off), wait 160us -----Original Message----- From: Tony Nixon [mailto:Tony.Nixon@ENG.MONASH.EDU.AU] Sent: Monday, October 02, 2000 2:08 AM To: PICLIST@MITVMA.MIT.EDU Subject: [EE]: 4 bit LCD Hi all, Are there any tricks to getting an LCD to work in 4 bit mode? All I seem to get is garbage on the display. -- Best regards Tony ICmicro's http://www.picnpoke.com mailto:sales@picnpoke.com -- http://www.piclist.com#nomail Going offline? Don't AutoReply us! use mailto:listserv@mitvma.mit.edu?body=SET%20PICList%20DIGEST -- http://www.piclist.com#nomail Going offline? Don't AutoReply us! use mailto:listserv@mitvma.mit.edu?body=SET%20PICList%20DIGEST