Prusa-firmware-buddy: Cannot correct bed skew - M852 disabled

Created on 24 Apr 2020  Â·  22Comments  Â·  Source: prusa3d/Prusa-Firmware-Buddy

See: https://forum.prusaprinters.org/forum/assembly-and-first-prints-troubleshooting/bed-skew/

In order provide more options for correcting print issues, especially with the Mini which is a cantilevered design, I believe that M852 should be properly supported in the Prusa Firmware to correct for bed skew.

The XZ-axis assembly of my Mini is tight and flush with the aluminum extrusion of the bed frame, so I cannot think of a reason that I would be experiencing XY skew unless there is a warp defect on the printed part(s) at the bottom of the XZ-axis assembly. Right now I think the hard fix would be to loosen the XZ-axis assembly from the Y-axis assembly and gradually shim it until the skew is gone, but this seems like a band-aid solution.

feature request

Most helpful comment

Actually I think close to every Mini has this xy skew issue!

My preassembled Mini had it. I put it into service. After it was repaired, it still had significant skew. (Even the test prints done during service that prusa shipped back with the printer were skewed... So my bad assembly is not the reason for it). I returned it for refund and got a new one. Same story (opposite sign though)...
I think a (at least manual) skew correction is crucial for a printer that has obvious design shortcomings in xy axis alignment...

All 22 comments

Same problem here. Even though the parts of the printer are screwed together as shown in the guide there is an error in all axes. Shimming is a temporary fix and this feature must be enabled since its crucial!

I am also having this issue....

I have the issue as well - on a 100 mm square the diagonals are off by 0.6 mm. The misalignment cannot be seen by eye, but can be measured and is large enough to matter with construction parts. I will try mechanical adjustement by shims. On my other non-prusa printer I am able to print perfect squares.

I also have this issue, the skew is bad enough to cause issues with hinges and large multi-print objects.

Until skew compensation is implemented you might find Gskewer useful.
In Prusa slicer there is a section for post-processing scripts in "Print Settings" -> "Output options", it can be used there to automatically correct all your slices.
Edit: There is bug when using prusa slicer, Gskewer doesn't allow for the negative gcode parameters used for the filament purge line at the beginning of the print. I have fixed this and made a pull request from this branch if you need this to work now.
Edit 2: This has now been merged.

Alternatively if you use OctoPrint, I am currently in the process of implementing Gskewer as a plugin as I couldn't find an alternative. I haven't tested it yet so there might be bugs, I'll be finishing it up over the next couple of days. Edit: It works now for the prints that I have tested.

I have the same issue. My printer is out by ablout 1.5mm.

Also having this issue, I'd like to use the Mini to print housings, and anything larger than approx. 3x3cm just won't fit because of bed skew. Can't seem to get it aligned with shims, it's always either too little or too much.

I have the same issue and there seem to be no fixes - hardware as well as software wise so it would be greate if some correction could be implemented! For now it would be greate to be able to manually adjust the xy skew!

Same issue here. It makes it impossible to print multi part prints.

As I read it, the original issue was talking about XY skew, not XZ skew. I'm seeing XY skew myself, i.e. printing a flat square on the hotbed turns out as a parallelogram when looked upon from above. My Mini has no measurable XZ skew, so at least for me, that procedure doesn't fix the issue.

Here is the link to manually calibrating xz skew: https://help.prusa3d.com/en/article/xz-axis-skew-correction-mini_158518 Power off, Slide hotend to one end of x-axis that is lowest, manually adjust z to a known thickness (I use a 2mm thick gauge), slide to opposite end, use above link to adjust to same height (2mm in my case).
…
On Mon, May 3, 2021 at 2:09 PM OccasionalThingMaker < @.*> wrote: Same issue here. It makes it impossible to print multi part prints. — You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub <#385 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AQKHUZS53WHVUDBVK3MCUEDTL4GEDANCNFSM4MQEKNTA .

This issue is about XY skew, not XZ skew.

I need this too. On my brand new factory-assembled Mini+, after printing a calibration square from https://www.thingiverse.com/thing:4140075/files, I'm seeing XY skew on the order of 1%. My diagonals measure 111.84mm and 112.70mm. That's fine for printing benchies and whistles but I was hoping to use this for parts that require some precision.

I could easily adjust for this in software if M852 was enabled. Instead, I will have to partially dismantle and reassemble the machine tediously, perhaps several times, to fix something that I paid Josef Prusa extra to have correct out of the box. To make things worse, I can't enable M852 in the firmware myself without breaking the appendix to install my own custom firmware build, thereby voiding the warranty and reducing resale value.

I don't understand why this isn't enabled by default given that the Mini is inherently, by nature of its physical design, prone to skew. All it would take is uncommenting these lines in include/marlin/Configuration_A3ides_2209_MINI.h:

