High performance motor control
fw_version_[...]
properties.make write_otp
command to burn the board version onto the ODrive's one-time programmable memory. If you have an ODrive v3.4 or older, you should run this once for a better firmware update user experience in the future. Run the command without any options for more details. Once set, the board version is exposed through the hw_version_[...]
properties.tools/setup.py
for details.run_tests.py
<odrv>.system_stats
explore_odrive.py
, liveplotter.py
, drv_status.py
and rate_test.py
have been merged into one single odrivetool
script. Running this script without any arguments provides the shell that explore_odrive.py
used to provide.odrivetool
have changed compared to the original explore_odrive.py
. See odrivetool --help
for more details.odrivetool
(previously explore_odrive.py
) now supports controlling multiple ODrives concurrently (odrv0
, odrv1
, ...)odrivetool
shell when devices get disconnected and reconnectedodrivetool liveplotter
, formerly liveplotter.py
) does no longer steal focus and closes as expectedodrivetool backup-config
and odrivetool restore-config
odrivetool
shell by typing start_liveplotter(lambda: odrv0.motor0.encoder.encoder_state)
)make erase_config
to erase the configuration with an STLink (the configuration can also be erased from within explore_odrive.py, using my_odrive.erase_configuration()
)tup.config
file instead of editing source files. Make sure you set your board version correctly. See here for details.Firmware
. If you used tup before, go to Firmware
and run rm -rd ../.tup; rm -rd build/*; make
.UUID_0
, UUID_1
and UUID_2
from USB protocol. Use serial_number
instead.(lsusb -d 1209:0d32 -v; lsusb -d 0483:df11 -v) | grep iSerial
to find your ODrive's serial number. However with this release's firmware you need to run (lsusb -d 1209:0d33 -v; lsusb -d 0483:df11 -v) | grep iSerial
instead (that is 0d33 instead of 0d32).resistance_calib_max_voltage
parameter