Commit Graph

710 Commits

Author SHA1 Message Date
bubnikv
dd2468d306 Avoid the stepper interrupt being missed by extending the tick time
beyond the current time. This is a trick borrwed from upstream Marlin.

In debug mode, watch for the missed stepper interrupt ticks where the interrupts
are missed by more than 20% of the 10kHz stepper interrupt repeat rate,
and show the statistics (number of missed ticks and by how many micro
seconds was the interrupt missed, and what was the maximum missed
interrupt delay) on the display and send it to the serial line.
2018-02-15 11:44:19 +01:00
bubnikv
2babbb3b11 Enabled linear advance. 2018-02-02 22:56:13 +01:00
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
9652cf2d5b Merge branch 'MK3' into MK3_fast_dbg 2018-02-02 20:51:57 +01:00
bubnikv
9379430f8c A bit of documentation. 2018-02-02 20:45:45 +01:00
bubnikv
c2950b01a6 Added macros for outputting serial data onto the logical analyzer line
at 2 megabaud, 9bits, 1 stop bit. At this high rate the serial output
takes next to no time, so it does not slow down the debugged firmware
too much, and the data is nicely aligned with the other debug signals
on the logical analyzer screen.
2018-02-02 20:42:09 +01:00
bubnikv
3b312a42f8 Adjusted the features for the debug buid:
Removed DEBUG_DISABLE_STARTMSGS. This macro defeats the purpose
of the build server and the build messages of the non-release builds.

