I might be blind but I don't see the big problem. The high nibble drives the control lines, and (via D+R) the key rows. The low nibble drives the LCD data pins and reads the key columns (use pull up or down R's). The only snatch is that to scan one row you'll have to toggle E, which can cause an operation on the LCD. To get around this problem: - make sure the operation is a no-op, like reading, or writing to a location that does not matter (maybe one of the user-defined characters) - reverse the operation immediately afterwards (for instance erase the char just written) - you have a pin 'left over' (or two, when you don't read). Use them all to drive E in and-fashion (you can use a D-R and gate, I think that does not count as active?) It is a pity I have no time to try this (one-hand typing with a baby in the other arm is difficult enough). Wouter van Ooijen Van Ooijen Technische Informatica: http://www.voti.nl Jal compiler for PIC uC's: http://www.voti.nl/jal PICs kopen? http://www.voti.nl/shop -- http://www.piclist.com hint: To leave the PICList mailto:piclist-unsubscribe-request@mitvma.mit.edu