Skip to content

[2.0.x] G34 Automatic Alignment of multi-stepper Z axis#11302

Merged
thinkyhead merged 2 commits intoMarlinFirmware:bugfix-2.0.xfrom
TheLongAndOnly:g34-triple-2.0.x
Oct 29, 2018
Merged

[2.0.x] G34 Automatic Alignment of multi-stepper Z axis#11302
thinkyhead merged 2 commits intoMarlinFirmware:bugfix-2.0.xfrom
TheLongAndOnly:g34-triple-2.0.x

Conversation

@TheLongAndOnly
Copy link
Contributor

@TheLongAndOnly TheLongAndOnly commented Jul 18, 2018

This new feature allows to automatically align multiple Z-Stepper drivers by iteratively probing positions close to the stepper driver spindles and correcting the offsets.

Works for dual and triple (tested) Z-Stepper configurations.

Configurables:

  • Probe position per axis
  • Maximum iterations
  • Target accuracy (iterations stop when last correction is below accuracy target)
  • Amplification (speeds up convergence if probe points are away from spindles)

Machine needs to be homed prior to invoking G34.
M422 allows configuration of probe points.

ToDo:

  • DONE [Update all machine configurations (should find a way to inherit from a base configuration???)]
  • DONE [Add accuracy parameter to G34]
  • DONE [Update Travis tests to build feature]

Integrates 2 additional open PRs:

@GMagician
Copy link
Contributor

GMagician commented Jul 18, 2018

Just a doubt, how can you detect, if you have a not planar bed, if detected offset are due to z stepper misalignment or bed itself?

@TheLongAndOnly
Copy link
Contributor Author

TheLongAndOnly commented Jul 18, 2018

I cannot. This Feature just ensures the defined probe positions are best leveled. You can overlay bed leveling as you want.

@thinkyhead
Copy link
Member

thinkyhead commented Aug 21, 2018

You'll have to re-do this PR, which contains not only the feature it advertises, but also contains all the code from your "triple-Z" PR too. You can't mix two PRs together like this. Wait until the other PR is merged, and then fix or re-do this PR starting from bugfix-2.0.x at that time.

@TheLongAndOnly
Copy link
Contributor Author

Hi @thinkyhead, the PR contains all required code, including the triple-z stepper code. I can redo the PR, in case you merge my other PRs.

@thinkyhead thinkyhead force-pushed the bugfix-2.0.x branch 4 times, most recently from 9fb4e95 to ad12b9b Compare August 21, 2018 14:48
@fkirita
Copy link

fkirita commented Aug 31, 2018

Hello.

My name is Florin Chirita. I am building a printer with 2 z axis and I am using your triplez-ms-2.0.x firmware.
It is working very well. Good job sir!
I want to develop to sell my 3d printers and I want to modify marlin 1.1.9 with 2 z axis G34 align.
Please, you can tell me how to do? I have moderate skill in programming but this modify in marlin firmware it is to tough for me now. The board I use it is ramp 1.4.

Please help me, point me in the right direction.
Thank you..

@AnHardt
Copy link
Contributor

AnHardt commented Aug 31, 2018

@fkirita
You really want to sell your product for money, but expect us to help you for free? Forget it!

Be patient. This PR might get merged when ready.

From your request i conclude - you are not ready for building, even more selling a 3D-Printer.

@fkirita
Copy link

fkirita commented Aug 31, 2018

Thank you for your response.

You are jumping to wrong conclusion.
If you want money for your help you can say it...

