Commit Graph

7369 Commits (e54881c40831b6c08645e780f2f3ea1d2b32d91c)

Author SHA1 Message Date
Scott Lahteine 78af2b1444 Fix PROBE_MANUALLY via G-code
Scott Lahteine 082da23391 One fewer EOL in M503 output
Scott Lahteine b15e531464 Fix screen change on character display
Thomas Moore 44e657766e Add incompatibility error to Sanity Check for MIXING_EXTRUDER and LIN_ADVANCE
Scott Lahteine 735405b2a4 Merge pull request from thinkyhead/bf_scara_M665
Add M665 for SCARA
Scott Lahteine ffa901f373 Merge pull request from thinkyhead/bf_day_ending_in_y
UBL ultralcd.cpp patches
Scott Lahteine 361cbba113 Use M665 to set SCARA angle offsets
Scott Lahteine 5ed63a5724 Apply const in prepare_kinematic_move_to
Scott Lahteine 5cbe0244c5 Fixes for spindle/laser and SCARA probe bounds
Scott Lahteine 1f52c9f5df Neater Megatronics 3 pins
Scott Lahteine af81cb4cbb Patch for M503 output
Scott Lahteine 1d167a6874 Some cleanup, fixes for ultralcd.cpp UBL code
- Free up 30 bytes of SRAM in UBL LCD code
- Fix BUILD_ABS_MESH temperature
- Fix UBL indentation in ultralcd.cpp
- UBL vars lowercase, "convert to positive" sensibly
Scott Lahteine f4028fe088 New GCode Parser - Implementation
Scott Lahteine 002a06c507 New GCode Parser - Configuration
Scott Lahteine ad915b667e One more mesh_index_to_npos update
Followup to 
Scott Lahteine 2881f0a48d Fix, extend G42 with P (probe) parameter
- Also fix handling of SCARA and misuse of `codenum`.
Scott Lahteine d252d1b6a2 Merge pull request from thinkyhead/bf_move_g7
Move G7 to G42
Brian 82ca6248e2 Move G7 to G42
See: 
Scott Lahteine 26ffa558a3 Use redraw flag for both types of LCD
Scott Lahteine 3ff7515527 Merge pull request from cbusillo/patch-1
missing enable for M605 for duplication mode
Scott Lahteine 34cfbc90cd Use new attribute macros in more places
Scott Lahteine 85b967657e Embed G26/G29 in ubl class, with enhancements
Scott Lahteine c99bd69889 Apply const float & more
Scott Lahteine ad5638f78c Cleanup some fastio code
Scott Lahteine e271521c39 Single user_canceled function in G26
Scott Lahteine c2ea22da49 Clean up whitespace
Scott Lahteine ceb62fc7e1 Fixes : M428 bug
oldmcg 48f7652143 UBL G29 -P3.1 smart fill ()
* UBL G29 -P3.1 mesh fill with distance-weighted least squares fit.

* Back to original -O0 on G29 for now.
Scott Lahteine 850203fb3a Merge pull request from thinkyhead/bf_lcd_live_editing
Constrain LCD status message rendering
Roxy-3D 3129260c44 Misc. Clean Up ()
* Misc. Clean Up

Mostly UBL related clean up.
- But fixed a bug in the thermistortables.
- Made G26 more responsive to user aborts.
- Added sanity checks for older name for UBL_MESH_VALIDATION.
- Made G29 P4 able to edit invalidated mesh points
- Restore a reasonable Fade Height for UBL when creating new state information
- Get UBL's Topology Map to look a little bit better
- Make sure the user doesn't see a blank screen when doing Mesh Editing.

* Huh???   GitHub Desktop screwed up!

* get the planner object in scope

* Fix out of scope z_fade_height

* Travis timed out...

I need a change so I can force a new commit and sync.
cbusillo 3b4116e73b missing enable for M605 for duplication mode
I believe gcode_M605 will not be called when using DUAL_NOZZLE_DUPLICATION_MODE without this change.
Scott Lahteine 5e8892d6b5 Show Restore Failsafe item with EEPROM off
Scott Lahteine 76af9ac7c5 tweaks
Scott Lahteine ba5910ab6c Constrain LCD status message rendering
MagoKimbra 2c309a8f7c Fix set_lcd_contrast
Scott Lahteine 22dbb2117c Merge pull request from thinkyhead/bf_day_ending_in_y
Cleanup code, organize & document fastio pin mappings
Roxy-3D 364f8fb613 Update Configuration.h files to better names ()
Changed UBL_G26_MESH_EDITING to UBL_G26_MESH_VALIDATION
Added UBL_MESH_EDIT_MOVES_Z to prepare for that change (coming next)
Scott Lahteine d7fda2fe49 Formatting, const in G33
Scott Lahteine 1519b0e7c1 Split up fastio.h, document pin mappings
Scott Lahteine 49599caade General cleanup to utf_mapper.h
Scott Lahteine 02f15f6775 UBL-related cleanup, spacing, standards
Reference: 
Scott Lahteine 52e20aeab3 Pins-related cleanup, formatting
Scott Lahteine ea906e4da7 Merge pull request from thinkyhead/bf_lcd_live_editing
Add "live editing" option to LCD menus
Scott Lahteine 11fc9564c9 Add live editing option to LCD menu
Scott Lahteine 8a0a5cfccc Temp-related cosmetic changes
Scott Lahteine b29dbbd5e4 Use uint16_t for temps
Scott Lahteine ebcd1aaf88 Access hotend/bed temperatures as float
Scott Lahteine 6ce2b1ff4a G33 evolutionary changes
Scott Lahteine 3c061a9f9a UBL tabs, whitespace, spelling, etc.
Scott Lahteine 75badae2f8 Disable PROBE_MANUALLY for UBL
Plus some other UBL tweaks.
Scott Lahteine 94a4af1d7f Merge pull request from thinkyhead/bf_lcd_patch_e5
Patch LCD code for 5th extruder
Brian 01f452c37c Tweak Azteeg X3 PRO _pins.h so Viki2 will work for those without a case light.
- add comment explaining that the Panucatt Viki2 wiring diagram uses pin 44
Brian e09b4ce4a5 Add checking
Brian 13599a73c7 Add `G7` gcode command to move between UBL mesh points
- can be augmented in the future to enable for other leveling systems

Quite simple, but did not want to modify `G1` as the additional checking would slow it down.

Tested & working.
Brian 43c24f0027 Fix recent regressions, &c.
- fix broken `M421` due to less-than-careful optimization
- add HOME_AFTER_DEACTIVATE define to advanced config so not everyone has to rehome after steppers are deactivated
- misc. cleanups (remove unused label, unused variables)
Scott Lahteine 3843a5151a Patch LCD code for 5th extruder, EEPROM reset
Scott Lahteine 6c064bb7d6 Some probe_pt error-handling
Brian 3370329751 Fix broken EEPROM save/load
Scott Lahteine f0fe26c411 Ensure Arduino.h and configs are included for serial.cpp
Scott Lahteine ffb5353294 Merge pull request from thinkyhead/bf_config_crc_rebase
Implement CRC16, develop mesh allocation table
Scott Lahteine e806e6419a Merge pull request from thinkyhead/rc_spindle_m3_m5
Spindle / Laser support
Scott Lahteine d6f49c6626 Merge pull request from jdelahayes/bugfix-1.1.x
Update french language
Scott Lahteine 55a87da036 SPINDLE/LASER implementation
Scott Lahteine ffe0e2d19a SPINDLE/LASER pins changes
Scott Lahteine 99c4900a98 SPINDLE/LASER config changes
Scott Lahteine a3abfeac47 Mark strings needing translation
Scott Lahteine 7f4e4b1212 UBL name/state methods
Brian 7852369987 Implement CRC16, develop mesh allocation table
- Add crc16 utility function
 - Implement CRC16 for config store, remove old checksum, increment layout version
 - Move UBL mesh store/load to MarlinSettings; increment UBL_VERSION
 - Begin to lay out MAT structure, prototype functions, etc.
 - Rename ubl.state.eeprom_storage_slot to .storage_slot
 - Misc. optimization
 - Cleanup/standardize/improve some messages

This is a work in progress!
Scott Lahteine 00d358d92d Fix a PROBE_MANUALLY bug in ultralcd.cpp
fixoid c2321b1cdd Separate SWITCHING_NOZZLE and SWITCHING_EXTRUDER
Scott Lahteine 238fb53617 Patch home_all_axes to ignore G28 XYZ parameters
Scott Lahteine 6b6630e11b Clean up trailing whitespace and tabs
Roxy-3D d30e478f97 Fix incorrectly optimized find_closest_mesh_point_of_type() function ()
oldmcg 5a9e52a3e0 Use COPY_XYZE macro to copy exactly 4 elements ()
Fix undefined DELTA_PROBEABLE_RADIUS for UBL_DELTA
Roxy-3D 8606644343 M48 Fix for Delta Configuration Files & UBL G29 only homes when necessary ()
* Fix M48 for Delta's  There was a scope issue: DELTA_PROBEABLE_RADIUS wasn't getting defined.

* Check if the specified G29 command requires homing
Tannoo 0cd398c25d UBL Menu Updates ()
Things should be pretty stable for a while.   
But it wouldn't surprise me if the Delta people have a need for a few special commands.
Johann Delahayes a5737cba7c Update french language
Scott Lahteine 0fef9a2983 Remove "ubl." prefix from calls within ubl method
Scott Lahteine 14a4257c7b UBL tabs, whitespace, spelling, etc.
Scott Lahteine 56e2e331ed UBL G29: replace 'O' with 'T'
Since we already used 'T' for `G29` Topology Report in the past, and since 'T' is available…
Scott Lahteine 091f94a6bf Fix up M421 and some comments
Scott Lahteine 4ec4ecff1a Reduce find_closest_mesh_point_of_type a little
Scott Lahteine f1a1c6873e Patch lcd_implementation_status_screen compiler warning
moebyusDev 2266c0780d fixed spanish lang
It was missing MSG_FILAMENT_CHANGE_HEAT_2 and MSG_FILAMENT_CHANGE_HEATING_2
oldmcg b213a45efb UBL_DELTA post merge cleanup ()
* UBL_DELTA post merge cleanup:
   fix fade_height, lost during some previous merge
   fix float cx,cy which are not const
   move repeated z_cxcy calc line inside loop
   style fixes and comment fixes/alignment

* Update ubl_motion.cpp

remove unnecessary parentheses

* Update Conditionals_post.h

Change name of define to more accurate meaning:
UBL_GRANULAR_SEGMENTATION_FOR_CARTESIAN
which is not and should not be the default for cartesians with UBL.
Roxy-3D 6f86c46fa6 Fix typo that caused scope issues for DELTA ()
Roxy-3D 1fbcbc05f6 UBL no longer flout's the sacred GCode standard ()
Also clean up ubl_motion.cpp debug info and fix declaration of cx & cy
Scott Lahteine c262ea92e0 Merge pull request from abusca/Euskera
Updated Basque translation
Scott Lahteine 267f77b18b More constraint on axis_unhomed_error
Aaron Busca 645096b87a Updated Basque translation
Updated Basque translation with new strings.
Roxy-3D 40d95a4e23 Update the gMax files to display better with Proportional Fonts ()
Update the gMax files to display better with Proportional Fonts
Roxy-3D c06af63f87 G26's default behaviour ought to be the entire mesh ()
Adding the capability to specify ahead of time how much of the validation pattern to print made it so by default G26 only did one circle and no connecting lines.

It is more natural for the unsophisticated user to just do the entire mesh (bed).   We default the repetition count to GRID_MAX_POINTS+1 to insure we get every last one of them!
Roxy-3D 15040821e0 Setup FolgerTech-i3-2020 files better for the user ()
UltiPanel was enabled, but technically, it is a REPRAP_DISCOUNT_SMART_CONTROLLER
Either configuration works on the machine.  But we want it 'Right'.

Setup the Proportional Font spacing so columns line up nicer on PronterFace and Repetier Host.
Scott Lahteine 67c9b1e332 Update M665 comment, fix M665 code_value code.
Scott Lahteine 37399e3cb5 Fix prepare_move_to_destination_cartesian for UBL
Scott Lahteine a7fb55ea6d Use GRID_MAX_POINTS. Some formatting
Scott Lahteine e51b5774db Merge pull request from mtowara/patch-1
Bugfix PRINTER_EVENT_LEDS
Scott Lahteine 056350d9bf Merge pull request from FHeilmann/fix_fwretract_pos_z_move
Fix FWRetract with positive z-moves during retracted state
Scott Lahteine 0e582bcfb7 Fix - redundant line in M665
Markus Towara 68ae7c8d7a Bugfix PRINTER_EVENT_LEDS
Extra closing curly bracket terminates while loop early if PRINTER_EVENT_LEDS defined
Scott Lahteine ba29da56e0 Add disclaimer for verboten parameters
Scott Lahteine 0696dda470 Cleanups to UBL_DELTA
Scott Lahteine cbfca29522 M421 tweaks, just to use const
Scott Lahteine 233f824dd6 Define GRID_MAX_POINTS
Scott Lahteine b17e2d3dcd Apply const in Marlin_main.cpp
Scott Lahteine 92fbea2906 Add some GCodes to the header of Marlin_main.cpp
Scott Lahteine 94e90ca26c Tweak M80/M81 descriptions
Scott Lahteine ee50dfaaf3 Adjust G26 arguments
Scott Lahteine b0ba5cae73 Fix a spelling boo
oldmcg 91841d75c9 UBL_DELTA ()
UBL on Delta's....     Should be close!    Should not affect any Cartesian printer.
bgort 445003dbb8 Merge pull request from bgort/g29p2b
UBL:  Minor improvement to G29 P2
Brian 5a5dba6fc8 UBL: Minor improvement to G29 P2
- allow H code value to override probing height
- minor cleanups
Brian ae676490c9 M421: Add 'adjust closest point' capability
- Split M421 into separate versions for bilinear and ubl
- Fix minor issue in G26
Scott Lahteine 9a688d1456 Merge pull request from thinkyhead/bf_M80_s_arg
"M80 S" to report the state of the PSU pin
Roxy-3D b63e82f309 M421 Mesh Point Offset and misc. UBL clean up ()
* M421 Mesh Point Offset and misc. UBL clean up

Allow M421 to accept an offset as well as absolute value for a specified
mesh point.
And misc. UBL clean up to reduce redundent code.

* Better error checking for M421

* Fix M421 Y index bug

