Ben Wang
a3755b848d
use default constructor for general lockin struct
2019-06-03 12:06:50 -04:00
Ben Wang
f69685df13
refactor lockin mode into separate variables for sensorless spinup, encoder calibration and general (user initiated) mode
2019-05-29 16:26:07 -04:00
Oskar Weigl
9af9ea0bf0
add axis_num member
2019-05-15 23:06:45 -07:00
Oskar Weigl
e94230275e
add python side enum, fix instant timout on 1st iteration
2019-03-18 21:09:46 -07:00
Oskar Weigl
fe0486aa8d
Merge branch 'devel' into pr/Nomadluap/316
2019-03-18 20:24:19 -07:00
Paul Belanger
42384f3ef9
Initial implementation of comms watchdog
...
- Added watchdog timeout property to Axis::Config_t:
axis.config.watchdog_timeout
- Added axis protocol function to feed watchdog timer:
axis.watchdog_feed()
- Axis::run_control_loop now checks for watchdog expiration.
- Ascii protocol: add support for watchdog
- The following ASCII commands now automatically update the watchdog:
p, v, t, c, q
- Added a 'u' command to update the watchdog of a motor without
modifying setpoints.
- Updated ascii protocol documentation to reflect new commands and
effects.
- Updated getting started guide to mention watchdog settings and
functions in protocol.
Please note: due to unavailability of hardware at this time, I have been
unable to test this code on an Odrive.
2019-03-06 14:40:59 -05:00
Oskar Weigl
e3785a2aa2
make index only active when required
2019-02-11 18:42:22 -08:00
Oskar Weigl
f17c96360f
push index and dir search into encoder object
2019-02-11 17:32:48 -08:00
Oskar Weigl
4b998a8b64
add vel argument to constant speed spoolup
2019-02-10 20:12:32 -08:00
Oskar Weigl
2a12c1ac61
Merge branch 'devel' into preroll
2019-02-10 20:11:18 -08:00
Oskar Weigl
a86fb3e59b
add coherent sampling and 1.5 cycle pwm phase advance
2019-02-01 21:01:45 -08:00
Oskar Weigl
15983cc4f0
Thermal current limit with linear derating
2019-01-16 01:19:36 -08:00
Oskar Weigl
b3890ef9ff
add option to keep encoder count from startup value
2018-10-30 01:13:39 -07:00
Oskar Weigl
b09d1e9e25
make step/dir pins configurable
2018-10-22 21:03:13 -07:00
Oskar Weigl
3cb9a8d584
rename axis.enable_step_dir to axis.step_dir_active
2018-10-20 18:24:25 -07:00
Oskar Weigl
d7644daaca
make encoder dir find and overspeed check
2018-10-10 15:35:41 -07:00
Oskar Weigl
8c286f0a6d
Lockin based index search working, clean out old search
2018-10-10 14:23:10 -07:00
Oskar Weigl
b28f453833
explicit state prerequisite checks
2018-10-08 19:59:18 -07:00
Oskar Weigl
3a61b4a6ac
lockin with enc sense working
2018-10-08 19:40:44 -07:00
Oskar Weigl
123d79ee46
hm something causes a hardfault
2018-10-07 23:30:24 -07:00
Oskar Weigl
85540cb1ab
move check_for_errors to inline
2018-10-06 01:39:53 -07:00
Oskar Weigl
ca83df6155
can do lockin spin at constant speed
2018-10-02 01:35:32 -07:00
Oskar Weigl
a65212e2b7
move check_for_errors to inline
2018-10-02 00:44:42 -07:00
Oskar Weigl
e88abb56eb
pull in configs and enum into class for Axis and Motor, for consistency
2018-09-24 22:59:36 -07:00
Oskar Weigl
327ac51abf
rewrite cpp side of trapezoidal trajectory
2018-09-24 22:45:04 -07:00
Unknown
03bf297bd8
Add TrapTraj to Axis and Controller. Add move_to_pos funciton
2018-09-01 23:39:31 -04:00
Unknown
14e917171d
Rename pll_vel to vel_estimate
2018-08-23 22:26:26 -04:00
Oskar Weigl
19e3c779ae
force offset cal after idx search, index now homes axis
2018-08-17 23:39:43 -07:00
Oskar Weigl
5cc1a9546d
implement axis temp reading
2018-07-01 01:11:44 -07:00
Oskar Weigl
5253d1ce89
Made sensorless control configurable, and also smooth vel_setpoint transition
2018-06-23 22:38:48 -07:00
Oskar Weigl
7188e2a1c2
clean state machine level error writing
2018-05-10 14:42:35 -07:00
Oskar Weigl
0d07c71f95
push estimator updates into control loop prefix
2018-05-10 07:33:54 -07:00
Oskar Weigl
a94096b64d
Make subcomponent errors to always set relevant axis error; use do_checks and set_error
2018-05-10 06:56:13 -07:00
Samuel Sadok
1f504d1d99
Merge branch 'sam_testing' into sam_oskar_testing
2018-04-21 23:11:36 -07:00
Samuel Sadok
741a51442f
split communication into multiple files
2018-04-20 23:44:55 -07:00
Oskar Weigl
8407721744
fix external interrupts, step dir now working
2018-04-17 03:21:03 -07:00
Samuel Sadok
44fd8090e1
add overvoltage protection
...
The motor phases will go into floating state as soon as an overvoltage condition is detected.
2018-04-10 15:49:16 -07:00
Samuel Sadok
b4fa53c849
fix encoder offset calibration and error handling
2018-04-10 15:49:00 -07:00
Samuel Sadok
23009d1e93
add overvoltage protection
...
The motor phases will go into floating state as soon as an overvoltage condition is detected.
2018-04-10 00:25:19 -07:00
Samuel Sadok
09f361de61
fix encoder offset calibration and error handling
2018-04-09 19:32:36 -07:00
Samuel Sadok
ae9a208f1f
turn error enums into flags
2018-04-06 13:12:39 -07:00
Samuel Sadok
ab698a9dce
turn error enums into flags
2018-04-05 22:27:20 -07:00
Samuel Sadok
b8b483c9d6
Firmware hardening
...
- check return code of enqueue_modulation_timings
- wrap all hardware access to safety critical hardware timer registers in safety_critical_ sections. These functions like the armed-ness of each PWM output to a corresponding armed state that can only be set at start or by the user
- ensure NaN in any variables doesn't cause unpredictable behavior on the safety critical PWM outputs
2018-03-30 22:32:07 -07:00
Samuel Sadok
69e1b5331a
make encoder index search and encoder offset calibration independent
...
These two activities are now separate states of the axis state machine.
Each of them can be invoked independently at any time (provided the motor is calibrated).
2018-03-23 17:09:52 -07:00
Samuel Sadok
2bf05b303a
rename Axis::ERROR_BAD_VOLTAGE
2018-03-13 14:35:52 -07:00
Samuel Sadok
6131519b25
increase axis thread stack size to 2k
2018-03-09 16:45:38 -08:00
Samuel Sadok
9486f9ed15
make stuff working again, improve state machine design, add underscore to member names
2018-03-09 13:37:07 -08:00
Samuel Sadok
97aedd46e9
Sanitize error handling and state machine, move common stuff to odrive_main.hpp
2018-03-04 15:49:48 -08:00
Samuel Sadok
b32c87df5a
[TEMP] refactoring: compile works, motors initialize as usual
2018-03-02 22:03:24 -08:00
Oskar Weigl
2c8c712eda
Merge branch 'devel' into sam_nvm
2018-02-25 23:42:14 -08:00