http://mbed.org/users/pyeh9/code/TextLCD/#680ec8d5949c