Releases: odriverobotics/ODrive
Releases · odriverobotics/ODrive
Firmware version 0.4.10
Fixed
- Index search would trigger in the wrong place.
Firmware version 0.4.9
Added
- A release target for ODrive v3.6
- Communication watchdog feature.
encoder.set_linear_count(count)
function.- Configurable encoder offset calibration distance and speed:
calib_scan_distance
andcalib_scan_omega
- Encoder offset calibration debug variable
calib_scan_response
- Lock-in drive feature
- Script to enable using a hall signal as index edge.
Changed
- Encoder index search now based on the new lock-in drive feature
Fixed
- Encoder index interrupts now disabled when not searching
Firmware version 0.4.8
Added
dump_errors()
utility function in odrivetool to dump, decode and optionally clear errors.f
command to ascii protocol to get encoder position and velocity feedback.q
command to ascii protocol. It is like the oldp
command, but velocity and current mean limits, not feed-forward.ss
,se
,sr
commands to ascii protocol, for save config, erase config and reboot.move_incremental
function for relative trajectory moves.encoder.config.ignore_illegal_hall_state
option.encoder.config.enable_phase_interpolation
option. Setting to false may reduce jerky pulsations at low speed when using hall sensor feedback.- Analog input. Used the same way as the PWM input mappings.
- Voltage limit soft clamping instead of ERROR_MODULATION_MAGNITUDE in gimbal motor closed loop.
- Thermal current limit with linear derating.
Fixed
- Added required 1.5 cycle phase shift between ADC and PWM, lack thereof caused unstable current controller at high eRPM.
Firmware version 0.4.7
[0.4.7] - 2018-11-28
Added
- Overspeed fault
- Current sense saturation fault.
- Supress startup transients by sampling encoder estimate into position setpoint when entering closed loop control.
- Make step dir gpio pins configurable.
- Configuration variable
encoder.config.zero_count_on_find_idx
, true by default. Set to false to leave the initial encoder count to be where the axis was at boot. - Circular position setpoint mode: position setpoints wrapped [0, cpr). Useful for infinite incremental position control.
- Velocity setpoint ramping. Use velocity control mode, and set
controller.vel_ramp_enable
to true. This will rampcontroller.vel_setpoint
towardscontroller.vel_ramp_target
at a ramp rate ofcontroller.config.vel_ramp_rate
.
Changed
- Increased switching frequency from around 8kHz to 24kHz. Control loops still run at 8kHz.
- Renamed
axis.enable_step_dir
toaxis.step_dir_active
- New process for working with STM32CubeMX.
Fixed
- Would get ERROR_CONTROL_DEADLINE_MISSED along with every ERROR_PHASE_RESISTANCE_OUT_OF_RANGE.
- ODrive tool can now run interactive nested scripts with "%run -i script.py"
Firmware version 0.4.6
[0.4.6] - 2018-10-07
Fixed
- Broken printing of floats on ascii protocol
Firmware version 0.4.5
[0.4.5] - 2018-10-06
Added
- Trapezoidal Trajectory Planner
- Hook to execute protocol property written callback
- -Wdouble-promotion warning to compilation
Changed
- Make python tools compatible with python 2.7 (so it can be used with ROS)
- Threading API constructor can't take the daemon parameter, so all thread creation had to be expanded out.
TimeoutError
isn't defined, but it makes for more readable code, so I defined it as an OSError subclass.ModuleNotFoundError
is replaced by the older ImportError.- Print function imported from future
- Using new hooks to calculate:
motor.config.current_control_bandwidth
- This deprecates
motor.set_current_control_bandwidth()
- This deprecates
encoder.config.bandwidth
- Default value for
motor.resistance_calib_max_voltage
changed to 2.0
Fixed
- An issue where the axis state machine would jump in and out of idle when there is an error
- There is a bug in the arm fast math library, which gives spikes in the output of arm_cos_f32 for input values close to -pi/2. We fixed the bug locally, and hence are using "our_arm_cos_f32".
Firmware version 0.4.4
[0.4.4] - 2018-09-18
Fixed
- Serious reliability issue with USB communication where packets on Native and the CDC interface would collide with each other.
Firmware version 0.4.3
[0.4.3] - 2018-08-30
Added
- Encoder position count "homed" to zero when index is found.
Changed
- We now enforce encoder offset calibration must happen after index is found (if using index)
- Renaming of the velocity estimate
pll_vel
->vel_estimate
. - Hardcoded maximum inductance now 2500 uH.
Fixed
- Once you got an axis error
ERROR_INVALID_STATE
you could never clear it - Char to int conversion to read motornum on arduino example
Firmware version 0.4.2
[0.4.2] - 2018-07-04
Added
- Hall sensor feedback
- Configurable RC PWM input
- Ability to read axis FET temperature
- Config settings for:
motor.config.requested_current_range
motor.config.current_control_bandwidth
andmotor.set_current_control_bandwidth
. Latter required to invoke gain recalculation.encoder.config.bandwidth
Firmware version 0.4.1
[0.4.1] - 2018-07-01
Fixed
- Encoder errors would show up as Axis error
ERROR_MOTOR_FAILED
instead ofERROR_ENCODER_FAILED
. - Various pip install dependencies
- Ability for python tools threads to quit properly
- dfuse error prints now python3 compatible