 // Flight State variables
 boolean altHold = false;
 float yawTarget = 0.0;
-uint32_t calStartTime;
+auto calibrateEndTimer = Interval::elapsed(0);
 
 // Temporary test variables
 uint32_t loopstart;

    //always running updates
    loopQuad();
    sendTelemetry();

    //flight mode state machine
    switch(state){
        /*#DISARMED Hold Down and to the right on
         * the Throttle stick for two seconds to begin the arming process
        **/
        case DISARMED:
            if(radioDownRight.trueFor(2000)) {
                if(safe()){
                    calStartTime = millis();
                    setState(CALIBRATE);
                } else {
                    /*#NOFLY Flight aborted due to error status */

        **/
        case CALIBRATE:
            orientation.calibrate(true);
            if(calibrateEndTimer()) {
                orientation.calibrate(false);
                yawTarget = orientation.getYaw();
                altitudeCalcInit();