Removed DEBUG_DUMP_TO_2ND_SERIAL for performance reasons.
2018-02-02 20:37:03 +01:00
bubnikv
485355274e Optimized the MarlinSerial class by declaring all methods static.
The MarlinSerial defines no member variable, though the AVR GCC
stored a "this" pointer onto stack when calling the non-static
methods anyway.
2018-02-02 20:25:19 +01:00
PavelSindler
8375e2cee3
Merge pull request #456 from PavelSindler/MK3_for_merging
version changed
2018-02-02 18:13:45 +01:00
PavelSindler
36536044f4 version changed 2018-02-02 17:48:02 +01:00
PavelSindler
c0d0c12eea
Merge pull request #455 from XPila/MK3
bugfix - failstats (total counters) reset to zero for empty eeprom (0…
2018-02-02 16:18:36 +01:00
Robert Pelnar
4d8807e924 bugfix - failstats (total counters) reset to zero for empty eeprom (0xff) 2018-02-02 15:59:37 +01:00
XPila
6ba52e33d3
Merge pull request #453 from PavelSindler/fw_version_check
Fw version check and M600 filament unload current
2018-02-01 20:35:37 +01:00
PavelSindler
2dd2c971e2 whitespace 2018-02-01 20:25:19 +01:00
PavelSindler
84f7d057f3 fw version check: FW_VERSION string is case insensitive (parsing RC works) 2018-02-01 20:23:45 +01:00
PavelSindler
d92f6292aa unload with lowered current 2018-02-01 17:43:03 +01:00
PavelSindler
a256a8ff19
Merge pull request #450 from XPila/3.1.1-RC6
filament sensor additional check after runout (3mm back, 3mm forward …
2018-02-01 12:20:59 +01:00
Robert Pelnar
e20ee149b0 filament sensor additional check after runout (3mm back, 3mm forward @200mm/min) 2018-01-31 21:10:41 +01:00
PavelSindler
9d8191323b
Merge pull request #440 from XPila/3.1.1-RC6
Extruder stealthChop and constant-off-time mode.
2018-01-31 20:21:02 +01:00
XPila
822dd8ff9c
Merge pull request #448 from PavelSindler/eeprom_versions
EEPROM version change: inform user on LCD that default settings were loaded
2018-01-31 20:06:19 +01:00
XPila
beb3a507d3
Merge pull request #441 from PavelSindler/send_OK
PID cal. is not sending OK periodically, print fan error pauses print…
2018-01-31 20:03:08 +01:00
Robert Pelnar
adc69eda18 PINDA temp. calibration warning messages. 2018-01-31 17:03:33 +01:00
Robert Pelnar
1a01282e33 cardreader - new member "paused"
tmc2130 - decreased crash sensitivity for Y
2018-01-31 15:20:27 +01:00
Robert Pelnar
4c5618c371 failstats - reset "last print" counters
card - new member variable "paused" (bool)
2018-01-31 15:09:36 +01:00
Robert Pelnar
daaac2fb88 fail stats 2018-01-30 19:49:40 +01:00
Robert Pelnar
210b97d16d New fail stats (global, last print), crashdetection X and Y separated 2018-01-30 13:10:36 +01:00
PavelSindler
88f248cb77 Inform user that hardcoded default settings were loaded (EEPROM version change) 2018-01-30 11:31:44 +01:00
PavelSindler
cbcfcee48f PID cal. is not sending OK periodically, print fan error pauses print in octoprint (not disconnecting), initialize serial line when swithing in settings menu 2018-01-25 15:23:11 +01:00
PavelSindler
fdd87da83f
Merge pull request #438 from TheZeroBeast/MK3-EncoderFix
MK3 - ENCODER PULSES and STEPS Re-aligned with Clicks
2018-01-25 11:59:29 +01:00
Robert Pelnar
39bd5c3a1d Extruder stealthChop and constant-off-time mode.
Extruder different chopper frequency in spreadcycle.
Dcodes (fix)
2018-01-25 05:13:21 +01:00
TheZeroBeast
f4073120ef -m Added Encoder Fix changes 2018-01-25 06:49:28 +10:00
XPila
17cadf463a
Merge pull request #433 from XPila/3.1.1-RC6
Extruder resolution changed to 32usteps
2018-01-24 01:42:46 +01:00
Robert Pelnar
cae68d9f6d Extruder resolution changed to 32usteps
build 151
2018-01-24 01:41:42 +01:00
XPila
556205d993
Merge pull request #432 from PavelSindler/invalid_gcodes
invalid / unknown gcodes reported on serial
2018-01-24 00:12:47 +01:00
XPila
975ed14cb6
Merge pull request #431 from PavelSindler/fan_error_resume
SD card long pause update
2018-01-24 00:12:33 +01:00
XPila
110ab8b2f6
Merge pull request #426 from PavelSindler/temperatures_update
Preheat temperatures update
2018-01-24 00:11:59 +01:00
XPila
b2ba72ffcd
Merge pull request #411 from PavelSindler/typo_fixed
typo fixed
2018-01-24 00:10:28 +01:00
XPila
777dcf072b
Merge pull request #430 from bubnikv/MK3_fsensor_fullrate
Optimization of the filament sensor.
2018-01-24 00:10:00 +01:00
PavelSindler
70ff22571f minor change 2018-01-23 20:04:18 +01:00
PavelSindler
3adedb558b invalid / unknown codes reported on serial 2018-01-23 20:01:02 +01:00
PavelSindler
64a709c097 removed temporary debuging code 2018-01-23 19:14:52 +01:00
PavelSindler
05e0abbd9d startFileprint delayed 2018-01-23 19:11:04 +01:00
bubnikv
44dc12005f Optimization of the filament sensor. 2018-01-23 16:47:42 +01:00
PavelSindler
c38458eb67 init 2018-01-23 16:21:43 +01:00
XPila
09e0c566e8
Merge pull request #420 from bubnikv/MK3_stepper_blocking
Mk3 stepper blocking
2018-01-23 13:15:59 +01:00
PavelSindler
bde1996250
Merge pull request #419 from bubnikv/MK3_debug
Support for debug builds:
2018-01-22 18:58:02 +01:00
bubnikv
69f97e0ec3 Separated the "Unknown" build from the "Development" build.
Documented purpose of the various build types.
2018-01-22 17:41:05 +01:00
PavelSindler
188116cb7e Preheat temperatures update 2018-01-22 16:03:43 +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
3efd90a9ea Merge branch 'MK3_stepper_lowres' into MK3_fast_dbg 2018-01-20 17:27:58 +01:00