{"action":"created","issue":{"url":"https://api.github.com/repos/MarlinFirmware/MarlinDev/issues/22","labels_url":"https://api.github.com/repos/MarlinFirmware/MarlinDev/issues/22/labels{/name}","comments_url":"https://api.github.com/repos/MarlinFirmware/MarlinDev/issues/22/comments","events_url":"https://api.github.com/repos/MarlinFirmware/MarlinDev/issues/22/events","html_url":"https://github.com/MarlinFirmware/MarlinDev/issues/22","id":98704869,"number":22,"title":"Wrong Z homing position.","user":{"login":"boelle","id":3832239,"avatar_url":"https://avatars.githubusercontent.com/u/3832239?v=3","gravatar_id":"","url":"https://api.github.com/users/boelle","html_url":"https://github.com/boelle","followers_url":"https://api.github.com/users/boelle/followers","following_url":"https://api.github.com/users/boelle/following{/other_user}","gists_url":"https://api.github.com/users/boelle/gists{/gist_id}","starred_url":"https://api.github.com/users/boelle/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/boelle/subscriptions","organizations_url":"https://api.github.com/users/boelle/orgs","repos_url":"https://api.github.com/users/boelle/repos","events_url":"https://api.github.com/users/boelle/events{/privacy}","received_events_url":"https://api.github.com/users/boelle/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/MarlinFirmware/MarlinDev/labels/Verified%20bug!","name":"Verified bug!","color":"fc2929"}],"state":"open","locked":false,"assignee":{"login":"thinkyhead","id":698003,"avatar_url":"https://avatars.githubusercontent.com/u/698003?v=3","gravatar_id":"","url":"https://api.github.com/users/thinkyhead","html_url":"https://github.com/thinkyhead","followers_url":"https://api.github.com/users/thinkyhead/followers","following_url":"https://api.github.com/users/thinkyhead/following{/other_user}","gists_url":"https://api.github.com/users/thinkyhead/gists{/gist_id}","starred_url":"https://api.github.com/users/thinkyhead/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/thinkyhead/subscriptions","organizations_url":"https://api.github.com/users/thinkyhead/orgs","repos_url":"https://api.github.com/users/thinkyhead/repos","events_url":"https://api.github.com/users/thinkyhead/events{/privacy}","received_events_url":"https://api.github.com/users/thinkyhead/received_events","type":"User","site_admin":false},"milestone":null,"comments":29,"created_at":"2015-08-03T09:25:20Z","updated_at":"2015-08-03T09:25:29Z","closed_at":null,"body":"_From @fotis400 on March 31, 2015 21:26_\n\nI just finished some modifications to my RepRap, and also pulled latest Marlin. be593b600b8b9b427656dd27be7fc277aec0a8a5\r\n\r\nNo matter what are the settings in the config files, when my Z axis homes the printer reports Z 15mm.\r\n\r\nI really can't get it what causes the 15mm offset. It should report 200mm (Z_MAX_POS), and because of this the software endpoints do not work. (I can send G01 Z20 which will cause crashing of the Z axis).\r\n\r\nIt seems like a bug to me...\r\n\r\nHere is my Configuration.h\r\nhttp://pastebin.com/E2g5gVn8\n\n_Copied from original issue: MarlinFirmware/Marlin#1761_"},"comment":{"url":"https://api.github.com/repos/MarlinFirmware/MarlinDev/issues/comments/127175444","html_url":"https://github.com/MarlinFirmware/MarlinDev/issues/22#issuecomment-127175444","issue_url":"https://api.github.com/repos/MarlinFirmware/MarlinDev/issues/22","id":127175444,"user":{"login":"boelle","id":3832239,"avatar_url":"https://avatars.githubusercontent.com/u/3832239?v=3","gravatar_id":"","url":"https://api.github.com/users/boelle","html_url":"https://github.com/boelle","followers_url":"https://api.github.com/users/boelle/followers","following_url":"https://api.github.com/users/boelle/following{/other_user}","gists_url":"https://api.github.com/users/boelle/gists{/gist_id}","starred_url":"https://api.github.com/users/boelle/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/boelle/subscriptions","organizations_url":"https://api.github.com/users/boelle/orgs","repos_url":"https://api.github.com/users/boelle/repos","events_url":"https://api.github.com/users/boelle/events{/privacy}","received_events_url":"https://api.github.com/users/boelle/received_events","type":"User","site_admin":false},"created_at":"2015-08-03T09:25:29Z","updated_at":"2015-08-03T09:25:29Z","body":"_From @davbardi on May 2, 2015 0:36_\n\n@thinkyhead,  I've tried testing on the glass plate now and yes still getting an incorrect offset. On a nearly level plate it is printing quite well.  But when I lift the back side with a pencil (approx. 6mm) the hotend is dragging on the glass ( worked out this was about 2.35mm too low).  \r\nI rerun tests (for near level and 6mm out of level) and manually measure the error at each corner of my plate.  (I've done some minor modes to tidy up my probe operation - so off-sets are slightly different to previous tests).\r\n\r\nRunning gcode\r\n```\r\nM851\r\nG28\r\nG29 V4\r\n```\r\nthen manually measure the actual head offset on glass plate\r\n\r\n------------------------------------------------------------------------------------------\r\n---------------------------Test 1---------------------------------------------------------\r\nBed approx level\r\ncurrent_position[Z_AXIS] = corrected_position.z; remarked out\r\nset_bed_level_equation_lsq\r\nset_bed_level_equation_3pts\r\n```\r\n        current_position[X_AXIS] = corrected_position.x;\r\n        current_position[Y_AXIS] = corrected_position.y;\r\n        // current_position[Z_AXIS] = corrected_position.z; \r\n```        \r\nResults: \r\nActual head offset - manually measured\r\n```\r\n  x    y    z\r\n 10   10  0.2 (ie too high)\r\n200   10  0.0\r\n200  160  0.2\r\n 10  160  0.1\r\n\r\necho:Z Offset :\r\n-3.27\r\nok\r\ngcode_G28 >>>\r\n  >>> home_axis(0\r\n    > TRIGGER ENDSTOP > current_position: (0.00, 0.00, 0.00)\r\n    > AFTER sync_plan_position > SET current_position: (0.00, 0.00, 0.00)\r\n    axis_is_at_home 0 > (home_offset[axis]==0.00) > current_position: (0.00, 0.00, 0.00)\r\n  <<< home_axis(0\r\n  > homeX: (0.00, 0.00, 0.00)\r\n  >>> home_axis(1\r\n    > TRIGGER ENDSTOP > current_position: (0.00, 0.00, 0.00)\r\n    > AFTER sync_plan_position > SET current_position: (0.00, 0.00, 0.00)\r\n    axis_is_at_home 1 > (home_offset[axis]==0.00) > current_position: (0.00, 0.00, 0.00)\r\n  <<< home_axis(1\r\n  > homeY: (0.00, 0.00, 0.00)\r\n  > Z_SAFE_HOMING >>>\r\n    Raise Z (before homing) by 4.00\r\n    > home_all_axis > current_position: (0.00, 0.00, 0.00)\r\n    > home_all_axis > destination: (41.00, 109.00, 4.00)\r\n    >>> home_axis(2\r\n      deploy_z_probe > current_position: (41.00, 109.00, 0.00)\r\n      > TRIGGER ENDSTOP > current_position: (41.00, 109.00, 0.00)\r\n      > AFTER sync_plan_position > SET current_position: (41.00, 109.00, 3.27)\r\n      axis_is_at_home 2 > (home_offset[axis]==0.00) > current_position: (41.00, 109.00, 3.27)\r\n      > SERVO_ENDSTOPS > Stow with write()\r\n      > SERVO_LEVELING > stow_z_probe\r\n      stow_z_probe > current_position: (41.00, 109.00, 3.27)\r\n      Raise Z (after) by 15.00\r\n      > SERVO_ENDSTOPS > do_blocking_move_to: (41.00, 109.00, 18.27)\r\n      do_blocking_move_to: (41.00, 109.00, 18.27)\r\n    <<< home_axis(2\r\n  <<< Z_SAFE_HOMING\r\n  > (home_all_axis || homeZ) > final: (41.00, 109.00, 18.27)\r\n  ENDSTOPS_ONLY_FOR_HOMING enable_endstops(false)\r\n<<< gcode_G28\r\nok\r\ngcode_G29 >>>\r\n  G29 Auto Bed Leveling\r\n  enable_endstops(true)\r\n  z_before = (before) 15.00\r\n  probe_pt >>>\r\n    > ProbeAction:1\r\n    > current_position: (41.00, 109.00, 18.27)\r\n    Z Raise to z_before 15.00\r\n    > do_blocking_move_to: (41.00, 109.00, 15.00)\r\n    do_blocking_move_to: (41.00, 109.00, 15.00)\r\n    > do_blocking_move_to XY: (1.00, 29.00, 15.00)\r\n    do_blocking_move_to: (1.00, 29.00, 15.00)\r\n    > ProbeDeploy\r\n    deploy_z_probe > current_position: (1.00, 29.00, 15.00)\r\n    run_z_probe > current_position: (1.00, 29.00, 3.21)\r\n  <<< probe_pt\r\n  z_before = (between) 5.00\r\n  probe_pt >>>\r\n    > ProbeAction:0\r\n    > current_position: (1.00, 29.00, 3.21)\r\n    Z Raise to z_before 8.21\r\n    > do_blocking_move_to: (1.00, 29.00, 8.21)\r\n    do_blocking_move_to: (1.00, 29.00, 8.21)\r\n    > do_blocking_move_to XY: (131.00, 29.00, 8.21)\r\n    do_blocking_move_to: (131.00, 29.00, 8.21)\r\n    run_z_probe > current_position: (131.00, 29.00, 2.94)\r\n    Raise Z (between) by 5.00\r\n    > ProbeStay > do_blocking_move_to: (131.00, 29.00, 7.94)\r\n    do_blocking_move_to: (131.00, 29.00, 7.94)\r\n  <<< probe_pt\r\n  z_before = (between) 5.00\r\n  probe_pt >>>\r\n    > ProbeAction:0\r\n    > current_position: (131.00, 29.00, 7.94)\r\n    Z Raise to z_before 12.94\r\n    > do_blocking_move_to: (131.00, 29.00, 12.94)\r\n    do_blocking_move_to: (131.00, 29.00, 12.94)\r\n    > do_blocking_move_to XY: (1.00, 169.00, 12.94)\r\n    do_blocking_move_to: (1.00, 169.00, 12.94)\r\n    run_z_probe > current_position: (1.00, 169.00, 3.36)\r\n    Raise Z (between) by 5.00\r\n    > ProbeStay > do_blocking_move_to: (1.00, 169.00, 8.36)\r\n    do_blocking_move_to: (1.00, 169.00, 8.36)\r\n  <<< probe_pt\r\n  z_before = (between) 5.00\r\n  probe_pt >>>\r\n    > ProbeAction:2\r\n    > current_position: (1.00, 169.00, 8.36)\r\n    Z Raise to z_before 13.36\r\n    > do_blocking_move_to: (1.00, 169.00, 13.36)\r\n    do_blocking_move_to: (1.00, 169.00, 13.36)\r\n    > do_blocking_move_to XY: (131.00, 169.00, 13.36)\r\n    do_blocking_move_to: (131.00, 169.00, 13.36)\r\n    run_z_probe > current_position: (131.00, 169.00, 3.10)\r\n    > ProbeStow (stow_z_probe will do Z Raise)\r\n    stow_z_probe > current_position: (131.00, 169.00, 3.10)\r\n    Raise Z (after) by 15.00\r\n    > SERVO_ENDSTOPS > do_blocking_move_to: (131.00, 169.00, 18.10)\r\n    do_blocking_move_to: (131.00, 169.00, 18.10)\r\n  <<< probe_pt\r\n  > probing complete > current_position: (131.00, 169.00, 18.10)\r\n  ENDSTOPS_ONLY_FOR_HOMING enable_endstops(false)\r\n  Eqn coefficients: a: -0.00206731 b: 0.00111607 d: 3.31109142\r\n  Mean of sampled points: 3.15312480\r\n\r\n  Bed Height Topography:\r\n  +-----------+\r\n  |...Back....|\r\n  |Left..Right|\r\n  |...Front...|\r\n  +-----------+\r\n  +0.20938 -0.05312\r\n  +0.05938 -0.21562\r\n  planeNormal x: 0.002067 y: -0.001116 z: 1.000000\r\n  set_bed_level_equation_lsq > current_position: (130.96, 169.02, 18.10)\r\n\r\n  Bed Level Correction Matrix:\r\n  +0.999998 +0.000000 -0.002067\r\n  +0.000002 +0.999999 +0.001116\r\n  +0.002067 -0.001116 +0.999997\r\n<<< gcode_G29\r\nok\r\n```\r\n\r\n------------------------------------------------------------------------------------------\r\n---------------------------Test 2---------------------------------------------------------\r\nBed very unlevel (pencil under back)\r\ncurrent_position[Z_AXIS] = corrected_position.z; remarked out\r\nset_bed_level_equation_lsq\r\nset_bed_level_equation_3pts\r\n```\r\n        current_position[X_AXIS] = corrected_position.x;\r\n        current_position[Y_AXIS] = corrected_position.y;\r\n        // current_position[Z_AXIS] = corrected_position.z; \r\n```\r\nResults: \r\nActual head off set - manually measured\r\n```\r\n  x    y     z\r\n 10   10  -2.4 (ie too low)\r\n200   10  -2.5\r\n200  160  -2.5\r\n 10  160  -2.3\r\n\r\necho:Z Offset :\r\n-3.27\r\nok\r\ngcode_G28 >>>\r\n  >>> home_axis(0\r\n    > TRIGGER ENDSTOP > current_position: (0.00, 0.00, 22.00)\r\n    > AFTER sync_plan_position > SET current_position: (0.00, 0.00, 22.00)\r\n    axis_is_at_home 0 > (home_offset[axis]==0.00) > current_position: (0.00, 0.00, 22.00)\r\n  <<< home_axis(0\r\n  > homeX: (0.00, 0.00, 22.00)\r\n  >>> home_axis(1\r\n    > TRIGGER ENDSTOP > current_position: (0.00, 0.00, 22.00)\r\n    > AFTER sync_plan_position > SET current_position: (0.00, 0.00, 22.00)\r\n    axis_is_at_home 1 > (home_offset[axis]==0.00) > current_position: (0.00, 0.00, 22.00)\r\n  <<< home_axis(1\r\n  > homeY: (0.00, 0.00, 22.00)\r\n  > Z_SAFE_HOMING >>>\r\n    Raise Z (before homing) by 4.00\r\n    > home_all_axis > current_position: (0.00, 0.00, 0.00)\r\n    > home_all_axis > destination: (41.00, 109.00, 4.00)\r\n    >>> home_axis(2\r\n      deploy_z_probe > current_position: (41.00, 109.00, 0.00)\r\n      > TRIGGER ENDSTOP > current_position: (41.00, 109.00, 0.00)\r\n      > AFTER sync_plan_position > SET current_position: (41.00, 109.00, 3.27)\r\n      axis_is_at_home 2 > (home_offset[axis]==0.00) > current_position: (41.00, 109.00, 3.27)\r\n      > SERVO_ENDSTOPS > Stow with write()\r\n      > SERVO_LEVELING > stow_z_probe\r\n      stow_z_probe > current_position: (41.00, 109.00, 3.27)\r\n      Raise Z (after) by 15.00\r\n      > SERVO_ENDSTOPS > do_blocking_move_to: (41.00, 109.00, 18.27)\r\n      do_blocking_move_to: (41.00, 109.00, 18.27)\r\n    <<< home_axis(2\r\n  <<< Z_SAFE_HOMING\r\n  > (home_all_axis || homeZ) > final: (41.00, 109.00, 18.27)\r\n  ENDSTOPS_ONLY_FOR_HOMING enable_endstops(false)\r\n<<< gcode_G28\r\nok\r\ngcode_G29 >>>\r\n  G29 Auto Bed Leveling\r\n  enable_endstops(true)\r\n  z_before = (before) 15.00\r\n  probe_pt >>>\r\n    > ProbeAction:1\r\n    > current_position: (41.00, 109.00, 18.27)\r\n    Z Raise to z_before 15.00\r\n    > do_blocking_move_to: (41.00, 109.00, 15.00)\r\n    do_blocking_move_to: (41.00, 109.00, 15.00)\r\n    > do_blocking_move_to XY: (1.00, 29.00, 15.00)\r\n    do_blocking_move_to: (1.00, 29.00, 15.00)\r\n    > ProbeDeploy\r\n    deploy_z_probe > current_position: (1.00, 29.00, 15.00)\r\n    run_z_probe > current_position: (1.00, 29.00, -0.10)\r\n  <<< probe_pt\r\n  z_before = (between) 5.00\r\n  probe_pt >>>\r\n    > ProbeAction:0\r\n    > current_position: (1.00, 29.00, -0.10)\r\n    Z Raise to z_before 4.90\r\n    > do_blocking_move_to: (1.00, 29.00, 4.90)\r\n    do_blocking_move_to: (1.00, 29.00, 4.90)\r\n    > do_blocking_move_to XY: (131.00, 29.00, 4.90)\r\n    do_blocking_move_to: (131.00, 29.00, 4.90)\r\n    run_z_probe > current_position: (131.00, 29.00, -0.16)\r\n    Raise Z (between) by 5.00\r\n    > ProbeStay > do_blocking_move_to: (131.00, 29.00, 4.84)\r\n    do_blocking_move_to: (131.00, 29.00, 4.84)\r\n  <<< probe_pt\r\n  z_before = (between) 5.00\r\n  probe_pt >>>\r\n    > ProbeAction:0\r\n    > current_position: (131.00, 29.00, 4.84)\r\n    Z Raise to z_before 9.84\r\n    > do_blocking_move_to: (131.00, 29.00, 9.84)\r\n    do_blocking_move_to: (131.00, 29.00, 9.84)\r\n    > do_blocking_move_to XY: (1.00, 169.00, 9.84)\r\n    do_blocking_move_to: (1.00, 169.00, 9.84)\r\n    run_z_probe > current_position: (1.00, 169.00, 5.56)\r\n    Raise Z (between) by 5.00\r\n    > ProbeStay > do_blocking_move_to: (1.00, 169.00, 10.56)\r\n    do_blocking_move_to: (1.00, 169.00, 10.56)\r\n  <<< probe_pt\r\n  z_before = (between) 5.00\r\n  probe_pt >>>\r\n    > ProbeAction:2\r\n    > current_position: (1.00, 169.00, 10.56)\r\n    Z Raise to z_before 15.56\r\n    > do_blocking_move_to: (1.00, 169.00, 15.56)\r\n    do_blocking_move_to: (1.00, 169.00, 15.56)\r\n    > do_blocking_move_to XY: (131.00, 169.00, 15.56)\r\n    do_blocking_move_to: (131.00, 169.00, 15.56)\r\n    run_z_probe > current_position: (131.00, 169.00, 5.49)\r\n    > ProbeStow (stow_z_probe will do Z Raise)\r\n    stow_z_probe > current_position: (131.00, 169.00, 5.49)\r\n    Raise Z (after) by 15.00\r\n    > SERVO_ENDSTOPS > do_blocking_move_to: (131.00, 169.00, 20.49)\r\n    do_blocking_move_to: (131.00, 169.00, 20.49)\r\n  <<< probe_pt\r\n  > probing complete > current_position: (131.00, 169.00, 20.49)\r\n  ENDSTOPS_ONLY_FOR_HOMING enable_endstops(false)\r\n  Eqn coefficients: a: -0.00052884 b: 0.04040178 d: -0.87318000\r\n  Mean of sampled points: 2.69687509\r\n\r\n  Bed Height Topography:\r\n  +-----------+\r\n  |...Back....|\r\n  |Left..Right|\r\n  |...Front...|\r\n  +-----------+\r\n  +2.86562 +2.79063\r\n  -2.79688 -2.85937\r\n  planeNormal x: 0.000529 y: -0.040402 z: 1.000000\r\n  set_bed_level_equation_lsq > current_position: (130.99, 169.69, 20.49)\r\n\r\n  Bed Level Correction Matrix:\r\n  +1.000000 +0.000000 -0.000529\r\n  +0.000021 +0.999185 +0.040369\r\n  +0.000528 -0.040369 +0.999185\r\n<<< gcode_G29\r\nok\r\n```"}}