Automatic XY skew calibration


  • administrators

    This was suggested here https://www.duet3d.com/forum/thread.php?pid=11263#p11263 but I'm creating a separate thread for it because I think it deserves more discussion than it is likely to get in that thread.

    @boelle:

    XYZ Compensation

    Like josef prusa does it here: https://www.youtube.com/watch?v=rYrLT5G-a9I

    i know that this might sound crazy but there must be a reason why mk42 heat beds have 9 points in some very precise locations

    and yes skew can be corrected but you have to measure manual. automatic would be better. maybe giving the user a chance to correct if there is skew in the hardware.

    i will be given one of these for free from a german source, and then i will get one from here: https://www.indiegogo.com/projects/mk42-heated-bed-ultimate-3d-printer-build-plate/x/16302496#/

    code for the feature can maybe be taken from here: https://github.com/prusa3d/Prusa-Firmware/blob/MK2/Firmware/mesh_bed_calibration.cpp#L53

    but that might not be the whole picture

    The video shows two things:

    1. Automatic XY skew calibration, using an inductive sensor to search for 9 special points on the bed. It is assumed that the XY axes of the printer may not be accurately at right angles, but the special points in the bed are accurately placed and the inductive sensor is reproducible enough to find the centres of those points accurately.

    2. Mesh bed levelling.

    RRF already allows you to correct for XY skew (also for XZ and ZY skew), but you have to measure the skew manually by printing a calibration test piece and taking measurements. See https://duet3d.com/wiki/G-code#M556:_Axis_compensation. RRF already supports mesh bed levelling.

    So, is automatic XY skew calibration a firmware feature worth spending development time on? If so, where in the priority list should it be?



  • As someone who has an Original Prusa i3 MK2, the automatic XY skew calibration is nice to have, but it is mainly to compensate for a physical design that is not easy for a new builder to get square. There are many opportunities for user error when a millimeter can make a difference, and moving nuts along a threaded rod is about all the guidance you have. As a careful builder, I was square first time (as shown by their XYZ calibration routine), so it did not really benefit me personally, but I have seen many others who were happy to get a report of "slightly skewed" or "severely skewed" and be able to go an and use their printers. As a side note, those who were severely skewed usually ended up having subtle errors that went away when they spent more time to physically align their frame.

    More important (and much more useful, in my opinion) is the mesh bed leveling. As RRF already has mesh bed leveling, I think the main useful feature from the MK2 is already in RRF, and development time should be spent else.

    Just my two cents.

    John



    1. the 9 points are not special, they are just the points where the probe will trigger.

    More info here: http://www.prusaprinters.org/first-printer-to-automatically-correct-geometry-in-all-axes/

    "So, is automatic XY skew calibration"

    would we not be able to get XZ and YZ also ? i asumme/Guess that it would be a bit more code work

    also prusa's firmware will only tell its skewed, not by how much, if it did it could help the builder adjust the frame before resorting to "dark magic"

    Granted that the MK42 bed is only out as 2 indiegogo projects, where one of them refuses to post a pic of their prototype and the other has a production unit ready and have shown a demo of it. Prusa himself are not selling them.

    So it would be nice to see it on the list, but i can live with it going at the very bottom.

    Q: would it help anything if someone (not me) submitted a PR for it?



  • Setting aside my personal preference to sort these things out mechanically so that there is no requirement to compensate using software, I'd have thought that whatever factors are at play that cause orthogonal axes deviations are unlikely to change. That being the case, then the compensation need only be applied once during initial commissioning. Printing the orthogonal test piece can be done concurrently with other commissioning checks so having the ability ability to perform the check and automatically apply compensation is unlikely to save much time. In any case, one would likely print the orthogonal test piece to check that the automatic compensation was working. If it is necessary to check and compensate for skew on a regular basis, then there is likely to be something seriously amiss which would likely require a "mechanical solution".

    Personally, I'd say that it would be a lot of effort for very little gain (if any at all). I for one wouldn't use it but then I'm in a very small minority of people who don't use any form of bed compensation either.

    My other concern would be the potential danger of poor repeatability due to sensor defects, wiring or other issues that then introduce measurement errors leading to incorrect compensation factors being applied. I've seen similar threads since mesh bed compensation was introduced.

    On the other hand, Prusa is very good at marketing (as we can see from the video) and although it may be of very little practical value, it might be a good tactical move to be able to say that the Duet firmware can do that too. It may help you to sell more boards which is fine by me (just as long as I don't have to use it).

    Just my twopence worth

    Ian



  • marketing yes… but why does he put that much effort in it if its not needed?

    is it more a feature for those that are not able to assemble a printer?

    if nothing else could it not be seen as a tool to help get the frame right and if you can get it spot on then let the firmware compensate the last bits you can get yourself?



  • @boelle:

    marketing yes… but why does he put that much effort in it if its not needed?

    is it more a feature for those that are not able to assemble a printer?

    if nothing else could it not be seen as a tool to help get the frame right and if you can get it spot on then let the firmware compensate the last bits you can get yourself?

    In answer to your first question - because if people think it's a really cool thing to have, it'll help sell his printers. Personally I think it's a solution to a problem that either doesn't exist or one that is easily fixed by other means (but that's because I'm a my cynical old man).

    Yes, it's for those who can't assemble a printer, or perhaps those who have a bought a kit consisting of poorly designed or manufactured parts - again, that's my personal opinion.

    We have a tool. M556 axis compensation. Print a test piece, measure the error and enter the values (or correct the error mechanically). It's done once. Why do we need yet another layer of complexity in the firmware? Also, we'd be relying on some sort of sensor to measure the deviation which may itself have calibration issues. Personally, I prefer to use accurate vernier calipers, dial gauges, feeler gauges and the like (but then, I'm old fashioned as well as being cynical).



  • I think it is worth the time and effort to implement and it will be very useful in regards to further CNC development were probing to correct angular error is even more essential, the larger belt driven gantry systems as an example. You could even probe the beds edges and then drive gantry motors independently to physically make the the machine square . I would like to see not just skew but what siemens calls cross error compensation for all axis, as in probe a machinist square in the x axis every 2 mm and correct for angular between points by moving the y axis, also called geometric or sag compensation.



  • What we seem to be missing here is that the Prusa system does Need a specific Bed with the sensor points in it. It will not work and just any old Bed? That to me severely limits it's appeal.

    As Deckingman points out we already have the tools to be able to compensate for the error using the M556 command and if done that way manually unless you have to strip down the Axis then it is never going to change.

    I to prefer to make sure my Printer is as Accurate as possible have not as yet used Bed Compensation I will however run it on the New Delta to check the bed but hopefully won't need to implement it at all.

    The fewer things the FW Has to contend with whilst printing is IMHO better

    just my two penworth

    Doug



  • "Prusa system does Need a specific Bed with the sensor points in it"

    Yep or almost yes… it needs a bed with 9 points that triggers the probe, probe must not be triggered outside these points. other than that there is not so much special about it other than it has zoned heating so that the heat is more unitform

    "I to prefer to make sure my Printer is as Accurate as possible" same here, but i might have bad tools or screwing up something so its less precise. having an option to be told you did a bad job on the frame and by this much would help. If i get it right hurra, but if i just cant get it spot on then i might have to bite the dust.

    but as said above it could be a selling point, but as I said it should sit on the bottom of the list

    And if at all possible it should of course be expanded so its dealing with more than just XY skew, and it should of course be possible to totally disable it for those that do not need or want it



  • I also fall into the build it properly camp now, but I didn't used to. This is a useful feature at the lower end of the market, but that's not where duet users typically are.

    I'd say do it if it's easy to include (which I suspect it's not) or don't use time that could be better spent on more useful features.



  • @DjDemonD:

    I also fall into the build it properly camp now, but I didn't used to. This is a useful feature at the lower end of the market, but that's not where duet users typically are.

    I'd say do it if it's easy to include (which I suspect it's not) or don't use time that could be better spent on more useful features.

    Agree 100% with this sentiment!



  • I agree that this is a feature that is most useful to new users with specific hardware ( Prussia i3 mk2).

    But then again, should we not include support for those who most need it rather than just support the experienced and competent users? It seems that this kind of sense/compensate feature has uses in multi-axis/cnc applications and it would be good to support it - but not perhaps at the top of the list!



  • "with specific hardware ( Prussia i3 mk2)."

    what about others users with the same bed but not the same printer?

    agree that it could be placed somewhat down the list and maybe be expanded to compensate for other than XY skew if possible


  • administrators

    I didn't express my own opinion earlier because I didn't want to bias the discussion. But this thread has been live for a couple of days so I'll express my opinion now.

    • The only thing that Prusa is offering that we don't do already is automatic (as opposed to manual) compensation for XY skew.
    • From what I can see, Prusa isn't offering any sort of compensation for XZ or YZ skew, whereas RRF does
    • If a printer build doesn't have X and Y accurately at right angles to each other, then I suspect it won't have Z accurately at right angles to both X and Y, unless the nature of the design makes it likely that the XY angle will be much less accurate than the XZ and YZ angles. So I don't see much value in automatic XY skew compensation without also having automatic XZ and YZ skew compensation.
    • Measuring XZ skew and YZ skew automatically would not be easy, because the mechanism of using a bed with markers placed in it restricts you to probing at a height very close to the bed.
    • That type of bed also restricts you to using only as many mesh bed compensation points as there are markers on the bed, which is 9 in the case of the Prusa i3 Mk2 bed. Whereas the Duet WiFi supports up to 441 bed probe points. 9 points is likely to be sufficient for small Cartesian printers, but not for larger printers.
    • As far as I know, no firmware other than RRF has supported any form of skew compensation before Prusa added it, and I've never seen anyone raising skew on Cartesian printers as an issue on any of the forums I monitor. So I see no evidence that XY skew is a common issue (or even a rare one).

    So my gut feeling is that automatic XY skew compensation is a solution to a non-problem. Most people don't have difficulty getting their X and Y axes perpendicular. For those who do, manual skew compensation is available, and if used as instructed it also provides XZ and YZ skew compensation.

    So I'm inclined to put it waaay down on the priority list. But we're customer-driven at RRF, so your votes are what counts.



  • I saw a couple printers that would have benefited from this compensation at MRRF due to errors induced in transport - some traveled better than others. Or at least on brief inspection, a few looked a bit off. But that's typical for MRRF, people slap their printers down and hit print, any auto-cal is beneficial because no one's wanting to sit around calibrating when they could be talking to others and enjoying the fest. Now whether the issue should have not occured if they'd been build more solidly is a different question, but I was very glad to have full autocalibration on my delta while there.

    That might be a rather unique use case, though, not sure how often people travel with their printers.



  • "no firmware other than RRF has supported any form of skew compensation"

    Repetier does, but also has to be done manual

    Q…. Would the mini IR board be a batter choice here? and how well would it work on that black matt surface with PEI sheet on?


  • administrators

    boelle

    There could be a way of using an IR sensor, combined with an accurately manufactured "datum" sheet to do the same form of compensation. A pattern (similar to a bar code) can be printed at various points on the datum sheet which the IR sensor, if scanned at the right height, can detect. The sheet would need to be manufactured with cutouts or very varied reflectivity

    This would be a lot of work to implement and (unlike other forms of auto calibration like delta auto calibration) is not as common an issue.

    Further more neither of these methods works with a touch probing system like the peizo sensor.

    My view is it is a low priority in comparison to most other things.



  • I'm thinking of signing up to the indiegogo campaign, but have a quick question as I use a Mini height sensor board…

    Will the Mini height sensor board be be compatible, based on the height sensor instructions:

    "PEI: this is highly transparent to IR. Paint the underside matt black (see below) before using adhesive sheet to attach it to the bed plate."

    I assume that as the MK42 heated bed is black and the PEI is applied directly to this, this step wouldn't be required?



  • you are right

    the mk42's are matt black and the PEI is put on top

    i too will end up with the mini ir, i assume that the duet will make use of the analog output



  • My heated bed from the indiegogo campaign has arrived
    Does anyone know if the Mini height sensor will be able to cope with the matt black PCB and thin PEI or would i be better off getting a sheet of Buildtak instead?
    Willing to experiment, but if the PEI is a lost cause I'd rather not put it on to only have to peel it off 30mins later…


Locked
 

Looks like your connection to Duet3D was lost, please wait while we try to reconnect.