Ascii command for calibration & closed loop?

What are the ascii commands to run the calibration sequence and closed loop control?

I tried:

w axis0.requested_state AXIS_STATE_FULL_CALIBRATION_SEQUENCE

with no success.

Thanks!

I would suggest to take a look at how it’s done in the Arduino library.

1 Like

I figured it out:
Ascii for full calibration is:

w axis0.requested_state 3

and for closed loop:

w axis0.requested_state 8

the arduino code lays it out:

public:
    enum AxisState_t {
        AXIS_STATE_UNDEFINED = 0,           //<! will fall through to idle
        AXIS_STATE_IDLE = 1,                //<! disable PWM and do nothing
        AXIS_STATE_STARTUP_SEQUENCE = 2, //<! the actual sequence is defined by the config.startup_... flags
        AXIS_STATE_FULL_CALIBRATION_SEQUENCE = 3,   //<! run all calibration procedures, then idle
        AXIS_STATE_MOTOR_CALIBRATION = 4,   //<! run motor calibration
        AXIS_STATE_SENSORLESS_CONTROL = 5,  //<! run sensorless control
        AXIS_STATE_ENCODER_INDEX_SEARCH = 6, //<! run encoder index search
        AXIS_STATE_ENCODER_OFFSET_CALIBRATION = 7, //<! run encoder offset calibration
        AXIS_STATE_CLOSED_LOOP_CONTROL = 8  //<! run closed loop control
    };
1 Like

Hi did you figure out how to full calibration sequence and closed loop control in python? I am trying the following but does not work

ser.write(“w axis0.requested_state 3 \n”.encode(‘ascii’)) #calibration
ser.write(“w axis0.requested_state 8 \n”.encode(‘ascii’)) #closed loop

Figured it out! The above does work but apparently you only need to run the closed loop. When I ran both commands, it did not work.