I just noticed....  We've had a Y index bug for who knows how long?
Pablo Ventura 539e0c2f31 "M80 S" to report the state of the PSU pin
bgort df42428281 Merge pull request from bgort/font
Add proportional font adjustment ratio
Brian 2604742191 Add proportional font adjustment ratio
- update example configs
bgort b3407a371b Merge pull request from bgort/g26zhop
G26: Add 0.5mm Z-bump between circles to minimize pattern scraping
bgort c33d99c5b2 Merge pull request from bgort/g26repeat
G26:  Add 'Repeat' Option
Bob-the-Kuhn 7325035aac Merge pull request from Tannoo/UBL_Menu_System_1.1
UBL Menu System 1.1
Brian f7a201b0d0 G26: Add 'Repeat' Option
- Allows for specifying number of points to print/validate, using 'R' code like with G29 P4 Rx
- Moved the code for Random to 'M' so we could be consistent with G29 P4
- G26 instructions indenting/cleanup
Brian 9c5957fc77 G26: Add 0.5mm Z-bump between circles to minimize pattern scraping
Brian 4da14b14f4 UBL Cleanup/Bugfix
- Fix bug in ubl_line_to_destination
- Improve/fix output of some ubl.h functions
Tannoo 66db6c3acc UBL Menu System 1.1
/**
     * UBL System submenu
     *
     *  Prepare
     * - Unified Bed Leveling
     *   - Activate UBL
     *   - Deactivate UBL
     *   - Mesh Storage
     *       Memory Slot:
     *       Load Bed Mesh
     *       Save Bed Mesh
     *   - Output Map
     *       Map Type:
     *       Output Bed Mesh Host / Output Bed Mesh CSV
     *   - UBL Tools
     *     - Build Mesh
     *         Build PLA Mesh
     *         Build ABS Mesh
     *       - Build Custom Mesh
     *           Hotend Temp:
     *           Bed Temp:
     *           Build Custom Mesh
     *         Info Screen
     *       - Build Cold Mesh
     *       - Fill-in Mesh
     *           Fill-in Mesh
     *           Smart Fill-in
     *           Manual Fill-in
     *           Info Screen
     *         Continue Bed Mesh
     *         Invalidate All
     *         Invalidate Closest
     *     - Validate Mesh
     *         PLA Mesh Validation
     *         ABS Mesh Validation
     *       - Custom Mesh Validation
     *           Hotend Temp:
     *           Bed Temp:
     *           Validate Mesh
     *         Info Screen
     *     - Edit Mesh
     *         Fine Tune All
     *         Fine Tune Closest
     *       - Adjust Mesh Height
     *           Height Amount:
     *           Adjust Mesh Height
     *         Info Screen
     *     - Mesh Leveling
     *         3-Point Mesh Leveling
     *       - Grid Mesh Leveling
     *           Side points:
     *           Level Mesh
     *         Info Screen
     *   - Output UBL Info
     */
Brian 3b0127cf8e Fix compiler complaint related to M100
Scott Lahteine 11104f177b Apply const in BABYSTEPPING
Scott Lahteine 081bf1f879 Patch #else / #endif comments
Scott Lahteine a9487c9443 Reduce redundancy in BLTOUCH conditionals
Scott Lahteine 8d961b51cc Eliminate M100 compiler warnings?
bgort efb9ce24d9 Merge pull request from tcm0116/bltouch_config
Automatically define Z_MIN_PROBE_ENDSTOP_INVERTING for BLTouch
bgort e2f07917ab Merge pull request from tcm0116/bltouch_menu
Move BLTouch LCD menu from Main to Main/Control
Florian Heilmann fe96376a73 Fix FWRetract with positive z-moves during retracted state
Scott Lahteine 47cae2929f Patch platformio.ini to fix build error in DevIoT
For compatibility with DevIoT, until that can be solved.
Scott Lahteine 911a87e006 Disable SCARA feedrate scaling by default
Scott Lahteine 71396f77d3 Cleanups following recent commits
Scott Lahteine dca48f0e63 Move platformio.ini back to Marlin folder - it works there
Scott Lahteine a6dafb058e Small reduction in error code size
Scott Lahteine a1e04942a2 Cleanup to software PWM variables
Thomas Moore a20d0794e6 Automatically define Z_MIN_PROBE_ENDSTOP_INVERTING for BLTouch
Thomas Moore 3279337f47 Move BLTouch LCD menu from Main to Main/Control
Brian 6cb0fa4128 Cleanup previous implementation of new quiet probing
Saves a few lines of code.
bgort 4b7f8ad9c6 Merge pull request from bgort/pio-improvements2
PlatformIO-related changes
Scott Lahteine 56ca47ab9d Patch configuration temp units
Scott Lahteine 421dd62800 Adjust spacing of "spaces"
Scott Lahteine 26dba44cd3 Patch redundant lcd settings
Scott Lahteine 34b5041576 Spacing adjustment, ubl_G29
Scott Lahteine 1c4ed8b106 Note 5 extruders in config comments
Scott Lahteine 6e4a5cc8c6 Patch missing const in temp_abs
bgort d35e2fda10 Merge pull request from bgort/silentprobing
Improve BLTOUCH_HEATERS_OFF functionality
Scott Lahteine 6ed52fb765 Adjust spacing in LSF
Roxy-3D 110afff415 More misc UBL fixes and update gMax examples ()
I think I forgot to Sync before I committed last time.   Some UBL
changes did not stick.

Also, update the gMax configuaration.h file so other than unique numbers
and settings, it exactly matches the default configuration.h file.
Roxy-3D d92fa40c62 misc. UBL fixes ()
* Restore LSF functionality

Some of the typo's persisted...   Hopefully this gets them all fixed.

* Restore user's expectations of how G28 should behave

* Allow Nozzle size control with ornery host programs
Brian faa270071d Improve BLTOUCH_HEATERS_OFF functionality
- rename to PROBING_HEATERS_OFF
 - move heater pausing functionality into thermalManager
   - add variables, pause(), ispaused(), other functions
 - add fan pausing functionality -> PROBING_FANS_OFF
 - add probing_pause() wrapper
 - move pausing into do_homing_move() and do_probe_move() to minimize quiet time and so other probe types can benefit
 - example configs
lrpirlet d66e9efac5 G29 P1 stops reporting Invalid location with this patch
Scott Lahteine ce507deb9f Support temperature units in M503
bgort a59066bca9 Various improvements - mostly UBL-related ()
UBL Clean up.
Brian 0446dd3ad8 PlatformIO-related changes
- move platformio.ini out of source directory to be more consistent with 'normal' PlatformIO usage
  - facilitates IDE integration
- add related .gitignores
Scott Lahteine 77769e284f Edit configuration comments
Scott Lahteine 6876e79d42 Tweak command index increment
Scott Lahteine 7fcb5c1424 Minor fix in K8200 readme
Max Matveev 267f3a03d9 Fixed USE_CONTROLLER_FAN #define usage
bgort ae7c602031 fix error in M105 output -- use SERIAL_PROTOCOL for ints instead of SERIAL_PROTOCOL_F ()
also removed wayward 'address of' ampersand in setTargetHotend and setTargetBed parameters
Scott Lahteine 3cd9af2409 bugfix-1.1.x ReadMe, Version, helper scripts
Florian Heilmann 15268770f5 Fix broken fwretract recovery extruder feedrate
When both lowering and recovery are performed using the same "prepare_move_to_destination()" the extruder recovery feedrate ends up being ignored and, instead, is only capped by either the maximum e-speed or the time it takes to perform the z-lowering. 
Performing the two moves separately from each other ensures a correct recovery feedrate.
Scott Lahteine 58210c3a19 Merge pull request from thinkyhead/rc_bilinear_extension
Add EXTRAPOLATE_BEYOND_GRID option to bilinear leveling
Scott Lahteine da08e11acd Add EXTRAPOLATE_BEYOND_GRID option to bilinear leveling
Scott Lahteine 6834e36871 Merge pull request from thinkyhead/rc_sdcard_stop
Shutdown heaters, autotemp on SD Cancel
Scott Lahteine 399efd66ed Click to resume
Scott Lahteine 1196e3ca59 SDCard print completion can use "M0"
Scott Lahteine 6854f08d22 Shut down autotemp in disable_all_heaters
Thomas Moore acec237092 Shutdown heaters and fan after canceling a print from the SD card
Scott Lahteine 11b6a3cbb6 Fix regression in least_squares_fit.cpp
Scott Lahteine e1b85ff67b Merge pull request from thinkyhead/rc_more_optimal
Compact smart_fill_mesh slightly
Scott Lahteine 9890141f7b M100 tweak
Scott Lahteine 2658cc707a Treat temperature as integer, when possible
Scott Lahteine 1b2c7ec20a Make G26 compatible with inches and thermal unit modes
Scott Lahteine 241bdffe65 Dress up Bilinear Leveling code
Scott Lahteine 67ecf06cc4 Patch issue in gcode_M900
Noted in 
Scott Lahteine de5e485ed7 Explicit upward angle solution
Scott Lahteine ecdf68735f Compact smart_fill_mesh slightly
Scott Lahteine 628391304f Merge pull request from thinkyhead/rc_more_ubl_cleanup
Further cleanup of UBL
Scott Lahteine 902fe76db9 Merge pull request from thinkyhead/rc_use_controller_fan
Implement USE_CONTROLLER_FAN as a feature
Scott Lahteine 7ba7474a73 Drop extra parens from address-of operator
Scott Lahteine 0bf5add075 Use UBL_MESH_(MIN|MAX)_[XY] for G29 move limits
Scott Lahteine b8ba3b7647 Use 'sq' macro where possible
Scott Lahteine 66eba3346b Remove G29 lcd control debugging
Scott Lahteine 3517154135 Reduce code size, fix bug in smart_fill_mesh
Scott Lahteine c4e34adcf1 Apply formatting, coding standards to UBL
Scott Lahteine f4239e62b1 Merge pull request from thinkyhead/rc_hotend_status_item
Keep refreshing LCD if hotend status is on-screen
Scott Lahteine fc857c5b78 Merge pull request from thinkyhead/rc_bltouch_refix
Fix BLTOUCH_HEATERS_OFF bug
Thomas Moore b39f634252 Continuously update LCD when hotend status is displayed in Filament Change screens
Scott Lahteine 2c13922c46 Implement USE_CONTROLLER_FAN as a feature
Scott Lahteine 492bc536bf Modify debug methods to take PSTR
Bob-the-Kuhn e5a27d9f36 G29 P2 & P4 bug fixes & improvements
Scott Lahteine b93be716cf Remove trailing whitespace
Scott Lahteine 76eca9732d Fix mis-named language string define in Dutch
Scott Lahteine 806f670092 Merge pull request from Bob-the-Kuhn/UBL--G26-minor-improvements
UBL: G26 minor improvements
Scott Lahteine 0803c9d997 Merge pull request from thinkyhead/rc_autocal_patches
General cleanup of G33
Brian ff5fed137f Fix BLTOUCH_HEATERS_OFF bug
Scott Lahteine ca1dd739a3 Organize ubl.h defines by the files they serve
Scott Lahteine 0449f69179 Cleanup patch to recent merge
LVD-AC da2abad636 Various cleanups of G33
- update comment section
- redefined P5 grid
- minor clean to probe radius routine
- updated EEPROM version to V37 according remark in 
Bob-the-Kuhn 7ce613db0a Fix Conditionals test for endstop plug used by Z2 or probe.
Scott Lahteine ef750ae86b Towards supporting Z2 in Endstops::report_state
Scott Lahteine c03c623951 Sanity-check Z2 endstop assigned to a nonexistent pin.
Scott Lahteine 70f31b6c76 Throw an error if no E stepper is free for X2, Y2, Z2
Scott Lahteine ac69eca586 Merge pull request from bgort/ubl_gridlbls
Fix, cleanup, prettify `G29 O` output
Scott Lahteine 99b11db1a1 Merge pull request from thinkyhead/rc_cleanup_sunday
Various leveling-related patches
Roxy-3D 41e63bbb7c Fix Horizontal and Vertical UBL optimization bug. ()
* Fix Horizontal and Vertical optimization bug.

And drastically reduce the debug code foot print....

* Yeah Baby!

The debug print is going A - OK !
Scott Lahteine e79b335367 Patches for leveling reactivation in G28 / M48
Brian 92e22c3bf2 Fix, cleanup, prettify `G29 O` output
Scott Lahteine 7d5cd7e0d7 Tweak set_bed_leveling_enabled
Scott Lahteine ed81e9b3d3 Adjust leveling conditionals
Scott Lahteine a64e5659ce Clean up G26 external references, private vars
Scott Lahteine 2887c20788 Add a function to home all axes (i.e., gcode_G28)
Scott Lahteine 8f895d5e01 Merge pull request from thinkyhead/rc_cleanups_2
Fixes for DUAL_NOZZLE_DUPLICATION_MODE
Scott Lahteine 8002672938 Fixes for DUAL_NOZZLE_DUPLICATION_MODE
Scott Lahteine f69acde966 Merge pull request from MarlinFirmware/revert-6416-negative-mesh-fix
Revert "Fix for Meshpositions if printer has negative endstop positions"
Scott Lahteine 4803a4322e Revert "Fix for Meshpositions if printer has negative endstop positions"
Scott Lahteine 4f74c416a4 Patch for BLTOUCH_HEATERS_OFF
Scott Lahteine 1823a6ea29 Patch for missing DELTA_HEIGHT
Scott Lahteine d814e468d2 Fix set_heaters_for_bltouch and usage
- Only call `set_heaters_for_bltouch` when actually deploying/stowing
- Clear `next_emi_protection` when re-enabling heaters
Brian 4e1448e75a Various fixes for compiler warnings
add BLTouch-related messages in english and (rusty) french;
add missing endstops.h in ultralcd.cpp;
fix misc. compiler warnings;
fix lsf_reset - ZERO macro can't handle a pointer as it would only memset the size of the pointer, not the size of the entire struct
Scott Lahteine fc9919b749 Merge pull request from thinkyhead/rc_cleanup_sunday
Some minor cleanups to code formatting
Scott Lahteine c12bc51a59 cardreader.cpp spacing tweak
Scott Lahteine 46b714a52f Cleanup spacing in pinsDebug.h
Scott Lahteine 88141ca717 Remove things that aren't pins from pinsDebug_list.h
Scott Lahteine ff35b11d08 Resolve compiler complaint about memset volatile *
Scott Lahteine 0b421e97c9 Rename some (unused) OMCA pins
Scott Lahteine c2c9f01c8e Patch newly-introduced bug in IS_Z2_OR_PROBE
Scott Lahteine 819df5e06d Cleanups to pins debugging
Scott Lahteine 42824b0e1f Use new serial spacing function to save PROGMEM
Scott Lahteine cd72901fb7 Cleanups to UBL code
Bob-the-Kuhn ce87c7803e implement G26 changes per review
jaysonkelly 769817ce5e Need to define this for Rigidboard V2
Motor current defaults need to be defined for Rigidboard
Scott Lahteine 39c6c5621b Merge pull request from SkyNet3D/negative-mesh-fix
Fix for Meshpositions if printer has negative endstop positions
Scott Lahteine 671a44b8aa Merge pull request from teemuatlut/LVD-Delta
Delta auto-calibration updates
Scott Lahteine 5d5c9a040a Merge pull request from thinkyhead/rc_config_patches
Configuration cleanup
Scott Lahteine d480b6f75a Enable E1 stepper for DUAL_NOZZLE_DUPLICATION_MODE
Bob-the-Kuhn dcde202157 Add startup notice & update host temperatures while waiting
Right now G26 doesn't send a notice to the host that it's running.  It's
not until the heaters are at temperature that you know for sure if it's
running or not.

