Commit Graph

1969 Commits (b17bcd56daa008722d60a737f3fc60c95c708add)

Author SHA1 Message Date
AnHardt 59a27ed27d Fix auto_report_temperatures()
The `auto_report_temperatures` needs a linefeed to be recognized by Repetier Host.
Scott Lahteine b6b100c471 Merge pull request from thinkyhead/rc_extruders_can_differ
Allow distinct factors for multiple extruders
Scott Lahteine 3391c785c6 Support for distinct E factors
Scott Lahteine c47e07d129 Fix Dual X software endstops
Scott Lahteine 4217e9653e Adjust park code in tool_change
Scott Lahteine b20405db31 Only DXC_AUTO_PARK_MODE should auto-move in tool_change
Scott Lahteine ca24af7d5d Dual X with home_z_safely is not parked
Scott Lahteine 0e15b4f434 Dual X set_axis_is_at_home can use x_home_pos for both
Scott Lahteine 54109dfaec Reduce code size for Dual X un-park
Scott Lahteine fe96f74db1 Use const arguments in Dual X helper functions
Scott Lahteine 41278c1e8b Apply LOGICAL_POSITION to home positions on Dual X
Scott Lahteine 053fb55af6 Fix modes ordering in prepare_move_to_destination_dualx
Scott Lahteine 56dd15c0ad Use SET_INPUT for PS_ON_PIN in kill
Scott Lahteine c06161b773 Use apply_leveling, not MBL directly
Scott Lahteine fccc97de6d Save PROGMEM with string changes
Unlike RAM-based strings, PROGMEM strings aren’t consolidated by the
compiler.
Scott Lahteine 27dd5acc22 Fix set_led_color for BLINKM
Follow-up to 
Scott Lahteine f60b4f8659 Allow case light pin to be active low
Scott Lahteine 65c50e062e Support for an RGB LED using 3 pins
Scott Lahteine 092e949b58 Merge pull request from thinkyhead/rc_core_inverted
Support for COREYX, COREZX, COREZY
Scott Lahteine c7935bb0d2 Merge pull request from thinkyhead/rc_bed_correction_fade
Add a fade factor for mesh leveling
Scott Lahteine 61437d988a Fix and optimize case-light code
Scott Lahteine f6f77d34a1 Add a fade factor for mesh leveling
Scott Lahteine 2e966f8e5b Patch Capabilities Report for "PROGRESS"
Scott Lahteine d891324830 Merge pull request from mosh1/mbl_speed_fix
Fix z feedrate value when doing mesh bed leveling. probe feedrate use…
Scott Lahteine 7f8133a51f Merge pull request from Kaibob2/CaseLightMenu
Case light menu (3rd attempt)
Kai 0c341f0c50 Added Menu entry for Case light
Scott Lahteine 3bc2273ac9 Comment M540
Scott Lahteine 14b74181f5 Merge pull request from thinkyhead/rc_TMC2130
TMC2130 "Silent StepStick" support
Scott Lahteine bb2114a060 Merge pull request from thinkyhead/rc_delta_safe_zone
Add an option for delta to home to the top
Scott Lahteine 9b96a4a53b Merge pull request from thinkyhead/rc_some_cleanup
Minor stepper cleanup
Scott Lahteine 3e0376b45e Reorder M114 and M119 gcode cases
Scott Lahteine 127e21ae00 Extend M122 for all steppers
Moritz d67c1d825f Add TMC2130 support
Scott Lahteine 11effeee2c Add an option for delta to home to the top
Moshen Chan 29b174bfb9 Fix z feedrate value when doing mesh bed leveling. probe feedrate uses XY_PROBE_SPEED
Scott Lahteine 87b6b19256 Patch CASE_LIGHT typo
Scott Lahteine 181cdb3cfe Move GCode list above include lines
Scott Lahteine eb120e518c Followup to new endstop interrupts feature
- Fix typos, verbiage
- Fix naming of `setup_endstop_interrupts`
- Some formatting, indentation, spacing
Scott Lahteine 832fe284b4 Merge pull request from AnHardt/endstop_interrupts
Introduce endstop interrupts
Scott Lahteine 98600e1433 Minor stepper cleanup
Florian Heilmann d08867986e Add autotemp capabilities to M104
This allows M104 to pass the F and B parameters to enable autotemp as well
Scott Lahteine 2330619da0 Merge pull request from petrzjunior/const
Replace const bool with #define for consistency
Petr Zahradník junior d7ce5d271b
Replace const bool with #define for consistency
Scott Lahteine 5d23e52d75 Merge pull request from thinkyhead/rc_keep_last_mix
Fix DIRECT_MIXING_IN_G1 to preserve the previous mix
Scott Lahteine 99b0c1fe56 Fix DIRECT_MIXING_IN_G1 to preserve the previous mix
Scott Lahteine 410657b050 Fix G30 with limits, print correct probe XY
AnHardt f3eee02596 Introduce endstop interrupts
If ENDSTOP_INTERRUPTS_FEATURE is enabled this tries to set up interrupt routines
for all used endstop pins. If this worked without errors, `endstops.update()` is called
only if one of the endstops changed its state.

