Commit Graph
115 Commits
Author SHA1 Message Date
Unknown ffbf24ff31 Merge branch 'devel' into feature/CAN 2018-10-28 18:37:49 -04: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
Unknown a2ebb7085c Merge branch 'devel' into Endstops 2018-10-06 13:33:21 -04:00
Unknown 82c21c6a03 Merge branch 'devel' into feature/CAN 2018-10-06 13:32:44 -04:00
Oskar Weigl 85540cb1ab move check_for_errors to inline 2018-10-06 01:39:53 -07:00
Unknown 4fa09d6bbc Get CAN_SIMPLE to compile 2018-10-05 22:20:04 -04: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
Unknown dc693ebd9c Merge branch 'devel' into Endstops 2018-09-27 20:42:30 -04: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 f7f2452973 Add endstop debouncing 2018-09-08 18:57:25 -04:00
Unknown 9b0bc6f840 Make Endstops objects instead of structs in Axis 2018-09-08 18:25:51 -04:00
Unknown 21bdf453c3 Fix bugs in homing by actually testing and using the debugger... 2018-09-02 01:59:35 -04:00
Unknown 03bf297bd8 Add TrapTraj to Axis and Controller. Add move_to_pos funciton 2018-09-01 23:39:31 -04:00
Unknown dd74eed54b Add <axis>.startup_homing configuration value 2018-08-29 22:49:11 -04:00
Unknown 965a42a928 Adjust pullup and interrupt mode based on endstop polarity. 2018-08-28 23:33:11 -04:00
Unknown 725f19dff0 Move endstop polarity check to avoid flipping a disabled endstop 2018-08-28 23:12:53 -04:00
Unknown ccfdddbc80 Add is_active_high config var to endstops 2018-08-28 23:12:53 -04:00
Unknown ef954aa84d Add endstop pressed errors in closed_loop_control mode 2018-08-28 23:12:53 -04:00
Unknown 41a590773f Add axis homing function and AXIS state 2018-08-28 23:12:53 -04:00
Unknown b96b4465ec Add setup and callback functions for endstops 2018-08-28 23:12:53 -04:00
Unknown 92fe075b9e Fix existing calls to GPIO_Subscribe 2018-08-28 23:12:53 -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