Added host temperature prints so that someone watching the host
interface will see the temperatures change during the warm up period.
Updates are sent every 5 seconds.
Scott Lahteine 54751e8557 Put DISTINCT_E_FACTORS adjacent to the affected settings
Scott Lahteine 0dbe4b3e54 Edit configurations to reduce verbosity, arrange logically
Scott Lahteine 0750933bc6 Merge pull request from Bob-the-Kuhn/Missing-X-stop
Endstop not enabled if pin is zero
bgort 5ace3699b1 Output (commented) coordinates on G29 S-1; helps identify the x/y points that correspond with i/j coordinates, which eases manual tweaking of z values ()
Scott Lahteine d7d4378481 Remove inaccurate version description
Scott Lahteine f169c04604 Merge pull request from thinkyhead/rc_cleanup_wednesday
Various cleanups for recent merges
Scott Lahteine 6d63255ddc Merge pull request from bgort/pio_improvements
PlatformIO-related improvement
LVD-AC cafc48dff8 little oops
Brian 627730948d Add U8glib as a dependency to platformio.ini for those who use PlatformIO; this makes compiling even easier as u8glib will be downloaded and included automatically.
Also added the new .pio-related directory to .gitignore, and a few ignores for those who use cmake.
bgort 5974d8e168 change G26 default nozzle size to 0.4, consistent with instructions ()
LVD-AC 471a321624 leaner code for probe routine
bgort 3c0d5ba0a1 allow idle() to be called - fixes sometimes crash/hang in G29 I; ()
Roxy-3D 2509587b5a Correct over optimization of pre-initialized variables ()
* Correct over optimization of pre-initialized variables

NEAR_ZERO() works most of the time...  But it leaves corner cases
uncovered.  We need to explicitly check if these variables are +/-
infinity.

* Correct over optimization of pre-initialized variables
LVD-AC 585c00a728 Proposed changes
This is what I did yesterday:

- basicly gave the tests more comprehensive names; put all the
declarations at the top; got rid of the magic negative C-value (renamed
to P + A, O, T)

- "cos(RADIANS(180 + 30 * axis)) * (1 + circles * 0.1 * ((zig_zag) ? 1 :
-1)) * delta_calibration_radius" compiles wrong is zig_zag statement is
without brackets

- DELTA_TOWER_ANGLE_TRIM reset to 3 values (the calcs use the 3th value
to normalize will not compile otherwise)

-Wrote 3 dummies to keep EEPROM lenght the same

-Reset the configs to the 'original' with autocal + menu disabled (but
can be enabled of course)
Scott Lahteine 29fa241617 Initial patches to G33
Scott Lahteine 12ce051b55 Add a function to output spaces to serial
Scott Lahteine 42f4c53254 Starting on G33 rewrite
Scott Lahteine baf3b91460 DELTA_TOWER_ANGLE_TRIM only needs AB
emartinez167 27cd165adf Last three Spanish language strings
Updates as per @thinkyhead request.
Scott Lahteine 2cc9774f34 Apply bltouch_menu
As proffered in 
Scott Lahteine 1a111180de Clean up set_heaters_for_bltouch
Scott Lahteine 7db805930a Cleanup configurations
Scott Lahteine 8bf3a3fcdb Remove inaccurate comments from ubl.h
Scott Lahteine 47557d5a19 Fix up formatting in ubl.h
Scott Lahteine 0a8e09c723 Clean up excess whitespace, comment formatting
Scott Lahteine a35c681453 Clean up least_squares_fit
Bob-the-Kuhn 40089249c3 add PIN_EXISTS to HAS_xyz_MIN macro
Scott Lahteine 8020069371 Apply coding standards for indentation
Scott Lahteine dabca83742 Merge pull request from Kaibob2/patch-1
Update language_de.h
Kai 3d0a4c4ea9 Update language_de.h
Silvio 6bf1d50188 Added missing translations ()
Mehmet Sutas 404f767d44 Update language_tr.h ()
Petr Zahradnik 5e701524f8 Update language_cz.h for new translations ()
* Update language_cz.h for new translations

* Correction translate

* Revert correction back to hotend
gege2b 0a92ce7a98 Completed french translation ()
Ernesto Martinez ff4fb42e7d Add new strings as per recent changes in RCBugFix ()
Adding missing strings to Spanish language, as per changes recently
done to the RCBugFix branch.
paulusjacobus 67d1fc5556 Update language_nl.h ()
updated the RCbugfix release with additional Dutch translations
benlye 8c6b4537a6 Fix issue in itostr4sign with numbers <100 ()
The first character in the string wasn't blanked if the number went from >= 100 to <100, resulting in artefacts in the displayed string.
LVD-AC 4ea8d0f89b Solved "The Travis CI build failed "
LVD-AC ed6b361e27 cleanup ready to squash
LVD-AC 7a6a1ef583 M666 normalize positive values to <=0
M666

+ tower radians absolute value
Roxy-3D 4075b95519 Allow BL-Touch users to control heaters during probe event ()
The Configuration.h file entries for BL-Touch have been updated to:
```cpp
//#define BLTOUCH
//#define BLTOUCH_DELAY 375      // (ms) Enable and increase if needed
//#define BLTOUCH_HEATERS_OFF // if defined the printer's heaters are
turned off during probe event
```
Roxy-3D 6e8ecb908a Shut down heaters during BL-Touch probe event
The electro-magnetic interference from the bed and nozzle are affecting
the BL-Touch repeatability for some users.   This problem can be helped
by shutting down the heaters during the actual probe event and then
quickly turning them back on.

Because this code is messing with the heaters, it is written in a
paranoid manner.  It only turns the heaters back on if everything is
EXACTLY as it expects things to be.  The BL-Touch probe must have been
put into a deployed state less than 20 seconds prior, or the stow()
function will NOT turn the heaters on.

This code has been tested and works for both G28 and probing functions.
LVD-AC d8102aeca8 Cn negative : no tower angle calibration
Giving a negative number of probe points disables the tower angle
correction calibration ('4point' instead of '7point' solution)

EEPROM version updated
Roxy-3D 3601f08e87 Better tuned FolgerTech i3-2020 example file
Roxy-3D a20b7d9581 Better tuned Example file for FolgerTech i3-2020
Also setting up Z-Probe on the machine.
Kai bf2fe46062 Update language_de.h
Kai 11d34be060 Update language_de.h
Scott Lahteine 817ecb9ff4 Merge pull request from thinkyhead/rc_cleanup_wednesday
Minor cleanups, work-in-progress
Roxy-3D 22f6e277af Get example files fully into compliance
Change to support new name GRID_MAX_POINTS_XY
Start UBL at version 1.0 in the CUSTOM_MACHINE_NAME
LVD-AC a9bc1d30cc z_offset change
Avoids to have to recalibrate the delta_height after a z_offset change
Roxy-3D ec26e23e7e Add my two 'Nice' machines as example configurations
These are my two 'Nice' machines.  Both are good example machines.  The
FolgerTech i3-2020 is probably the best value kit on the market right
now.  And it has developed a 'Cult Following' of hobbiests.  I'll always
have an up to date Configuration.h file set for it, so it may as well be
an example configuration.

And the gCreate gMax 1.5+ is the best printer I've ever seen that runs
Marlin.  For sure, I'll always have up to the minute Configuration.h
files for this printer also.   I've moved over to using the gMax as my
primary development machine for Marlin.   So...  Besides being a good
machine, it is a nice convienience for me to have this Configuration.h
file as an 'Example'.
Scott Lahteine adb8e68592 Fix stuck "Print Aborted" LCD message
Fixes 
Scott Lahteine 096b927102 Minor optimization of FILAMENT_WIDTH_SENSOR
Scott Lahteine 5bdb0b567d Cosmetic patches
Kai 38ae7f4238 Added more translation strings
There are some quite tricky ones which are hardly translateable.
Maybe @Sebastianv650 can review this
Scott Lahteine 4d96d3eab1 Bootscreen delay after clear, then set chars
Fixes 
Scott Lahteine 5512130d6c Only set Compare Mode for channel A
Fixes 
Roxy-3D d467e97679 Smart-Fill and Mesh-Tilting (both 3-point and grid) working!
Also...   The memory corruption issue may be fixed.   The GCC compiler
was inlining static functions and this caused the G29() stack frame to
become much larger than the AVR could handle.
Scott Lahteine a699967ec8 Merge pull request from thinkyhead/rc_interrupt_fastio
Patch fastio.h with Timer 2 interrupt support
Scott Lahteine 2823bf0874 Update fastio.h with special handling for Timer 2
Scott Lahteine fd535e111a Fix up XYZ_CONSTS_FROM_CONFIG macro
Kai 03c2f756b9 Update language_de.h
LVD-AC dcf30a69d6 Allowing #define DELTA_TOWER_ANGLE_TRIM[C_AXIS]
More consistent with M665 where C-value is allowed as well, then
normalized
Brian f41fb2b635 Numerous UBL-related changes:
* relocated ubl state to config. store:
 * removed a number of ubl state variables and padding which were largely unused - saved 58 bytes of both SRAM and EEPROM;
 * modified ubl sanity_check - no longer checks removed state variables that were otherwise unused, where checking didn't seem to accomplish anything, ultimately;
 * removed pre_initialized state, saving 64 bytes of SRAM;
 * removed automatic saving of UBL state after UBL activation/deactivation;
* consolidated multiple GRID_MAX_POINTS_X/Y to 'Global Leveling' section of EEPROM;
* minor update to G29 Sx notes/instructions;
* renamed mesh load and save parameter to 'slot' from 'm' for clarity;
Brian f1a4758cef use progmem instead of sram for mesh_index_to_x/ypos array;
fix maximum mesh_index_ array size at 16 (15+1);
Scott Lahteine 87d240042a Optimize number-to-string functions, no-fan display
Scott Lahteine 959566cf0a Update note about M163 / M164
Scott Lahteine 830851df13 Spend some SRAM to optimize bilinear leveling
Scott Lahteine 091179d960 bed_level_grid => z_values (also *_virt array)
Scott Lahteine 23cdbbb2d3 Add a method to refresh bilinear bed level after a change
Scott Lahteine ccda63c473 Drop the accessor form for LCD value editing
Scott Lahteine 10da175be5 Fix a pair of compiler complaints
Scott Lahteine ff0018e287 Format hex values as uppercase
android444 77aa16005d Polish font
Add polish font for GLCD displays only.
HD44780 work properly without polish character.
Update language_pl.h.
teemuatlut 244f67590e Delta probe height bug solved
Hans Raaf 406a83ff2d Fix for Meshpositions if printer has negative endstop positions
benlye 3ed737425d Fix typo in new SET_COM macro
Brian 88649b06a6 use planner.z_fade_height, etc. instead of private, ubl-specific g29 fade height
LVD-AC 004928148c Tower angles
Adding '7-point' tower angle correction calibration
LVD-AC 76ec7a0f80 Adding upto 7*7 probe grids
- adding Cn 5, 6 and 7
LVD-AC d4f593d200 Delete 'expert level'
and getting rid off verbose level 3 and configuration_adv settings
LVD-AC 13c8493878 M665 rework and related issues (all delta's)
- Making M665 compatible with repetier (see
http://reprap.org/wiki/G_code#M665:_Set_delta_configuration)

- M665 B also sets the radius for manual calibration menu

- Converting tower ajustment definitions to arrays - tower angle
corrections compatible with Esher 3D wizzard

- Only tower angles need to be adjustable with M665 and stored to EEPROM
- tower radius and diag rod can be adjusted in the FW only with #define
Scott Lahteine e0e069c6d8 Clean up trailing whitespace
Scott Lahteine 9b94210394 Bring FLSUN config more up to date
Scott Lahteine b0aa256bc0 Updates for all configs
Scott Lahteine ee46ce1743 Add and apply interrupt helper macros
Scott Lahteine 6131c62499 General cleanup
benlye 2c86dfd3b5 Fix compiler type conversion errors after LCD changes
Scott Lahteine 55f9e76610 Merge pull request from thinkyhead/rc_cleanup_followup
Cleanup after some direct commits
Scott Lahteine d38a792a91 Merge pull request from MagoKimbra/fix_configuration_store
Fix double definition in configuration_store
Scott Lahteine b98bc034ae Replace c_assert hack with static_assert
Scott Lahteine 5eb2b1a790 Clear up G29 compiler warnings
Scott Lahteine 4ce2a63db0 Apply const, spacing to Marlin_main.cpp
Scott Lahteine e97f1284c1 Cleanup of pins testing code
Scott Lahteine e9b53ae00c Cleanup after some direct commits
https://github.com/MarlinFirmware/Marlin/commit/5e9726530ff21d3bc62beaa6
ac1b9437c276130a
Scott Lahteine e05d050a1e Add hex routine to print an address
Scott Lahteine 4542282f5e Fix broken TOGGLE macro in fastio.h
MagoKimbra ed52275a14 Fix double definition in configuration_store
Scott Lahteine de569e3d4e Merge pull request from Bob-the-Kuhn/M43-toggle-&-Z-probe-fixes
M43 Toggle & Z servo test - fix bug & add another check
Scott Lahteine f33a650ecc Merge pull request from thinkyhead/rc_linear_advance_eeprom
Add Linear Advance values to EEPROM and LCD
Scott Lahteine a00ae4790a Replace M905 with unique code M900
Scott Lahteine 1286d9603d Clean up and organize ultralcd.cpp
Scott Lahteine 3cdf78a79f MSG_VOLUMETRIC => MSG_FILAMENT
Thomas Moore f8e77d6545 Add Linear Advance values to EEPROM and enable configuration of K via LCD
Scott Lahteine eb2d073dae Add M905 R for setting the E/D ratio directly
Scott Lahteine 69dfa54a84 Use code_value_linear_units for known-linear axes
Scott Lahteine b956f2642b Show M503 report with current linear units
Scott Lahteine ba4a005ceb Merge pull request from mtowara/mt_makefile_fix
Fix Makefile build
towara 150b15c311 fix compiler errors generated by more stringent flags in Makefile:
- use volatile for registers
- avoid implicit casts
towara f6095c9325 fix missing serial.cpp in Makefile
Scott Lahteine 871f92378c Tweak headings in EEPROM structure
Scott Lahteine bf2548be4a Merge pull request from tcm0116/babystepping
Only queue babysteps if axis is in a known position
dot-bob 9c410ddf68 Fixed an issue where a display with a hardware reset pin (LCD_RESET) may not get initialized properly.
Thomas Moore 72a7fac461 Only queue babysteps if axis is in a known position
Roxy-3D 5e9726530f Setup to find data corruption and general clean up
This data corruption problem is very difficult.  Just changing the code
a little bit changes whether the problem even happens and what is
affected.  I need these changes in the main branch so I can operate with
the extra debug code always available and turned on.

Everything is setup such that if M100 is turned off or DEBUG(ECHO) is
turned off, the code is not affected.   M100 has been made a little bit
more inteligent so it can display the serial command buffers in a more
meaningful way (because the data corruption seems to often times end up
in that area).
Scott Lahteine e519e95953 Merge pull request from thinkyhead/rc_doubleclick_fix
Show Cancel/Continue screen for ABL "Level Bed"
Scott Lahteine a81606c680 Show Cancel/Continue screen for ABL "Level Bed"
Scott Lahteine 51021bc7b8 Merge pull request from thinkyhead/rc_endstop_coolness
Clean up endstop triggering code
Scott Lahteine 857dec0990 Merge pull request from benlye/benlye-fix-softspi
Fix softspi variant conditional for 1284p
Scott Lahteine 4e04383d18 Merge pull request from thinkyhead/rc_doubleclick_fix
Fix undefined symbol if DOUBLECLICK_FOR_Z_BABYSTEPPING and HAS_BED_PROBE defined
Thomas Moore 8dd0492e68 Show lcd_babystep_zoffset screen if DOUBLECLICK_FOR_Z_BABYSTEPPING is enabled and HAS_BED_PROBE is defined
benlye 0a2f60fab4 Make spi.h inclusion conditional
spi.h is only needed if HEATER_0_USES_MAX6675 is defined, so making its inclusion conditional on HEATER_0_USES_MAX6675 being defined.
Bob-the-Kuhn 60471b7592 minor improvements
Configuration_store.cpp - changed a couple of print statements so the
values were printed.  The old method resulted in the formula being
printed.

ubl_G29
1) added support for R option to P4.  Now probes all points unless R is
present and the number is greater than 0.

2) P2 - moved map print statement so it showed the point that was
currently being probed,  The old location did this only for the first
point.