The new interrupt routines do not really check the endstops and react upon them. All what they
do, is to set a flag if it makes sense to call the endstop test we are used to.

This can be used on:
* ARM (DUE) based boards - all pins can raise interrupts,
* RAMPS - all 6 endstop pins plus some other on EXT-2 can raise interrupts,
* RAMPS based boards - as long the designers did not change the pins for the endstops or at least left enough,
* all boards, if there are enough pins that can raise interrupts, and you are willing/able to swap with pins dedicated to other purpose.
Scott Lahteine 665b7f3893 Merge pull request from thinkyhead/rc_mixing_faster
Store mix factors as reciprocals and multiply
Scott Lahteine 60cc9342a4 Merge pull request from thinkyhead/rc_extended_host_support
Extended host support: M155 Auto temp report, M115 capabilities
Scott Lahteine f663220e87 Store Mix factors as reciprocals and multiply
Scott Lahteine b31a07e261 Stateful M355 with separate P parameter
Scott Lahteine 3c9a838651 Extended capabilities report in M115
Scott Lahteine 68b866b5dd Add M155 - Auto-report temperature with interval
Scott Lahteine 75bfde9945 M155=>M260, M156=>M261
Scott Lahteine dcfd7c69e8 Merge pull request from nzinov/RCBugFix
Improve G30 probing command - add optional arguments
Scott Lahteine e765eebfb0 Patch spacing in bilinear grid report
Scott Lahteine 1864b282c5 Implement reversed CORE options
Nikolay Zinov dea00bbcf1 improve G30 probing
Add optional parameters
X, Y for probe point
S sets stowing on and off
Scott Lahteine 176aeafc19 Don't define bilinear_line_to_destination on kinematic setups
Scott Lahteine 236853df22 Corrections to bilinear_line_to_destination
- Allow more than 9x9 probe points
- Account for the probe starting position
Scott Lahteine 0115e495fe Fix up Dual X switch blocks
Scott Lahteine 2495ab7af2 Make dual_x_carriage_mode an enumeration
Scott Lahteine d6c36f5bb9 Fix Z raise with DXC_AUTO_PARK_MODE
Scott Lahteine 0c79553fc5 Cast int to AxisEnum for some accessors
Scott Lahteine adbf1f7dca Add M355 to the GCodes list.
Scott Lahteine 63efc10599 Merge pull request from thinkyhead/rc_bilinear_split_lines
Split cartesian moves on grid boundaries with bilinear ABL
Scott Lahteine ee5b8d6dc8 Split moves on grid boundaries with bilinear ABL on cartesian
Scott Lahteine 66744a6076 Merge pull request from thinkyhead/rc_M355_case_light
M355 Case light
Scott Lahteine 955d14acb0 Patch photo pin code style
Stanley ab3f966f5f Case light G-code M355
implemented G-Code M355 into Marlin
Sebastianv650 f9bea7968f BugFix for incorrect E-speed calculation
The extrusion speed was wrong due to a not high enough precision of
esteps to XY steps, therefore now the target float values are used to
calculate the ratio between XY movement and extrusion speed.
The e_speed_multiplier8 was replaced by an absolute multiplier called
abs_adv_steps_multiplier8, therefore one multiplication and bitshift can
be saved inside the stepper ISR. Due to this, also extruder_advance_k is
better suited inside the planner and not the stepper files any more.
Scott Lahteine ff3a8ca0d1 Use NUM_DIGITAL_PINS instead of custom DIO_COUNT
Scott Lahteine 04a1fac029 Some cleanup to M43
Bob-the-Kuhn c7f1f0dae6 Add endstop monitor & make pins report pretty
Scott Lahteine 396434a445 Fix compiler warning in M145
Scott Lahteine 07bfc45df8 Adjust spacing in gcode_M149
Scott Lahteine 1a2310c494 Make LCD preheat vars an array to reduce code size
Scott Lahteine 50ee749082 Centralize click-handling in the LCD loop
Scott Lahteine 47ad97c35e Merge pull request from thinkyhead/rc_eeprom_M218_tool_offset
Save hotend_offset array (M218) in EEPROM
Scott Lahteine 67ab54185b Save hotend_offset array (M218) in EEPROM
MagoKimbra dfcdbb437b Fix Command M420
Scott Lahteine c34dbfb248 Merge pull request from thinkyhead/rc_preset_auto_fans
Add predefined AUTO_FAN_PINs to pins files
Scott Lahteine c4c53856a4 Merge pull request from
Fix for the PR  (Handle M108 in M1 also with ULTIPANEL)
esenapaj d5a5042d23 Fix for the PR (Handle M108 in M1 also with ULTIPANEL)
Scott Lahteine 3f94b15cef Fix bilinear grid constraints
Followup to 
Scott Lahteine ada935de87 Allow TEMP_STAT_LEDS with only one LED defined
Scott Lahteine f0d673561f Fix for bilinear grid outside bounds
Scott Lahteine 1ba1ec0db9 Handle M108 in M1 also with ULTIPANEL
Greg Cormier f0aed9dac7 Fix - M48/G29 on CoreXY maybe others?
Scott Lahteine 3544c3632f Merge pull request from thinkyhead/rc_warnings_fix
Warnings fixed redux
Josef Pavlik 0bd66807b2 fixed warning: extra ;
Scott Lahteine 5f5a55a0de Add a ZERO macro to clear arrays
Scott Lahteine 2783dcb4cc Save some RAM in MBL's G29
esenapaj 385bd8a4a3 Fix freezing and MINTEMP Error with MAX31855 thermocouple
Scott Lahteine ca7275a67a Disable EXTRAPOLATE_FROM_EDGE by default
Scott Lahteine e7cf566fc5 Do kinematic segments with buffer_line_kinematic
This breaks the raw option, but in the future perhaps all planner moves
will be sent in raw form instead of logical.
Scott Lahteine a10e81dc2a Minor cleanup of set_bed_leveling_enabled
Scott Lahteine 029824bc49 Patch ADJUST_DELTA macro for SCARA
Scott Lahteine d963020532 Sort out some header dependencies
Scott Lahteine a07033a6c1 Merge pull request from
Fix and follow-up the PR  (PINS_DEBUGGING and M43: Read pin states), etc
Scott Lahteine f8199b2cc1 Merge pull request from thinkyhead/rc_abl_bugfix
Fix planner with kinematics, delta ABL
esenapaj 00456b0cb3 Fix compilation errors
Scott Lahteine e4e290d957 Make EXTRUDER_RUNOUT_PREVENT kinematic compatible
Scott Lahteine 847429eff4 Make tool_change kinematic compatible
Scott Lahteine a4a7ca10ca Make USE_DELTA_IK_INTERPOLATION compatible with ABL
Scott Lahteine c5cac486f5 Use a, b, c instead of lx, ly, lz
Josef Pavlik f8c2473a71 Improve planner kinematics, fix delta ABL
Scott Lahteine e4d2662d81 Use some macros in M48
Scott Lahteine ee01def16d Merge pull request from thinkyhead/rc_debug_pins
PINS_DEBUGGING and M43: Read pin states
Scott Lahteine e21bab5243 PINS_DEBUGGING and M43 Read Pins
Scott Lahteine 48e63c4730 Comment some globals
Scott Lahteine 9a6c66602f Fix formatting of extrapolate debug output
Scott Lahteine cd77eb5c40 Clear grid for bilinear G29
Scott Lahteine 53a0856f5c Print Y as int in print_bed_level
Brian 357854a7ef tweak variables;
Brian 48cf19151a Improve M48 output; Add min, max, range, etc.
Scott Lahteine e6164d254d Clean up GCode command short comments
Scott Lahteine 0c0deb5194 Common pin_is_protected function
Scott Lahteine 46839c222a Comment and clean up some vars
Scott Lahteine 8910bb7c97 Fix buzzer conditional compile
Scott Lahteine de7e798e6f Replace single-char S_ECHOs with S_CHAR
Scott Lahteine 0e83f34174 Tweak debugging of probe_pt
Scott Lahteine ca26011e3c Merge pull request from MagoKimbra/rc_fix_M205
Add note for M205
Scott Lahteine 9485aa8f13 Include negative Z probe offset in clearance move
Scott Lahteine 5c1eb595e6 Fix for G2/G3 negative radius
As suggested in 
MagoKimbra 7b37539fe7 Add note for M205
Scott Lahteine d5f598cd82 Tweak probe debug, add newline
Scott Lahteine d19cfcfc1d max_jerk array, DEFAULT_XYJERK => DEFAULT_[XY]JERK
Scott Lahteine e7dc174f30 More detailed debugging of G28 delta
Scott Lahteine bad8899ebc Merge pull request from thinkyhead/rc_g38_changes
Cleanup of G38.2 / G38.3
Scott Lahteine 73ce3a61c7 Cleanup, comment zigzag
Scott Lahteine 919fe3e4b8 Rename feature to G38_PROBE_TARGET
Scott Lahteine a2864ab7fe Patched up, cleaned up
Bob-the-Kuhn 2911aa7ffa code changes to implement G38 commands
1) modified 3 code files
Marlin.h
Marlin_main.cpp
endstops.cpp

