API REFERENCE#
protocol_hash#
ID: 0 Type: uint32
The Avlos protocol hash.
uid#
ID: 1 Type: uint32
The unique device ID, unique to each PAC55xx chip produced.
fw_version#
ID: 2 Type: str
The firmware version.
hw_revision#
ID: 3 Type: uint32
The hardware revision.
Vbus#
ID: 4 Type: float Units: volt
The measured bus voltage.
Ibus#
ID: 5 Type: float Units: ampere
The estimated bus current. Only estimates current drawn by motor.
power#
ID: 6 Type: float Units: watt
The estimated power. Only estimates power drawn by motor.
temp#
ID: 7 Type: float Units: degree_Celsius
The internal temperature of the PAC55xx MCU.
calibrated#
ID: 8 Type: bool
Whether the system has been calibrated.
errors#
ID: 9 Type: uint8
Any system errors, as a bitmask
Flags: - UNDERVOLTAGE - DRIVER_FAULT - CHARGE_PUMP_FAULT_STAT - CHARGE_PUMP_FAULT - DRV10_DISABLE - DRV32_DISABLE - DRV54_DISABLE
save_config() -> void#
ID: 10 Return Type: void
Save configuration to non-volatile memory.
erase_config() -> void#
ID: 11 Return Type: void
Erase the config stored in non-volatile memory and reset the device.
reset() -> void#
ID: 12 Return Type: void
Reset the device.
enter_dfu() -> void#
ID: 13 Return Type: void
Enter DFU mode.
scheduler.errors#
ID: 14 Type: uint8
Any scheduler errors, as a bitmask
Flags: - CONTROL_BLOCK_REENTERED
controller.state#
ID: 15 Type: uint8
The state of the controller.
controller.mode#
ID: 16 Type: uint8
The control mode of the controller.
controller.warnings#
ID: 17 Type: uint8
Any controller warnings, as a bitmask
Flags: - VELOCITY_LIMITED - CURRENT_LIMITED - MODULATION_LIMITED
controller.errors#
ID: 18 Type: uint8
Any controller errors, as a bitmask
Flags: - CURRENT_LIMIT_EXCEEDED
controller.position.setpoint#
ID: 19 Type: float Units: tick
The position setpoint.
controller.position.p_gain#
ID: 20 Type: float
The proportional gain of the position controller.
controller.velocity.setpoint#
ID: 21 Type: float Units: tick / second
The velocity setpoint.
controller.velocity.limit#
ID: 22 Type: float Units: tick / second
The velocity limit.
controller.velocity.p_gain#
ID: 23 Type: float
The proportional gain of the velocity controller.
controller.velocity.i_gain#
ID: 24 Type: float
The integral gain of the velocity controller.
controller.velocity.deadband#
ID: 25 Type: float Units: tick
The deadband of the velocity integrator. A region around the position setpoint where the velocity integrator is not updated.
controller.velocity.increment#
ID: 26 Type: float
Max velocity setpoint increment (ramping) rate. Set to 0 to disable.
controller.current.Iq_setpoint#
ID: 27 Type: float Units: ampere
The Iq setpoint.
controller.current.Id_setpoint#
ID: 28 Type: float Units: ampere
The Id setpoint.
controller.current.Iq_limit#
ID: 29 Type: float Units: ampere
The Iq limit.
controller.current.Iq_estimate#
ID: 30 Type: float Units: ampere
The Iq estimate.
controller.current.bandwidth#
ID: 31 Type: float Units: hertz
The current controller bandwidth.
controller.current.Iq_p_gain#
ID: 32 Type: float
The current controller proportional gain.
controller.current.max_Ibus_regen#
ID: 33 Type: float Units: ampere
The max current allowed to be fed back to the power source before flux braking activates.
controller.current.max_Ibrake#
ID: 34 Type: float Units: ampere
The max current allowed to be dumped to the motor windings during flux braking. Set to zero to deactivate flux braking.
controller.voltage.Vq_setpoint#
ID: 35 Type: float Units: volt
The Vq setpoint.
calibrate() -> void#
ID: 36 Return Type: void
Calibrate the device.
idle() -> void#
ID: 37 Return Type: void
Set idle mode, disabling the driver.
position_mode() -> void#
ID: 38 Return Type: void
Set position control mode.
velocity_mode() -> void#
ID: 39 Return Type: void
Set velocity control mode.
current_mode() -> void#
ID: 40 Return Type: void
Set current control mode.
set_pos_vel_setpoints(pos_setpoint, vel_setpoint) -> float#
ID: 41 Return Type: float
Set the position and velocity setpoints in one go, and retrieve the position estimate
comms.can.rate#
ID: 42 Type: uint32
The baud rate of the CAN interface.
comms.can.id#
ID: 43 Type: uint32
The ID of the CAN interface.
motor.R#
ID: 44 Type: float Units: ohm
The motor Resistance value.
motor.L#
ID: 45 Type: float Units: henry
The motor Inductance value.
motor.pole_pairs#
ID: 46 Type: uint8
The motor pole pair count.
motor.type#
ID: 47 Type: uint8
The type of the motor. Either high current or gimbal.
Options: - HIGH_CURRENT - GIMBAL
motor.offset#
ID: 48 Type: float
User-defined offset of the motor.
motor.direction#
ID: 49 Type: int8
User-defined direction of the motor.
motor.calibrated#
ID: 50 Type: bool
Whether the motor has been calibrated.
motor.I_cal#
ID: 51 Type: float Units: ampere
The calibration current.
motor.errors#
ID: 52 Type: uint8
Any motor/calibration errors, as a bitmask
Flags: - PHASE_RESISTANCE_OUT_OF_RANGE - PHASE_INDUCTANCE_OUT_OF_RANGE - INVALID_POLE_PAIRS
encoder.position_estimate#
ID: 53 Type: float Units: tick
The filtered encoder position estimate.
encoder.velocity_estimate#
ID: 54 Type: float Units: tick / second
The filtered encoder velocity estimate.
encoder.type#
ID: 55 Type: uint8
The encoder type. Either INTERNAL or HALL.
Options: - INTERNAL - HALL
encoder.bandwidth#
ID: 56 Type: float Units: hertz
The encoder observer bandwidth.
encoder.calibrated#
ID: 57 Type: bool
Whether the encoder has been calibrated.
encoder.errors#
ID: 58 Type: uint8
Any encoder errors, as a bitmask
Flags: - CALIBRATION_FAILED - READING_UNSTABLE
traj_planner.max_accel#
ID: 59 Type: float Units: tick / second
The max allowed acceleration of the generated trajectory.
traj_planner.max_decel#
ID: 60 Type: float Units: tick / second ** 2
The max allowed deceleration of the generated trajectory.
traj_planner.max_vel#
ID: 61 Type: float Units: tick / second
The max allowed cruise velocity of the generated trajectory.
traj_planner.t_accel#
ID: 62 Type: float Units: second
In time mode, the acceleration time of the generated trajectory.
traj_planner.t_decel#
ID: 63 Type: float Units: second
In time mode, the deceleration time of the generated trajectory.
traj_planner.t_total#
ID: 64 Type: float Units: second
In time mode, the total time of the generated trajectory.
move_to(pos_setpoint) -> void#
ID: 65 Return Type: void
Move to target position respecting velocity and acceleration limits.
move_to_tlimit(pos_setpoint) -> void#
ID: 66 Return Type: void
Move to target position respecting time limits for each sector.
traj_planner.errors#
ID: 67 Type: uint8
Any errors in the trajectory planner, as a bitmask
Flags: - INVALID_INPUT - VCRUISE_OVER_LIMIT
homing.velocity#
ID: 68 Type: float Units: tick / second
The velocity at which the motor performs homing.
homing.max_homing_t#
ID: 69 Type: float Units: second
The maximum time the motor is allowed to travel before homing times out and aborts.
homing.retract_dist#
ID: 70 Type: float Units: tick
The retraction distance the motor travels after the endstop has been found.
homing.warnings#
ID: 71 Type: uint8
Any homing warnings, as a bitmask
Flags: - HOMING_TIMEOUT
homing.stall_detect.velocity#
ID: 72 Type: float Units: tick / second
The velocity below which (and together with stall_detect.delta_pos) stall detection mode is triggered.
homing.stall_detect.delta_pos#
ID: 73 Type: float Units: tick
The velocity below which (and together with stall_detect.delta_pos) stall detection mode is triggered.
homing.stall_detect.t#
ID: 74 Type: float Units: second
The time to remain in stall detection mode before the motor is considered stalled.
home() -> void#
ID: 75 Return Type: void
Perform the homing operation.
watchdog.enabled#
ID: 76 Type: bool
Whether the watchdog is enabled or not.
watchdog.triggered#
ID: 77 Type: bool
Whether the watchdog has been triggered or not.
watchdog.timeout#
ID: 78 Type: float Units: second
The watchdog timeout period.