Marlin_Firmware/Marlin
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
2017-02-11 12:01:34 -06:00
..
example_configurations Allow enabling volumetric filament on config load 2017-01-14 04:37:49 -08:00
blinkm.cpp Further cleanup of comments, partial Doxygen-style 2016-03-25 00:45:56 -07:00
blinkm.h Further cleanup of comments, partial Doxygen-style 2016-03-25 00:45:56 -07:00
boards.h Remove mystery-board 99 2016-12-05 20:16:50 -06:00
buzzer.h fixed warning: ISO C++ forbids compound-literals 2016-10-22 11:23:16 -05:00
cardreader.cpp Replace all remaining 'boolean' with 'bool' 2017-01-13 13:03:52 +01:00
cardreader.h Fix bug in CardReader::stopSDPrint 2016-08-12 03:21:10 -07:00
circularqueue.h Patch up CircularQueue 2016-08-02 18:57:15 -07:00
Conditionals_LCD.h Add Debug Menu with LCD_PROGRESS_BAR_TEST as an example 2016-12-19 22:57:14 -08:00
Conditionals_post.h Merge pull request #5169 from thinkyhead/rc_core_inverted 2016-11-28 02:26:41 -06:00
Conditionals.h Make Conditionals.h a catch-all for old configs 2016-07-30 04:25:30 -07:00
Configuration_adv.h Allow enabling volumetric filament on config load 2017-01-14 04:37:49 -08:00
configuration_store.cpp Allow enabling volumetric filament on config load 2017-01-14 04:37:49 -08:00
configuration_store.h Print error for M500 with disabled EEPROM 2016-10-28 18:53:48 -05:00
Configuration.h From "microseconds" to "milliseconds" 2017-01-02 01:19:33 +09:00
dac_mcp4728.cpp Fix DAC current code 2016-10-17 15:17:57 -05:00
dac_mcp4728.h Fix DAC current code 2016-10-17 15:17:57 -05: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 Further cleanup of comments, partial Doxygen-style 2016-03-25 00:45:56 -07:00
dogm_font_data_HD44780_C.h Further cleanup of comments, partial Doxygen-style 2016-03-25 00:45:56 -07:00
dogm_font_data_HD44780_J.h Update Kana font 2016-03-31 10:02:47 +09:00
dogm_font_data_HD44780_W.h Further cleanup of comments, partial Doxygen-style 2016-03-25 00:45:56 -07:00
dogm_font_data_ISO10646_1_tr.h Change font decent to -1 for tt and gr 2016-11-26 02:29:23 +01:00
dogm_font_data_ISO10646_1.h Further cleanup of comments, partial Doxygen-style 2016-03-25 00:45:56 -07:00
dogm_font_data_ISO10646_5_Cyrillic.h Further cleanup of comments, partial Doxygen-style 2016-03-25 00:45:56 -07:00
dogm_font_data_ISO10646_CN.h Further cleanup of comments, partial Doxygen-style 2016-03-25 00:45:56 -07:00
dogm_font_data_ISO10646_Greek.h Change font decent to -1 for tt and gr 2016-11-26 02:29:23 +01:00
dogm_font_data_ISO10646_Kana.h Update Kana font 2016-03-31 10:02:47 +09:00
dogm_font_data_Marlin_symbols.h Further cleanup of comments, partial Doxygen-style 2016-03-25 00:45:56 -07:00
duration_t.h Better alignment of elapsed print time 2016-12-04 21:30:49 -06:00
endstop_interrupts.h More detailed static_assert messages 2016-11-18 22:24:46 -06:00
endstops.cpp Remove unnecessary tabs and spaces 2016-12-16 00:21:32 +09:00
endstops.h guaranteed BLTouch detection 2017-02-11 12:01:34 -06:00
enum.h Support for distinct E factors 2016-12-05 07:26:18 -06:00
fastio.h Merge pull request #4894 from thinkyhead/rc_mightyboard_rev_e 2016-10-31 08:01:41 -05:00
language_an.h Change "+mm" to "mm" in most languages 2016-12-20 01:16:51 -08:00
language_bg.h Change "+mm" to "mm" in most languages 2016-12-20 01:16:51 -08:00
language_ca.h Change "+mm" to "mm" in most languages 2016-12-20 01:16:51 -08:00
language_cn.h Followup to #5550 - spacing before "mm" 2016-12-20 02:27:54 -08:00
language_cz.h Followup to #5550 - spacing before "mm" 2016-12-20 02:27:54 -08:00
language_da.h Followup to #5550 - spacing before "mm" 2016-12-20 02:27:54 -08:00
language_de.h Update language_de.h 2017-01-12 16:06:58 +01:00
language_el-gr.h Followup to #5550 - spacing before "mm" 2016-12-20 02:27:54 -08:00
language_el.h Followup to #5550 - spacing before "mm" 2016-12-20 02:27:54 -08:00
language_en.h Followup to #5550 - spacing before "mm" 2016-12-20 02:27:54 -08:00
language_es.h Fix for some wrong strings 2017-01-12 22:35:04 +08:00
language_eu.h Change "+mm" to "mm" in most languages 2016-12-20 01:16:51 -08:00
language_fi.h Change "+mm" to "mm" in most languages 2016-12-20 01:16:51 -08:00
language_fr.h French translation : Added missing strings as well as missing accents 2017-01-17 23:29:23 +01:00
language_gl.h tag the utf-8 strings 2016-12-13 11:54:35 -05:00
language_hr.h Followup to #5550 - spacing before "mm" 2016-12-20 02:27:54 -08:00
language_it.h Followup to #5550 - spacing before "mm" 2016-12-20 02:27:54 -08:00
language_kana_utf8.h Update Japanese translation 2016-12-21 08:44:07 +09:00
language_kana.h Update Japanese translation 2016-12-21 08:44:07 +09:00
language_nl.h Change "+mm" to "mm" in most languages 2016-12-20 01:16:51 -08:00
language_pl.h Change "+mm" to "mm" in most languages 2016-12-20 01:16:51 -08:00
language_pt_utf8.h Change "+mm" to "mm" in most languages 2016-12-20 01:16:51 -08:00
language_pt-br_utf8.h Change "+mm" to "mm" in most languages 2016-12-20 01:16:51 -08:00
language_pt-br.h Change "+mm" to "mm" in most languages 2016-12-20 01:16:51 -08:00
language_pt.h Change "+mm" to "mm" in most languages 2016-12-20 01:16:51 -08:00
language_ru.h Change "+mm" to "mm" in most languages 2016-12-20 01:16:51 -08:00
language_test.h Keep SIMULATE_ROMFONT only language.h 2016-08-15 19:11:31 -07:00
language_tr.h Followup to #5550 - spacing before "mm" 2016-12-20 02:27:54 -08:00
language_uk.h Fix typo in language_uk 2017-02-10 15:34:31 -06:00
language_zh_CN.h tag the utf-8 strings 2016-12-13 11:54:35 -05:00
language_zh_TW.h tag the utf-8 strings 2016-12-13 11:54:35 -05:00
language.h Support for M335 case light "no case light" 2016-12-19 23:23:08 -08:00
M100_Free_Mem_Chk.cpp Remove unnecessary tabs and spaces 2016-12-16 00:21:32 +09:00
macros.h Limit preheat parameters based on all nozzles 2016-11-28 01:37:24 -06:00
Makefile reduce binary size of .hex 2016-11-15 21:57:15 +01:00
Marlin_main.cpp guaranteed BLTouch detection 2017-02-11 12:01:34 -06:00
Marlin.h Save ABL Bilinear Grid to EEPROM 2016-12-15 19:20:48 -08:00
Marlin.ino Add TMC2130 support 2016-11-21 00:17:45 -06:00
MarlinConfig.h Merge pull request #4419 from AnHardt/sd2pinmap 2016-07-28 17:38:46 -07:00
MarlinSerial.cpp Centralize click-handling in the LCD loop 2016-10-28 20:57:21 -05:00
MarlinSerial.h Optimize, reduce size of MarlinSerial 2016-08-19 16:53:20 -05:00
mesh_bed_leveling.cpp Add a ZERO macro to clear arrays 2016-10-22 10:07:18 -05:00
mesh_bed_leveling.h Pass the fade factor to mbl.get_z 2016-12-05 03:01:51 -06:00
nozzle.h Move to safe zone on DELTA if using do_blocking_move_to* 2016-12-10 21:28:24 -08:00
pins_3DRAG.h Follow-up the PR #4955, etc 2016-10-10 14:22:43 +09:00
pins_5DPRINT.h Follow-up the PR #4955, etc 2016-10-10 14:22:43 +09:00
pins_A4JP.h No FAN0_PIN 2016-10-31 08:08:03 -05:00
pins_AZTEEG_X1.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_AZTEEG_X3_PRO.h Predefine auto fan pins in some pins files 2016-10-26 18:38:32 -05:00
pins_AZTEEG_X3.h Follow-up the PR #5087 (Fixed SERVO pins on Azteeg X3), etc 2016-10-27 06:46:03 +09:00
pins_BAM_DICE_DUE.h Follow-up the PR #4955, etc 2016-10-10 14:22:43 +09:00
pins_BQ_ZUM_MEGA_3D.h Updated bq Hephestos 2 example configuration 2016-12-13 09:26:07 +00:00
pins_BRAINWAVE_PRO.h Follow-up the PR #4955, etc 2016-10-10 14:22:43 +09:00
pins_BRAINWAVE.h Follow-up the PR #4955, etc 2016-10-10 14:22:43 +09:00
pins_CHEAPTRONIC.h Follow-up the PR #4955, etc 2016-10-10 14:22:43 +09:00
pins_CNCONTROLS_11.h Predefine auto fan pins in some pins files 2016-10-26 18:38:32 -05:00
pins_CNCONTROLS_12.h Predefine auto fan pins in some pins files 2016-10-26 18:38:32 -05:00
pins_ELEFU_3.h Follow-up the PR #4955, etc 2016-10-10 14:22:43 +09:00
pins_FELIX2.h Follow-up the PR #4955, etc 2016-10-10 14:22:43 +09:00
pins_GEN3_MONOLITHIC.h Follow-up the PR #4955, etc 2016-10-10 14:22:43 +09:00
pins_GEN3_PLUS.h Follow-up the PR #4955, etc 2016-10-10 14:22:43 +09:00
pins_GEN6_DELUXE.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_GEN6.h Follow-up the PR #4955, etc 2016-10-10 14:22:43 +09:00
pins_GEN7_12.h Label analog pins in a similar way 2016-10-05 06:13:30 -05:00
pins_GEN7_13.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_GEN7_14.h Follow-up the PR #4955, etc 2016-10-10 14:22:43 +09:00
pins_GEN7_CUSTOM.h Follow-up the PR #4955, etc 2016-10-10 14:22:43 +09:00
pins_K8200.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_K8400.h Disable SD Detect for K8400 2016-12-28 23:21:18 +01:00
pins_LEAPFROG.h Follow-up the PR #4955, etc 2016-10-10 14:22:43 +09:00
pins_MEGACONTROLLER.h Follow-up the PR #4955, etc 2016-10-10 14:22:43 +09:00
pins_MEGATRONICS_2.h Follow-up the PR #4955, etc 2016-10-10 14:22:43 +09:00
pins_MEGATRONICS_3.h Remove unnecessary tabs and spaces 2016-12-16 00:21:32 +09:00
pins_MEGATRONICS.h Follow-up the PR #4955, etc 2016-10-10 14:22:43 +09: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_MIGHTYBOARD_REVE.h Developer note in pins_MIGHTYBOARD_REVE.h 2016-10-31 08:22:39 -05:00
pins_MINIRAMBO.h Follow-up the PR #4955, etc 2016-10-10 14:22:43 +09:00
pins_MINITRONICS.h Follow-up the PR #4955, etc 2016-10-10 14:22:43 +09:00
pins_MKS_13.h Follow-up the PR #4955, etc 2016-10-10 14:22:43 +09:00
pins_MKS_BASE.h Follow-up the PR #4955, etc 2016-10-10 14:22:43 +09:00
pins_OMCA_A.h Follow-up the PR #4955, etc 2016-10-10 14:22:43 +09:00
pins_OMCA.h Follow-up the PR #4955, etc 2016-10-10 14:22:43 +09:00
pins_PRINTRBOARD_REVF.h Follow-up the PR #4955, etc 2016-10-10 14:22:43 +09:00
pins_PRINTRBOARD.h Follow-up the PR #4955, etc 2016-10-10 14:22:43 +09:00
pins_RAMBO.h Follow-up the PR #4955, etc 2016-10-10 14:22:43 +09:00
pins_RAMPS_13.h pins_RAMPS_14.h => pins_RAMPS.h 2016-07-30 04:17:21 -07:00
pins_RAMPS_OLD.h Follow-up the PR #4955, etc 2016-10-10 14:22:43 +09:00
pins_RAMPS.h Add TMC2130 support 2016-11-21 00:17:45 -06:00
pins_RIGIDBOARD_V2.h Default DAC values for RigidBoard V2 2017-02-09 22:39:00 -06:00
pins_RIGIDBOARD.h Move MOSFET changes above #include for RIGIDBOARD 2017-01-12 04:46:49 -08:00
pins_RUMBA.h Follow-up the PR #4955, etc 2016-10-10 14:22:43 +09:00
pins_SAINSMART_2IN1.h Follow-up the PR #4955, etc 2016-10-10 14:22:43 +09:00
pins_SANGUINOLOLU_11.h Follow-up the PR #4955, etc 2016-10-10 14:22:43 +09:00
pins_SANGUINOLOLU_12.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_SAV_MKI.h Follow-up the PR #4955, etc 2016-10-10 14:22:43 +09:00
pins_SETHI.h Follow-up the PR #4955, etc 2016-10-10 14:22:43 +09:00
pins_STB_11.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_TEENSY2.h Follow-up the PR #4955, etc 2016-10-10 14:22:43 +09:00
pins_TEENSYLU.h Follow-up the PR #4955, etc 2016-10-10 14:22:43 +09:00
pins_ULTIMAIN_2.h Follow-up the PR #4955, etc 2016-10-10 14:22:43 +09:00
pins_ULTIMAKER_OLD.h Follow-up the PR #4955, etc 2016-10-10 14:22:43 +09:00
pins_ULTIMAKER.h Follow-up the PR #4955, etc 2016-10-10 14:22:43 +09:00
pins.h Remove unnecessary tabs and spaces 2016-12-16 00:21:32 +09:00
pinsDebug_Teensyduino.h pinsDebug for 644/1284 & USB646/1286 families 2017-02-09 07:24:02 -06:00
pinsDebug.h pinsDebug for 644/1284 & USB646/1286 families 2017-02-09 07:24:02 -06:00
planner_bezier.cpp Improve planner kinematics, fix delta ABL 2016-10-09 13:32:46 -05:00
planner_bezier.h Append units to feedrate variables 2016-07-17 13:29:41 -07:00
planner.cpp Suppress warning 2016-12-21 09:13:03 +09:00
planner.h Merge pull request #5512 from AnHardt/speed-compare-bbr 2016-12-19 18:21:06 -08:00
platformio.ini Move platformio directories out of source tree 2016-10-08 13:45:26 -04: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 Enable ABL by type, support bilinear on cartesian 2016-09-25 23:35:37 -05:00
qr_solve.h Enable ABL by type, support bilinear on cartesian 2016-09-25 23:35:37 -05:00
SanityCheck.h Sanity checks for FILAMENT_CHANGE_FEATURE and FILAMENT_RUNOUT_SCRIPT 2016-12-23 19:55:12 -08:00
Sd2Card.cpp Reset watchdog in SD init to prevent reboot 2017-01-12 05:33:38 -08:00
Sd2Card.h repair-software-spi 2016-07-31 15:50:42 +02:00
SdBaseFile.cpp Clear dir_t size, not pointer size 2016-10-25 22:59:40 -05:00
SdBaseFile.h Further cleanup of comments, partial Doxygen-style 2016-03-25 00:45:56 -07:00
SdFatConfig.h repair-software-spi 2016-07-31 15:50:42 +02:00
SdFatStructs.h Further cleanup of comments, partial Doxygen-style 2016-03-25 00:45:56 -07:00
SdFatUtil.cpp Further cleanup of comments, partial Doxygen-style 2016-03-25 00:45:56 -07:00
SdFatUtil.h Cleanup SdFatUtil.h 2016-08-11 12:47:06 -07:00
SdFile.cpp Converted all files on src to Unix file format 2016-04-26 21:23:39 +01:00
SdFile.h Further cleanup of comments, partial Doxygen-style 2016-03-25 00:45:56 -07:00
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 Further cleanup of comments, partial Doxygen-style 2016-03-25 00:45:56 -07:00
servo.cpp Replace all remaining 'boolean' with 'bool' 2017-01-13 13:03:52 +01:00
servo.h SERVO_DEACTIVATION_DELAY => SERVO_DELAY 2016-06-23 14:33:29 -07:00
speed_lookuptable.h Spacing, cleanup in speed_lookuptable.h 2016-12-19 14:52:45 -08:00
stepper_dac.cpp Default DAC values for RigidBoard V2 2017-02-09 22:39:00 -06:00
stepper_dac.h Cleanup of code style 2016-10-07 15:57:24 -05:00
stepper_indirection.cpp Reduce all stepper_indirection init code with macros 2016-11-21 00:52:18 -06:00
stepper_indirection.h Add TMC2130 support 2016-11-21 00:17:45 -06:00
stepper.cpp guaranteed BLTouch detection 2017-02-11 12:01:34 -06:00
stepper.h First draft of Unified Stepper / E Advance ISR 2016-12-21 01:34:39 -08: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 guaranteed BLTouch detection 2017-02-11 12:01:34 -06:00
temperature.h Implement reversed CORE options 2016-11-05 23:47:51 -05:00
thermistornames.h Dyze High Temp Thermistor Support 2016-07-10 17:59:05 -07:00
thermistortable_1.h Split up thermistor tables 2016-12-19 14:47:54 -08:00
thermistortable_2.h Split up thermistor tables 2016-12-19 14:47:54 -08:00
thermistortable_3.h Split up thermistor tables 2016-12-19 14:47:54 -08:00
thermistortable_4.h Split up thermistor tables 2016-12-19 14:47:54 -08:00
thermistortable_5.h Split up thermistor tables 2016-12-19 14:47:54 -08:00
thermistortable_6.h Split up thermistor tables 2016-12-19 14:47:54 -08:00
thermistortable_7.h Split up thermistor tables 2016-12-19 14:47:54 -08:00
thermistortable_8.h Split up thermistor tables 2016-12-19 14:47:54 -08:00
thermistortable_9.h Split up thermistor tables 2016-12-19 14:47:54 -08:00
thermistortable_10.h Split up thermistor tables 2016-12-19 14:47:54 -08:00
thermistortable_11.h Split up thermistor tables 2016-12-19 14:47:54 -08:00
thermistortable_12.h Split up thermistor tables 2016-12-19 14:47:54 -08:00
thermistortable_13.h Split up thermistor tables 2016-12-19 14:47:54 -08:00
thermistortable_20.h Split up thermistor tables 2016-12-19 14:47:54 -08:00
thermistortable_51.h Split up thermistor tables 2016-12-19 14:47:54 -08:00
thermistortable_52.h Split up thermistor tables 2016-12-19 14:47:54 -08:00
thermistortable_55.h Split up thermistor tables 2016-12-19 14:47:54 -08:00
thermistortable_60.h Split up thermistor tables 2016-12-19 14:47:54 -08:00
thermistortable_66.h Split up thermistor tables 2016-12-19 14:47:54 -08:00
thermistortable_70.h Split up thermistor tables 2016-12-19 14:47:54 -08:00
thermistortable_71.h Split up thermistor tables 2016-12-19 14:47:54 -08:00
thermistortable_110.h Split up thermistor tables 2016-12-19 14:47:54 -08:00
thermistortable_147.h Split up thermistor tables 2016-12-19 14:47:54 -08:00
thermistortable_998.h Split up thermistor tables 2016-12-19 14:47:54 -08:00
thermistortable_999.h Split up thermistor tables 2016-12-19 14:47:54 -08:00
thermistortable_1010.h Split up thermistor tables 2016-12-19 14:47:54 -08:00
thermistortable_1047.h Split up thermistor tables 2016-12-19 14:47:54 -08:00
thermistortables.h Split up thermistor tables 2016-12-19 14:47:54 -08:00
twibus.cpp Allow send to i2c address 0 (broadcast) 2016-11-08 17:54:55 -06:00
twibus.h M155=>M260, M156=>M261 2016-11-08 17:54:54 -06:00
types.h Adds types.h 2016-07-30 02:55:52 +01:00
ultralcd_impl_DOGM.h Fix 5194 2016-12-21 00:45:29 +01:00
ultralcd_impl_HD44780.h Add Debug Menu with LCD_PROGRESS_BAR_TEST as an example 2016-12-19 22:57:14 -08:00
ultralcd_st7920_u8glib_rrd.h Distribute GLCD screen updates in time 2016-12-05 12:22:54 -06:00
ultralcd.cpp Fix lcd_wait_for_homing causing menu to block 2017-01-12 04:37:23 -08:00
ultralcd.h Fix compile error with LCD_I2C_VIKI 2016-12-07 23:29:45 -06:00
utf_mapper.h utf8-mapper for Turkish 2016-12-12 15:56:59 +01:00
utility.cpp Replace ftostr62sign with ftostr62rj 2016-12-12 20:25:20 +01:00
utility.h Replace ftostr62sign with ftostr62rj 2016-12-12 20:25:20 +01:00
vector_3.cpp Enable ABL by type, support bilinear on cartesian 2016-09-25 23:35:37 -05:00
vector_3.h Enable ABL by type, support bilinear on cartesian 2016-09-25 23:35:37 -05:00
Version.h README and Version for 1.1.0-RCBugFix 2016-12-07 10:43:58 +09:00
watchdog.cpp Correct comment on watchdog timer 2016-12-19 22:27:28 -08:00
watchdog.h Further cleanup of comments, partial Doxygen-style 2016-03-25 00:45:56 -07:00