//#define SKEW_CORRECTION
...
// Enable this option for M852 to set skew at runtime
//#define SKEW_CORRECTION_GCODE

Looking at what this does (adds an unskew method to the planner, which performs 3 additions and 3 multiplications), this would add an extremely small amount of binary size and performance overhead to the firmware.

@matthewlloyd You may find that goSkew, octoprint-gskewer, or gSkewer may temporarily fix your issues.

I have another year of warranty left but I'm of half a mind to break the appendix and see if uncommenting that definition is enough. There has to be a reason they haven't enabled it, but given this issue hasn't had any comment from a developer in the year it's been open, I'm guessing they don't know either.

@Kranex Please let us know how it goes if you decide to do that. I might end up doing it too, there are too many features I'd like to add to the firmware (e-steps in EEPROM for the Bondtech extruder, add simple file upload capability using the OctoPrint API, turn off display when idle, and now skew correction.)

There has to be a reason they haven't enabled it

Not to be cynical, but I do notice that skew compensation is enabled in the firmware of the more expensive MK3S.

Actually, I think the the mk3s can do it automatically. The mini has the hardware to do it afaik, the XY frame has the same magnets in seemingly specific locations. Then again, maybe they're just the magnets for the print bed.

Actually I think close to every Mini has this xy skew issue!

My preassembled Mini had it. I put it into service. After it was repaired, it still had significant skew. (Even the test prints done during service that prusa shipped back with the printer were skewed... So my bad assembly is not the reason for it). I returned it for refund and got a new one. Same story (opposite sign though)...
I think a (at least manual) skew correction is crucial for a printer that has obvious design shortcomings in xy axis alignment...

@drhouse82 It wouldn't surprise me, honestly I'd be more surprised if there was one that didn't have XY skew. I have to recalibrate goSkew whenever I change print heads. I try my best not to bend the Y arm, but it still shifts a little even so. I also need to recalibrate if I move the printer.

Broke my appendix today - it was a pain to do this sufficiently carefully to avoid damaging the board and I am really not happy with Prusa about having had to do that. Installing custom firmware also sent me back through the setup wizard and reset my live Z offset.

However, I have successfully turned on skew correction and reenabled EEPROM settings in Marlin. They were trivial and work just fine.

Patches:

Be cautious with the skew correction - if you set values that are too high, the X and Y axes may crash off the sides.

@matthewlloyd Thanks for taking one for the team on voiding the warranty (so to speak). I hope that your gists help get the Buddy firmware team the push they need to get this addressed. Would submitting a PR be an option for you?

Would submitting a PR be an option for you?

Until Prusa changes its current attitude towards open source, I am not really inclined to contribute to the main repo. At the bare minimum they need to comply with GPLv3 and release the source code for the bootloader, and it would be nice to see them put the appendix into "reverse impulse" too. The appendix doesn't violate GPLv3 in letter, but certainly in spirit.

In any case, on closer inspection of the source, it is clear that removing Marlin EEPROM settings was a deliberate choice, for simplicity, and so that all the settings are under the control of the Prusa GUI code. I expect not enabling skew correction was also deliberate, since it's too easy to end up with crashes if you put in the wrong settings. My guess is their philosophy is it's only worth doing for the Mini+ if they can make it foolproof , like the rest of the GUI, which is impressively easy to use for a 3D printer. That will require a lot more work for skew, though other things (e.g. e-steps for Bondtech) should be quite easy. They want to actively discourage and prevent users from tweaking and experimenting, because it creates support overhead and costs for them when less proficient users can't debug the issues they create for themselves. I don't think a simple PR on this would get merged.

Hopefully someone will start an unofficial community fork that adds many of the features more advanced users would want.

Anyone following this issue may be interested to know that I just released custom firmware that turns on skew compensation in Marlin and allows it to be configured directly through the Settings menu or with M852, amongst other goodies:

http://github.com/matthewlloyd/Llama-Mini-Firmware#readme

@matthewlloyd I'm curious and tempted to switch to your firmware. What are your plans for maintenance if any? I understand if you can't dedicate a lot of time to it, but do you feel it would be relatively easy to port in updates Prusa makes to the official firmware over time? Cheers.

@krcm0209 It should be easy to port in updates because I kept Llama's code and EEPROM settings as separate as possible from the official firmware. I am planning to release updates on the heels of Prusa's own releases, at least as long as I own a Prusa Mini+.

If the escapee llama turns out to be a covert operative sent by Prusa and I get e-llama-nated, the code is all open source so someone else can easily take over. It'll always be trivial to switch back to the official firmware since I added a menu option to ask the bootloader to allow a firmware downgrade, and you can do this without losing your original Prusa EEPROM settings.

Was this page helpful?
0 / 5 - 0 ratings