add more modes of self calibration