2) modified config files so I could test on my machine

Testing was done on an AzteegX3pro based machine.

The probe was hooked to the Z_MIN endstop.

My controller doesn't have a dedicated Z_PROBE input so I couldn't test
that functionality.

Verified that a large file (without any G38 commands) executed the same
before and after the changes.

Verified that the head moves as expected when G38.2 and G38.3 commands
are issued. Single & multiple axis moves were tested along with + and -
directions.

Code was added to the main ISR. In normal operation only one extra IF
statement is evaluated. I didn't notice any performance degradation
because of the added code.

The G38 commands are expected to be issued manually by the operator
during machine setup. The G38 commands wait until the machine is idle
before proceeding. That way the other commands are minimally impacted
by the extra ISR overhead when a G38 command is in the queue.

The G38 commands are very similar to the G28 commands except 1) only the
Z_PROBE is used and movement can be in the + or - direction.

See issue 4677 for a discussion on adding G38 commands to Marlin.
Feature request: add ability to use G38.2 command (CNC)
Scott Lahteine 74d048e77e Merge pull request from thinkyhead/rc_bltouch_noraise
Don't check Z_MAX on raise when the probe pwns the pin
Scott Lahteine 4afa293289 Say "BLTOUCH" in machine info report
Scott Lahteine 2d2c9bdf92 Add PROBE_Y_FIRST option for probe order
Scott Lahteine c8c57e59fc Patch the end of G29 to sync plan position
Scott Lahteine 81b8c9f8ec Add XY parameters to G29 for mesh dimensions
Scott Lahteine 56cf674150 M420 can now enable/disable ABL
Scott Lahteine 06790977c4 Use updated position methods
Scott Lahteine e8f2604a6f Patch print_bed_level numbering
Scott Lahteine d066610514 Patch up bilinear_z_offset
Scott Lahteine 850e38d013 G30 will only disable bed leveling
Scott Lahteine 510ef5d14a Standard function to turn bed leveling on/off
Scott Lahteine 2febd8ec82 Double-touch debugging
Scott Lahteine b331077c32 Use stepper.get_axis_position_degrees
Scott Lahteine 0d9efb24f3 Fix up bilinear_z_offset
Scott Lahteine 8b46eb3766 Fix bilinear interpolation
Scott Lahteine 5100bdac81 Improve Bilinear Grid
- Extrapolate properly for even numbered grid points
- Extrapolate using average, not median
- Improve bilinear grid report output
- Add debug output for bilinear extrapolation
- Add option to extrapolate from edge, not center
Scott Lahteine a3e91ec65e Add 'Q' option to G29 when debug leveling is on
Scott Lahteine 1fceda4fb0 Add leveling type and details to machine_info
Scott Lahteine e0e0166075 Fix auto bed leveling - turn on after successful G29
Scott Lahteine 18e40de39c Adjust final Z after bilinear G29
Scott Lahteine ea0dbee3c9 Enable ABL by type, support bilinear on cartesian
Scott Lahteine 9cebbabd05 Merge pull request from thinkyhead/rc_stat_led_check
Define status LED pins without condition
Scott Lahteine 5fff8d148b Clean up digital pots and microsteps
Scott Lahteine 570676d265 Include requirements in "Implemented Codes"
Scott Lahteine cb48292338 Use fastio for literal pins
Scott Lahteine fba0b67f7d Rename status led pins
Scott Lahteine 041d127cd3 Match bltouch test in do_homing_move with new code
Scott Lahteine 1583d37edd Comment on M851 case
esenapaj 7bdc58a818 Suppress warnings, fix nonlinear_z_offset
Scott Lahteine 903b8bb60c No need for auto_bed_leveling_was_enabled
Scott Lahteine 0951bffcc0 Sanity check homing bumps
Scott Lahteine a9a21db39f No homing bump if bump distance is 0 (or less)
Scott Lahteine 2b4da57ea7 Patch Z safe homing for probe Z homing
Scott Lahteine c6dd539c84 Print error for M42 bad pin
Scott Lahteine 8b399610fb Skip raw moves to current position
Scott Lahteine 22ece0081e Pass array pointer to unapply_leveling
Scott Lahteine cbc158eb62 Add a proper flag for ABL enabled
Scott Lahteine 666e944336 Init xProbe/yProbe for compiler
Scott Lahteine 2c52e6ecf4 Clean up G28 MBL code
Scott Lahteine 0bf1054bb2 Patch do_homing_move for SCARA
Scott Lahteine 6ad0da661c Report position in G92
Scott Lahteine 199a7b5dd5 Tweak SCARA debugging
Scott Lahteine 865ad25781 Fix prepare_kinematic_move_to precision
Scott Lahteine 85e607153b Improve kinematic optimization options
Scott Lahteine 2846531f0b const argument in do_homing_move
Scott Lahteine c6142aa2a1 Minor cleanups in Marlin_main.cpp
Scott Lahteine 6b9bf8e8fe Add Planner::sync_from_steppers
Use to sync the planner after an interrupted move (when not overriding
the logical position).
Scott Lahteine b211df818e Make movement functions more available
Scott Lahteine e8d5073a90 Use probe clearance for bump when homing Z with probe
Scott Lahteine dbe41245f1 Merge pull request from thinkyhead/rc_revert_to_raises
Z Raise/Clearance rather than Height
Scott Lahteine 747a2257dd Only deploy/stow BLTOUCH on downward move
Scott Lahteine e242946ac3 Patch G29 for linear leveling, reachable with probe
Scott Lahteine b800eb0fed Add probe option to position_is_reachable
Scott Lahteine fafafcf9d1 Use unapply_leveling in set_current_from_steppers_for_axis
Scott Lahteine e69d1e2879 Homing/probing feedrate, comments
Scott Lahteine 2b7cc27c37 Merge pull request from thinkyhead/rc_G2_G3_arc_r_method
Add support for G2/G3 with R parameter
Scott Lahteine e0e10e0e45 Merge pull request from thinkyhead/rc_kinematic_and_scara
Kinematic and SCARA patches
Scott Lahteine 31f03c838a Only deploy/stow BLTouch for Z axis
Scott Lahteine 3913e04ac7 Add Delta kinematic optimization options
Scott Lahteine 8e31640229 Optimize prepare_kinematic_move_to
Scott Lahteine fd9b8ae4d4 Use position_is_reachable in G29, M48
Scott Lahteine 7194e4434f SCARA support in position_is_reachable
Scott Lahteine 1c5f9821c4 SCARA support in homeaxis
Scott Lahteine 92b4459f6c Simpler G92 for SCARA
Scott Lahteine 46cc2e3f6a Fix get_cartesian_from_steppers
Scott Lahteine 435c3ed404 Patch SCARA_move_to_cal for coordinate space
Scott Lahteine 5efb12e889 Simpler report_current_position for SCARA
Scott Lahteine 83fc5e1540 No line_to_* functions with IS_KINEMATIC
Scott Lahteine 59d39d7655 G0 direct move for SCARA
Scott Lahteine ad9d6870ed SCARA support in do_blocking_move_to
Scott Lahteine 8542ebcecd prepare_move_to_destination_raw => prepare_uninterpolated_move_to_destination
Scott Lahteine f900f97611 Update sw endstops in set_axis_is_at_home
Scott Lahteine 0d43cef1de M206 for MORGAN_SCARA
Scott Lahteine e94cb7a380 MORGAN_SCARA kinematics
Scott Lahteine 01f1028510 Try on "CLEARANCE" for size
Scott Lahteine 0e7d638a7a Revert to Probe Raise rather than Probe Height
Scott Lahteine 51e42a2d77 Adjust BLTouch probe behavior
Addressing 
- Have the pin deploy only immediately before probing
- Have the pin retract immediately after every probe
Scott Lahteine 13523cbf29 Fix and extend BLTouch support
Scott Lahteine e9ce42353e Patch G29 for 3-point leveling
Scott Lahteine c2744d8a8b Add support for G2/G3 with R parameter
Scott Lahteine f38a33a5d8 Add handling of BLTouch error state
Scott Lahteine f0beae7641 Fix stupid, stupid, stupid oversight in G29 update
Mea culpa!
Scott Lahteine 77639672d7 Move NONLINEAR bed leveling to planner
This is in advance of moving non-linear bed leveling to the planner
class.
Scott Lahteine 9429c7db89 Use ABC indices in delta[]
Scott Lahteine 5f2f991192 Use 'logical' rather than 'target' or 'cartesian'
Scott Lahteine 2ebfbc4c8d Merge pull request from thinkyhead/rc_some_comments
Some comments, const args, debug output tweaks
Scott Lahteine e5505e3b33 Allow non-square leveling grid
Scott Lahteine 2fc9ad6657 Use const ref args in probe_pt
Scott Lahteine 2c2688d7ad Adjust comments, spacing
Scott Lahteine b9d19b0008 Tweak extrapolate_one_point
Scott Lahteine 3c0b591935 Fix nozzle position description
Scott Lahteine 18d8dd4c0f set_current_from_steppers_for_axis const arg
Scott Lahteine d1f4c3d73b Patch sync_plan_position comment
Scott Lahteine 0c25af30d4 Document homeaxis
Scott Lahteine e7882e45e3 Document set_axis_is_at_home
Scott Lahteine fef959c31a Merge pull request from thinkyhead/rc_code_bool
Standardize code_value_bool
Scott Lahteine 661fe09ce7 Standardize code_value_bool
Scott Lahteine 20e5140e75 Merge pull request from thinkyhead/rc_no_scara_axis_scaling
Remove SCARA axis_scaling
Scott Lahteine a501f430eb Enable M0/M1 with Emergency Parser
Scott Lahteine 83a41c7ceb Remove SCARA axis_scaling
Scott Lahteine 57564ae576 Use last probe point to correct Z when possible
Scott Lahteine 29f224594c Fix some regressive typos in G29
Scott Lahteine 9b0931ef74 Apply fixed EXTRUDER_RUNOUT_PREVENT
Scott Lahteine b1a60e8954 Reformat, rearrange, tweak, and document
- Add comments to several functions
- Add an option to use Fast SQRT for Delta IK
- Group related functions together
- Outdent some leveling-related functions
Scott Lahteine 61284cbd8c Various code style adjustments
Scott Lahteine 788a16fc46 Clean up serial out code
Scott Lahteine 0e38bea79d Shrink 3-point leveling code
Scott Lahteine 4f75ce6957 Unify reset_bed_level for linear/non-linear
Scott Lahteine a9ed23225f bed_level => bed_level_grid
Scott Lahteine 82be65065c Fix up untilted_stepper_position and set_current_from_steppers_for_axis
Scott Lahteine d65f5d816f Patch to fix kinematics
Scott Lahteine e529c6407e Rename set_cartesian_from_steppers, cartesian_position
Scott Lahteine d4f21af6b3 sync_plan_position_delta => sync_plan_position_kinematic
Scott Lahteine acd1b6e9c0 Rename delta_grid spacing for general nonlinear
Scott Lahteine c5fa70809b Implement M0/M1 for EMERGENCY_PARSER
Scott Lahteine 786d1afb72 Add position_is_reachable, use in home_z_safely
Scott Lahteine b4034915f8 Move z safe homing to its own function
Scott Lahteine c84b14c77a Move delta homing to its own function
Scott Lahteine f9a192c7e3 Move setup() and loop() to the end
Scott Lahteine 74d7f5e57b Patch SCARA example config
Scott Lahteine 6ab54c60b1 Add conditionals for kinematics, leveling
Scott Lahteine 9248cfb0ad Bed leveling that accounts for home XYZ
Scott Lahteine 6ac9d895ca Tweak Filament Width variables
Scott Lahteine 68ba45572e Don't say "heating complete" unless done
Scott Lahteine 2bfc6fe1b0 Move XYZ constants closer to the top
Scott Lahteine ad659b5f91 Merge pull request from thinkyhead/rc_log_machine_info
Log machine info in G28 and G29
Scott Lahteine 7e20448a2d Add HOMING_Z_WITH_PROBE conditional
Scott Lahteine 0e4107da34 Minor cleanup of homeaxis, etc.
Scott Lahteine fd2269f489 Log machine info in G28 and G29
Scott Lahteine 6eaf4f4909 Fix spacing of debug output in homeaxis
Scott Lahteine 0729a8f08d Use the probe travel height for pre-probe move
Instead of using the home_bump for Z to move close to the bed before doing a slow probe, use the probe travel height.
Scott Lahteine dd94d0b9d5 Fix bed probing bug without PROBE_DOUBLE_TOUCH
If `PROBE_DOUBLE_TOUCH` wasn't enabled, the probe move could be way too short! See  for example.
Scott Lahteine 35a0c46f16 Tweak debug output for probe in G29
Scott Lahteine 2cb63f0bf7 Merge pull request from thinkyhead/rc_delta_homing_patch
Marlin patches for homing, esp. Delta
Scott Lahteine 73d86098b7 Marlin patches for homing, esp. Delta
Scott Lahteine 338bc768b1 Merge pull request from thinkyhead/rc_log_the_probe
Debug logging of nozzle type and offsets
Scott Lahteine d641344d3a Remove redundant probe offset in homing
Scott Lahteine 00638131e5 Debug logging of nozzle type and offsets
Scott Lahteine 991a34aff2 Log whether homing with probe or endstop
esenapaj 1749a7fae3 Suppress warning
Scott Lahteine d07d85ac9f Ensure probe points at the delta edge are kept
Scott Lahteine 27b80b1dd1 Merge pull request from thinkyhead/rc_M211_sw_endstop_switch
M211: Enable/Disable Software Endstops
Scott Lahteine 2f223b8c79 Use ABC and XYZ for "3"
Scott Lahteine 4cd1ad8f28 Adjustments to M209, G28, M605
Scott Lahteine 280534c06f Add M211: Enable/Disable Software Endstops
Scott Lahteine 01d4703429 PREVENT_DANGEROUS_EXTRUDE => PREVENT_COLD_EXTRUSION
Also improve the documentation of this and related options, and set
EXTRUDE_MINTEMP to 170 everywhere.
MagoKimbra 28d1e5a946 Fix_Zig_Zag
Scott Lahteine 4d4c00d69c Merge pull request from thinkyhead/rc_homing_vs_leveling_z
Improvements to homing / leveling
Scott Lahteine 12d72363cb Do Delta radius check without sqrt
Scott Lahteine 044f800be9 Use SERIAL_PROTOCOLLNPGM in G28
Scott Lahteine d309a9647d Include probe offset for moving "close to the bed"
Scott Lahteine 35a08eeaeb Use Z_HOME_DIR over axis_home_dir where we can
Scott Lahteine 55355a4fb8 Make probed points more symmetrical
Scott Lahteine 1f776f6034 Tweak some code comments
Scott Lahteine 748228cf40 Use named indices for delta_grid_spacing
Scott Lahteine ead333e7da line_to_axis_pos => do_homing_move
Scott Lahteine 7a4ccd7967 Add do_probe_move with Z fixes
Scott Lahteine a1bad589c9 Augment debug/homing logging
Scott Lahteine 41b5c48129 Update software endstops if EEPROM is loaded
Scott Lahteine 628dcbc764 extruder_multiplier => flow_percentage
Scott Lahteine d63b8e2b2b Additional details for I2C_SLAVE_ADDRESS
Scott Lahteine bd928a69ec Add request, capture, flush to TWIBus
Scott Lahteine 97e0aed304 Further refinements of TWIBus
Scott Lahteine 67f119d18b Add an i2c request handler
Scott Lahteine d6a7ca6553 Merge pull request from thinkyhead/rc_delta_cal_more
Use configured feedrates, center in DELTA_CALIBRATION_MENU
Scott Lahteine 52560e257f Merge pull request from thinkyhead/rc_i2c_slave
Add support for i2c slave address
Scott Lahteine cd496dd9bd do_blocking_move_to can't be 'inline', takes const ref args
Scott Lahteine dd75fca4d9 Make M155 / M156 a bit more flexible
Scott Lahteine a99ecf71d8 Add support for i2c slave address
Scott Lahteine b63d70b186 Fix serial output for MBL, M303
Scott Lahteine 45f67164b6 Simplify the delay in kill()
Scott Lahteine 367dad5902 Sanity check Z_DUAL_ENDSTOPS with DELTA
Scott Lahteine 7b2abe6fc8 Use steps_to_mm in extruder runout prevent
Scott Lahteine d320065320 Within Marlin, maintain most feed rates in mm/s
Scott Lahteine a00783c41f Format probe stowed test code
AnHardt f37e8a31d7 Make Allen Key Probe stow
by switching off the tests for the probe before the stow move.
Scott Lahteine 938e6d15c4 Patch up some flaws, here and there
Scott Lahteine 7e2bd9a233 Z_RAISE_PROBE_* => Z_PROBE_*_HEIGHT
Scott Lahteine 445458c221 Don't include `zprobe_zoffset` in `do_probe_raise`
Scott Lahteine b73203a0b7 Move some includes around to uncover missing deps
Scott Lahteine 0f030aface Merge pull request from AnHardt/fix-retract
Correct typo in retract()
Scott Lahteine 330f82971b Buzzer requires BEEPER_PIN
AnHardt 39c4603598 Correct typo in retract.
Scott Lahteine 6eed37aafb Merge pull request from thinkyhead/rc_pid_add_extrusion_rate_off
PID_EXTRUSION_SCALING, disabled by default
Scott Lahteine 4bf3526d00 Merge pull request from thinkyhead/rc_azteeg_x3_eeb
Wrangle RAMPS variants and derivatives
Scott Lahteine 63fd1f49a6 PID_EXTRUSION_SCALING, disabled by default
Scott Lahteine f388beafa1 Merge pull request from otvald/RCBugFix
FIX for endstop adjustemt on delta is offset
Thomas Otvald Jensen fe059f1221 During homing, line_to_axis_pos will make a path which moves across the
endstop trigger point. The move is stopped at endstop, so current_position
should also be adjusted to reflect this!

Caused error in subsequent call in endstop adjustment, since the movement
would assume a wrong starting position.
esenapaj bd73e6d3c8 Fix for PR (Additional heater-state output changes)
・Add missing ';'
Scott Lahteine bdac2eb13a Don't set non-existent SLED_PIN
Scott Lahteine 8e2f095dde Merge pull request from jbrazio/speaker-type3
Improvement to non-blocking speaker
Scott Lahteine 9e21b2e51d Merge pull request from AnHardt/double-bump-feature
double bump probing as a feature
Scott Lahteine db4d03bc81 Merge pull request from thinkyhead/rc_fix_heaterstates_part_2
Additional heater-state output changes
Scott Lahteine 844a4e799e Account for DELTA in Planner::refresh_positioning
AnHardt 7188ce0ad6 double bump probing as a feature
Why double touch probing is not a good thing.

It's widely believed we can get better __probing__ results when using a double touch when probing.

Let's compare to double touch __homing__.
Or better let's begin with single touch __homing__.
We home to find out out position, so our position is unknown.
To find the endstop we have to move into the direction of the endstop.
The maximum way we have to move is a bit longer than the axis length.
When we arrive at the endstop - when it triggers, the stepper pulses are stopped immediately.
It's a sudden stop. No smooth deacceleration is possible.
Depending on the speed and the moving mass we lose steps here.
Only if we approached slow enough (below jerk speed?) we will not lose steps.

