2 # calibcant - tools for thermally calibrating AFM cantilevers
6 """Run a cantilever calibration using the default AFM
7 (``pyafm.storage.load_afm()``).
13 from calibcant.calibrate import Calibrator as _Calibrator
14 from pyafm.storage import load_afm as _load_afm
15 import calibcant.config as _config
19 timestamp = '{0}-{1:02d}-{2:02d}T{3:02d}-{4:02d}-{5:02d}'.format(
21 filename = '{}-calibcant-data.h5'.format(timestamp)
22 config = _config.CalibrateConfig()
23 config['bump'] = _config.BumpConfig()
24 config['bump'].update(
25 {'model':_config.Linear, 'initial-position':-150e-9})
26 config['temperature'] = _config.TemperatureConfig()
27 config['vibration'] = _config.VibrationConfig()
31 afm.load_from_config(devices=devices)
32 calibrator = _Calibrator(config=config, afm=afm)
33 calibrator.setup_config()
34 deflection = afm.piezo.read_deflection()
35 afm.stepper_approach(target_deflection=deflection + 1e3)
36 k,k_s,data = calibrator.calibrate(filename=filename)
38 for device in devices:
40 print 'k: {:g} +/- {:g}'.format(k, k_s)
43 if __name__ == '__main__':
46 sys.exit(main(sys.argv[1:]))