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
Oskar Weigl
368b4d5cbb
add axis to config
2018-02-24 00:24:47 -08:00
Oskar Weigl
72efd17f31
implement dc bus brownout check
2018-02-19 00:32:01 -08:00
Oskar Weigl
1f8bba475e
index searching works
2018-01-26 22:10:16 -08:00
Oskar Weigl
9b7d201276
manual idx search on M1 working, not on M0
2018-01-26 21:02:58 -08:00
Oskar Weigl
13deca5394
Keep rotor estimation up to date while idling
2018-01-26 19:15:48 -08:00
Oskar Weigl
5dd1d01688
add comments
2017-11-08 22:15:16 -08:00