http://mbed.org/users/Sissors/code/SLCD/#6e3c11967108