3) P4 - Moved the map print for the same reason.

ultralcd.cpp - changed "Mesh Editor :" to "Mesh Editor" because the LCD
draw routine puts a ":" in automatically so you end up with an extra ":"
using the old message.
Scott Lahteine 25a61e9061 Improve motion-based endstop triggering code
Scott Lahteine a2356c2825 Fix compiler warning about z-offset callback
Scott Lahteine 037c964d26 Reverse bools on prepare_move sub-functions
Scott Lahteine d9c4333806 Extra logging of Dual X modes
Scott Lahteine 4067d15c92 Cleanup, extend TMC2130 implementation
Scott Lahteine d60c02c5b1 Cleanup, extend TMC2130 configuration
Scott Lahteine 0e97b3d6d0 Fix some configuration spacing
Scott Lahteine cf6f483378 Merge pull request from thinkyhead/rc_flsun_delta_autocal
Delta: DELTA_HEIGHT, G33 Auto-Calibrate, drop M206/M428, add M665 H
Scott Lahteine 24882adfbf Allow NO_WORKSPACE_OFFSETS with DELTA_AUTO_CALIBRATION
- On `DELTA` the `M665 H` option supplants `M206`
- On `DELTA` `NO_WORKSPACE_OFFSETS` only reverts `G92` behavior
- Spawn 4 conditionals based on `NO_WORKSPACE_OFFSETS`
- Optimize coordinate space conversion for `DELTA` workspace
- To keep EEPROM version, retain `home_offset[XYZ]`, just ignore XY
Bob-the-Kuhn 1acb84ba02 fix 1 bug, add error messages
===============================================

make changes requested by reviewers

===============================================

add M43 test to Travis, fix EOL, remove trailing spaces
LVD-AC 8821963873 Implement delta auto-calibration and delta_height
Scott Lahteine b305699046 Merge pull request from benlye/benlye-lcd_babystep_zoffset
Fix lcd_babystep_zoffset()
LVD-AC 03bda24d19 Add delta auto-calibration and configuration for Flsun AC
Scott Lahteine 1bd25fd2b3 Clean up config spacing, section headings, etc.
Scott Lahteine 153b0ae967 Tweak Delta Printer configuration note
Scott Lahteine 81ffd98dd9 Allow faux leveling
Scott Lahteine 2355d87e11 Merge pull request from thinkyhead/rc_broken_abl_test
Add support for SOLENOID_PROBE
Scott Lahteine f4685c28b7 Reorder Conditionals_post.h and add comments
Scott Lahteine 0ac2b5c045 Additional 5 extruders support (solenoids, microstepping)
Scott Lahteine fd2a0784ba Add support for SOLENOID_PROBE
Scott Lahteine 5803ba43a9 Expose EXT_SOLENOID as an advanced option
Scott Lahteine ea734f910b Use direct pin manipulation whenever possible
Scott Lahteine 19d0c6a0c0 Patch to init W with RGBW_LED
Scott Lahteine 3e079660b0 Never define SLED_PIN
benlye 1a447d0047 Fix variant conditional for 1284p
benlye 1f9ee42750 Fix lcd_babystep_zoffset()
Resolve 'steps_to_mm was not declared in this scope' compilation error after recent changes to merge babystepping with M851
Bob-the-Kuhn 445d39e95a CORExx endstop detection fixes
1. The CORExx printers were checking more endstop axis than needed.

2. Removed all the CORE_xx_NOT logic.  The motor_direction(xx) routine
always returns the correct data so it is not needed.  It was actually
cause the wrong direction to be checked in some cases.

3. Made the logic/defines for X, Y & Z axis all the same.  The old logic
checked inappropriate configurations for Y and didn't check all the
correct configurations on Z.

4. Added a check for zero steps before the X, Y & Z axis.  Previously
would check the they axis even if there were no movement.
Roxy-3D 28fec61f92 M100 Fixes and Features
All the memory accesses need to be unsigned char in  order to avoid
false errors being detected.   Two new features are available for
developers to call into the M100 functionality to look for data
corruption.
Scott Lahteine 52c3ace102 Add BABYSTEP_ZPROBE_OFFSET as an optional feature
Scott Lahteine cd4e6abec8 Group BABYSTEPPING options together
Scott Lahteine 60ac41a32c Add code to handle changes to zprobe_zoffset
Scott Lahteine 8fa4209916 Movement/adjustment should be reverse of probe offset change
Thomas Moore 361655828f Use babystepping to adjust bed probe z-offset
Scott Lahteine 36e5c7c389 Merge pull request from thinkyhead/rc_improvements
Sanity check per-axis options' array sizes
Scott Lahteine 02fca543bb Merge pull request from thinkyhead/rc_adc_variable_rate
Make ADC sensor reading frequency adjustable
Scott Lahteine 34308368c0 Sanity check per-axis settings for size
Scott Lahteine ac96ae89f9 Apply `const` in Stepper::isr
Scott Lahteine 2fa1e882d0 Merge pull request from thinkyhead/rc_M20_with_size
Simplified M20 with size
Bob-the-Kuhn 1b12fea0fa simplified M20 with size
Scott Lahteine 4022b971db Merge pull request from thinkyhead/rc_unify_M421
Unify M421
Scott Lahteine b236562354 Merge pull request from thinkyhead/cleanup_after_6302
Adjustments to M100
Scott Lahteine 5e4f4d387f Swap MBL z_values dimensions to [X][Y]
Scott Lahteine 063f641651 Unify M421
Scott Lahteine 6d5400dc31 Merge pull request from thinkyhead/rebuild_rgb_led
Extend RGB LED with Printer Events
Scott Lahteine dac21ec680 Add support for an RGBW LED
Scott Lahteine e7746ffee4 Extend RGB LED support, adding Printer Events
Scott Lahteine c7063eb55c theTarget => target_temp
Scott Lahteine 36bda2bade Add HAS_RESUME_CONTINUE shorthand macro
Scott Lahteine 53e6c33c37 2 is DXC_DUPLICATION_MODE
Scott Lahteine a2cb0a3d54 Use multiply for delta probe constraint
Scott Lahteine 6487c96a4a Merge pull request from Kaibob2/patch-10
Allow 10mm Movements for Z-Axis
Kai 001bc14255 Allow 10mm Movements for Z-Axis
I use the movement options via LCD quite often. Especially to get the nozzle out of the way. I see no reason, why the 10mm option is disabled for the Z-Axis, this is why i always delete this line when i compile a new version.
If this is unwanted, please just close this PR
Scott Lahteine 6a9b008044 Fix MINIMUM_STEPPER_PULSE maths
Scott Lahteine 68773f4486 Simplify stepper macros by renaming enable/disable macros
Scott Lahteine e02a5a6371 Add macros for delays by machine cycle
Scott Lahteine ecc537015a Have M109 / M190 do nothing with no parameters
Scott Lahteine 03aa9a390e Apply coding standards to M100, break up into functions
Scott Lahteine 48c16fc6ef Merge pull request from thinkyhead/rc_less_no_reentrance
Only lcd_synchronize needs no_reentry
Scott Lahteine 4fcfe926d6 Only lcd_synchronize needs no_reentry
Scott Lahteine 67fb7f82ac Merge pull request from thinkyhead/rc_eeprom_z_fade
Save / restore z_fade_height in EEPROM
Scott Lahteine eff5af569b Merge pull request from MagoKimbra/rc_fix_mesh_report
Fix mbl_mesh_report
Scott Lahteine 4a18968c10 Merge pull request from Kaibob2/patch-9
Fix EPROM -> EEPROM
Roxy-3D ba85faabc0 Fix M100 Free Memory Checker
M100 had numerious changes and quit working.   Part of the problem is
the overloading of the SERIAL_PROTOCOL functions.   Also, some of the
address arithmatic was changed to use char *ptr and passing ptr into the
SERIAL_PROTOCOL functions caused them to try to print a string instead
of a number.     M100 is working again.   Let's keep it that way!

M100 has been expanded to now have a function  int
free_memory_is_corrupted()  that can be called from other code to see if
the free space is still contiguous.  It may make sense to add a flag to
control its verbose nature but right now, the extra chit chat is very
helpful to know int free_memory_is_corrupted()  is doing the right thing
and what it found at various points when it was called.     A 'Show &
Tell' is coming up with int free_memory_is_corrupted().
Kai 3b82db5fe9 Missing semicolon in ultralcd.cpp
When PARK_HEAD_ON_PAUSE is defined Marlin won't compile because of two missing semicolon.
MagoKimbra 7d2e637867 Fix mbl_mesh_report
Kai afeb0452ef Fix EPROM -> EEPROM
These fixes are neede because before it showed the englisch text even if language = de was selected
Scott Lahteine 7f950a80c0 Make ADC sensor reading frequency adjustable
Scott Lahteine 786af73e24 Convert config code to a static class
james94jeans2 5b9476fe78 Added z_fade_height to EEPROM-Settings
Firmware was forgetting the z_fade_height in Planner, set by M420 Z<f>,
after each reset or loading settings from EEPROM. Added the float
z_fade_height to EEPROM-Storage, now remembers the value.
Scott Lahteine 9343f6a95f Put TOSHIBA with other stepper driver options
Scott Lahteine 7a704af5e6 Merge pull request from thinkyhead/rc_wt150_rebase
wt150 (Mightyboard Rev E) & RRD Full Graphic Smart Controller
Max Matveev 2031fb913b Fixed comparison of float values to NaN
Scott Lahteine e48a52a530 Patch a display issue with LCD_DECIMAL_SMALL_XY
The `ftostr4sign` function got munged by the `WITHIN` patch
Scott Lahteine 1a3cd6a090 Merge pull request from thinkyhead/rc_gitattributes
Init bed_level_virt_interpolate on EEPROM load
Scott Lahteine 314a02e2d5 Toggle with XOR
Scott Lahteine 8bc0d90b00 Init bed_level_virt_interpolate on EEPROM load
MD 20dd5376b8 Cheaptronic V2
Add support for new electronics
www.reprapobchod.cz
Scott Lahteine 4cdda5615b Bring other configs up to date with wt150 changes
Paweł Stawicki 9b0885f4f6 Allow boards without a thermistor
Paweł Stawicki 64cfcebe66 Update SlowSoftI2CMaster link. MightyBoard digipots I2C bus has no resistors.
Paweł Stawicki 0eb16d9ff7 Add example config for the wt150 printer with RepRapDiscount Full Graphic Smart Controller
Paweł Stawicki 652bedfa18 Add RepRapDiscount Full Graphic Smart Controller support to MIGHTYBOARD REVE
Paweł Stawicki 44cdebb8f1 Add software spi support for max6675
Paweł Stawicki 191fec009f Add digipot i2c control for MCP4018
Scott Lahteine e5b16081cb Update TinyBoy2 configurations
Scott Lahteine 1855534f20 Config files cleanup
Scott Lahteine c26a315d0b Additional missed patches
Scott Lahteine 39617e10b8 Patch configs comment formatting
Scott Lahteine c54f6cf23d Updates to support 5 extruders
Scott Lahteine 2b88ccd0aa Apply UBL mesh bounds to remaining configs
Scott Lahteine 60be3d264b Macros to print floats, hiding imprecision
Scott Lahteine b356d73239 Merge pull request from thinkyhead/pr_delta_angles
Followup to additional delta trim options
Jimmy Envall f78d44e91a Added support for delta tower angle corrections.
Scott Lahteine d3b4d84586 Merge pull request from thinkyhead/pr_roxy3d_rcbugfix
Unify UBL Command Parsing
Scott Lahteine d4ce839351 Cleanup following Pins Debug update
Scott Lahteine c7a8f7970b Formatting / cleanup
Scott Lahteine 29d4ec8257 Support 5 extruder auto fans
Scott Lahteine 824f3c1c0d Fix up configuration comments
Scott Lahteine 995ed90248 Clean up Filament Width Sensor comments
Scott Lahteine 5a7b810fdd General comment cleanup
Scott Lahteine 0027c22839 Drop extraneous calls to lcd_update
Scott Lahteine d6db7a9b03 patch "step_remaining"
Scott Lahteine cbc2331187 Use LCD_MESSAGEPGM over lcd_setstatuspgm
Scott Lahteine 3729510b1e Set and check main parameter values, report all errors
Roxy-3D 34d3ed9ab1 These items were removed from the UBL Command Parsing
Having these items randomly (and errorniously) disappear cost me several
hours of work yesterday.
Scott Lahteine 15edb41cee Patches to UBL
Roxy-3D 14cf527bb8 Getting setup for debugging
Scott Lahteine f8408036f2 Merge pull request from thinkyhead/rc_five_extruders
Support up to 5 extruders in Marlin
Bob-the-Kuhn f7fc49c3a3 Finish name change
DAC_STEPPER_DFLT wasn't changed to DAC_MOTOR_CURRENT_DEFAULT in all
places on PR 
Scott Lahteine 832064e4f2 Implementation changes to support 5 extruders
Scott Lahteine 04050237f0 Header and pins changes to support 5 extruders
Scott Lahteine 2a84122edd Configuration changes to support 5 extruders
Scott Lahteine edf18977c1 Patch pins files hotends/e-steppers sanity check
Scott Lahteine dc84678fc1 Fix HOTEND_STATUS_ITEM for graphical display
Scott Lahteine a0de5d94e2 Merge pull request from benlye/benlye-bilinearfix2
Better fix for bilinear Z offset and G29 Z (update to )
Scott Lahteine b23aef5b8d Merge pull request from Bob-the-Kuhn/Stop-and-Kill-prints---round-2
Message for every KILL and STOP (also need delays)
Roxy-3D 945303c0d5 eleminate bootscreen.h
Roxy-3D ef3da3971e Update ubl.h
Roxy-3D 8644dc170b get synchronized to current file names
Roxy-3D 1451b7eacf UBL's Grid Based Leveling code
Pretty much...  The code is in place.  Still more work to do.    But it
has a lot of hooks and variables in other code, so commit and merge
before I pick up a million 'Conflicts'.
Bob-the-Kuhn 549055f20c Merge pull request from Bob-the-Kuhn/MCP4728-consistency
MCP4728 consistency & fix ultralcd.cpp (PRINTRBOARD Rev F and RIGIDBOARD V2)
Bob-the-Kuhn a77875c9d2 Merge pull request from Bob-the-Kuhn/try2-add-BLTouch-retry
Another BLTouch retry place (replaces PR )
Bob-the-Kuhn 3b9ff2cb12 Merge pull request from Bob-the-Kuhn/configuration.h
Configuration.h - reword Z PROBE section
Bob-the-Kuhn 6643d553f6 # This is a combination of 2 commits.
# This is the 1st commit message:

