repetier/Repetier-Firmware — pull request #202 by mrbi11 (2014-01-03 19:50:53+00:00)
Title: V0.82plus Many additions, bug fixes. Chief is bounds check to prevent hardware damage. Autotune for fast & slow heaters. Error reporting during printing, out of bounds and bad gcode.

Greetings,

Attached is pull request with following features and fixes.
This was mightily motivated by lack of bounds check which in combination with error in gcode
generation smashed 2 of the 3 motors in my printer. Quite expensive and over a months delay and counting.

Source: v0.82 was start of this branch.
1) added v0.83seeme modifications, as my printer is the rostock max.
2) added the cumulative changes, safer gcode processing, error reporting for bad locations and bad gcode,
autotune for slow/fast heaters based on same papers cohen-coon step response, eeprom for delta constants,
calibration settings for heaters (90% to 110%) and eeprom settings for same. Fixed m117 command,
fixed bugs in processing %xx formatting for lcd display, added Symbolic constants for axes - [Xaxis] vs [0].
Added symbolic constants for printer type, DeltaPrinter vs 3. Lower case gcode, Faster gcode scanning. Multiple bugs fixes,

Many other fixes were made, probably some overlap with development work from v0.9xxx

I do NOT expect anyone to undertake merging these.
Instead, this is an offer to do the merging, if these changes are desirable for the main code.
I would like some indication there is interest on part of the authors to include my work, as I expect
merging may take me days or weeks. Happy to do it if I am not wasting my own time.

1) Checks print envelope boundaries to avoid damaging hardware
2) symbolic axis and named constants ([Xaxis] vs [0]
3) EEprom settings for Delta radius & limit
4) Extruder auto tune additions using cohen-coon method to derive
constants from step response. Always terminates and yields useful
result. Heaters too fast would cancel on overheat, too slow time out.
5) Fixes m117 command to work as documented
6) Fixes %ab format internal document, fixes it when appearing in ram
variables, adds some new fields to monitor, such as line number and
gcode line
7) adds error detection and report for out of bounds positions
8) Adds error detection and report for invalid gcode
9) adds error report 4th page to top level lcd pages
10) fixes code paths that would fail to reset inactivity timeout
11) recognizes lower case gcode letters, optimizes gcode scanning
12) adds implicit gcode line numbers for error reporting, when N code is
missing
13) fixes some missing bounds checks such as extruder index, etc from
gcode
14) adds consistency and limit check functions for eeprom settings. New
items may be added and will always be within safe bounds.
15) Uses symbolic names for printer configuration eg
#if DRIVE_SYSTEM==DeltaDrive not
#if DRIVE_SYSTEM==3
16) fixed some bugs related to inconsistent conditional compiler checks.
17) reversed buffer free from v0.83 by factoring code simpler
18) fixed limit on filenames in SD
19) Increased folder depth allowed in SD