Commit Graph
1467 Commits
Author SHA1 Message Date
Oskar Weigl f59c80515b add MOTOR_ERROR_MODULATION_IS_NAN 2020-08-23 13:38:23 -07:00
PAJohnson f52c68b3a8 Added FF terms for current control and config variables to enable them. 2020-08-21 16:52:27 -04:00
Samuel Sadok 8e15dab857 fix assert fault when config.enable_uart0 == false 2020-08-21 12:40:18 +02:00
Samuel Sadok ebec752721 Merge remote-tracking branch 'origin/devel' into lowlevel-refactor 2020-08-19 11:51:08 +02:00
Samuel Sadok d021945686 fix compilation on GCC <= 7.x 2020-08-19 11:38:38 +02:00
Samuel Sadok c0b1d5a0e7 annotate GPIO list 2020-08-19 11:32:22 +02:00
Samuel Sadok 6fa76e1de8 increase UART polling frequency from 1kHz to 8kHz 2020-08-07 15:56:38 +02:00
Oskar Weigl c4459463b4 Merge pull request #447 from madcowswe/ascii_cleanup
Ascii Protocol Cleanup
2020-08-05 16:06:49 -07:00
Oskar Weigl 677133d85b fix incorrect step_cb 2020-08-05 11:54:39 -07:00
Samuel Sadok aaab9490df Merge branch 'devel' into ascii_cleanup 2020-08-05 19:08:23 +02:00
Samuel Sadok b56f7c1ff2 harmonize coding style 2020-08-05 18:52:25 +02:00
sgilbert182 4c6fe56a5d Split up menu function to individual functions, changed if else tree to switch statement. 2020-08-05 18:40:41 +02:00
Samuel Sadok 138ccaec34 optimize Stm32Gpio.read() 2020-08-05 17:04:14 +02:00
Samuel Sadok 8d144bd944 Merge branch 'devel' into lowlevel-refactor 2020-08-05 16:28:17 +02:00
Oskar Weigl 3760c7bc84 Merge branch 'rc-v0.5.0' into devel 2020-08-03 20:16:51 -07:00
PAJohnson bf15485b3d Merge pull request #430 from madcowswe/counts_to_rads
Counts to radians
The name is misleading - this PR changes the units of multiple variables from counts and counts/s to turns and turns/s. The controller inputs and gains are now encoder-agnostic.
2020-07-31 18:17:18 -04:00
PAJohnson 611d2d5021 Better style for null pointer checks 2020-07-31 18:09:52 -04:00
PAJohnson 5beb3faa83 Added null pointer checks to axis.cpp for pos_estimate_X
Fixed formatting
Updated CHANGELOG.md
2020-07-31 17:52:43 -04:00
Unknown 78bd5fa6e6 Merge branch 'rls_spi' into rc-v0.5.0 2020-07-31 15:35:11 -04:00
Unknown d996f02df1 Add missing input_pos_updated call on transition to closed loop 2020-07-31 15:35:05 -04:00
Samuel Sadok e1ffdbd33d fix Anaconda Python detection on Windows
Anaconda prints version information on stderr instead of stdout.
2020-07-31 10:50:06 +02:00
Samuel Sadok c886b49dd1 code hardening of SPI arbiter 2020-07-30 17:42:13 +02:00
Samuel Sadok b6ac7c306a rename config push/pop to write/read, fix order 2020-07-30 17:14:30 +02:00
Samuel Sadok 5e61c5a88a turn GPIO feature matrix into sparse matrix 2020-07-30 17:14:30 +02:00
PAJohnson b63983ef5c Fixed units for can_simple protocol and updated can HWIL test 2020-07-29 20:46:26 -04:00
PAJohnson e0f9665d2c Fixed units for inertia 2020-07-28 21:25:30 -04:00
PAJohnson b0700ef371 Documentation fixes for unit change
Fixed naming, docs, and test for CAN protocol - set trap traj a per css is now set trap traj inertia
2020-07-28 20:49:55 -04:00
Unknown 4787ca52bb Merge branch 'rc-v0.5.0' into rls_spi 2020-07-28 00:36:30 -04:00
PAJohnson 0670017a25 In axis: counts_per_step to turns_per_step (broken during previous merge) 2020-07-27 21:39:57 -04:00
PAJohnson 8fcd5e1b30 Merge branch 'devel' of https://github.com/madcowswe/ODrive into counts_to_rads
Merge devel into counts_to_rads (turns) - conflict for the step input callback
2020-07-27 21:36:00 -04:00
PAJohnson be2d1037e3 Fixed null pointer checks in controller.cpp
Fixed formatting in trapTraj.hpp
Fixed how pos_setpoint is set in axis.cpp to avoid transients on startup so that it will handle circular position setpoints
More unit corrections in the docs: radians -> turns
2020-07-27 21:26:41 -04:00
Oskar Weigl d650c8caba Update controller.hpp 2020-07-27 16:47:48 -07:00
Unknown 7d94b6c786 Fix step_cb per @PAJohnson 2020-07-27 18:20:14 -04:00
Unknown 88b3ed4260 Optimize step/dir callback 2020-07-26 16:16:10 -04:00
Oskar Weigl ff291ae5ec Also add _src in header 2020-07-25 20:33:41 -07:00
Oskar Weigl af16316940 Merge branch 'devel' into counts_to_rads 2020-07-25 20:29:43 -07:00
Oskar Weigl 97469235d7 Add _src to estimate pointers 2020-07-25 20:24:55 -07:00
Samuel Sadok 5e628c5783 enhance resource usage diagnostics 2020-07-21 19:09:46 +02:00
Samuel Sadok 171dab31bd fix ERROR_CONTROL_DEADLINE_MISSED
call effective_current_limit() only once instead of several times per
control iteration
2020-07-21 13:02:03 +02:00
Samuel Sadok b7283bf1e0 add instrumentation to monitor interrupts 2020-07-21 13:02:03 +02:00
Samuel Sadok 2d256f43cb more refactoring in perparation for new hardware 2020-07-21 13:02:03 +02:00
Samuel Sadok 938f088fc2 make axis allocation static 2020-07-21 13:02:03 +02:00
Samuel Sadok b3ddadb360 further improve hardware independence 2020-07-21 12:55:10 +02:00
Samuel Sadok 71cc825ba2 Move complexity out of CubeMX autogenerated code
Where viable, customizations in the CubeMX code (mostly the USER
CODE sections) are moved to our own files (primarily main.cpp and
board.cpp).

