Commit Graph

564 Commits (9c9322d02f2f1b47d54986d3dbe8fd1beb6752dd)

Author SHA1 Message Date
D.R.racer ede475c5a6 Introduce Timebase module, refactor timing code + unit tests 2021-06-21 10:22:17 +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 3cb3cebed9 Add forced reinit of all automata for the unit tests
+ added a few constexpr to constructors on the way
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 925201d77a Basic unit test structure for the logic layer
It compiles the Cut Filament unit test with all the necessary components.
Still, the unit test does nothing.
2021-06-21 10:22:17 +02:00
Alex Voinea e5215c7b84 SHR16 tmc control 2021-06-21 06:14:01 +02:00
Alex Voinea 19bc26219b Fix usart not working 2021-06-18 06:43:55 +02:00
Alex Voinea 113f9d7664 Fix build 2021-06-18 06:42:28 +02:00
Alex Voinea 6bd4db2681 Functional SHR16 2021-06-18 06:42:28 +02:00
Alex Voinea 7845f9aad4 SHR16 gpio 2021-06-18 06:42:28 +02:00
D.R.racer 58fe013471 Fix compilation 2021-06-16 06:43:20 +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 9e4bd97968 Add empty EEPROM HAL implementation 2021-06-14 07:34:59 +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 96be4b18a2 main - add Idler and Selector modules into main loop stepping 2021-06-14 07:34:59 +02:00
D.R.racer d0095a01aa Buttons - add AnyButtonPressed() 2021-06-14 07:34:59 +02:00
D.R.racer ade5f11fe2 Motion - remove dummy Idler functions 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 7555bbb906 Add Selector module 2021-06-14 07:34:59 +02:00
D.R.racer b4e8c3fa5d Add Idler module 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 019f74d6f2 Add debouncing for FINDA 2021-06-08 07:00:07 +02:00
D.R.racer 939b47d260 FINDA interface module 2021-06-08 07:00:07 +02:00
D.R.racer 3ef113cf6c Add basic motion API 2021-06-08 06:59:49 +02:00
D.R.racer 8e994c3b17 Take over permanent storage implementation from MM-control-01 2021-06-08 06:59:14 +02:00
D.R.racer 9f2b5e5ecb Add vscode configuration to allow easier switching among firmware and unit tests 2021-05-31 12:28:47 +02:00
D.R.racer bd335ec30d Unit test for LEDs interface + fixes 2021-05-26 11:39:24 +02:00
D.R.racer 004db59da0 Add shift register interface and improve LED integration with it 2021-05-26 09:29:32 +02:00
D.R.racer 9226230fd5 Reformat sources to fit the new namespace formatting rules 2021-05-25 12:24:19 +02:00
D.R.racer acc33bfacb Do not indent namespaces 2021-05-25 12:23:29 +02:00
D.R.racer 6cb072ce79 Rebase onto main + clean up the code a bit 2021-05-25 11:55:28 +02:00
D.R.racer fce2195558 Interface module for driving LEDs
+ start shaping up main.cpp
+ make the usage of namespaces and class names more consistent throughout the whole project
+ refactor related unit tests accordingly
2021-05-25 11:00:30 +02:00
D.R.racer 7611b98830 Add more unit tests and optimize (saved 1 byte per button on the AVR) 2021-05-25 10:02:02 +02:00
D.R.racer 7ece1fb28d Add missing buttons.h 2021-05-25 10:02:02 +02:00
D.R.racer ba8eacfe33 Buttons module implementation
A module representing a model of the 3 buttons
Includes a unit test project (empty at this stage)
2021-05-25 10:02:02 +02:00
Alex Voinea 47528c3bca USART hal prototype 2021-05-24 12:32:10 +02:00
D.R.racer fe0ac4f9f9 More unit tests for decoding of response messages
+ related changes in code
2021-05-18 08:18:11 +02:00
D.R.racer 30fbf6d870 Unit tests for decoding requests and responses
+errors on requests
2021-05-18 08:18:11 +02:00
D.R.racer 0633dea881 Protocol implementation
+ unit tests for encoding of messages

API still subject to minor changes
2021-05-18 08:18:11 +02:00
Alex Voinea c378e71018 SPI example 2021-05-17 19:11:35 +03:00
Alex Voinea 13ee425352 Configurable SPI CPHA and CPOL 2021-05-17 17:45:31 +03:00
Alex Voinea 57abb7ecc4 Example TMC2130 pinout 2021-05-17 17:10:02 +03:00
Alex Voinea 041d75012d Add all possible ports to the AVR GPIO hal 2021-05-17 17:09:00 +03:00
Alex Voinea 2cf1b8b523 __attribute__((always_inline)) comment 2021-05-17 12:08:20 +03:00
Alex Voinea d2d275da25 Explain why we set SS as output 2021-05-17 09:11:24 +03:00
Alex Voinea db98d0cf7b Add SPI TxRx function 2021-05-17 09:11:11 +03:00
Alex Voinea dc9528b4ea SPI hal: Winning combo 2021-05-17 09:01:22 +03:00
Alex Voinea ac4fdd30ad spi hal checkpoint 2021-05-17 08:42:21 +03:00
Alex Voinea 47400f16c6
GPIO hal prototype (#9)
* gpio hal prototype
* Example gpio hal usage
* Use uint8_t for GPIO enums
2021-05-14 15:42:41 +02:00
D.R.racer 57bc5a802b Add cpu.h/cpp, avr subdir
The idea is to have a separate implementation of the HAL interface for each CPU. So far we only have the AVR.
2021-04-19 07:03:47 +02:00
D.R.racer ec44ef5f23 Prepare main.cpp 2021-04-19 07:03:47 +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
D.R.racer 257d0ec340 Prepare parts of the build system
extracted and slightly modified from Buddy-FW, still doesn't work
2021-04-19 07:03:47 +02:00