MCP4728 consistency & fix ultralcd.cpp

The MCP4728 DAC controls the stepper motor current strenth on the
PRINTRBOARD Rev F and RIGIDBOARD V2 boards.

PR  on 9 FEB 2017 implemented default drive percentages but only on
the RIGIDBOARD V2.

This change moves the default settings to Configuration_adv.h.

Also, ultralcd.cpp won't compile because of a type def conflict.
Changed it to match the one in stepper_dac.cpp

===========================================================

reword stepper curent section for clarity

===========================================================

change name & improve comments

===========================================================

changed name from A4JP to SCOOVO_X9H per PR 

# This is the commit message :

fix typo
Bob-the-Kuhn a44b3432c1 add BLTouch retry to a second place & add/update delays
=================================================

implement requested changes

=================================================

remove delays (they're in another PR) & move return
Bob-the-Kuhn a5abc61fb9 Merge pull request from Bob-the-Kuhn/Servo-probe-and-toggle-pins
M43 - add Toggle utility and Z servo utility (replaces PR )
Bob-the-Kuhn 3b8926bd09 improved wording, consolidation of info, BLTouch warning
==============================================

clarified BLTouch calculation & changed comment delimitters/flags

I found it hard to pickout the various sections in this area so I
changed most comments from // style to /** ... */

Made the BLTouch calculation simpler and clarified the units of measure
for the result.

============================================

add changes to example configurations

============================================

add TinyBoy2 to this PR & add BLTouch Delay
Scott Lahteine 55d296aaf0 pinsDebug with more features, uses less RAM
I've just uploaded a major change to pinsDebug.
The big change was creating an array in FLASH that contained every
active pin definition. That reduced the RAM memory usage considerably
but increased the FLASH usage.
Creating the array requires going through the pin list twice. Rather
than having two copies of it in the code I moved the list out to another
file (pinsDebug_list.h) and then just did two #includes.
From the user’s view they’ll see the following changes:
1. Now reports all the names assigned to a pin
2. The port is now reported in addition to the pin number.
3. When PWM0A & PWM1C share a pin, both PWMs are reported
4. More PWM/Timer info is reported
One new item that may cause some concern is the usage of the LINE
predefined preprocessor macro. It may not be available if the Arduino
IDE goes to a different compiler.

Includes support for 1284 & 1286 families.

Memory usage changes when enabling PINS_DEBUGGING:
ATmega2560
FLASH
.           without   52576
.           with new  64592
.           with old  62826
.           new-out   12016
.           old-out   10250
.           new-old   1766
.
RAM
.           without   2807
.           with new  2875
.           with old  3545
.           new-out   68
.           old-out   738
.           new-old   -670

==================================================================

minor changes - mostly formatting

1) added newline to end of teensyduino file

2) changed flag name from TEENSYDUINO to TEENSYDUINO_IDE.  Got warnings
about redefining TEENSYDUINO

3) removed some trailing spaces

reduce PROGMEM size & update pin list

Reduced PROGMEM usage by
1) converting often used macro to a function
2) moved as much as possible into the function

This required creating two arrays of address pointers for the PWM
registers.

==================================================================

update with new M3, M4, M5 pin names

==================================================================

report I/O status for unused/unknown pins
Scott Lahteine e116723b8b Adjust indentation in ubl.h
Scott Lahteine 1b3a26f2f5 Rename all UBL files with a ubl_ prefix
Scott Lahteine d13991ae18 Use same config name for all mesh dimensions
Bob-the-Kuhn f9686a108c add Z servo test and toggle pins to M43
Scott Lahteine 62cbaa302e Z_DUAL_ENDSTOP - make offset a configuration item
The offset for Z_DUAL_ENDSTOP (z_endstop_adj) is already in Marlin.
This PR just makes it a configuration item.

z_endstop_adj is initialized in two places so both had to be modified.
Scott Lahteine c9e35004e7 pinsDebug with more features, uses less RAM
I've just uploaded a major change to pinsDebug.
The big change was creating an array in FLASH that contained every
active pin definition. That reduced the RAM memory usage considerably
but increased the FLASH usage.
Creating the array requires going through the pin list twice. Rather
than having two copies of it in the code I moved the list out to another
file (pinsDebug_list.h) and then just did two #includes.
From the user’s view they’ll see the following changes:
1. Now reports all the names assigned to a pin
2. The port is now reported in addition to the pin number.
3. When PWM0A & PWM1C share a pin, both PWMs are reported
4. More PWM/Timer info is reported
One new item that may cause some concern is the usage of the LINE
predefined preprocessor macro. It may not be available if the Arduino
IDE goes to a different compiler.

Includes support for 1284 & 1286 families.

Memory usage changes when enabling PINS_DEBUGGING:
ATmega2560
FLASH
.           without   52576
.           with new  64592
.           with old  62826
.           new-out   12016
.           old-out   10250
.           new-old   1766
.
RAM
.           without   2807
.           with new  2875
.           with old  3545
.           new-out   68
.           old-out   738
.           new-old   -670

==================================================================

minor changes - mostly formatting

1) added newline to end of teensyduino file

2) changed flag name from TEENSYDUINO to TEENSYDUINO_IDE.  Got warnings
about redefining TEENSYDUINO

3) removed some trailing spaces

reduce PROGMEM size & update pin list

Reduced PROGMEM usage by
1) converting often used macro to a function
2) moved as much as possible into the function

This required creating two arrays of address pointers for the PWM
registers.

==================================================================

update with new M3, M4, M5 pin names

==================================================================

report I/O status for unused/unknown pins
Scott Lahteine 4abd53f65a Adjust indentation in ubl.h
Scott Lahteine f5c5c1f771 Rename all UBL files with a ubl_ prefix
benlye f1d50ac1dc Fixing bilinear Z offset and G29 Z
The fix in  for bilinear Z offset was flawed and broke the Z parameter of G29 for bilinear levelling.  This is reverted and a different fix is used for the double-addition of the Z-probe offset to the bilinear correction grid.
Scott Lahteine eb1e6aa29b Use same config name for all mesh dimensions
Scott Lahteine c961dd084d Add hidden option to output Bilinear grids in JSON
Scott Lahteine df7b4252fd Reduce M420 code for UBL slightly
Scott Lahteine 8866158d03 Add LEVELING_DATA as a capability
benlye 0a2b4f3486 Fix bilinear levelling z offset
Since run_probe was altered to return the probe Z position rather than the nozzle Z position bilinear levelling has been broken because the Z-offset has been applied twice - once in the run_probe function, and then again in the G29 code for bilinear levelling.
Scott Lahteine 44a849bdce Fix broken M206/M428/G92 offsets
Roxy-3D 52978e5ba5 Fix spelling mistake when UBL's mesh is Inactive
Roxy-3D 0423e93c42 Fix M421 AUTO_BED_LEVELING_BILINEAR and AUTO_BED_LEVELING_UBL
M421 was not connected up for AUTO_BED_LEVELING_BILINEAR.
M421 needed to migrate mesh data to new UBL EEPROM layout.
Scott Lahteine 3412950abc Merge pull request from thinkyhead/rc_psu_zero
Power Supply 0 as "General"
Roxy-3D 3e9e94801f Fix problem described in issue # 6175
As it turns out...   an unsigned int can not go to less than 0,  so the
loop never terminates.
Scott Lahteine 289e3d6844 Merge pull request from thinkyhead/rc_bed_false_alarm
Fix thermal runaway when nonexistent bed temp is set
Scott Lahteine 948728e63b Fix line-endings in UBL_G29
Scott Lahteine 699310d1d2 Fix: Thermal runaway if nonexistent bed's temp is set
Scott Lahteine c56eec29f0 Configurable delay for BLTouch servo emulation
Scott Lahteine deaad78df9 Merge pull request from Bob-the-Kuhn/G38-optional-double-tap
G38 bug fix, made double touch optional & reverted to Z_MIN_PROBE
Scott Lahteine 5bce731962 Fix LCD preheat menus
Scott Lahteine 4c72167af3 Prevent a warning on echo_command
Scott Lahteine 9b5fd9522e Fix formatting, order for a UBL change
Tannoo 54173c80ad Power Supply 0 as "General"
Scott Lahteine a2775d0c70 can wstring be removed?
Scott Lahteine de4e19f17e Patch MarlinSerial to match up with 32-bit version
Scott Lahteine 2cbc7b4b73 Relocate serial macros and functions
Scott Lahteine eaa66f3c46 Indent MarlinSerial code
Scott Lahteine 7a7a80e6c5 status_printf => lcd_status_printf_P
Scott Lahteine 0e6ec34228 Use PSTR versions of lcd_status... to save SRAM
Scott Lahteine 34e2420b9b Apply const args, clean up find_closest_circle_to_print
Scott Lahteine e19fbd27ce Minor spelling patch
Scott Lahteine 790a3e9a8c Remove extraneous check of UBL_G26_MESH_EDITING
Scott Lahteine 7310110ec0 Fix logic of UBL::fade_scaling_factor_for_z
Scott Lahteine 1a775cecac Revert behavior of enqueue_and_echo_commands_P
Scott Lahteine 79d42d87c1 Syntax cleanup
Scott Lahteine b47fd31c37 Revert some changes to UBL
Bob-the-Kuhn 185337e787 add delays to allow stop & kill messages to get out
Scott Lahteine 63abb65146 Update description of PINS_DEBUGGING
Scott Lahteine 73e193da1d Implement LCD_BED_LEVELING for PROBE_MANUALLY
Scott Lahteine fcadc7bb1a Implement the "manual" option for ABL
Scott Lahteine 9e22184936 Add a "manual" option for ABL
Scott Lahteine 541165e878 Merge pull request from thinkyhead/rc_ubl_further_fixes
Further adjustments to UBL code
Scott Lahteine b19a15fa7f Within applied to UBL
Scott Lahteine 342ee458ae Additional UBL fixes, optimizations
Scott Lahteine a5e085cbea Have run_probe() return probe Z, not nozzle Z
Scott Lahteine 4487d22d56 Apply FIXFLOAT macro
Scott Lahteine 6cac0f43eb MBL fiddle
Scott Lahteine 25a6bfa7ed Add and apply WITHIN macro
Scott Lahteine 81136c1e82 Merge pull request from thinkyhead/rc_tinyboy
Support for TinyBoy 2 3D printer (and its OLED display)
Scott Lahteine 93aad54dc1 Clean up code, remove _now command function
Stefan Brüns 6ba6c92a81 Add example configuration for TinyBoy L10/L16
The TB2 is a Indiegogo funded 3d printer. It uses a MKS SMELZI V1.0
main board (based on MELZI, i.e. Sanguinololu). I comes as a complete kit,
including display and panel.
Two variants exists, L10 and L16, with a height of 100 and 160 mm.
The heating function of the provided bed can enabled by soldering a
thermistor and some wires to it.

Signed-off-by: Stefan Brüns <stefan.bruens@rwth-aachen.de>
Stefan Brüns 0fe57ad4f5 Add Support TinyBoy2 OLED/Encoder panel
The OLED is driven by an SSD1306, connected to the board via
I2C, the rotary encoder is connected to 3 GPIO pins.

