Firmware/Marlin
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.
2017-03-14 02:36:24 -05:00
..
example_configurations Apply TMC2130 to example configurations 2017-03-07 04:22:06 -06:00
blinkm.cpp
blinkm.h
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 Dynamic allocation for SDCARD_SORT_ALPHA 2017-02-14 21:37:25 -06:00
cardreader.h Dynamic allocation for SDCARD_SORT_ALPHA 2017-02-14 21:37:25 -06:00
circularqueue.h Patch up CircularQueue 2016-08-02 18:57:15 -07:00
Conditionals_LCD.h Give encoder pulse/steps conditionals their own block 2017-02-12 03:57:57 -06:00
Conditionals_post.h Added support for delta tower angle corrections. 2017-03-07 16:35:58 -06:00
Conditionals.h Make Conditionals.h a catch-all for old configs 2016-07-30 04:25:30 -07:00
Configuration_adv.h TMC2130 Library: @teemuatlut replaces @makertum 2017-03-07 04:22:06 -06:00
configuration_store.cpp Use arrays for delta tower parameters 2017-03-07 19:00:22 -06:00
configuration_store.h Print error for M500 with disabled EEPROM 2016-10-28 18:53:48 -05:00
Configuration.h Added circle pattern for nozzle cleaning feature 2017-03-06 03:03:00 -06: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
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_tr.h Improve M600 with timeout, wait for heatup. 2017-02-15 05:29:34 -06:00
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 Change font decent to -1 for tt and gr 2016-11-26 02:29:23 +01:00
dogm_font_data_ISO10646_Kana.h
dogm_font_data_Marlin_symbols.h
duration_t.h Fix formatting of print time hours above one day 2017-03-01 18:55:25 +02:00
endstop_interrupts.h More detailed static_assert messages 2016-11-18 22:24:46 -06:00
endstops.cpp Use SET_INPUT_PULLUP where appropriate 2017-03-07 23:43:33 -06:00
endstops.h guaranteed BLTouch detection 2017-02-11 12:01:34 -06:00
enum.h Improve M600 with timeout, wait for heatup. 2017-02-15 05:29:34 -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 Update Catalan language 2017-03-02 20:40:06 -06: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 Fix preheat menu formatting 2017-03-06 02:07:07 -06: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 Add MAPPER_C2C3 to French language 2017-02-25 18:49:00 -06: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 Use a short name for the filament "endstop" 2017-02-15 05:29:34 -06:00
M100_Free_Mem_Chk.cpp Remove unnecessary tabs and spaces 2016-12-16 00:21:32 +09:00
macros.h Use a macro for array copies 2017-03-05 04:43:46 -06:00
Makefile reduce binary size of .hex 2016-11-15 21:57:15 +01:00
Marlin_main.cpp Bug Fix: Switching extruder tool change leaves Z in wrong position 2017-03-14 02:36:24 -05:00
Marlin.h Use arrays for delta tower parameters 2017-03-07 19:00:22 -06:00
Marlin.ino TMC2130 Library: @teemuatlut replaces @makertum 2017-03-07 04:22:06 -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.cpp Apply prior nozzle clean update 2017-03-06 03:14:59 -06:00
nozzle.h Added circle pattern for nozzle cleaning feature 2017-03-06 03:03:00 -06: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
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
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
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
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
pins_MELZI.h
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 Remove BEEPER_PIN override in pins_RIGIDBOARD.h 2017-03-01 18:26:29 -06: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 Fix MAKRPANEL assignments 2017-03-03 21:22:21 -06:00
pins_SANGUINOLOLU_12.h
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
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
planner.cpp Merge pull request #5971 from thinkyhead/rc_fix_e_factors 2017-03-06 01:11:17 -06:00
planner.h Fix BUG set_position_mm 2017-03-11 14:13:39 +01:00
platformio.ini Move platformio directories out of source tree 2016-10-08 13:45:26 -04:00
point_t.h
printcounter.cpp Renamed timestamp_t to duration_t 2016-07-24 03:16:02 +01:00
printcounter.h
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 Dynamic allocation for SDCARD_SORT_ALPHA 2017-02-14 21:37:25 -06:00
Sd2Card.cpp Fix SD_CHECK_AND_RETRY condition 2017-02-11 23:55:56 -06: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
SdFatConfig.h repair-software-spi 2016-07-31 15:50:42 +02:00
SdFatStructs.h
SdFatUtil.cpp
SdFatUtil.h Cleanup SdFatUtil.h 2016-08-11 12:47:06 -07:00
SdFile.cpp
SdFile.h
SdInfo.h
SdVolume.cpp
SdVolume.h
servo.cpp Replace all remaining 'boolean' with 'bool' 2017-01-13 13:03:52 +01:00
servo.h
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 TMC2130 Library: @teemuatlut replaces @makertum 2017-03-07 04:22:06 -06:00
stepper_indirection.h TMC2130 Library: @teemuatlut replaces @makertum 2017-03-07 04:22:06 -06:00
stepper.cpp TMC2130 Library: @teemuatlut replaces @makertum 2017-03-07 04:22:06 -06:00
stepper.h First draft of Unified Stepper / E Advance ISR 2016-12-21 01:34:39 -08:00
stopwatch.cpp
stopwatch.h
temperature.cpp Use SET_INPUT_PULLUP where appropriate 2017-03-07 23:43:33 -06:00
temperature.h Prevent re-entering of temperature ISR 2017-02-14 07:52:03 -06:00
thermistornames.h
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 submenu hotend status display 2017-03-03 22:12:22 -06:00
ultralcd_impl_HD44780.h Fix submenu hotend status display 2017-03-03 22:12:22 -06:00
ultralcd_st7920_u8glib_rrd.h Distribute GLCD screen updates in time 2016-12-05 12:22:54 -06:00
ultralcd.cpp Use SET_INPUT_PULLUP where appropriate 2017-03-07 23:43:33 -06:00
ultralcd.h Make LCD_TIMEOUT_TO_STATUS configurable 2017-02-28 19:02:50 -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 Document PROTOCOL_VERSION 2017-03-05 04:43:46 -06:00
watchdog.cpp Correct comment on watchdog timer 2016-12-19 22:27:28 -08:00
watchdog.h