massCfg = { # uart configuration variables 'uart': { 'name': 'MassServo', 'uart': 'COM8', 'baud': 9600, # bps 'timeout': 0.05, # serial port read/write timeout 'eol': '\x03\r\n' # end of line char }, # EZServo configuration variables 'EZServo': { 'pidW': '8000', # count (w) Proportional gain 'pidX': '100', # count (x) Integral gain 'pidY': '60000', # count (y) Differential gain 'mode': '1', # n/a (N) EZServo mode - encoder with no index 'accel': '20000', # n/a (L) Encoder ticks / 32.768 per second squared 'velocity': '280000', # n/a (V) Encoder ticks / 32.768 per second (should be in units of counts per second?) 'currLimit': '10', # % (m) Percent of current allowed. 100% = 5A. 'overloadTimeout': '1000', # ms (u) ms until an overload is reported 'limitHi': 950000, # count High physical limit for mass motor controller 'limitLo': -950000, # count Low physical limit for mass motor controller 'totalTks': 700000, # count Total encoder ticks for full mass shift travel 'powerOnTimeout': 0.5, # second Time to allow system to power up before commanding 'homingTimeout': 60 }, # MassServo configuration variables 'tksPerMM': 10901.811, # count/mm Number of ticks for one rotation (1 mm of travel) 'deviationDistance': 0.05 # mm Deviation allowed between expected and actual }