Signed-off-by: Stefan Brüns <stefan.bruens@rwth-aachen.de>
Scott Lahteine 65ca6472ba Make G26 compatible with G92 and M206
Scott Lahteine 4902fd4e95 More data in UBL class, make it a static class
- Make all `unified_bed_leveling` data/methods static
- Move some UBL-related variables into the class
- Replace `map_[xy]_index_to_bed_location` with `mesh_index_to_[xy]pos`
Scott Lahteine edbc024d76 Disable UBL_G26_MESH_EDITING by default
Scott Lahteine 9e4bd6b3b5 Further repairs to UBL, comments, spacing
Bob-the-Kuhn f3618c3337 Reduce UBL RAM usage by making G26/G29 optional
Scott Lahteine c9eb1d6ab7 Make MBL a static class, use lookup for index-to-point conversion
Scott Lahteine de9d2cddc3 Merge pull request from thinkyhead/rc_cleanup_6150_etc
UBL cleanup, optimization
Scott Lahteine 9217e4b8ec Various UBL cleanups and bug fixes
Scott Lahteine 9924199802 Merge pull request from thinkyhead/rc_fix_slowdown
General minor cleanup
Scott Lahteine 0e71e7b2fb Cleanup to planner.cpp
Scott Lahteine f105cad43c Marlin: Slight cleanup to Marlin_main.cpp
Scott Lahteine 499f9e04e1 Marlin: Temperature soft-PWM cleanup
Scott Lahteine 7ddd94dc61 Merge pull request from StefanBruens/fix_Makefile_errors
Fix makefile errors, cleanup
Scott Lahteine af09095f03 Merge pull request from thinkyhead/rc_fil_sensor_vs_sd
Show Filament Width on LCD when SD is disabled
Remo Kallio d38b1bc4b1 Show filament width sensor values in LCD constantly if SD card support is not enabled.
Scott Lahteine e3459ec178 Merge pull request from MagoKimbra/rc_fix_delta_angles
Fix delta_angles
Scott Lahteine f49aec057f Tweak "can not" => "can't" in RUMBA pins
Scott Lahteine 0a23a1bb3b Dynamic feedrate on SCARA, converting target mm/s to deg/s
Roxy-3D d8724bb546 Get G29's P1 (Automated Probing) working again.
Incorrect optimizations of data types and ternary operators caused some
issues.
Scott Lahteine c7f6ee9c93 Board A4JP should be SCOOVO_X9H
Scott Lahteine a9fc30ae2e Use safe_delay to ensure watchdog reset
Roxy-3D 171904b6c7 Make G29 What command print reliably and fix G29 P1 bug Waldo found
Roxy-3D 9d3ac66f73 Map clean up of UBL
UBL's maps are cleaner.   And with a 1 value, G29 O 1  will generate a
map suitable to be Cut & Pasted into Excel so a Suface Map can be
generated.
Roxy-3D 9a1949a91e Cleaned up G26 ready to replace existing one at MarlinFirmware/Marlin
Roxy-3D aec85ad45a Start of process to get UBL running again.
The wait_for_user change totally broke UBL.   But there is stuff wrong
now in the thermal code and/or LCD Panel code.
Scott Lahteine b47eaf14ae Merge pull request from thinkyhead/rc_soft_pwm_dither
PWM dithering followup
Scott Lahteine 34d1c41b5f Merge pull request from benlye/benlye-patch-echo_command
Fix type conversion issue with echo_command
benlye 6a601aca35 Fix type conversion issue with echo_command
With the the current definition of echo_command I cannot compile RCBugFix (Arduino IDE 1.8.1) with the error "invalid conversion from 'const char*' to 'char*'".  This change resolves that.
Scott Lahteine 009a6ddd39 Adjust bilinear grid in M851
Scott Lahteine eab7854a73 Merge pull request from thinkyhead/rc_immediate_shove
Immediate commands take precedence
Stefan Brüns 5699e2b881 Add SOFT_PWM_DITHER to other configurations
Scott Lahteine 5a2abeca78 Merge pull request from thinkyhead/rc_soft_pwm_dither
Enhancement of PWM, with dithering
Scott Lahteine 043be2856b Use "& 0x3F" instead of "% 64"
Stefan Brüns 6a040a6967 SOFT_PWM: Do not switch off heaters twice on pwm_count wraparound
After wraparound, pwm_count <= pwm_mask holds, thus soft_pwm_X <= pwm_count
guarantees soft_pwm_X < pwm_mask is true, and the heater will be switched
off in the first branch.
Do not evaluate the pwm conditions a second time, this reduces the
instruction count (4 instructions per PWM) and text size (6 byte).

Signed-off-by: Stefan Brüns <stefan.bruens@rwth-aachen.de>
Stefan Brüns 0a74774af1 soft_pwm: avoid useless refetches of pwm_count
The compiler is not able to reuse the value of pwm_count, but reloads it
on every evaluation, if is stored in a static variable, as it cannot prove
it will be unchanged. A variable with local scope may not be modified from
the outside, so its value can be reused.
Doing so reduces text size and instruction count.

Signed-off-by: Stefan Brüns <stefan.bruens@rwth-aachen.de>
Stefan Brüns 35a55d5757 SOFT_PWM: Implement dithering if SOFT_PWM_SCALE is 1 or more
If dithering is enabled, the remainder of the soft_pwm_X duty value at
turnoff time is added to the next cycle. If e.g. the duty is set to 9 and
SCALE is set to 2, the PWM will be active for 8 counts for 3 cycles and
12 counts on each fourth cycle, i.e. the average is 9 cycles.

This compensates the resolution loss at higher scales and allows running
fans with SOFT_PWM with significantly reduced noise.

Signed-off-by: Stefan Brüns <stefan.bruens@rwth-aachen.de>
Stefan Brüns 2aed66a955 temperature: Fix SOFT_PWM off by one
A 128 step PWM has 127 intervals (0/127 ... 127/127 duty). Currently, a
PWM setting of 1/127 is active for 2/128, i.e. double the expected time,
or, in general n+1/128 instead of n/127.
Fixes issue#6003.

Signed-off-by: Stefan Brüns <stefan.bruens@rwth-aachen.de>
Scott Lahteine b5711a99a2 Patches to bring UBL closer to compliance
Scott Lahteine d076c1b604 Apply some general cleanup to code
Scott Lahteine d1e6b0e21a Reduce STEP_PULSE_CYCLES code slightly
Scott Lahteine 783338a0b8 Add UBL_MESH_EDIT_ENABLED to configs
Scott Lahteine 8d54ffbf05 Adjust vector_3 code with const, some optimization
Roxy-3D 8ee2612ebb The hex nibble routine can print again!
The code to print a hex nibble got broke.   SERIAL_ECHO( (char) ) isn't
suitable for its use.
Roxy-3D b8e4a6970b Get UBL up and running again
All the changes to get the code into compliance with Marlin coding
standards made UBL sick.   This pretty much gets UBL back up and
running.
Roxy-3D 5de1da2b3c Make UBL honor the #define ENABLE_LEVELING_FADE_HEIGHT option
Scott Lahteine 8f9face956 Merge pull request from rafaljot/patch-3
Update Marlin_main.cpp
Scott Lahteine 782634b6c9 Merge pull request from Sebastianv650/MIN_STEPPER_PULSE_for_Babystepping
Add MINIMUM_STEPPER_PULSE ability to babystepping
Scott Lahteine af2ea23e9c EXTRUDER_RUNOUT_PREVENT uses buffer_line_kinematic
Scott Lahteine cd882b88db #if defined => #ifdef / PIN_EXISTS
Scott Lahteine e244399766 Additional cleanup of UBL code
Bob-the-Kuhn 0934563b97 G38 optional double touch
Made the double touch portion a conditional compile based on the
PROBE_DOUBLE_TOUCH flag.

==============================================

Bugfix

The current G38 only stopped a move if it involved the Z axis.

Moved all the G38 code to it's own section and put it where it would
always be executed no matter what axis was moving or if the endstop was
enabled.

Also added a comment to configuration_adv to alert the user the double
tap had to be turned on.

==============================================

Change G38 back to using Z_MIN_PROBE

There's no Z_MIN endstop if Z_DUAL_ENDSTOPS is enabled and you have them
set to the top of the gantry.

G38 started out as using the Z_MIN_PROBE pin.  I don't remember why we
changed it to the Z_MIN endstop.
Scott Lahteine cc3204509c UBL patch from Bob-the-Kuhn
Scott Lahteine b904b5ae8d Audible feedback for settings store/load/reset
Sebastianv650 bf57eb2447 Protect Babystepping against other ISRs
Especialy against stepper ISR.
This is even more important when a minimum pulse width is set,
increasing the runtime of a babystep.
Sebastianv650 80830919dc Add MINIMUM_STEPPER_PULSE ability to babystepping
rafaljot 6da949bbf0 Update Marlin_main.cpp
Sometimes after killing heaters are still on.
Roxy-3D 72f7b14e66 Make G29's Interactive Mesh Editor Work
Roxy-3D 3fd74b121f Get G29's Interactive Mesh Editor running
G29 P4 R O  should work now.
Roxy-3D 1d58558bec Spelling fix
Scott Lahteine 2573f4dd05 Merge pull request from thinkyhead/rc_lift_on_pause
Add PARK_HEAD_ON_PAUSE feature / M125
Scott Lahteine 48c6284c91 Immediate commands take precedence
Roxy-3D 76c270fdf2 Allow FWRETRACT with UBL Enabled
The retraction flag in UBL's G26 was conflicting with the FWRETRACT option.

All fixed!
Roxy-3D c377c59d47 Allow G29 P1 R to generate the mesh
Fix the logic change that happened when UBL got merged.
Scott Lahteine ff0dd162b7 PARK_HEAD_ON_PAUSE implementation
Scott Lahteine 26473cab6d Add PARK_HEAD_ON_PAUSE feature
Scott Lahteine 4cf51157b3 Use XYZE rather than NUM_AXIS
Scott Lahteine 4c7f14752a Add disable_e_steppers function
Scott Lahteine 8eb29f91e6 Patch filament change options and beep code
Scott Lahteine 56c9dfc83b Merge pull request from thinkyhead/rc_felix_fix
Update Felix config for UBL
Scott Lahteine 9b2b53f63a Merge pull request from thinkyhead/rc_fix_toolchange_z
Move Z last in tool-change for SWITCHING_EXTRUDER
Scott Lahteine f98fb6b38e Update Felix config for UBL
Scott Lahteine 7cabe81373 Merge pull request from thinkyhead/rc_followup_6054
Followup 6054 with some cleanup
Scott Lahteine 4bca27ab89 Fix Kelvin conversion
Thanks to @ospalh -- 
Scott Lahteine 143ab8f329 Remove Roxy's personal configurations
Scott Lahteine 2512871a36 Patch configs UBL followup
Scott Lahteine 27b5666e15 Move Allen Key probe definition to the top
Scott Lahteine 77cf648ed3 Move menu selection past static items in 1 screen
Scott Lahteine 2c630a1b5c Merge pull request from thinkyhead/rc_ubl_renewal
UBL for RCBugFix — cleanup, rebase, patch
Scott Lahteine 0492a3a8f1 Merge pull request from Bob-the-Kuhn/add_kill_info
Message for every KILL and STOP
Scott Lahteine 6618346148 Patches to work around "register spill" compiler bug
Scott Lahteine be7dd90382 Add Thermistor 75: MGB18 silicon pad
Scott Lahteine b0a9c82c31 Fix single-char echo and pinMode usage
Scott Lahteine fb60aa3736 UBL implementation
Scott Lahteine 238b8fd2a3 UBL core and support files
Scott Lahteine cf94688925 Univeral Bed Leveling - configuration
Scott Lahteine 03aa424ccb Merge pull request from thinkyhead/rc_clean
Remove extraneous whitespace
Scott Lahteine af644871bf Merge pull request from thinkyhead/rc_remove_raw_kinematics
Remove delta optimization concepts… for now
Scott Lahteine 77491dd924 Remove extraneous whitespace
Scott Lahteine b865b21d32 Can't use Z fade height with DELTA
Scott Lahteine 1e57b0c269 Remove delta interpolation concept
Scott Lahteine e46898f8e5 Remove kinematic optimizations
Scott Lahteine 11f1fdfab4 _lcd_level_bed_position => manual_probe_index
Scott Lahteine 0e410c9dfd Software endstop options as simple switches
Scott Lahteine d01b915085 Implement soft_endstops_enabled for clamping
Scott Lahteine e4649c9044 Add HAS_SOFTWARE_ENDSTOPS macro
Scott Lahteine 3e927ff204 Replace MBL Z hacking
Scott Lahteine 4e53124681 Merge pull request from Bob-the-Kuhn/M114-sync-with-stepper
M114 - wait for move completion before reporting position
Scott Lahteine 734f9ea133 Merge pull request from thinkyhead/rc_sanity_use_assert
Simplify some sanity checks with static_assert
Scott Lahteine f02af83d42 Remove some extraneous spaces
Scott Lahteine 672e45652e Improved solution to tool-change bug
Scott Lahteine 23f1cfb46f Fix stuck CHDK pin as suggested in
Scott Lahteine 0b22069e82 Merge pull request from Bob-the-Kuhn/BUG-FIX--Switching-extruder-tool-change-Z-height
Bug Fix: Switching extruder tool change leaves Z in wrong position
Scott Lahteine e7e4500629 Simplify some sanity checks with static_assert
Bob-the-Kuhn 34ff0c3439 M114 - wait for move completion before reporting position
Bob-the-Kuhn b31604a492 Message for every KILL and STOP
No more mystery halts & resets

Moved messages to language.h

Added current command to inactive timeout message
Kai 13b44d019b Update language_de.h
Addition of missing strings to match language_en.h
Bob-the-Kuhn 685ed5393a Bug Fix: Switching extruder tool change leaves Z in wrong position
The tool_change function saves the current_position to the destination
array soon after starting.  Later in the switching extruder section, the
destination array is modified when moving the Z axis up & down.  A later
section of tool_change moves the head back to the “original location”
using the destination array.  This later section assumes that the
destination array hasn’t been modified.

The fix is to save the destination Z position and then restore it after
the Z movements have completed.

Going back to using the current_position array for the switching
extruder Z axis moves (and  leaving the destination array untouched)
doesn’t fix the problem.

This bug was introduced by the “Make tool_change kinematic compatible”
commit # 847429eff4 which was merged on 10
Oct 2016 as part of PR 4982.

This bug was discovered in Issue 5966.
Scott Lahteine 51353f8fea Merge pull request from trivalik/NoWorkspaceWarning
prevent warning with define of NO_WORKSPACE_OFFSETS
MagoKimbra a4a9bd8bc9 Fix BUG set_position_mm
Set postion must have axis and not E_AXIS + active_extruder.
Trivalik 71ac6f9d42 prevent warning with define of NO_WORKSPACE_OFFSETS
Stefan Brüns 9ba6c051a1 Makefile: add nozzle.cpp too CXXSRC list
The file is required by the optional NOZZLE_PARK_FEATURE.

Signed-off-by: Stefan Brüns <stefan.bruens@rwth-aachen.de>
Stefan Brüns 9cc8d495b8 Makefile: remove no longer existing search paths
ArduinoAddons has been removed from Marlin, remove any references to it.
Replace HARDWARE_SRC and HARDWARE_DIR with its expanded equivalents.

