MarlinFirmware / Marlin

Marlin is an optimized firmware for RepRap 3D printers based on the Arduino platform. Many commercial 3D printers come with Marlin installed. Check with your vendor if you need source code for your specific machine.
https://marlinfw.org
GNU General Public License v3.0
16.24k stars 19.22k forks source link

[BUG] Bed Topography Report (G29 T0) shows probe location rather than hotend location #26543

Closed andyengria closed 6 months ago

andyengria commented 10 months ago

Did you test the latest bugfix-2.1.x code?

Yes, and the problem still exists.

Bug Description

G29 T0 bed topography report indicates the current hotend location by enclosing the mesh value nearest to the hot end in square brackets. e.g. [+0.04] indicates the current hotend position X,Y. The position is calculated by including the probe offset which for my printer results in the mesh location behind the actual location of the hotend being indicated in square brackets as the probe is ~50mm behind the hotend location - M851 X3.40 Y49.70 Z-2.84 ; (mm)

Bug Timeline

unknown but appears to have been present for some time

Expected behavior

The G29 T gcode should report the location of the hotend and not the location of the probe as is happening on my printer in the bed topography report. E.g. at position X10 Y10 mesh position 0,0 should be indicated as [+0.09] below 19:32:04.295 : Bed Topography Report: 19:32:04.320 : ( 10,180) (180,180) 19:32:04.320 : 0 1 2 3 4 19:32:04.364 : 4 | +0.03 -0.00 -0.00 +0.03 +0.03 19:32:04.364 : | 19:32:04.364 : 3 | +0.03 -0.01 +0.00 +0.02 +0.03 19:32:04.364 : | 19:32:04.364 : 2 | +0.07 +0.01 +0.01 +0.04 +0.05 19:32:04.364 : | 19:32:04.364 : 1 | +0.08 +0.03 +0.00 +0.01 +0.05 19:32:04.365 : | 19:32:04.365 : 0 | [+0.09] +0.05 +0.00 +0.01 +0.05 19:32:04.365 : 0 1 2 3 4 19:32:04.380 : ( 10, 10) (180, 10)

Actual behavior

The G29 T location shows the probe location. This means in my printer the front row of the print bed (unreachable by the probe) is never indicated as the current location which is not the expected behavior. E.g. at position X10 Y10 mesh position 0,0 should be indicated but position 0,1 is instead 19:32:04.295 : Bed Topography Report: 19:32:04.320 : ( 10,180) (180,180) 19:32:04.320 : 0 1 2 3 4 19:32:04.364 : 4 | +0.03 -0.00 -0.00 +0.03 +0.03 19:32:04.364 : | 19:32:04.364 : 3 | +0.03 -0.01 +0.00 +0.02 +0.03 19:32:04.364 : | 19:32:04.364 : 2 | +0.07 +0.01 +0.01 +0.04 +0.05 19:32:04.364 : | 19:32:04.364 : 1 | [+0.08] +0.03 +0.00 +0.01 +0.05 19:32:04.365 : | 19:32:04.365 : 0 | +0.09 +0.05 +0.00 +0.01 +0.05 19:32:04.365 : 0 1 2 3 4 19:32:04.380 : ( 10, 10) (180, 10)

Steps to Reproduce

The code in ubl.cpp on line 188 shows that the probe offset is applied:
// Add XY probe offset from extruder because probe.probe_at_point() subtracts them when // moving to the XY position to be measured. This ensures better agreement between // the current Z position after G28 and the mesh values. const xy_int8_t curr = closest_indexes(xy_pos_t(current_position) + probe.offset_xy);

suggest this should be current position only for this topography report: const xy_int8_t curr = closest_indexes(xy_pos_t(current_position) );

Steps to reproduce: 1) set the probe position sufficiently far ay from the hot end e.g. send gcode M851 X3.40 Y49.70 Z-2.84 ; (mm) 2) move the printer to G1 X10 Y10 3) send G29 T0 The report returned will show the current position is mesh position 0,1 rather than 0,0

Version of Marlin Firmware

17:41:26.386 : FIRMWARE_NAME:Marlin 2.1.2.1 (Dec 16 2023 17:35:54) SOURCE_CODE_URL:github.com/MarlinFirmware/Marlin PROTOCOL_VERSION:1.0 MACHINE_TYPE:3D Printer EXTRUDER_COUNT:1 UUID:cede2a2f-41a2-4748-9b12-c55c62f367ff

Printer model

Prusa i3 clone

Electronics

MEGA / RAMPS MKSGEN 1.3

LCD/Controller

REPRAP_DISCOUNT_SMART_CONTROLLER

Other add-ons

No response

Bed Leveling

UBL Bilinear mesh

Your Slicer

Slic3r

Host Software

Repetier Host

Don't forget to include

Additional information & file uploads

Marlin.zip

github-actions[bot] commented 7 months ago

Greetings from the Marlin AutoBot! This issue has had no activity for the last 90 days. Do you still see this issue with the latest bugfix-2.1.x code? Please add a reply within 14 days or this issue will be automatically closed. To keep a confirmed issue open we can also add a "Bug: Confirmed" tag.

Disclaimer: This is an open community project with lots of activity and limited resources. The main project contributors will do a bug sweep ahead of the next release, but any skilled member of the community may jump in at any time to fix this issue. That can take a while depending on our busy lives so please be patient, and take advantage of other resources such as the MarlinFirmware Discord to help solve the issue.

github-actions[bot] commented 4 months ago

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.