Skip to content

Instantly share code, notes, and snippets.

@madcowswe
Last active June 19, 2018 04:07
Show Gist options
  • Save madcowswe/a03984c5ff101bdb2994a9f43adab818 to your computer and use it in GitHub Desktop.
Save madcowswe/a03984c5ff101bdb2994a9f43adab818 to your computer and use it in GitHub Desktop.
Connected to ODrive 376E36503137 as odrv0
In [1]: odrv0
Out[1]:
vbus_voltage = 12.1695556640625 (float)
serial_number = 376E36503137 (int)
hw_version_major = 3 (int)
hw_version_minor = 5 (int)
hw_version_variant = 48 (int)
fw_version_major = 0 (int)
fw_version_minor = 4 (int)
fw_version_revision = 0 (int)
fw_version_unreleased = 0 (int)
user_config_loaded = False (bool)
brake_resistor_armed = True (bool)
system_stats:
uptime = 53864 (int)
min_heap_space = 18264 (int)
min_stack_space_axis0 = 7868 (int)
min_stack_space_axis1 = 7868 (int)
min_stack_space_comms = 8468 (int)
min_stack_space_usb = 1332 (int)
min_stack_space_uart = 3932 (int)
min_stack_space_usb_irq = 1828 (int)
min_stack_space_startup = 564 (int)
usb: ...
i2c: ...
config:
brake_resistance = 2.0 (float)
enable_uart = True (bool)
enable_i2c_instead_of_can = False (bool)
enable_ascii_protocol_on_usb = True (bool)
dc_bus_undervoltage_trip_level = 8.0 (float)
dc_bus_overvoltage_trip_level = 51.840003967285156 (float)
axis0:
error = 0x0000 (int)
enable_step_dir = False (bool)
current_state = 1 (int)
requested_state = 0 (int)
loop_counter = 430956 (int)
config: ...
motor: ...
controller: ...
encoder: ...
sensorless_estimator: ...
axis1:
error = 0x0000 (int)
enable_step_dir = False (bool)
current_state = 1 (int)
requested_state = 0 (int)
loop_counter = 430957 (int)
config: ...
motor: ...
controller: ...
encoder: ...
sensorless_estimator: ...
can:
node_id = 0 (int)
TxMailboxCompleteCallbackCnt = 0 (int)
TxMailboxAbortCallbackCnt = 0 (int)
received_msg_cnt = 0 (int)
received_ack = 0 (int)
unexpected_errors = 0 (int)
unhandled_messages = 0 (int)
test_property = 0 (int)
test_function(delta: int)
get_oscilloscope_val(index: int)
get_adc_voltage(gpio: int)
save_configuration()
erase_configuration()
reboot()
enter_dfu_mode()
In [2]: odrv0.config
Out[2]:
brake_resistance = 2.0 (float)
enable_uart = True (bool)
enable_i2c_instead_of_can = False (bool)
enable_ascii_protocol_on_usb = True (bool)
dc_bus_undervoltage_trip_level = 8.0 (float)
dc_bus_overvoltage_trip_level = 51.840003967285156 (float)
In [3]: odrv0.axis0
Out[3]:
error = 0x0000 (int)
enable_step_dir = False (bool)
current_state = 1 (int)
requested_state = 0 (int)
loop_counter = 512585 (int)
config:
startup_motor_calibration = False (bool)
startup_encoder_index_search = False (bool)
startup_encoder_offset_calibration = False (bool)
startup_closed_loop_control = False (bool)
startup_sensorless_control = False (bool)
enable_step_dir = False (bool)
counts_per_step = 2.0 (float)
ramp_up_time = 0.4000000059604645 (float)
ramp_up_distance = 12.566370964050293 (float)
spin_up_current = 10.0 (float)
spin_up_acceleration = 400.0 (float)
spin_up_target_vel = 400.0 (float)
motor:
error = 0x0000 (int)
armed_state = 0 (int)
is_calibrated = False (bool)
current_meas_phB = 0.13321948051452637 (float)
current_meas_phC = -0.08658409118652344 (float)
DC_calib_phB = -2.3084352016448975 (float)
DC_calib_phC = -2.2903664112091064 (float)
phase_current_rev_gain = 0.02500000037252903 (float)
current_control: ...
gate_driver: ...
timing_log: ...
config: ...
controller:
pos_setpoint = 0.0 (float)
vel_setpoint = 0.0 (float)
vel_integrator_current = 0.0 (float)
current_setpoint = 0.0 (float)
config: ...
set_pos_setpoint(pos_setpoint: float, vel_feed_forward: float, current_feed_forward: float)
set_vel_setpoint(vel_setpoint: float, current_feed_forward: float)
set_current_setpoint(current_setpoint: float)
start_anticogging_calibration()
encoder:
error = 0x0000 (int)
is_ready = False (bool)
index_found = False (bool)
shadow_count = 0 (int)
count_in_cpr = 0 (int)
offset = 0 (int)
interpolation = 0.5 (float)
phase = 0.002684466540813446 (float)
pos_estimate = 0.0 (float)
pos_cpr = 0.0 (float)
hall_state = 2 (int)
pll_vel = 0.0 (float)
pll_kp = 2000.0 (float)
pll_ki = 1000000.0 (float)
config: ...
sensorless_estimator:
error = 0x0000 (int)
phase = nan (float)
pll_pos = nan (float)
pll_vel = nan (float)
pll_kp = 2000.0 (float)
pll_ki = 1000000.0 (float)
In [4]: odrv0.axis0.motor
Out[4]:
error = 0x0000 (int)
armed_state = 0 (int)
is_calibrated = False (bool)
current_meas_phB = -0.06446528434753418 (float)
current_meas_phC = -0.05013418197631836 (float)
DC_calib_phB = -2.3122880458831787 (float)
DC_calib_phC = -2.2864367961883545 (float)
phase_current_rev_gain = 0.02500000037252903 (float)
current_control:
p_gain = 0.0 (float)
i_gain = nan (float)
v_current_control_integral_d = 0.0 (float)
v_current_control_integral_q = 0.0 (float)
Ibus = 0.0 (float)
final_v_alpha = 0.0 (float)
final_v_beta = 0.0 (float)
Iq_setpoint = 0.0 (float)
Iq_measured = 0.0 (float)
max_allowed_current = 71.99999237060547 (float)
gate_driver:
drv_fault = 0 (int)
timing_log:
TIMING_LOG_GENERAL = 0 (int)
TIMING_LOG_ADC_CB_I = 1403 (int)
TIMING_LOG_ADC_CB_DC = 10965 (int)
TIMING_LOG_MEAS_R = 0 (int)
TIMING_LOG_MEAS_L = 0 (int)
TIMING_LOG_ENC_CALIB = 0 (int)
TIMING_LOG_IDX_SEARCH = 0 (int)
TIMING_LOG_FOC_VOLTAGE = 0 (int)
TIMING_LOG_FOC_CURRENT = 0 (int)
config:
pre_calibrated = False (bool)
pole_pairs = 7 (int)
calibration_current = 10.0 (float)
resistance_calib_max_voltage = 1.0 (float)
phase_inductance = 0.0 (float)
phase_resistance = 0.0 (float)
direction = 1 (int)
motor_type = 0 (int)
current_lim = 10.0 (float)
requested_current_range = 70.0 (float)
In [5]: odrv0.axis0.encoder
Out[5]:
error = 0x0000 (int)
is_ready = False (bool)
index_found = False (bool)
shadow_count = 0 (int)
count_in_cpr = 0 (int)
offset = 0 (int)
interpolation = 0.5 (float)
phase = 0.002684466540813446 (float)
pos_estimate = 0.0 (float)
pos_cpr = 0.0 (float)
hall_state = 2 (int)
pll_vel = 0.0 (float)
pll_kp = 2000.0 (float)
pll_ki = 1000000.0 (float)
config:
mode = 0 (int)
use_index = False (bool)
pre_calibrated = False (bool)
idx_search_speed = 10.0 (float)
cpr = 8192 (int)
offset = 0 (int)
offset_float = 0.0 (float)
calib_range = 0.019999999552965164 (float)
In [6]: odrv0.axis0.controller
Out[6]:
pos_setpoint = 0.0 (float)
vel_setpoint = 0.0 (float)
vel_integrator_current = 0.0 (float)
current_setpoint = 0.0 (float)
config:
control_mode = 3 (int)
pos_gain = 20.0 (float)
vel_gain = 0.0005000000237487257 (float)
vel_integrator_gain = 0.0010000000474974513 (float)
vel_limit = 20000.0 (float)
set_pos_setpoint(pos_setpoint: float, vel_feed_forward: float, current_feed_forward: float)
set_vel_setpoint(vel_setpoint: float, current_feed_forward: float)
set_current_setpoint(current_setpoint: float)
start_anticogging_calibration()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment