Firmware/Marlin
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.
2016-07-30 03:00:49 +02:00
..
example_configurations double bump probing as a feature 2016-07-30 03:00:49 +02:00
fonts Rename ultralcd implementation files for consistency 2016-07-19 15:26:14 -07:00
blinkm.cpp
blinkm.h
boards.h Add Cartesio CN Controls V11 board 2016-07-15 12:55:47 +03:00
buzzer.h Merge pull request #4419 from AnHardt/sd2pinmap 2016-07-28 17:38:46 -07:00
cardreader.cpp Simply run M31 at the end of an SD print 2016-07-14 11:39:58 -07:00
cardreader.h Moves all global enums to a central file 2016-07-19 14:31:09 +01:00
circularqueue.h Non-blocking buzzer 2016-06-09 20:20:05 -07:00
Conditionals_LCD.h Split up Conditionals.h into two files 2016-07-25 20:30:45 -07:00
Conditionals_post.h Improved MANUAL_[XYZ]_HOME_POS 2016-07-28 19:51:48 -07:00
Conditionals.h Make SanityCheck.h a catch-all for obsolete configs 2016-07-26 12:41:40 -07:00
Configuration_adv.h Unify config in a single include without nested includes 2016-07-25 23:04:19 -07:00
configuration_store.cpp Merge pull request #4397 from thinkyhead/rc_tweak_eeprom 2016-07-24 18:45:54 -07:00
configuration_store.h Unify config in a single include without nested includes 2016-07-25 23:04:19 -07:00
Configuration.h double bump probing as a feature 2016-07-30 03:00:49 +02:00
dac_mcp4728.cpp Support for newer Wire library 2016-06-27 20:25:03 -07:00
dac_mcp4728.h Unify config in a single include without nested includes 2016-07-25 23:04:19 -07:00
digipot_mcp4451.cpp Unify config in a single include without nested includes 2016-07-25 23:04:19 -07:00
dogm_bitmaps.h Updates u8glib's bmp2hex converter 2016-07-19 03:16:30 +01:00
dogm_font_data_6x9_marlin.h
dogm_font_data_HD44780_C.h
dogm_font_data_HD44780_J.h
dogm_font_data_HD44780_W.h
dogm_font_data_ISO10646_1.h
dogm_font_data_ISO10646_5_Cyrillic.h
dogm_font_data_ISO10646_CN.h
dogm_font_data_ISO10646_Greek.h Greek language pack from @psavva 2016-07-10 18:59:04 -07:00
dogm_font_data_ISO10646_Kana.h
dogm_font_data_Marlin_symbols.h
duration_t.h Renamed timestamp_t to duration_t 2016-07-24 03:16:02 +01:00
endstops.cpp Endstops vars already initialized 2016-07-17 13:38:48 -07:00
endstops.h Moves all global enums to a central file 2016-07-19 14:31:09 +01:00
enum.h Macros to loop over axes 2016-07-23 13:09:28 -07:00
fastio.h Switch SD2cadrLib to fastio 2016-07-27 12:40:44 +02:00
language_an.h Follow-up and fix the PR #4287 (Allow stopwatch and printcounter to go over 18:12:15) 2016-07-16 18:39:22 +09:00
language_bg.h Follow-up and fix the PR #4287 (Allow stopwatch and printcounter to go over 18:12:15) 2016-07-16 18:39:22 +09:00
language_ca.h Follow-up and fix the PR #4287 (Allow stopwatch and printcounter to go over 18:12:15) 2016-07-16 18:39:22 +09:00
language_cn.h Follow-up and fix the PR #4287 (Allow stopwatch and printcounter to go over 18:12:15) 2016-07-16 18:39:22 +09:00
language_cz.h Czech update 2016-07-26 13:48:27 +02:00
language_da.h Follow-up and fix the PR #4287 (Allow stopwatch and printcounter to go over 18:12:15) 2016-07-16 18:39:22 +09:00
language_de.h Follow-up and fix the PR #4287 (Allow stopwatch and printcounter to go over 18:12:15) 2016-07-16 18:39:22 +09:00
language_el-gr.h Follow-up and fix the PR #4287 (Allow stopwatch and printcounter to go over 18:12:15) 2016-07-16 18:39:22 +09:00
language_el.h Follow-up and fix the PR #4287 (Allow stopwatch and printcounter to go over 18:12:15) 2016-07-16 18:39:22 +09:00
language_en.h Remove MSG_PRINT_TIME from languages 2016-07-26 12:47:45 -07:00
language_es.h Follow-up and fix the PR #4287 (Allow stopwatch and printcounter to go over 18:12:15) 2016-07-16 18:39:22 +09:00
language_eu.h Follow-up and fix the PR #4287 (Allow stopwatch and printcounter to go over 18:12:15) 2016-07-16 18:39:22 +09:00
language_fi.h Follow-up and fix the PR #4287 (Allow stopwatch and printcounter to go over 18:12:15) 2016-07-16 18:39:22 +09:00
language_fr.h Follow-up and fix the PR #4287 (Allow stopwatch and printcounter to go over 18:12:15) 2016-07-16 18:39:22 +09:00
language_gl.h Follow-up and fix the PR #4287 (Allow stopwatch and printcounter to go over 18:12:15) 2016-07-16 18:39:22 +09:00
language_hr.h Follow-up and fix the PR #4287 (Allow stopwatch and printcounter to go over 18:12:15) 2016-07-16 18:39:22 +09:00
language_it.h Remove MSG_PRINT_TIME from languages 2016-07-26 12:47:45 -07:00
language_kana_utf8.h Remove MSG_PRINT_TIME from languages 2016-07-26 12:47:45 -07:00
language_kana.h Remove MSG_PRINT_TIME from languages 2016-07-26 12:47:45 -07:00
language_nl.h Follow-up and fix the PR #4287 (Allow stopwatch and printcounter to go over 18:12:15) 2016-07-16 18:39:22 +09:00
language_pl.h Follow-up and fix the PR #4287 (Allow stopwatch and printcounter to go over 18:12:15) 2016-07-16 18:39:22 +09:00
language_pt_utf8.h Follow-up and fix the PR #4287 (Allow stopwatch and printcounter to go over 18:12:15) 2016-07-16 18:39:22 +09:00
language_pt-br_utf8.h Follow-up and fix the PR #4287 (Allow stopwatch and printcounter to go over 18:12:15) 2016-07-16 18:39:22 +09:00
language_pt-br.h Follow-up and fix the PR #4287 (Allow stopwatch and printcounter to go over 18:12:15) 2016-07-16 18:39:22 +09:00
language_pt.h Follow-up and fix the PR #4287 (Allow stopwatch and printcounter to go over 18:12:15) 2016-07-16 18:39:22 +09:00
language_ru.h Follow-up and fix the PR #4287 (Allow stopwatch and printcounter to go over 18:12:15) 2016-07-16 18:39:22 +09:00
language_test.h Merge pull request #4252 from thinkyhead/rc_rename_hpb 2016-07-12 20:00:33 -07:00
language.h Move versioning to MarlinConfig.h 2016-07-26 12:37:14 -07:00
M100_Free_Mem_Chk.cpp Repair M100 2016-07-11 20:44:30 +02:00
macros.h Move some macros from Marlin.h to macros.h 2016-07-26 12:37:13 -07:00
Makefile Merge pull request #3224 from yarda/fix-melzi2-arduino-1.6.x 2016-05-08 19:33:37 -07:00
Marlin_main.cpp double bump probing as a feature 2016-07-30 03:00:49 +02:00
Marlin.h Fix output of heater states 2016-07-28 17:40:01 -07:00
Marlin.ino Unify config in a single include without nested includes 2016-07-25 23:04:19 -07:00
MarlinConfig.h Merge pull request #4419 from AnHardt/sd2pinmap 2016-07-28 17:38:46 -07:00
MarlinSerial.cpp Moves all global enums to a central file 2016-07-19 14:31:09 +01:00
MarlinSerial.h Add TX-buffer for MarlinSerial 2016-07-08 17:25:21 +02:00
mesh_bed_leveling.cpp Use memset in mbl.reset to save 58 bytes 2016-06-08 16:05:18 -07:00
mesh_bed_leveling.h Moves all global enums to a central file 2016-07-19 14:31:09 +01:00
nozzle.h Nozzle::clean() no longer requires HAS_BED_PROBE 2016-07-19 15:07:02 -07:00
pins_3DRAG.h Remove "the click" comments 2016-07-28 14:38:50 -07:00
pins_5DPRINT.h Switch SD2cadrLib to fastio 2016-07-27 12:40:44 +02:00
pins_99.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_A4JP.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_AZTEEG_X1.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_AZTEEG_X3_PRO.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_AZTEEG_X3.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_BAM_DICE_DUE.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_BQ_ZUM_MEGA_3D.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_BRAINWAVE_PRO.h Switch SD2cadrLib to fastio 2016-07-27 12:40:44 +02:00
pins_BRAINWAVE.h Switch SD2cadrLib to fastio 2016-07-27 12:40:44 +02:00
pins_CHEAPTRONIC.h BLEN_A, B, C are defined in ultralcd headers 2016-07-28 14:38:50 -07:00
pins_CNCONTROLS_11.h Add Cartesio CN Controls V11 board 2016-07-15 12:55:47 +03:00
pins_CNCONTROLS_12.h Fix CN Controls 12 styling 2016-07-15 09:54:09 +03:00
pins_ELEFU_3.h BLEN_A, B, C are defined in ultralcd headers 2016-07-28 14:38:50 -07:00
pins_FELIX2.h BLEN_A, B, C are defined in ultralcd headers 2016-07-28 14:38:50 -07:00
pins_GEN3_MONOLITHIC.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_GEN3_PLUS.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_GEN6_DELUXE.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_GEN6.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_GEN7_12.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_GEN7_13.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_GEN7_14.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_GEN7_CUSTOM.h Remove "the click" comments 2016-07-28 14:38:50 -07:00
pins_K8200.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_K8400.h Add a ported example configuration for the Velleman K8400 (Vertex) printer. 2016-07-03 22:09:08 +01:00
pins_LEAPFROG.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_MEGACONTROLLER.h Remove "the click" comments 2016-07-28 14:38:50 -07:00
pins_MEGATRONICS_2.h BLEN_A, B, C are defined in ultralcd headers 2016-07-28 14:38:50 -07:00
pins_MEGATRONICS_3.h BLEN_A, B, C are defined in ultralcd headers 2016-07-28 14:38:50 -07:00
pins_MEGATRONICS.h BLEN_A, B, C are defined in ultralcd headers 2016-07-28 14:38:50 -07:00
pins_MELZI_MAKR3D.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_MELZI.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_MINIRAMBO.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_MINITRONICS.h BLEN_A, B, C are defined in ultralcd headers 2016-07-28 14:38:50 -07:00
pins_MKS_13.h Support for VIKI2 with MKS Gen 1.3 / 1.4 2016-07-11 15:43:08 -07:00
pins_MKS_BASE.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_OMCA_A.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_OMCA.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_PRINTRBOARD_REVF.h Merge pull request #4419 from AnHardt/sd2pinmap 2016-07-28 17:38:46 -07:00
pins_PRINTRBOARD.h Merge pull request #4419 from AnHardt/sd2pinmap 2016-07-28 17:38:46 -07:00
pins_RAMBO.h Wrangle encoder bits, LCD_CLICKED 2016-07-28 14:44:37 -07:00
pins_RAMPS_13_EFB.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_RAMPS_13.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_RAMPS_14_EFB.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_RAMPS_14.h Merge pull request #4419 from AnHardt/sd2pinmap 2016-07-28 17:38:46 -07:00
pins_RAMPS_OLD.h Switch SD2cadrLib to fastio 2016-07-27 12:40:44 +02:00
pins_RIGIDBOARD_V2.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_RIGIDBOARD.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_RUMBA.h Implement MIXING_EXTRUDER and SWITCHING_EXTRUDER 2016-07-17 10:53:10 -07:00
pins_SAINSMART_2IN1.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_SANGUINOLOLU_11.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_SANGUINOLOLU_12.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_SAV_MKI.h Switch SD2cadrLib to fastio 2016-07-27 12:40:44 +02:00
pins_SETHI.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_STB_11.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_TEENSY2.h Switch SD2cadrLib to fastio 2016-07-27 12:40:44 +02:00
pins_TEENSYLU.h Switch SD2cadrLib to fastio 2016-07-27 12:40:44 +02:00
pins_ULTIMAIN_2.h BLEN_A, B, C are defined in ultralcd headers 2016-07-28 14:38:50 -07:00
pins_ULTIMAKER_OLD.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_ULTIMAKER.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins.h Switch SD2cadrLib to fastio 2016-07-27 12:40:44 +02:00
planner_bezier.cpp Don't call adjust_delta on SCARA 2016-07-22 16:36:34 -07:00
planner_bezier.h Append units to feedrate variables 2016-07-17 13:29:41 -07:00
planner.cpp inverse_second => inverse_mm_s 2016-07-28 16:35:18 -07:00
planner.h Replace division in planner with multiplication 2016-07-24 13:27:49 -07:00
point_t.h Adds missing documentation to the point_t structure 2016-07-22 15:19:20 +01:00
printcounter.cpp Renamed timestamp_t to duration_t 2016-07-24 03:16:02 +01:00
printcounter.h Adds filamentUsed and longestPrint stats to PrintCounter 2016-07-16 12:12:27 +01:00
qr_solve.cpp
qr_solve.h Unify config in a single include without nested includes 2016-07-25 23:04:19 -07:00
SanityCheck.h Improved MANUAL_[XYZ]_HOME_POS 2016-07-28 19:51:48 -07:00
Sd2Card.cpp Switch SD2cadrLib to fastio 2016-07-27 12:40:44 +02:00
Sd2Card.h Switch SD2cadrLib to fastio 2016-07-27 12:40:44 +02:00
SdBaseFile.cpp 8.3-filenames second try 2016-05-02 15:58:04 +02:00
SdBaseFile.h
SdFatConfig.h
SdFatStructs.h
SdFatUtil.cpp
SdFatUtil.h Converted all files on src to Unix file format 2016-04-26 21:23:39 +01:00
SdFile.cpp Converted all files on src to Unix file format 2016-04-26 21:23:39 +01:00
SdFile.h
SdInfo.h Converted all files on src to Unix file format 2016-04-26 21:23:39 +01:00
SdVolume.cpp Converted all files on src to Unix file format 2016-04-26 21:23:39 +01:00
SdVolume.h
servo.cpp Unify config in a single include without nested includes 2016-07-25 23:04:19 -07:00
servo.h SERVO_DEACTIVATION_DELAY => SERVO_DELAY 2016-06-23 14:33:29 -07:00
speaker.h Fixes a compilation error introduced by #4448 2016-07-29 18:33:42 +01:00
speed_lookuptable.h
stepper_dac.cpp Merge pull request #4161 from thinkyhead/rc_general_cleanup 2016-06-27 20:46:26 -07:00
stepper_dac.h
stepper_indirection.cpp Unify config in a single include without nested includes 2016-07-25 23:04:19 -07:00
stepper_indirection.h Unify config in a single include without nested includes 2016-07-25 23:04:19 -07:00
stepper.cpp Replace some float division with multiplication 2016-07-24 13:27:50 -07:00
stepper.h Replace division in planner with multiplication 2016-07-24 13:27:49 -07:00
stopwatch.cpp Updates Stopwatch class to use internal state enum 2016-07-19 14:30:44 +01:00
stopwatch.h Updates Stopwatch class to use internal state enum 2016-07-19 14:30:44 +01:00
temperature.cpp Switch SD2cadrLib to fastio 2016-07-27 12:40:44 +02:00
temperature.h Fix output of heater states 2016-07-28 17:40:01 -07:00
thermistornames.h Dyze High Temp Thermistor Support 2016-07-10 17:59:05 -07:00
thermistortables.h Dyze High Temp Thermistor Support 2016-07-10 17:59:05 -07:00
twibus.cpp Shrink debug code in TWIBus and disable by default 2016-04-20 12:44:30 -07:00
twibus.h Shrink debug code in TWIBus and disable by default 2016-04-20 12:44:30 -07:00
ultralcd_impl_DOGM.h Wrangle encoder bits, LCD_CLICKED 2016-07-28 14:44:37 -07:00
ultralcd_impl_HD44780.h Wrangle encoder bits, LCD_CLICKED 2016-07-28 14:44:37 -07:00
ultralcd_st7920_u8glib_rrd.h Add a ported example configuration for the Velleman K8400 (Vertex) printer. 2016-07-03 22:09:08 +01:00
ultralcd.cpp Merge pull request #4389 from thinkyhead/rc_optimize_planner 2016-07-24 17:48:23 -07:00
ultralcd.h Wrangle encoder bits, LCD_CLICKED 2016-07-28 14:44:37 -07:00
utf_mapper.h Make MAPPER_NON the fall back mapper 2016-07-12 19:59:14 +02:00
utility.cpp The safe_delay() is now globaly accessible 2016-07-16 12:28:06 +01:00
utility.h Adds utility.h 2016-07-19 02:55:23 +01:00
vector_3.cpp
vector_3.h
Version.h Move versioning to MarlinConfig.h 2016-07-26 12:37:14 -07:00
watchdog.cpp
watchdog.h