This will minimize code duplication when adding a new, completely
separate instance of the CubeMX files. The USB code still contains a
large amount of customization which is not touched by this commit and
should be refactored separately later on.

The entry point is now in main.cpp (moved from the CubeMX-generated
main.c). This increases control over the boot process while also
improving code organization.
2020-07-21 12:55:10 +02:00
Samuel Sadok 1f3391c81b introduce GPIO modes 2020-07-21 12:55:10 +02:00
Samuel Sadok c745983f95 define gpios as array of Stm32Gpio objects 2020-07-21 12:31:03 +02:00
Samuel Sadok 56427ef9eb adapt headers 2020-07-21 12:31:03 +02:00
Samuel Sadok cc79c8eecb overhaul timer setup/synchronization
This new method is more flexible in the sense of what timers to
synchronize and also provides clearer guarantees with respect to
the repetition counter and prescaler.
2020-07-21 12:31:03 +02:00
Samuel Sadok 6377df4b1e move ext int subscribe logic to Stm32Gpio class 2020-07-21 12:31:03 +02:00
Samuel Sadok ab7957f07f Overhaul upper level NVM configuration manager
Instead of using a declarative compile-time type that defines the layout
of the NVM data, now we use procedural style code to load and store the
configuration as a series of pop and push calls.  This allows for more
flexible code organization and opens the future possibility of storing
dynamically sized data (e.g. an array prepended by a length field).
2020-07-21 12:31:03 +02:00