@thinkyhead thinkyhead changed the title [2.0.x] New Feature: G34 Automatic Alignment of multi stepper Z axis (contains #11062 & #11132) [2.0.x] G34 Automatic Alignment of multi-stepper Z axis Sep 10, 2018
@thinkyhead thinkyhead force-pushed the g34-triple-2.0.x branch 2 times, most recently from d18a484 to 96a4e6d Compare September 10, 2018 06:46
@thinkyhead
Copy link
Member

Rebased, squashed, fixed up configs, etc.

@TheLongAndOnly — To get the updated code you should use the Git console:

git fetch origin
git checkout g34-triple-2.0.x
git reset --hard origin/g34-triple-2.0.x

@thinkyhead thinkyhead force-pushed the g34-triple-2.0.x branch 2 times, most recently from 83c5f20 to 11e1577 Compare September 10, 2018 06:58
@thinkyhead
Copy link
Member

I want to develop to sell my 3d printers and I want to modify marlin 1.1.9 with 2 z axis G34 align.

All you have to do is download https://github.com/TheLongAndOnly/Marlin/archive/g34-triple-2.0.x.zip which now contains a mixture of 1.1.9, bug fixes, and the changes from this pull request.

@thinkyhead
Copy link
Member

thinkyhead commented Sep 10, 2018

@TheLongAndOnly — This PR is incomplete. There's no definition of anything like this to be seen…

//#define Z_TRIPLE_STEPPER_DRIVERS
#if ENABLED(Z_TRIPLE_STEPPER_DRIVERS)
  //#define Z_TRIPLE_ENDSTOPS
  #if ENABLED(Z_TRIPLE_ENDSTOPS)
    #define Z3_USE_ENDSTOP _YMAX_
    #define Z_TRIPLE_ENDSTOPS_ADJUSTMENT  0
  #endif
#endif

@thinkyhead thinkyhead force-pushed the g34-triple-2.0.x branch 10 times, most recently from bd9e1a7 to 2211cae Compare October 29, 2018 05:20
@thinkyhead thinkyhead merged commit 5536228 into MarlinFirmware:bugfix-2.0.x Oct 29, 2018
@aurion55
Copy link

Well I got it going on my Hypercube, Marlin 2.0 bugfix 5th Nov, 2018.
I then configured for Normal Cartesian printer and it does not work?
What am I doing wrong.

@thinkyhead
Copy link
Member

Impossible to say.

This Issue Queue is for Marlin bug reports and development-related issues, and we prefer not to handle user-support questions here. (As noted on this page.) For best results getting help with configuration and troubleshooting, please use the following resources:

After seeking help from the community, if the consensus points to to a bug in Marlin, then you should post a bug report.

@TheLongAndOnly
Copy link
Contributor Author

I still owe you the documentation. Do I need any access for the wiki or can I just edit?

@thinkyhead
Copy link
Member

thinkyhead commented Nov 14, 2018

You can fork the documentation repo and submit a PR to it, just like the regular Marlin repo.

@gururise
Copy link

gururise commented Dec 2, 2018

Any documentation on this feature? On my coreXY printer, it seems to do the opposite of what it should do (ie.. instead of leveling the dual z axis, it makes them more out of sync):

#define Z_DUAL_STEPPER_DRIVERS
#define Z_STEPPER_AUTO_ALIGN
#if ENABLED(Z_STEPPER_AUTO_ALIGN)
  // Define probe X and Y positions for Z1, Z2 [, Z3]
  #define Z_STEPPER_ALIGN_X { 10, 270 }
  #define Z_STEPPER_ALIGN_Y { 165, 165 }
  // Set number of iterations to align
  #define Z_STEPPER_ALIGN_ITERATIONS 3
  // Enable to restore leveling setup after operation
  #define RESTORE_LEVELING_AFTER_G34
  // Use the amplification factor to de-/increase correction step.
  // In case the stepper (spindle) position is further out than the test point
  // Use a value > 1. NOTE: This may cause instability
  #define Z_STEPPER_ALIGN_AMP 1.0
  // Stop criterion. If the accuracy is better than this stop iterating early
  #define Z_STEPPER_ALIGN_ACC 0.02
#endif

After homing (G28) running a G34 results in the head moving to the first Z axis point (10,165) and probing twice, then moving to the 2nd Z axis point (270, 165) probing twice. Now my 2nd z axis was slightly lower than my first and I expected it to be compensated upwards; however, the compensation moved it even lower. Its almost as if the compensation is flipped.

@AnHardt
Copy link
Contributor

AnHardt commented Dec 2, 2018

@gururise
Change the steppers.

@TheLongAndOnly
Copy link
Contributor Author

TheLongAndOnly commented Dec 2, 2018

Im going to work on the documentation soon. Ensure the probe points match the stepper position. If not it will mis-align, but should stop, because it monitors the improvement.

@gururise
Copy link

gururise commented Dec 3, 2018

Just an FYI, enabling this feature is causing significant layer shifting for myself and at least one other user.

@dot-bob
Copy link
Contributor

dot-bob commented Dec 3, 2018

I don't know how this would cause layer shifts as the code related to this feature is only used when leveling the axis and not during the print. If you are having problems with shifts it may be a hardware issue or unrelated bug lingering elsewhere.

This feature has been working flawless on my three corexy machines and two cartesian machines.

@gloomyandy
Copy link
Contributor

@gururise are you sure you have this feature working correctly? If you have the Z motors the wrong way around, then using this feature can result in the Z axis becoming more skewed rather than less. I have been using this for a while but then rewired some stuff and got the Z motors switched over, but running a single G34 still seemed to work fine (if I ran multiple G34s one after another I eventually got a probe failed).You may want to enable levelling debug output and check what is going on.

@maar1201gh
Copy link

On my coreXY printer, i have the same behaviour of @gururise- "it seems to do the opposite of what it should do (ie.. instead of leveling the dual z axis, it makes them more out of sync):"
10:31:51.339 : FIRMWARE_NAME:Marlin bugfix-2.0.x (Github) SOURCE_CODE_URL:https://github.com/MarlinFirmware/Marlin PROTOCOL_VERSION:1.0 MACHINE_TYPE:20181230_MR EXTRUDER_COUNT:1 UUID:cede2a2f-41a2-4748-9b12-c55c62f367ff
10:31:51.339 : Cap:SERIAL_XON_XOFF:0
10:31:51.339 : Cap:EEPROM:1
10:31:51.339 : Cap:VOLUMETRIC:1
10:31:51.339 : Cap:AUTOREPORT_TEMP:1
10:31:51.339 : Cap:PROGRESS:0
10:31:51.339 : Cap:PRINT_JOB:1
10:31:51.339 : Cap:AUTOLEVEL:1
10:31:51.339 : Cap:Z_PROBE:1
10:31:51.354 : Cap:LEVELING_DATA:1
10:31:51.354 : Cap:BUILD_PERCENT:0
10:31:51.354 : Cap:SOFTWARE_POWER:1
10:31:51.354 : Cap:TOGGLE_LIGHTS:0
10:31:51.354 : Cap:CASE_LIGHT_BRIGHTNESS:0
10:31:51.354 : Cap:EMERGENCY_PARSER:0
10:31:51.354 : Cap:AUTOREPORT_SD_STATUS:0
10:31:51.354 : Cap:THERMAL_PROTECTION:1
10:31:51.354 : Cap:MOTION_MODES:0
10:31:51.354 : X:0.00 Y:0.00 Z:0.00 E:0.00 Count A:0 B:0 Z:0
10:31:51.354 : echo:DEBUG:INFO,ERRORS
10:31:51.354 : echo:Unknown command: "M20"
10:31:51.468 : echo:DEBUG:INFO,ERRORS
10:32:44.805 : X:154.00 Y:85.00 Z:15.40 E:0.00 Count A:47800 B:13800 Z:12320
10:32:44.805 : echo:DEBUG:LEVELING
10:32:44.805 : >>> G34
10:32:44.806 : Machine Type: Core
10:32:44.807 : Probe: BLTOUCH
10:32:44.807 : Probe Offset X:-38 Y:0 Z:-0.40 (Left-Center & Below Nozzle)
10:32:44.807 : Auto Bed Leveling: BILINEAR
10:32:44.807 : (disabled)
10:32:45.107 : set_bltouch_deployed(0)
10:32:45.107 : > probing all positions.
10:32:45.107 : >>> probe_pt(10.00, 160.00, raise, 0, probe_relative)
10:32:45.107 : current_position=(154.00, 85.00, 15.40) :
10:32:45.107 : >>> do_blocking_move_to(48.00, 160.00, 15.40)
10:32:45.107 : <<< do_blocking_move_to
10:32:48.307 : current_position=(48.00, 160.00, 15.40) : set_probe_deployed
10:32:48.307 : deploy: 1
10:32:48.308 : do_probe_raise(15.00)
10:32:48.310 : >>> do_blocking_move_to(48.00, 160.00, 15.40)
10:32:48.311 : <<< do_blocking_move_to
10:32:48.311 : current_position=(48.00, 160.00, 15.40) : >>> run_z_probe
10:32:48.311 : current_position=(48.00, 160.00, 15.40) : >>> do_probe_move
10:32:48.467 : set_bltouch_deployed(1)
10:32:48.483 : >>> do_blocking_move_to(48.00, 160.00, -4.60)
10:32:48.499 : <<< do_blocking_move_to
10:32:55.987 : set_bltouch_deployed(0)
10:32:55.987 : current_position=(48.00, 160.00, 0.95) : sync_plan_position
10:32:55.987 : current_position=(48.00, 160.00, 0.95) : <<< do_probe_move
10:32:55.987 : current_position=(48.00, 160.00, 0.95) : <<< run_z_probe
10:32:55.987 : >>> do_blocking_move_to(48.00, 160.00, 10.95)
10:32:55.987 : <<< do_blocking_move_to
10:32:58.634 : <<< probe_pt
10:32:58.634 : > Z1 measured position is 0.55
10:32:58.634 : >>> probe_pt(190.00, 160.00, raise, 0, probe_relative)
10:32:58.634 : current_position=(48.00, 160.00, 10.95) :
10:32:58.634 : >>> do_blocking_move_to(228.00, 160.00, 10.95)
10:32:58.634 : <<< do_blocking_move_to
10:33:02.822 : current_position=(228.00, 160.00, 10.95) : set_probe_deployed
10:33:02.822 : deploy: 1
10:33:02.822 : current_position=(228.00, 160.00, 10.95) : >>> run_z_probe
10:33:02.838 : current_position=(228.00, 160.00, 10.95) : >>> do_probe_move
10:33:02.986 : set_bltouch_deployed(1)
10:33:03.017 : >>> do_blocking_move_to(228.00, 160.00, -4.60)
10:33:03.017 : <<< do_blocking_move_to
10:33:09.307 : set_bltouch_deployed(0)
10:33:09.307 : current_position=(228.00, 160.00, -1.10) : sync_plan_position
10:33:09.307 : current_position=(228.00, 160.00, -1.10) : <<< do_probe_move
10:33:09.323 : current_position=(228.00, 160.00, -1.10) : <<< run_z_probe
10:33:09.323 : >>> do_blocking_move_to(228.00, 160.00, 8.90)
10:33:09.323 : <<< do_blocking_move_to
10:33:11.956 : <<< probe_pt
10:33:11.956 : > Z2 measured position is -1.50
10:33:11.956 : > Z1 corrected by 2.05
10:33:11.956 : >>> do_blocking_move_to(228.00, 160.00, 10.95)
10:33:11.956 : <<< do_blocking_move_to
10:33:12.621 : > Z2 corrected by 0.00
10:33:12.621 : >>> do_blocking_move_to(228.00, 160.00, 10.95)
10:33:12.621 : <<< do_blocking_move_to
10:33:12.621 : >>> do_blocking_move_to(228.00, 160.00, 8.90)
10:33:12.621 : <<< do_blocking_move_to
10:33:13.272 : > probing all positions.
10:33:13.272 : >>> probe_pt(10.00, 160.00, raise, 0, probe_relative)
10:33:13.272 : current_position=(228.00, 160.00, 8.90) :
10:33:13.272 : >>> do_blocking_move_to(48.00, 160.00, 8.90)
10:33:13.287 : <<< do_blocking_move_to
10:33:17.469 : current_position=(48.00, 160.00, 8.90) : set_probe_deployed
10:33:17.469 : deploy: 1
10:33:17.469 : current_position=(48.00, 160.00, 8.90) : >>> run_z_probe
10:33:17.469 : current_position=(48.00, 160.00, 8.90) : >>> do_probe_move
10:33:17.618 : set_bltouch_deployed(1)
10:33:17.656 : >>> do_blocking_move_to(48.00, 160.00, -4.60)
10:33:17.657 : <<< do_blocking_move_to
10:33:22.035 : set_bltouch_deployed(0)
10:33:22.035 : current_position=(48.00, 160.00, 0.67) : sync_plan_position
10:33:22.035 : current_position=(48.00, 160.00, 0.67) : <<< do_probe_move
10:33:22.035 : current_position=(48.00, 160.00, 0.67) : <<< run_z_probe
10:33:22.035 : >>> do_blocking_move_to(48.00, 160.00, 10.67)
10:33:22.051 : <<< do_blocking_move_to
10:33:24.690 : <<< probe_pt
10:33:24.691 : > Z1 measured position is 0.27
10:33:24.694 : >>> probe_pt(190.00, 160.00, raise, 0, probe_relative)
10:33:24.695 : current_position=(48.00, 160.00, 10.67) :
10:33:24.697 : >>> do_blocking_move_to(228.00, 160.00, 10.67)
10:33:24.698 : <<< do_blocking_move_to
10:33:28.870 : current_position=(228.00, 160.00, 10.67) : set_probe_deployed
10:33:28.870 : deploy: 1
10:33:28.885 : current_position=(228.00, 160.00, 10.67) : >>> run_z_probe
10:33:28.885 : current_position=(228.00, 160.00, 10.67) : >>> do_probe_move
10:33:29.034 : set_bltouch_deployed(1)
10:33:29.060 : >>> do_blocking_move_to(228.00, 160.00, -4.60)
10:33:29.060 : <<< do_blocking_move_to
10:33:35.682 : set_bltouch_deployed(0)
10:33:35.688 : current_position=(228.00, 160.00, -2.02) : sync_plan_position
10:33:35.689 : current_position=(228.00, 160.00, -2.02) : <<< do_probe_move
10:33:35.691 : current_position=(228.00, 160.00, -2.02) : <<< run_z_probe
10:33:35.693 : >>> do_blocking_move_to(228.00, 160.00, 7.98)
10:33:35.696 : <<< do_blocking_move_to
10:33:38.324 : <<< probe_pt
10:33:38.324 : > Z2 measured position is -2.42
10:33:38.324 : > Z1 corrected by 2.69
10:33:38.324 : >>> do_blocking_move_to(228.00, 160.00, 10.67)
10:33:38.324 : <<< do_blocking_move_to
10:33:39.139 : > Z2 corrected by 0.00
10:33:39.139 : >>> do_blocking_move_to(228.00, 160.00, 10.67)
10:33:39.139 : <<< do_blocking_move_to
10:33:39.139 : >>> do_blocking_move_to(228.00, 160.00, 7.98)
10:33:39.139 : <<< do_blocking_move_to
10:33:39.956 : > probing all positions.
10:33:39.956 : >>> probe_pt(10.00, 160.00, raise, 0, probe_relative)
10:33:39.956 : current_position=(228.00, 160.00, 7.98) :
10:33:39.956 : >>> do_blocking_move_to(48.00, 160.00, 7.98)
10:33:39.956 : <<< do_blocking_move_to
10:33:44.155 : current_position=(48.00, 160.00, 7.98) : set_probe_deployed
10:33:44.156 : deploy: 1
10:33:44.158 : current_position=(48.00, 160.00, 7.98) : >>> run_z_probe
10:33:44.160 : current_position=(48.00, 160.00, 7.98) : >>> do_probe_move
10:33:44.307 : set_bltouch_deployed(1)
10:33:44.338 : >>> do_blocking_move_to(48.00, 160.00, -4.60)
10:33:44.338 : <<< do_blocking_move_to
10:33:48.451 : set_bltouch_deployed(0)
10:33:48.451 : current_position=(48.00, 160.00, 0.28) : sync_plan_position
10:33:48.451 : current_position=(48.00, 160.00, 0.28) : <<< do_probe_move
10:33:48.467 : current_position=(48.00, 160.00, 0.28) : <<< run_z_probe
10:33:48.467 : >>> do_blocking_move_to(48.00, 160.00, 10.28)
10:33:48.467 : <<< do_blocking_move_to
10:33:51.109 : <<< probe_pt
10:33:51.110 : > Z1 measured position is -0.12
10:33:51.110 : >>> probe_pt(190.00, 160.00, raise, 0, probe_relative)
10:33:51.110 : current_position=(48.00, 160.00, 10.28) :
10:33:51.110 : >>> do_blocking_move_to(228.00, 160.00, 10.28)
10:33:51.110 : <<< do_blocking_move_to
10:33:55.289 : current_position=(228.00, 160.00, 10.28) : set_probe_deployed
10:33:55.289 : deploy: 1
10:33:55.305 : current_position=(228.00, 160.00, 10.28) : >>> run_z_probe
10:33:55.307 : current_position=(228.00, 160.00, 10.28) : >>> do_probe_move
10:33:55.453 : set_bltouch_deployed(1)
10:33:55.484 : >>> do_blocking_move_to(228.00, 160.00, -4.60)
10:33:55.484 : <<< do_blocking_move_to
10:34:02.403 : set_bltouch_deployed(0)
10:34:02.403 : current_position=(228.00, 160.00, -3.03) : sync_plan_position
10:34:02.403 : current_position=(228.00, 160.00, -3.03) : <<< do_probe_move
10:34:02.403 : current_position=(228.00, 160.00, -3.03) : <<< run_z_probe
10:34:02.403 : >>> do_blocking_move_to(228.00, 160.00, 6.97)
10:34:02.418 : <<< do_blocking_move_to
10:34:05.056 : <<< probe_pt
10:34:05.057 : > Z2 measured position is -3.43
10:34:05.058 : > Z1 corrected by 3.31
10:34:05.061 : >>> do_blocking_move_to(228.00, 160.00, 10.28)
10:34:05.061 : <<< do_blocking_move_to
10:34:06.018 : > Z2 corrected by 0.00
10:34:06.018 : >>> do_blocking_move_to(228.00, 160.00, 10.28)
10:34:06.018 : <<< do_blocking_move_to
10:34:06.018 : >>> do_blocking_move_to(228.00, 160.00, 6.97)
10:34:06.033 : <<< do_blocking_move_to
10:34:06.985 : >>> set_axis_is_not_at_home(Z)
10:34:07.001 : <<< set_axis_is_not_at_home(Z)
10:34:07.001 : >>> G28
10:34:07.001 : Machine Type: Core
10:34:07.001 : Probe: BLTOUCH
10:34:07.001 : Probe Offset X:-38 Y:0 Z:-0.40 (Left-Center & Below Nozzle)
10:34:07.001 : Auto Bed Leveling: BILINEAR
10:34:07.001 : (disabled)
10:34:07.308 : set_bltouch_deployed(0)
10:34:07.308 : current_position=(228.00, 160.00, 6.97) : bracket_probe_move
10:34:07.308 : > endstops.enable(true)
10:34:07.308 : Raise Z (before homing) to 10.00
10:34:07.308 : >>> do_blocking_move_to(228.00, 160.00, 10.00)
10:34:07.308 : <<< do_blocking_move_to
10:34:08.210 : >>> homeaxis(X)
10:34:08.210 : Home 1 Fast:
10:34:08.210 : >>> do_homing_move(X, -405.00, [50.00])
10:34:13.123 : <<< do_homing_move(X)
10:34:13.123 : >>> set_axis_is_at_home(X)
10:34:13.123 : For X axis:
10:34:13.123 : home_offset = 0.00
10:34:13.123 : position_shift = 0.00
10:34:13.123 : > home_offset[X] = 0.00
10:34:13.123 : current_position=(0.00, 160.00, 10.00) :
10:34:13.123 : <<< set_axis_is_at_home(X)
10:34:13.123 : current_position=(0.00, 160.00, 10.00) : sync_plan_position
10:34:13.139 : current_position=(0.00, 160.00, 10.00) : > AFTER set_axis_is_at_home
10:34:13.139 : <<< homeaxis(X)
10:34:13.139 : >>> homeaxis(Y)
10:34:13.139 : Home 1 Fast:
10:34:13.139 : >>> do_homing_move(Y, 255.00, [50.00])
10:34:13.701 : <<< do_homing_move(Y)
10:34:13.704 : >>> set_axis_is_at_home(Y)
10:34:13.704 : For Y axis:
10:34:13.704 : home_offset = 0.00
10:34:13.704 : position_shift = 0.00
10:34:13.705 : > home_offset[Y] = 0.00
10:34:13.705 : current_position=(0.00, 170.00, 10.00) :
10:34:13.708 : <<< set_axis_is_at_home(Y)
10:34:13.708 : current_position=(0.00, 170.00, 10.00) : sync_plan_position
10:34:13.712 : current_position=(0.00, 170.00, 10.00) : > AFTER set_axis_is_at_home
10:34:13.712 : <<< homeaxis(Y)
10:34:13.715 : Z_SAFE_HOMING >>>
10:34:13.715 : current_position=(0.00, 170.00, 10.00) : sync_plan_position
10:34:13.716 : destination=(154.00, 85.00, 10.00) : Z_SAFE_HOMING
10:34:13.716 : >>> do_blocking_move_to(154.00, 85.00, 10.00)
10:34:13.716 : <<< do_blocking_move_to
10:34:17.807 : >>> homeaxis(Z)
10:34:17.807 : current_position=(154.00, 85.00, 10.00) : set_probe_deployed
10:34:17.807 : deploy: 1
10:34:17.807 : Home 1 Fast:
10:34:17.971 : set_bltouch_deployed(1)
10:34:17.971 : >>> do_homing_move(Z, -405.00, [4.00])
10:34:21.708 : <<< do_homing_move(Z)
10:34:21.854 : set_bltouch_deployed(0)
10:34:21.854 : Move Away:
10:34:21.854 : >>> do_homing_move(Z, 10.00, 4.00)
10:34:24.508 : <<< do_homing_move(Z)
10:34:24.509 : Home 2 Slow:
10:34:24.661 : set_bltouch_deployed(1)
10:34:24.662 : >>> do_homing_move(Z, -20.00, 2.00)
10:34:29.788 : <<< do_homing_move(Z)
10:34:29.939 : set_bltouch_deployed(0)
10:34:29.939 : >>> set_axis_is_at_home(Z)
10:34:29.939 : For Z axis:
10:34:29.939 : home_offset = 0.00
10:34:29.954 : position_shift = 0.00
10:34:29.954 : *** Z HOMED WITH PROBE (Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN) ***
10:34:29.954 : > zprobe_zoffset = -0.40
10:34:29.954 : > home_offset[Z] = 0.00
10:34:29.954 : current_position=(154.00, 85.00, 0.40) :
10:34:29.954 : <<< set_axis_is_at_home(Z)
10:34:29.954 : current_position=(154.00, 85.00, 0.40) : sync_plan_position
10:34:29.954 : current_position=(154.00, 85.00, 0.40) : > AFTER set_axis_is_at_home
10:34:29.954 : current_position=(154.00, 85.00, 0.40) : set_probe_deployed
10:34:29.970 : deploy: 0
10:34:29.970 : do_probe_raise(15.00)
10:34:29.970 : >>> do_blocking_move_to(154.00, 85.00, 15.40)
10:34:29.970 : <<< do_blocking_move_to
10:34:33.857 : >>> do_blocking_move_to(154.00, 85.00, 15.40)
10:34:33.857 : <<< do_blocking_move_to
10:34:33.857 : <<< homeaxis(Z)
10:34:33.857 : <<< Z_SAFE_HOMING
10:34:33.857 : current_position=(154.00, 85.00, 15.40) : sync_plan_position
10:34:33.857 : current_position=(154.00, 85.00, 15.40) : bracket_probe_move
10:34:33.873 : X:154.00 Y:85.00 Z:15.40 E:0.00 Count A:47800 B:13800 Z:12320
10:34:33.873 : <<< G28
10:34:33.873 : <<< G34

@maar1201gh
Copy link

Sorry.
I swap cables of Z steppers motors as @AnHardt suggested and problem resolved. G34 works very well. Thanks

@gururise
Copy link

gururise commented Feb 7, 2019

Just an update... G34 is working fine on my CoreXY machine with no layer shifting. What caused the earlier layer shifts is unknown, and probably hardware related. After upgrading tension, belts and pulleys, G34 is working fine.

@Celcius1
Copy link

Where about do I find in the code, where the G34 command is, as I'd like to make some modifications, as I'm trying to get the 4 point levelling working on my printer, but the way in which the command does it, is incorrect it adjusts and measures in the four corners square when it should be probing and measuring on diagonals, and want to adjust to this behaviour

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.