Moving a complete axis length, that slow, takes for ever.
To speed up homing, we now make the first approach faster, get a guess about our position,
back up a bit and make a second slower approach to get a exact result without losing steps.

What we do in double touch probing is the same. But the difference here is:
a. we already know where we are
b. if the first approach is to fast we will lose steps here to.
But this time there is no second approach to set the position to 0. We are measuring only.
The lost steps are permanent until we home the next time.

So if you experienced permanently rising values in M48 you now know why. (Too fast, suddenly stopped, first approach)

What can we do to improve probing?
We can use the information about our current position.
We can make a really fast, but deaccelerated, move to a place we know it is a bit before the trigger point.
And then move the rest of the way really slow.
Scott Lahteine c31f56a38c Deprecate EXTRUDER_WATTS and BED_WATTS
Scott Lahteine e1970b4b28 Show power output in same order as temp output
Scott Lahteine 74df828acc Show ADC values inline rather than after
João Brázio 2b5faa61e2 Consolidates Buzzer and Speaker into a single object
Scott Lahteine b40661cb18 Fix output of heater states
Scott Lahteine 8953e3e984 Allow Z_SAFE_HOMING without a probe
Scott Lahteine 5272147f7c Followup fixing 3-point leveling
Scott Lahteine 169c21b477 Merge pull request from thinkyhead/rc_consistent_positioning
Account for coordinate space offsets
Scott Lahteine 2595a40a61 Account for coordinate space more in G28 / G29 / M48
Scott Lahteine b7b7c90477 Merge pull request from thinkyhead/rc_optimize_planner
Optimize planner with precalculation, etc.
Scott Lahteine b183442c61 Fix inactive_extruder_x_pos for coordinate space
Scott Lahteine f75b0c2ee1 Make POSITION macros global
Scott Lahteine 101b60ef42 Tweak Dual X Carriage data spacing
Scott Lahteine d8f2876753 Replace some float division with multiplication
Scott Lahteine f8b5749235 Replace division in planner with multiplication
Scott Lahteine db5df9500b Move sync_plan_position closer to the top
João Brázio 50fb0f7cec M31 serial output is now always in EN
João Brázio 62d96d72f3 Renamed timestamp_t to duration_t
Scott Lahteine bb93b6822a Use set_current_from_steppers_for_axis
AnHardt 96a162beda Use implications from in run_z_probe()
See also https://github.com/MarlinFirmware/Marlin/pull/4370#issuecomment-234713680
Scott Lahteine 4e67a85a5d Macros to loop over axes