Update to use TimerSerial, support recalibration, fix bugs