prusa3d / Prusa-Firmware-Buddy

Firmware for the Original Prusa MINI, Original Prusa MK4 and the Original Prusa XL 3D printers by Prusa Research.
Other
1.15k stars 222 forks source link

[BFW-5432] [BUG] G90 not working as for MK3 in MK3-compatibility mode #3847

Open thomasloven opened 6 months ago

thomasloven commented 6 months ago

Please, before you create a new bug report, please make sure you searched in open and closed issues and couldn't find anything that matches.

Printer type - MK3.9

Printer firmware version - 5.1.2+13478

Original or Custom firmware - Original

Optional upgrades - E3d Revo heater and nozzle

USB drive or USB/Octoprint Flash drive

Describe the bug When trying to print gcode sliced for a MK3 printer the MK3.9 tells me that it will run in "MK3-compatibility mode". However, G90 resets the extruder to absolute positioning, which does not happen on MK3 resulting in a failed purge line.

How to reproduce Print the attached G-code on a MK3.9 or MK4 printer. Accept the compatibility warning stating that the file will be run in MK3-compatibility mode. During printing of the purge line, only half will be printed followed by a 21 mm retraction of the filament - causing a failed first layer of the print.

M83  ; extruder relative mode
G90 ; use absolute coordinates
G28 W ; home all axes without mesh bed leveling

; several lines omitted

; purge line
; several lines omitted
G1 X240.0 E25.0 F2200.0
; several lines omitted
G1 X55.0 E25 F1400.0
; several lines omitted
G1 X5.0 E4.0 F1000.0

Expected behavior G90 in MK3-compatibility mode behaves the same as G90 on a MK3 printer - not resetting the Extruder stepping mode.

G-code https://drive.google.com/file/d/172TxwGLs-DS_bLN3n-HEgjLDg-ojv_xd/view?usp=sharing

Crash dump file N/A

Video N/A

bkerler commented 6 months ago

Just to fully understand the issue:

  1. I assume that you have homed all axes with mesh bed leveling before you intent to print in mk3 mode and you just use G28 W to prevent the mbl to be done again ?
  2. The G90 should issue to use absolute coordinates, so if you say the MK4 does that, but the MK3 doesn't do that, isn't then the MK3 G90 gcode to blame which worked incorrectly before ? Or do you mean that the MK4 G90 gcode does reset the x,y,z homing values ?
thomasloven commented 6 months ago

I did not slice the file, so I cannot answer about the intent.

On MK4 G90 sets all axes (X, Y, Z, E) to absolute coordinates. On MK3 G90 sets absolute coordinates for X, Y and Z, but not E. While I agree this is arguably incorrect behavior, it is documented: image https://help.prusa3d.com/article/prusa-firmware-specific-g-code-commands_112173

In compatibility mode, the printer follows the MK4 behavior.

bkerler commented 6 months ago

Thanks, that's exactly what I needed to know. I will have a look if I can see what needs to be changed :)

bkerler commented 6 months ago

@thomasloven And here is your PR #3865 :)

thomasloven commented 6 months ago

Oh wow. I honestly wasn't expecting that resolution due to the future maintenance overhead.

bkerler commented 6 months ago

Happy to help wherever I can. However the Prusa Devs have to review it first.

github-actions[bot] commented 3 months ago

This issue has been flagged as stale because it has been open for 60 days with no activity. The issue will be closed in 7 days unless someone removes the "stale" label or adds a comment.

danopernis commented 3 months ago

This is scheduled for next minor (not patch) version of the firmware.

Ro3Deee commented 2 months ago

so, it's fixed by https://github.com/prusa3d/Prusa-Firmware-Buddy/commit/f69118723a41ecef761be9df96205b9cf4571331

danopernis commented 1 month ago

New version of the firmware 6.1.2 should contain the fix, can you test that?