Commit graph

522 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
36536044f4 version changed 2018-02-02 17:48:02 +01:00
Robert Pelnar
4d8807e924 bugfix - failstats (total counters) reset to zero for empty eeprom (0xff) 2018-02-02 15:59: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
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
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
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
bubnikv
5deee8f42c Merge remote-tracking branch 'remotes/upstream/MK3' into MK3_stepper_lowres 2018-01-20 17:24:12 +01:00
bubnikv
a94e266cf1 Documented CPU load and frequency of the following interrupts:
9.  ISR(INT7_vect) 			- Fan signal interrupt
26. ISR(M_USARTx_RX_vect)	- USB to serial RX
37. ISR(USART1_RX_vect)		- R-PI serial RX
2018-01-20 16:20:51 +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
9e534c1990 Minimize risk of stepper routine interrupt blocking by reorganizing
the routine to move the G-code line length from the command queue
to the planner queue.
2018-01-20 14:37:22 +01:00
bubnikv
7edce0b890 Only show the debug menu in the DEBUG_BUILD. 2018-01-18 16:43:40 +01:00