- Added thermal errors to dump_errors call in odrivetool.
- Added function in odrivetool to set thermistor coefficients based on thermistor specs.
- Added documentation for users on how to connect and configure their own thermistors.
This speeds up the build process in many cases because this file is
refreshed on every build and by making it a code file much less off the
build graph depends on it.
When writing to uint8_t properties or equivalently
sized enum properties, the ASCII protocol handler would
write beyond the variable itself and overwrite adjacent
memory.
This manifested for instance in the following:
r axis0.controller.config.input_mode 1
w axis0.controller.config.control_mode 3
r axis0.controller.config.input_mode 0
This boils down to what appears to be misbehavior of
`sscanf`.
This fix adds an intermediate union to provide a safe
memory area for the `sscanf` call.
When writing to uint8_t properties or equivalently
sized enum properties, the ASCII protocol handler would
write beyond the variable itself and overwrite adjacent
memory.
This manifested for instance in the following:
r axis0.controller.config.input_mode 1
w axis0.controller.config.control_mode 3
r axis0.controller.config.input_mode 0
This boils down to what appears to be misbehavior of
`sscanf`.
This fix adds an intermediate union to provide a safe
memory area for the `sscanf` call.
Caching doesn't work well with the tup build system as tup acts offended
when a build task writes files outside of tup's root directory.
Particularly on Windows this manifests in errors like:
tup error: File '[...]/__pycache__/unicode_escape.cpython-38.pyc' was written to, but is not in .tup/db. You probably should specify it as an output
The option -B prevents python from using byte code cache.
Added torque_ramp_rate to controller config.
Changed INPUT_MODE_CURRENT_RAMP to INPUT_MODE_TORQUE_RAMP for controller input mode enum.
Torque limits and current limits are now observed seperately. Torque limit is in the controller, current limit is in the motor object.
Fixed torque -> current calculation in motor_update to handle ACIM motors.
changed all instances of current_setpoint to torque_setpoint
modified limitVel() to use torque instead of current units
removed effective_current_lim, added effective_torque_lim()
added torque_lim to motor config struct and interface file
The following documentation is moved to odrive-interfaces.yaml:
- Error flag documentation from troubleshooting.md
- Axis state documentation from commands.md
- Input mode documentation from input_modes.md
This adds a jinja template to generate markdown files
(with lots of HTML mixed in) from YAML using the existing
interface_generator.py script.
The docs website layout files are modified to incorporate the
new documentation.
While previously Github Pages was automatically running
Jekyll on the docs folder, this commit adds a custom Github
workflow to compile and deploy the website to facilitate
the custom markdown generation step before Jekyll runs.
Python 3.5 is the default version of Ubuntu 16.04 which is what our
Travis CI runs on.
- Python <3.6 does not keep the order of normal dicts.
- Python 3.5 does not use UTF-8 encoding for files by default.
Windows 10 includes since version 1903 a python stub which is supposed
to open the MS Store if python is invoked but not installed. However
when invoked from tup, the stub simply hangs without output.
With this change we first check the python version (something that the
Windows stub does not interer with) before we invoke it.