There are a number of things out there to adapt a 2x16 LCD to an i2c bus. There's the OpenEVSE backpack (I will admit that my own design is inspired by Chris') and the AdaFruit RGB LCD shield. My own version aims to make maximal use of the LiquidTWI2 library that it's designed to use:
- Instead of a single SELECT button, there will be a 5 way tactile switch mounted on the board. This will let you have UDLR directional inputs as well as select (by pushing down). The switch will be wired so that left and right are relative to the front of the board even though the switch itself is mounted on the back. That way, when you work the switch while looking at the display, you won't have to swap around left and right in your mind.
- There will be a piezo speaker mounted, which will allow you to use the "buzz()" method in LiquidTWI2 to make noise. The speaker isn't terribly loud, and it's certainly not musical quality, but it works.
- In parallel with the 5 way switch, there will be a 7 pin SIP header to bring out all of the button inputs, along with ground and +5 volts.
- There will be three sets of two-way jumpers for each of the MCP23017 address lines. This will allow you to daisy chain up to 8 of these in parallel and address them separately from your code (the default will be all address lines grounded, which is compatible with the AdaFruit shield).
- There will also be a set of two-way jumpers for the backlight common pin (pin 15), to allow selecting between common cathode and common anode backlit LCD modules (the default will be common anode, which is compatible with the AdaFruit shield).
This board will be usable with the EV Sim II and the Toast-R-Reflow "standalone" controller. The "quick kit" will be $30 (plus shipping) and will come with all surface-mount parts pre-assembled, and with the necessary remaining parts to complete assembly.