http://developer.mbed.org/users/chris/code/m3pi/#4b7d6ea9b35b