Commit Graph

146 Commits

Author SHA1 Message Date
bubnikv
9acd41a942 Reworked the stepper routine:
1) The computational load is spread more evenly along the stepper ISR
ticks by moving some of the timer and linear advance calculation from
the block initialization into the 1st tick of the steady phase
of the trapezoid.

2) Reworked planning of the Linear Advance ISR ticks to fit
the time slot allocated for the main stepper ISR tick. This is achieved
by grouping the Linear Advance extruder ticks by a power of two to tick
the Linear Advance interrupts at a maximum 7kHz. Also some
of the extruder ticks are performed just after the XYZ ticks
and if the remaining time slot for the Linear Advance ticks is too short,
all the Linear Advance steps are ticked inside the main stepper ISR invocation.

3) Added some calls to MSerial.checkRx() if the stepper ISR routine
is delayed for too long by the additional LinearAdvance ticks.

This implementation differs significantly from the original implementation
by @Sebastianv650, as this implementation tries to follow the exact
timing of the XYZ axes with the drawback of possibly ticking the extruder
faster than it could handle, while the original implementation
by @Sebastianv650 ticks the extruder slower with the drawback of possibly
spreading the XYZ ticks, thus introducing jerk in the cartesian movement.
2018-02-02 22:55:50 +01:00
bubnikv
160cdccae1 Merge remote-tracking branch 'remotes/origin/MK3_stepper_blocking' into MK3_fast_dbg 2018-01-20 17:31:26 +01:00
bubnikv
815dfcb14b Implemented a stepper timer reset after a long blocking cli()
or DISABLE_STEPPER_DRIVER_INTERRUPT().
If this is not done, the stepper interrupt would likely overflow,
leading to a maximum 32ms delay before the stepper interrupt wakes up.
In addition, the stepper timer overflow error would be reported
by the debug builds.
2018-01-20 15:39:21 +01:00
bubnikv
17a8e2db01 Documented the interrupt blocking by a main thread by its maximum time.
Added a debug output to serial line on stepper timer overflow.
2018-01-20 14:58:30 +01:00
bubnikv
1eac2b4ccb Fixed a regression error from the last commit regarding Z homing.
Removed unused Z_LATE_ENABLE symbol.
2018-01-15 12:00:28 +01:00
bubnikv
7a972fd9b0 Split the stepper ISR routine into multiple inline functions,
added an optimized DDA routine for moves with less than 32767 ticks.
2018-01-14 22:37:07 +01:00
bubnikv
30b06488ca Redefined the DDA step and accumulator values to unions to support
access to the low / high words of the 32bit values.
This is a prerequisity for an optimized 16bit only DDA
in case the number of step is lower than 32767.
2018-01-14 17:01:04 +01:00
bubnikv
a1fd50ea9a Simlified the extruder ticking code. 2018-01-14 14:45:27 +01:00
bubnikv
135dda1bff Slight optimization of the stepper timer routine.
Use WRITE_NC instead of WRITE for writing into the slow ports.
2018-01-12 21:01:01 +01:00
bubnikv
3e6d853364 Debugging of the stepper timer routine. When enabled through
DEBUG_STEPPER_TIMER_MISSED, the printer is halted on stepper timer overflow
and an error message is displayed.
2018-01-12 20:51:14 +01:00
Robert Pelnar
c6e77f55f6 checkrx in stepper returned back
build 143a
2017-12-30 02:55:22 +01:00
Robert Pelnar
e3c006dbe9 Serial communication uses port0 or port1, not both, removed some suspected code.
build 141
2017-12-29 00:06:47 +01:00
Robert Pelnar
c6e10fb903 Removed SG software homming
After Calibration Z enabled minstop (SG and PINDA)
TMC2130 code simplification
2017-12-15 14:10:20 +01:00
Robert Pelnar
e8b2043d03 Stack monitor in stepper ISR 2017-12-10 20:38:09 +01:00
PavelSindler
4d9780a3c6 Merged lin adv. fix from MK2 2017-11-14 13:57:32 +01:00
Robert Pelnar
01de834e0d SG_THR_X = 2, holding currents == running currents
Farm preheat menu
dcode D5 - read/write/erase FLASH
dcode D6 - bootloader update test (for new stk500-prusa)
_NO_ASM - MINGW simulator support
fixed bug - "Fil. sensor [on/off]" menu
Build number = 107
2017-11-13 18:45:11 +01:00
Robert Pelnar
cddb0eafb8 PAT9125 - sampled only Y value, new debug code D9125.
FSensor - synchronous sampling and new algorithm
build number = 103
2017-10-24 19:45:15 +02:00
michalprusa
1244b195f9 M119 now reports real values of hardware endstops, not SG status. 2017-10-18 18:04:42 +02:00
Robert Pelnar
df1aa85526 Crashdetection + configuration file. 2017-09-22 19:28:32 +02:00
PavelSindler
37d7740e42 Merge pull request #47 from PavelSindler/MK3
fan check turn off, saving to eeprom with offset and levels, fan kickstart,2nd heatbed version, fans check modified
2017-09-22 14:39:52 +02:00
bubnikv
72ab17f585 Further fixes of the power panic and g-code & planner queues. 2017-09-22 13:44:10 +02:00
PavelSindler
6eb57da770 fan check can be turned off from support menu, saving parameters to eeprom with offset and different levels, fan kickstart,2nd heatbed version, fans check modified 2017-09-21 15:20:02 +02:00
Robert Pelnar
4cae00741e MAKER FAIRE
filament sensor: runout detection tuning, save/restore print
silent mode: safe mode selection durring printing and after homing
2017-09-21 01:52:28 +02:00
Robert Pelnar
d63045fdb3 TMC2130 stallguard improovment - axis load monitoring, autocalibrate Z. 2017-08-21 13:06:17 +02:00
Robert Pelnar
683784c4c7 PAT9125 I2C, hardware SG homing
separate pin configuration file for each board
changed board codes:
RAMBO =100, MiniRambo1.0 =200, MiniRambo1.3 = 203, Einy03 =303, Einy04 =304
2017-08-17 15:23:34 +02:00
michalprusa
06fe85e9ee Linear Advance 2017-07-07 01:58:02 +02:00
PavelSindler
5943e786ee Merge remote-tracking branch 'upstream/MK3' into MK3
sync with upstream # Please enter a commit message to explain why this merge is necessary,
2017-07-06 13:20:02 +02:00
PavelSindler
54ef2936c7 selftest 2017-07-06 13:19:11 +02:00
XPila
78f7923ab2 Merge pull request #10 from XPila/MK3
Changed jerks, disabled oversampling, debug code, commands for seting…
2017-07-06 13:07:37 +02:00
Robert Pelnar
2b24e9ceb3 Changed jerks, disabled oversampling, debug code, commands for seting pwm_ampl and pwm_grad (M917, M918), changed configuration files 2017-07-06 13:06:07 +02:00
PavelSindler
d05e62813a Merge remote-tracking branch 'upstream/MK3' into MK3
sync with upstream
2017-07-03 14:08:39 +02:00
Robert Pelnar
e09f0c64c7 TMC2130 tuning, silent/high power mode 2017-07-03 07:43:50 +02:00
Robert Pelnar
c4307c7373 TMC2130 tunning, overtemp 2017-07-03 00:11:42 +02:00
PavelSindler
db12119b68 position saving and restoring in UVLO 2017-07-02 00:11:21 +02:00
PavelSindler
ae0c64248f sync with upstream 2017-07-01 19:29:57 +02:00
PavelSindler
c4be651d2b uvlo initial version 2017-07-01 18:51:02 +02:00
Robert Pelnar
f6a8e1df9d TMC2130 + software SG homing + LF lineendings + tmc2130 debug M-Codes
M910 - tmc2130_init
M911 - set holding currents
M912 - set running currents
M913 - print currents
2017-07-01 12:39:16 +02:00
PavelSindler
43d696659f 3.0.12-RC2 sync 2017-06-29 18:35:43 +02:00
PavelSindler
0578ea527e fan speed check initial version, selftest updated 2017-06-28 14:24:45 +02:00
michalprusa
21177476ac StallGuard homing implemented, working 2017-06-17 16:58:36 +02:00
michalprusa
c83b1833bc Johhny Firmware sync 2017-06-17 15:42:48 +02:00
michalprusa
cabaec95c8 EINY implementation 2017-03-24 20:16:03 +01:00
michalprusa
3faef75a0d 3.0.10 sync 2017-03-24 19:47:50 +01:00
bubnikv
29cb4b2b5d Removed the non-working pressure advance feature.
Improved accuracy of diagonal moves by oversampling the path discretization.
Accelerated the planner by rewriting time critical routines from floating
point to fixed point arithmetics.
2016-09-01 13:09:56 +02:00
michalprusa
307d17422d 3.0.6 sync 2016-08-11 10:42:53 +02:00
michalprusa
30f0528aba Initial commit 2016-07-22 15:28:01 +02:00