Commit Graph
62 Commits
Author SHA1 Message Date
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