D.R.racer
751ee46450
Add bit masks for error codes for the TMC drivers
...
+ add common error handling for idler and selector
+ improve error handling in command_base
+ rename ERR1xxxx errors to ERRxxxx (remove the '1')
2021-08-02 07:45:45 +02:00
D.R.racer
df2c1ba7fe
Add prototype of unified handling of HW errors in the logic layer
2021-08-02 07:45:45 +02:00
D.R.racer
f5df642eb5
Improve error codes
...
- Distinguish among FINDA on/off failuje
- The same applies to newly introduced Filament sensor errors
- Add TMC init error
- Add a communication error ID - to be used on the printer
2021-08-02 07:45:45 +02:00
Yuri D'Elia
1abc8713bb
Fix ejectLength typo
2021-07-26 11:22:40 +02:00
Yuri D'Elia
49275b2cb2
Update eject_steps with the new unit API for demonstration
2021-07-25 17:25:37 +02:00
Yuri D'Elia
787c73ecff
Merge remote-tracking branch 'upstream/main' into motion_wip
2021-07-12 10:25:06 +02:00
Alan Dragomirecký
09819cb1aa
Split the main CMakeLists.txt into more files within subdirectories
2021-07-12 09:09:21 +02:00
Yuri D'Elia
7337e97765
Rename Motion::DisableAxis to Disable
...
Implement Motion::SetEnabled (for symmetry with TMC2130::SetEnabled).
Rename DisableAxis to Disable and use the new SetEnabled. This makes the
member names more consistent.
2021-07-11 21:38:01 +02:00
Yuri D'Elia
d87db1ff76
Revised WIP for the Motion API
...
- Remove the combined PlanMove(a,b,c,rate) call. If we allow the units
of the various motors to be changed at compile time, the unit of
rate can vary between axes.
- Build PlanMove on top of the absolute PlanMoveTo.
- Add required stubs for TMC2130.
- Allow each axis mode to be set independently, since we have this
feature for free anyway.
- Rework internals to use PulseGen data types and structs.
2021-07-07 16:59:39 +02:00
D.R.racer
9efb127acb
Explain and fix the LED states while cutting filament
...
now the test is correct including LEDs
2021-07-01 08:12:47 +02:00
D.R.racer
974c1ba6db
Verify Cut filament state machine + update unit tests
2021-07-01 07:03:39 +02:00
D.R.racer
9a8038ccb6
Add user_input module and use it instead of raw buttons
...
Encapsulates buttons and commands coming from the communication
2021-06-30 07:39:31 +02:00
D.R.racer
2c89b14de1
Add doxygen main page dox file
2021-06-30 07:39:31 +02:00
D.R.racer
3f98ec03ca
Fix doxygen documentation for the logic layer
2021-06-30 07:39:31 +02:00
D.R.racer
c15b1d59c4
Introduce Doxyfile + fix modules documentation
2021-06-30 07:39:31 +02:00
D.R.racer
f6e5d4ae76
Improve and verify Load filament alg and unit tests
2021-06-30 07:39:31 +02:00
D.R.racer
46a40f7488
Extend Unload filament unit tests
...
+ now error states are covered as well
+ greatly cleaned-up code
2021-06-30 07:39:31 +02:00
D.R.racer
ce20f0b001
Greatly improve unload filament unit test
...
+ relevant changes for other unit tests -> prepare for improving
of the other unit tests as well
2021-06-30 07:39:31 +02:00
D.R.racer
4d6d6fe0af
Add more checks (esp. positions of idler and selector)
...
that resulted in finding several weak spots and now Cut and Eject filament
do not pass the test (which is correct, they really have logical issues)
2021-06-21 10:28:56 +02:00
D.R.racer
317a486d1e
Logic layer Eject filament unit tests
...
initial setup, it compiles, but is blocked by Unload filament
2021-06-21 10:26:04 +02:00
D.R.racer
398181e26c
Feed to FINDA unit tests : green
2021-06-21 10:22:17 +02:00
D.R.racer
85910497f7
Unify buttons' API with other modules
...
- accepts millis() instead of doing the timing internally (which has
been a temporary solution just for the tests until now)
2021-06-21 10:22:17 +02:00
D.R.racer
b8f6bc9a4e
Tune Feed to FINDA state machine and its unit test
...
so that it works as expected
Still, there is a task of resetting all of the state machines just for
the next unit test to be run.
2021-06-21 10:22:17 +02:00
D.R.racer
f0a042c1b6
Add unit tests for Feed to FINDA state machine
...
+ improve infrastructure
2021-06-21 10:22:17 +02:00
D.R.racer
d6c9e58e66
Add global state hive
...
+ solve many TODO's in the code (active slot/extruder and filament loaded flag)
2021-06-16 06:43:20 +02:00
D.R.racer
dfb57bcae5
Add Load filament state machine
...
+ printer's fsensor (external) module
+ state machine for loading to bondtech
2021-06-14 07:34:59 +02:00
D.R.racer
7cab9dc915
Add Tool change operation
2021-06-14 07:34:59 +02:00
D.R.racer
ea65b75120
Add Eject filament operation
...
+ refactor other state machines a bit - Reset() now has the parameter which comes in the RequestMsg
2021-06-14 07:34:59 +02:00
D.R.racer
7bfc1bad97
Cut filament prototype state machine
2021-06-14 07:34:59 +02:00
D.R.racer
4a79b4b865
UnloadFilament - refactor for the new Idler API
2021-06-14 07:34:59 +02:00
D.R.racer
9caf680633
Add Feed to FINDA state machine
2021-06-14 07:34:59 +02:00
D.R.racer
05ff998c01
Lay out the other high-level commands/operations
...
- cut, eject, load filament, toolchange
- uncomment them in main.cpp
- their implementation is still empty
2021-06-14 07:34:59 +02:00
D.R.racer
5b4eb0cee3
Extract Unload filament into a separate file
...
+ cleanup the object structure
+ add no_command as the starting "operation" to simplify the rest of the command handling at runtime
2021-06-14 07:34:59 +02:00
D.R.racer
271a2dd7df
Minor tweaks after rebase onto main
2021-06-14 07:34:59 +02:00
D.R.racer
6f1624b718
Make logic prototype compilable
2021-06-14 07:34:59 +02:00
D.R.racer
2159558d88
Prototype of Unload Filament command/operation
...
+ related stuff:
- command decoding+processing+reporting in main.cpp
- slight refactoring of modules
2021-06-14 07:34:59 +02:00
D.R.racer
ca6de101c3
Logic - first try
2021-06-14 07:34:59 +02:00
D.R.racer
f848c8d550
Create basic FW structure
...
- Design API's based on our discussion and block diagrams
- Set doxygen rules/preferred syntax
2021-04-19 07:03:47 +02:00