Signed-off-by: Stefan Brüns <stefan.bruens@rwth-aachen.de>
Stefan Brüns bf563e62c1 Makefile: add printcounter.cpp too CXXSRC list
The file is required by the optional PRINTCOUNTER feature.

Signed-off-by: Stefan Brüns <stefan.bruens@rwth-aachen.de>
Stefan Brüns ddecc1441d Makefile: Fix linker error
Instantiation of the static singleton instance thermalManager in general
requires locking, but we know its safe to do without.

Add -fno-threadsafe-statics to avoid using locking primitives, which
result in linking errors:
	undefined reference to `__cxa_guard_acquire'
	undefined reference to `__cxa_guard_release'

Signed-off-by: Stefan Brüns <stefan.bruens@rwth-aachen.de>
MagoKimbra 37a26dfc09 Fix delta_angles
Scott Lahteine 2defb1d748 Use SET_INPUT_PULLUP where appropriate
Scott Lahteine 58b3e98878 Use arrays for delta tower parameters
Scott Lahteine 47242a40bb Apply updated changes for delta_tower_angle_trim
Jimmy Envall 00b6b3da79 Added support for delta tower angle corrections.
Scott Lahteine 5a456c832a Apply TMC2130 to example configurations
Scott Lahteine 45f949d833 TMC2130 Library: @teemuatlut replaces @makertum
Scott Lahteine 33f8a8a344 Merge pull request from thinkyhead/rc_circle_pattern
Add circle pattern to nozzle clean
Scott Lahteine 94b3e0a483 Merge pull request from benlye/benlye-fixm48
Remove extra carriage return in M48 V1 output
Scott Lahteine a9a1971295 Merge pull request from thinkyhead/rc_cooldown_before
Fix preheat menu formatting
Scott Lahteine 6aa81255a9 Patch and clean up "flsun" kossel. Followup to .
Scott Lahteine b2270b3f3e Apply prior nozzle clean update
Marek Pikuła 7698c5617a Added circle nozzle cleaning parameters to example configurations
Marek Pikuła 6836b94eea Added circle pattern for nozzle cleaning feature
Scott Lahteine 3b75518ef6 Merge pull request from aphex3k/flsun_kossel_mini
Configuration.h and Configuration_adv.h for the kossel mini by flsun
Scott Lahteine 3830778852 Apply NO_WORKSPACE_OFFSETS to lcd menu
Scott Lahteine 7e3aab889d Fix preheat menu formatting
Scott Lahteine fea0d3f20f Endstop and temp-isr general cleanup
Scott Lahteine aef08e8780 Compact some macro substitutions
Scott Lahteine 2f620f86d9 Merge pull request from thinkyhead/rc_cooldown_before
Preheat Hotend Only menu items
Scott Lahteine 02de8e6f18 Merge pull request from MagoKimbra/rc_stepper_indirection_fix
Stepper indirection fix tmc driver
Scott Lahteine 6c5312559c Menu item to preheat only the hotend
Scott Lahteine 9d0142e8ae Move Change Filament above Cooldown
Scott Lahteine 0c55095c5e Move Cooldown above Preheat
Scott Lahteine c15c65f18a Merge pull request from thinkyhead/rc_fix_e_factors
Patch DISTINCT_E_FACTORS bug
Scott Lahteine bfb0007573 Patch DISTINCT_E_FACTORS bug
Scott Lahteine be98016674 Merge pull request from thinkyhead/rc_no_offsets_optim
New option: NO_WORKSPACE_OFFSETS
Scott Lahteine 8e89a802f7 Document PROTOCOL_VERSION
Scott Lahteine 87b03b16bd Use a macro for array copies
Scott Lahteine e141f3a03f Optimize coordinate transformation
Pre-compute the combined position shift and home offset to save a
single float fetch-and-add per conversion. Great for delta/scara and
bed leveling.
Scott Lahteine 5f7e85398b Implement NO_WORKSPACE_OFFSETS
Scott Lahteine 05abe853f9 New option: NO_WORKSPACE_OFFSETS
Scott Lahteine 20addc6e32 Merge pull request from thinkyhead/rc_eeprom_fail_better
Display a message for EEPROM version mismatch
benlye dead89062a Update Marlin_main.cpp
Remove unnecessary line break from M48 V1 output.
MagoKimbra ae277aebc6 Stepper indirection fix tmc driver
Scott Lahteine 8f4e4b1995 Display a message for EEPROM version mismatch
Scott Lahteine 177ad245f6 Merge pull request from thinkyhead/fix_fc_e_index
Fix submenu hotend status display
Scott Lahteine cea3ea772c Fix submenu hotend status display
Scott Lahteine b27f69ba51 Merge pull request from thinkyhead/rc_fix_makrpanel
Fix MAKRPANEL assignments
Scott Lahteine 1ef6ccd919 Merge pull request from thinkyhead/rc_print_2d_array
Reduce code size (40b, or 166b with bilinear subdivision)
Scott Lahteine 53f5086905 Fix MAKRPANEL assignments
MAKRPANEL is a DOGLCD+ULTRA_LCD+NEWPANEL so customize its pins within
that block.
Scott Lahteine 98c7b682ca General cleanup, const usage, var naming
jes 369bfc8a1e Reduce code size (40b, or 166b with bilinear subdivision)
Scott Lahteine 0d13412105 Fix "Heating..." message
Scott Lahteine 5065636023 Merge pull request from thinkyhead/rc_advance_ed_ratio
LIN_ADVANCE: Fixed E/D ratio option
divendres 75ad82baab Update Catalan language
Scott Lahteine 34253497d4 Babysteps code tweak
As suggested by https://github.com/MarlinFirmware/Marlin/pull/5887#issuecomment-283832163
Scott Lahteine fb4aead2b1 Clean up and finish
Scott Lahteine b3e2bd6f29 Reduce E_D_ratio code
Sebastianv650 de6c40ed8f Add option to fix E/D ratio
Work around for slicers producing buggy gcode.
Scott Lahteine eeb490221f Remove BEEPER_PIN override in pins_RIGIDBOARD.h
Resolves . This override is no longer needed since the RAMPS LCD controller pins were fixed.
Roxy-3D 11e892bd84 Merge pull request from Roxy-3D/RCBugFix
Double Click of Encoder Wheel Jumps to Z-BabyStepping
Scott Lahteine cbeff12f8a Merge pull request from teemuatlut/lcd_days_hours
Fix formatting of SD print time hours above one day
Scott Lahteine 8a4e9d08a3 Merge pull request from thinkyhead/rc_core_endstop_fix
Fix CoreYX / YZ / ZX endstop logic
teemuatlut 9175d16660 Fix formatting of print time hours above one day
Scott Lahteine b6d9eb229f Extend Core endstop commentary
Bob-the-Kuhn c5e08e8761 CoreYX/YZ/ZX needs different endstop logic than CoreXY/YZ/XZ
In the endstop testing section, add the "reverse" logic in addition to "normal" core handling.

In CoreXY/YZ/XZ steppers rotating the same direction gives X movement. Opposing directions produces Y movement.

In CoreYX/ZY/ZX this is reversed. Same = Y, Opposite = X.

----

Fixes the issue where the Y endstop was being checked when moving in the X direction, etc.
Scott Lahteine c759c26cca Make LCD_TIMEOUT_TO_STATUS configurable
As suggested in
https://github.com/MarlinFirmware/Marlin/issues/5570#issuecomment-283059
065
Michael Henke 47729918fc
enable ENSURE_SMOOTH_MOVES
Michael Henke 330b981912 created Configuration.h and Configuration_adv.h for the kossel mini sold by flsun
Colin Gilgenbach 48b7e0f8d8 Nozzle Wipe Vertical Zig-Zag
- Add configuration support for zigzags in either the X or Y axis, for
wipe pads significantly longer in one dimension.
- Add configuration for default number of zig-zag triangles, vs. a
magic number in `Marlin_main.cpp`.
- Update description of auto nozzle wiping to match functionality
Scott Lahteine f17b81b765 Add MAPPER_C2C3 to French language
Roxy-3D 7e607b06eb Better comments on DOUBLE_CLICK_TIME_WINDOW
Scott Lahteine 34cba42104 Use PSTR for MSG_HEATING
Roxy-3D 584d147a02 fixup the indentation
Roxy-3D e443e0e2a9 Fix scoping issues for double click to Z-Babystepping
Roxy-3D 17d1cd7c09 Double Click of Encoder Wheel Jumps to Z-BabyStepping
Roxy-3D 48d862377a Double Click of Encoder Wheel Jumps to Z-BabyStepping
Scott Lahteine cfdc189796 Merge pull request from thinkyhead/rc_fix_bad_comment
Remove non-applicable comment on MANUAL_Z_HOME_POS
dot-bob cd68380ce6 Add status_printf to print messages to the lcd status line.
Also add a hotend indicator to the heating message displayed on the lcd status line.
Scott Lahteine 012aff6823 Merge pull request from thinkyhead/rc_fix_a_thing
Finish reducing of ABL_BILINEAR_SUBDIVISION
Scott Lahteine b9187020c4 Finish reducing of ABL_BILINEAR_SUBDIVISION
Scott Lahteine e282b72151 Remove non-applicable comment on MANUAL_Z_HOME_POS
Scott Lahteine 57f92a4632 Apply DISTINCT_E_FACTORS to sync_from_steppers
Followup to 
Scott Lahteine 4da8b1494b Merge pull request from thinkyhead/rc_fixup_m600
M600 cleanup and bugfix
Scott Lahteine dd02dba6e6 Merge pull request from MagoKimbra/rc_fix_lin_advanced_step_to_mm
Fix steps_to_mm for active extruders
Scott Lahteine 6e0b3fcc08 Optimize M600 heater status LCD items
Scott Lahteine 44b4e116bd Commentary / style in gcode_M600
Scott Lahteine 561904345f Tweak config ordering for M600
Scott Lahteine 284d6de9da Remove some old code comments
MagoKimbra 3685224c1a Fix steps_to_mm for active extruders
Scott Lahteine 4578c573fe Pause the print job timer while in M600
Scott Lahteine bfe6f71794 Simplify filament_change_beep function
Scott Lahteine 8289ea1316 Use a short name for the filament "endstop"
Scott Lahteine d9dcef8a87 Spacing, coding standards
Scott Lahteine 931914e679 Apply M600 updates to all configs
Roxy-3D 8bf0b496b9 Improve M600 with timeout, wait for heatup.
Tannoo c40fe2113c Fix for broken MBL
LCD call was waiting forever, causing the system to hang.
Scott Lahteine 4d4745c0eb Parenthesize some menu defines for safety
Scott Lahteine 47f9883b0f Dynamic allocation for SDCARD_SORT_ALPHA
Scott Lahteine a561bd5e3a New feature: SDCARD_SORT_ALPHA
Scott Lahteine c04d6b5aa6 Merge pull request from thinkyhead/rc_fix_isr_reentry
Combine fixes for LIN_ADVANCE and temperature ISR
Scott Lahteine 467f01435f Merge pull request from thinkyhead/rc_abl_virt_reduce
Reduce memory use by ABL_BILINEAR_SUBDIVISION slightly
Scott Lahteine 97b6fb6381 Reduce / optimize LIN_ADVANCE code
Sebastianv650 271ced7341 Prevent re-entering of temperature ISR
If Marlin is inside the temperature ISR, the stepper ISR is enabled. If
a stepper event is now happening Marlin will proceed with the stepper
ISR. Now, at the end of the stepper ISR, the temperatre ISR gets enabled
again. While Marlin proceed the rest of the temperature ISR, it's now
vulnerable to a second ISR call.
Sebastianv650 1b59766fcb Cleanup position_float
Hopefully fixes Marlin 
Scott Lahteine a950c31e2d Merge pull request from thinkyhead/rc_pulses_per_step
Give encoder pulse/steps conditionals their own block
Scott Lahteine 7176de8605 Merge pull request from thinkyhead/hotend_loop_always
Make HOTEND_LOOP more consistent, let compiler optimize it
Scott Lahteine adec219ca5 Merge pull request from thinkyhead/fix_two_strings
No space after X: or A: in M114 output
jes eaa829b58c Reduce memory use by ABL_BILINEAR_SUBDIVISION slightly
Scott Lahteine 1c99ca82d8 Give encoder pulse/steps conditionals their own block
Scott Lahteine e44294bb4d Make HOTEND_LOOP more consistent, let compiler optimize it
Scott Lahteine 701f4a6d9d Merge pull request from Bob-the-Kuhn/guaranteed-BLTouch-detection
guaranteed BLTouch detection
Scott Lahteine c15b9a6a06 No space after X: or A: in M114 output
Scott Lahteine e1702816f6 Fix SD_CHECK_AND_RETRY condition
Addressing 
Scott Lahteine 1bc5be3bdf Cast DELTA_PRINTABLE_RADIUS to float in sq()
Addressing 
Bob-the-Kuhn 0369f97ec1 guaranteed BLTouch detection
To guarantee that the 5mS pulse from a BLTouch is recognized you need to
have the endstops.update() routine run twice in that 5mS period.

At 200 steps per mm, my system has problems  below a feedrate of 120 mm
per minute.

Two things were done to guarantee the two updates within 5mS:
1) In interrupt mode, a check was added to the temperature ISR.  If the
endstop interrupt flag/counter is active then it'll kick off the endstop
update routine every 1mS until the flag/counter is zero.  This
flag/counter is decremented by the temperature ISR AND by the stepper
ISR.

2) In poling mode, code was added to the stepper ISR that will make sure
the ISR runs about every 1.5mS.  The "extra" ISR runs only check the
endstops.  This was done by grabbing the intended ISR delay and, if it's
over 2.0mS, splitting the intended delay into multiple smaller delays.
The first delay can be up to 2.0mS, the next ones 1.5mS (as needed) and
the last no less than 0.5mS.

=========================================

BLTouch error state recovery

If BLTouch already active when deploying the probe then try to reset it
& clear the probe.

If that doesn't fix it then declare an error.

Also added BLTouch init routine to startup section
Scott Lahteine 1e4d4e5915 Fix typo in language_uk
Thanks to @pavlus for this one
Scott Lahteine 7fe7a0c8be Merge pull request from thinkyhead/rc_adjust_probe_output
Adjust probe_pt() terminal output to respect probe z-offset
Scott Lahteine 633c253bc1 Merge pull request from thinkyhead/rc_default_dac_vals
Default DAC values for RigidBoard V2
Florian Heilmann 7bbc31704c Adjust probe_pt() terminal output to respect probe z-offset
Scott Lahteine a245656db3 Merge pull request from gege2b/RCBF-French
French translation : Added missing strings as well as missing accents
jaysonkelly 713931338a Default DAC values for RigidBoard V2
Bob-the-Kuhn ae706233a8 pinsDebug for 644/1284 & USB646/1286 families
added conditional compilation for PWMs 1C & 3C

