D.R.racer
ecd63b6138
Add bowden length runtime detection and tuning
...
Still, unit tests must check this thoroughly as this code
is extremely hard to test on the real HW.
2022-09-13 06:53:59 +02:00
Alex Voinea
fd6c0bcc23
Symmetrical latch signal
2021-12-01 09:07:08 +01:00
Alex Voinea
f509dc8346
Adjust latch pulse length
2021-12-01 09:07:08 +01:00
Alex Voinea
d399a024bb
SHR16 correct signal timing
2021-12-01 09:07:08 +01:00
D.R.racer
04348b2d86
Make all SHR16 public functions "thread-safe"
2021-10-21 10:17:10 +02:00
D.R.racer
0fbcb9dac2
Tag all source files with @file for doxygen
2021-10-18 17:59:46 +02:00
D.R.racer
8eb6240541
Add HAL AVR EEPROM implementation
2021-10-18 16:29:54 +02:00
Alex Voinea
94e6d1403e
(Hopefully) Fir shr16 timing issues
...
Should also hopefully fix the random behavior of the DIR pins. When I was testing a really slow timing, the steppers seemed to want to not go in the right direction. That was fixed with the critical section. The 1us delay might be overkill, but I'm not the one that added a 100nF capacitor on the LATCH line (basically chip select). This might be part of the randomness that happened and why some board behaved better than others (stronger GPIO outputs)
2021-10-12 18:11:05 +02:00
Alex Voinea
6e50d902d2
Steppers should be disabled on startup
2021-10-12 18:11:05 +02:00
D.R.racer
f18ff63cf7
Fix PROGMEM addressing in debug.h
...
I hate when the compiler doesn't check something what it normally does:
`pgm_read_byte` is more than happy with a parameter (*str), which reads
an address at a location where *str points to - which is obviously not the intent.
2021-10-12 18:11:05 +02:00
D.R.racer
43c953b7f1
Fix appending newline character in puts* methods
2021-09-27 11:15:20 +02:00
D.R.racer
304988fc6c
Simple debug logging via USART1
...
Encapsulates the #define macros and AVR implementation of dumping strings
(RAM and PROGMEM) onto USART1.
2021-09-27 11:15:20 +02:00
Alex Voinea
4f6ea16515
Functional USB reset
2021-09-20 19:01:08 +02:00
Alex Voinea
0e9802c4cd
watchdog configuration
2021-09-20 17:10:10 +02:00
Alex Voinea
e86def99f9
Add Disable and use the avrlibc wdt functions
2021-09-20 17:09:54 +02:00
Alex Voinea
954ef2fb8d
Reset the board using the cpu hal instead of the watchdog hal
...
Also some naming changes
2021-09-20 17:09:54 +02:00
D.R.racer
a23ed5e1bf
Add watchdog implementation + use it in main()
2021-09-20 17:09:09 +02:00
Yuri D'Elia
f7f0df4afa
Move hal/avr/tmc2130 into hal/ directly
...
There are no dependencies on AVR in TMC2130, so move into the main tree
2021-08-25 07:57:19 +02:00
Yuri D'Elia
0548c17078
Motion: test low-level enable changes via GPIO stub
...
This fixes the driver's enable/disable incorrectly setting the direction
bit instead.
2021-08-25 07:57:19 +02:00
D.R.racer
2f5dff6c5b
Introduce short namespace aliases
...
especially for modules
2021-08-04 11:03:56 +02:00
Alex Voinea
9232e55563
millis interrupt
2021-08-04 10:51:33 +02:00
D.R.racer
ef96d998a3
Link top level error reporting to TMC2130 error flags
2021-08-02 07:45:45 +02:00
D.R.racer
b61836dd57
Remove shifting in config for TMC + add compile-time checks
2021-07-29 10:01:33 +02:00
D.R.racer
a8147be803
Fix unit tests + rebase onto main + extract TMC parameters into config
2021-07-29 10:01:33 +02:00
Alex Voinea
aca2cb7e79
tmc: Error flags
2021-07-29 10:01:33 +02:00
Alex Voinea
8577852b09
tmc2130: Stallguard and Isr
2021-07-29 10:01:33 +02:00
D.R.racer
3d1880c006
Make tests compile
...
Introduces a nasty hack to forcefully write into the constexpr SPI descriptor's registers
(which is the correct way in ASM, but kind of cumbersome in C++ now)
2021-07-29 10:01:33 +02:00
Alex Voinea
364f1bcb0d
tmc2130: error handling stack overflow fix
2021-07-29 10:01:33 +02:00
Alex Voinea
2cdc3bfbc4
tmc2130: report error during init
2021-07-29 10:01:33 +02:00
Alex Voinea
3f20ff88ee
Reorder functions
2021-07-29 10:01:33 +02:00
Alex Voinea
b97aefcb5c
tmc2130: More functions
2021-07-29 10:01:33 +02:00
Alex Voinea
5f83667b22
Finish init sequence
2021-07-29 10:01:33 +02:00
Alex Voinea
e9046eed42
tmc2130: More init
2021-07-29 10:01:33 +02:00
Alex Voinea
1022603f9d
tmc2130: Initial spi communication
2021-07-29 10:01:33 +02:00
D.R.racer
0744009955
Fix FW build - define (empty) TMC2130::Init
2021-07-14 09:00:40 +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
Alan Dragomirecký
9448c04b36
Disable preprocessor code indentation
2021-07-07 16:33:03 +02:00
Yuri D'Elia
169665331e
Change the pin definitions in order to be valid types
...
Remove the constructor from GPIO_pin so that we can use brace
initialization at compile time.
Rewrite the contents of pins.h to construct GPIO_pin types directly by
the use of a simple preprocessor macro.
Makes the code type-check and easier to read/extend.
2021-07-05 15:20:11 +02:00
D.R.racer
5a4903a2ff
Cleanup circular_buffer implementation
...
unit tests will follow
2021-06-29 12:17:10 +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
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
9e4bd97968
Add empty EEPROM HAL implementation
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
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
6cb072ce79
Rebase onto main + clean up the code a bit
2021-05-25 11:55:28 +02:00