add Teensyduino compatibility

==========================================

changes per review - minor formatting changes

1) remove non-printable character at the end of line 687

2) split a really long comment into two lines

3) got rid of some trailing spaces

============================================

Made pinsDebug_Teensyduino.h the same between this PR and PR 5668 which
is for a re-written pinsDebug.h file.

The changes were:
1) added copyright @ GNU license header
2) a blank line crept in.
Gege2B 22dfcc9a71 French translation : Added missing strings as well as missing accents
Scott Lahteine 9b5515926a Merge pull request from thinkyhead/rc_volumetric_default
Allow enabling volumetric filament on config load
Robert Kirk 0d147ead66 Allow enabling volumetric filament on config load
AnHardt fa26767efe Replace all remaining 'boolean' with 'bool'
AnHardt f6858d9974 Fix M110 without leading N
Store N in the right variable.
This is too rarely used.

"mea culpa, mea culpa, mea maxima culpa"
Scott Lahteine 0c0c840ba8 Merge pull request from emartinez167/EMartinez-Changes
Updates to some incorrectly ended strings in the Spanish translation
Kai 25dae3bccc Update language_de.h
Small corrections
emartinez167 7292145f4e Fix for some wrong strings
On last commit, some strings were ended with the incorrect character.
This fixes it.
Scott Lahteine 93a9aa6b76 Merge pull request from thinkyhead/rc_spanish_jan
Updates to Spanish language
Scott Lahteine 7a9c1a279b Merge pull request from thinkyhead/rc_prevent_boot_loop
Reset watchdog in SD init to prevent reboot
Scott Lahteine e409c7f9e8 Merge pull request from esenapaj/From-microseconds-to-milliseconds
From "microseconds" to "milliseconds"
emartinez167 020c6af7b0 Updates to Spanish language
Add missing Spanish language definitions.
Hans Raaf d29cc8f7bc Reset watchdog in SD init to prevent reboot
If the watchdog is enabled and bootscreen + SD card checks take too long, Marlin may hang at boot time because of the reset loop. We have this happen all the time with the Anet board if no SD card is inserted.
Scott Lahteine 7743849608 Merge pull request from thinkyhead/rc_configs_puhlease
code_value_float tweak
Scott Lahteine 16357fbfdf Merge pull request from Ocarthon/RCBugFix
Disable SD Detect for K8400
Scott Lahteine e57c0fce66 Move MOSFET changes above #include for RIGIDBOARD
Correction to 
Scott Lahteine c376f6a2cb code_value_float tweak
Scott Lahteine fb3c30e24c Fix lcd_wait_for_homing causing menu to block
As a showcase function for how to do waiting in the lcd menu, this function should be preserved.
Scott Lahteine f8ae0fd29f Merge pull request from manianac/RCBugFix-PrepareMenuFix
Fix empty Prepare menu
Robert Kirk aab5118c6a Remove error causing break command
Use index macro instead of e
esenapaj d38e335272 From "microseconds" to "milliseconds"
delay() is milliseconds
Philip Standt 8ae2bc7e2e Disable SD Detect for K8400
Scott Lahteine 4061fca1ad Sanity checks for FILAMENT_CHANGE_FEATURE and FILAMENT_RUNOUT_SCRIPT
Scott Lahteine 5ab7b91615 Comment on filament runout sensor config
Scott Lahteine 922c67f17d Merge pull request from thinkyhead/rc_remove_biv25
Drop biv2.5 delta configurations
Scott Lahteine 8c6c048551 drop biv2.5 delta configurations
Scott Lahteine 92dbeebf40 Define ADV_NEVER, ADV_RATE
Robert Kirk 306c184b1a Allow M600 when dryrun debugging
Scott Lahteine fe2ea2906f Merge pull request from thinkyhead/rc_unify_stepper_isr
LIN_ADVANCE with unified stepper ISR
Sebastianv650 84c685f8b5 First draft of Unified Stepper / E Advance ISR
Scott Lahteine 83021d82c6 Merge pull request from AnHardt/symbol-strings
Add symbol-strings
Scott Lahteine 036eccfd6e Merge pull request from Kaibob2/patch-5
Update language_de.h
Scott Lahteine b794b76836 Merge pull request from AnHardt/fix5194
Fix 5194
Scott Lahteine 451ba5df01 Merge pull request from esenapaj/Suppress-warning
Suppress warning
Scott Lahteine 92dbc63949 Merge pull request from esenapaj/Update-Japanese-translation
Update Japanese translation
Kai ade72535c4 Update language_de.h
Added tarnslation for
```
#define MSG_DEBUG_MENU 
#define MSG_PROGRESS_BAR_TEST
```
esenapaj ab6b005867 Suppress warning
AnHardt 61f15ef7e7 Fix 5194
I have been a bit too radical in cleaning up this section.
esenapaj 60515ff700 Update Japanese translation
・Add new translation
Scott Lahteine 1e419655f3 Followup to - spacing before "mm"
Scott Lahteine 1a26ce1cdc Merge pull request from FHeilmann/patch-2
Allow negative retract values in the LCD
Scott Lahteine bec30c89e7 Merge pull request from esenapaj/Add-description-for-dual-x
Add description for choice of DEFAULT_DUAL_X_CARRIAGE_MODE
Scott Lahteine 7739c0affa Change "+mm" to "mm" in most languages
- Japanese and Chinese still need update
Scott Lahteine 1cba425308 Allow negative recover-swap length from LCD
Scott Lahteine 298a8c6a3c Merge pull request from thinkyhead/rc_no_case_light
Support for M335 case light "no case light"
Scott Lahteine 644f45cbd8 Merge pull request from akaJes/m600
FILAMENT_CHANGE_FEATURE allowed in idle mode
Scott Lahteine 0d2fc13516 Place "Level Bed" closer to "Auto Home"
Scott Lahteine b031d28ebf Encoder events should not skip stripes
Scott Lahteine 22881f38b9 Fix updating of "bool" menu items
Scott Lahteine eb68715b94 No "Cooldown" menu if heaters are off
Jesus 4ed976b5ff m600 fixes
Damien 4e2639942b Support for M335 case light "no case light"
Scott Lahteine 18ba31e9b5 Add Debug Menu with LCD_PROGRESS_BAR_TEST as an example
Scott Lahteine 03af5961b0 Hide (or remove) custom character change on boot screen
Scott Lahteine 1642f5ed31 Add macro to some en strings
Scott Lahteine dbb2d56c89 Correct comment on watchdog timer
Scott Lahteine 41a30923f3 Merge pull request from thinkyhead/rc_minimum_gcc_version
Throw an error for gcc before 4.7
Scott Lahteine 6d6a1db6ec Apply const to _EEPROM_writeData value param
Robert Kirk f724ef5820 Have bed leveling status output current status, not requested.
Scott Lahteine 20218e553d Merge pull request from MagoKimbra/rc_configuration_store_fix_size
Fix size
Scott Lahteine dcfbe2bd3c Throw an error for gcc before 4.7
Scott Lahteine 82fde7df2e Merge pull request from AnHardt/speed-compare-bbr
Optimize handling of block_buffer_runtime()
Scott Lahteine 8986225752 Spacing, cleanup in speed_lookuptable.h
Scott Lahteine e12c8e5cac Split up thermistor tables
Florian Heilmann a7334fd2a0 Allow negative retract values in the LCD
This can already be done via G-Code, so adding the capability to the LCD should be straight forward.
AnHardt 292eb365c6 Optimize handling of block_buffer_runtime()
millis_t is long - divisions take for ever.

Return a kind of millisecond instead of microsecond -
divided by 1024 instead of 1000 for speed. (2.4% error)

That does not matter because block_buffer_runtime is
already a too short estimation.
Shrink the return-type.
esenapaj 6854f44bf2 Add description for choice of DEFAULT_DUAL_X_CARRIAGE_MODE
Scott Lahteine 3f6f036f7c Merge pull request from thinkyhead/rc_optional_dogm_splitup
Report EEPROM data size, not final index
MagoKimbra 86ba7e4542 Fix size
Fix size for writeData and readData.
For bilinear grid 11 x 11 for example, size is 4 (float) x 11 x 11 = 484. uint8_t max is 255.
Scott Lahteine f9f75c8016 Fix USE_RAW_KINEMATICS in prepare_kinematic_move_to
Scott Lahteine 87921f390a Clarify what are "logical" positions in the planner
Scott Lahteine a4f10f59c3 Write the E parameter length correctly
Scott Lahteine 2e904cb4f9 Merge pull request from esenapaj/Update-Japanese-translation
Update Japanese translation
Scott Lahteine 0b6817e0f9 Merge pull request from android444/patch-4
Update for translations language_pl.h
Scott Lahteine 3bd76f60e4 Report EEPROM data size, not final index
Scott Lahteine 78d6d6e076 Merge pull request from thinkyhead/rc_save_your_mesh
Save Bed Leveling to EEPROM
Scott Lahteine 0d0aa6c20d Patch type for max_acceleration_mm_per_s2 save/restore
Scott Lahteine d4f5418802 Merge pull request from
Fix for the PR  (Case light menu (3rd attempt))
Scott Lahteine fa7010b0a1 Merge pull request from esenapaj/Remove-unnecessary-tabs-and-spaces
Remove unnecessary tabs and spaces
Scott Lahteine 6d7b1cdf6c Add M421 for ABL Bilinear
Scott Lahteine 32e65dc429 Extend `M420` to print state and, with `V`, the matrix / mesh
Scott Lahteine d04258753b Don't throw away the bed level matrix on G28
Scott Lahteine 8f0f225d10 Save ABL Planar Matrix to EEPROM
Scott Lahteine e2429a9da1 Generalize Bed Leveling flag in EEPROM
Scott Lahteine e42fd7813a Save ABL Bilinear Grid to EEPROM
Scott Lahteine 492b68f8e3 Better EEPROM read/write error handling
Scott Lahteine 55722c09da Use "UNPROBED" for un-probed bed_level_grid points
Scott Lahteine 2643404ac8 Throw an error in M420 if can't enable
Scott Lahteine b1539394fd Use planner.unapply_leveling to undo tilt in G29
Scott Lahteine 04636f78eb Re-enable MBL/ABL after M48
Scott Lahteine 9b41638672 Minor tweak to G29 grid points
Scott Lahteine daa2cad21f Fix comment on G29 to include 'Z'
Scott Lahteine 8244fefcc2 Tweak call to `reset_bed_level` in G29
Scott Lahteine 0995a5d734 Fixup reset_bed_level
Scott Lahteine 1b2fb2bdc7 ABL_GRID_POINTS_* => ABL_GRID_MAX_POINTS_*
esenapaj d486361c69 Fix for commented section of Config_RetrieveSettings()
esenapaj 88157ba529 Fix for the PR (Case light menu (3rd attempt))
esenapaj 069c6b38dd Remove unnecessary tabs and spaces
esenapaj 9c8116aedf Update Japanese translation
・Add new translation
AnHardt 57b1275cde Add symbol-string to _de
Add symbol-string for _de
to reduce the frquencey of regenerating 'mappers' and 'fonts'
with the new utf-system.
android444 3363d2c937 Update for translations language_pl.h
Scott Lahteine 06af3b62ba Move HOLLOW_FRAME options to config_adv
Scott Lahteine 67ca6c7bfe Codestyle tweaks to ultralcd.cpp
Scott Lahteine 8d9fcd8e6f Merge pull request from AnHardt/autoadjusting_display-updates
Adaptive screen updates for all kinds of displays
Scott Lahteine 77a360912d Merge pull request from yhfudev/devel-rcbugfix-language-headers
UTF-8 language header files
AnHardt d0e24e0876 Adaptive screen updates for all kinds of displays
The target here is to update the screens of graphical and char base
displays as fast as possible, without draining the planner buffer too much.

For that measure the time it takes to draw and transfer one
(partial) screen to the display. Build a max. value from that.
Because ther can be large differences, depending on how much the display
updates are interrupted, the max value is decreased by one ms/s. This way
it can shrink again.
On the other side we keep track on how much time it takes to empty the
planner buffer.
Now we draw the next (partial) display update only then, when we do not
drain the planner buffer to much. We draw only when the time in the
buffer is two times larger than a update takes, or the buffer is empty anyway.

When we have begun to draw a screen we do not wait until the next 100ms
time slot comes. We draw the next partial screen as fast as possible, but
give the system a chance to refill the buffers a bit.

When we see, during drawing a screen, the screen contend has changed,
we stop the current draw and begin to draw the new content from the top.
yhfudev 2dbd38ce16 tag the utf-8 strings
Scott Lahteine 94ffb58da7 Prevent retract un-hop at wrong height
Scott Lahteine 0772c8e55f Merge pull request from thinkyhead/rc_easier_move_axis
Rearrange Move Menu, Fix up Delta Calibration
Scott Lahteine b2c8de856b Merge pull request from AnHardt/stepspermm
Replace ftostr62sign with ftostr62rj
Scott Lahteine 1fd8185d37 Merge pull request from thinkyhead/rc_fix_language_es
Fix multiple definitions of message macros in the language-es.h
yhfudev 1cdffdede7 fix multiple definitions of message macros in the language-es.h
Scott Lahteine b67f8cb499 Merge pull request from jbrazio/update-bqhp2
Update the bq Hephestos 2 example configuration
Scott Lahteine 93b2833347 Move Menu: Select axis first, resolution after
Scott Lahteine 48aa0f6475 Merge pull request from AnHardt/utf-mapper-tr
utf8-mapper for Turkish
Scott Lahteine b9ee0d7bd3 Merge pull request from thinkyhead/rc_fade_compiler_warn
Patch fade_factor compiler warning
Scott Lahteine 641e0936d4 Patch up Delta Calibration Menu
Scott Lahteine b4dbf4d18a Non-reentrant "Moving..." screen to safely wait in LCD
Scott Lahteine 7b625e0048 Patch fade_factor compiler warning
Scott Lahteine 6fa8fd15e2 Add negative temperatures for Thermistor 1
Changes from  by @AndKe
Scott Lahteine 2b5d424394 Use handle_reprapworld_keypad for keypad handling
Scott Lahteine 887ed73c9b Expose delta_clip_start_height for use by others
João Brázio 3f75edb1d6 Updated bq Hephestos 2 example configuration