How to fix offset on CoreXY

  • I'm having some troubles with my M3D Promega. I've modified the printer with leadscrews and with a Bondtech extruder. This solved a lot of problems and now I get almost perfect prints. But there is still an issue that can be seen in the layers of the walls:


    I did various tests with the bed and the extruder and I think I can rule out that the problem has something to do with either one of them. I guess the problem comes from the CoreXY system.

    To test this I attached my USB microscope to the head of the printer and put some tape on the bed. Then I created a Python script that takes an image from the microscope, moves the head in a square and back to the start position, then takes another image and so on.

    What I found out ist that there is almost no change in the images when the extruder only moves clockwise. But if I also move the head counter clockwise every other move then I'm getting an offset that could be big enough to cause this problem:

    Video link

    The question now is if this is some kind of problem with the Duet hardware /firmware or if the problem is in the CoreXY system itself. Is there a way to e.g. debug how much stepper steps are used in each G1 command or other ways to debug this?

  • the promega comes with the duet maestro.
    try disabling stealthchop2 and change to spreadcycle.
    in stealthchop the current get reduced to keep the motors quieter. this could give some inaccuracies with microstepping.

  • @Veti I just tried that but there was no difference. There is still an offset between the pictures.

    I've also created a debug log of the motion, but the step values of X and Y are always the same. For some reason there is also the Z axis in the log. Here is the full log:

    Do you have any other ideas what could cause such a problem?

  • reading this ikt seems the promega has some serious flaws.

  • @Veti said in How to fix offset on CoreXY:

    Yes I'm aware of that and I'm also disappointed of the product. But I was able to fix most of the problems with the leadscrews and the Bondtech extruder. Now it is a decent printer. Not as good as my Prusa, but also not far away. And it was an interesting project so far and I learned a lot. So I'm hoping I can also find a solution for this final problem.

    I guess the Z moves in the logs come from the mesh bed leveling. Maybe the mesh bed correction do make such small prints worse for some reason. I will try printing without mesh bed leveling as a next step.

  • looking at the picture my guess would be small friction on the z axis.

  • @Veti I've no printed without mesh bed compensation but that makes no difference. I'm using leadscrews with 4mm pitch and the pattern on the walls also repeat every 4mm. Also the walls are alternately thicker, then again thinner on the outside and on the inside of the walls.

    The problem could be that one turn of the screw matches 4mm, but that a quarter turn of the screw doesn't always exactly match 1mm and because of this some layers get a bit more plastic than others. Could this be the cause of this issue? And if so what could be done to improve this? I'm using those couplers and those anti backlash nuts. With the backlash nuts I don't know if there is a specific way they have to be installed. I just tried to press them together as much as possible when inserting the leadscrew.

  • Hi,

    I stopped using couplers of any sort and opted for connecting the stepper to the lead screw via belts and pulleys.

    In any case my CoreXY works fine - though I did have a minor problem initially caused by unequal belt tension.


  • Looking at the video seems like there's backlash in the XY mechanism somewhere. I'd start by trying to wiggle the hot-end, then the extruder carriage, then the X axis, then the pulley mounts on the X axis, then the motor mounts and corner pulley mounts. Are you using round guide rails or linear guides? Can you post some photos of the machine?

  • @TheNetStriker said in How to fix offset on CoreXY:

    Also the walls are alternately thicker, then again thinner on the outside and on the inside of the walls.

    i was not talking about the leadscrews. i am talking about the guides that holds the entire bed assembly in place.
    if that motion without the leadscrews is not super smooth and you get minimal binding, then for example it would not move as much due to friction, then overcome the friction and finaly move to the requested position. this would result in thicker and thinner layers.

  • @mrehorstdmd You can find a lot of pictures of the CoreXY system of the machine on Google:

    The Y axis is done with two linear rails, but the X axis has round guide rails.

  • Did you put lead screws in the Z axis? How many and where?
    What were the prints like before you did that modification?

  • @mrehorstdmd I followed this guide on Thingiverse:

    There are 3 leadscrews and 3 linear rails on the z axis.

    Before the modification the quality was very bad. Also the printer was not reliable. The print bed was originally driven by 4 small belts and one motor. It was very complicated to install and tension the belts and when I put a little force on the bed the belts skipped over the gears. Also the positioning of the bed was really bad. On the first print I watched the nozzle melt into the print a few millimeters. This is now all much better compared to before, but I guess there is still room for improvement.

  • I've now also zip tied the coupler tops and bottoms together to be sure the don't get pulled out when driving down the bed, but still no difference in the print. I've also tested vase mode and printing without z hop, but also no difference.

    On the vase print I have noticed that one outside wall of the print is almost perfect, but all other three walls show the pattern. I guess this could be related to the problem with the CoreXY position, but I have no clue why this happens.

    I also compared the photos from the microscope and If I look only at every other picture the position is perfect. So when driving back it lands on the exact same position. Only when the movement changes from clockwise to counter clockwise it ends up in a slight different location.

  • Just for the fun of it, if it's not already, try rotating the test part so the walls are -45deg, +45deg instead of 0 and 90 and see what happens.

  • @gtj0 I also tried that but there is also no difference. I also tried printing without the heated bed, but the pattern is still there. The only idea I have at the moment is that I could try different stepper values per motor. Maybe one motor moves the head a bit more than the other for some reason.

  • Moderator

    @TheNetStriker said in How to fix offset on CoreXY:

    With the backlash nuts I don't know if there is a specific way they have to be installed. I just tried to press them together as much as possible when inserting the leadscrew.

    Perhaps you've put too much compression on the springs and it's causing excess friction and binding. Honestly with a corexy and the bed moving down, I don't think you'll need anti backlash nuts anyway.

  • @Phaedrux I've just tried that, but without the backlash nuts I still have the exact same result. I will try to adjust the belt tension next and if that not helps I will try with different stepper steps for each of the CoreXY motors.

  • @Phaedrux @gtj0 @Veti I've now improved my microscope test script so that it creates a video from every point the head moves to. I then tried if I can correct the positioning by tensioning the belts and also by adjusting the stepper steps, but with both methods I was not able to get better positioning.

    I now found out that the problem already shows if I move the print head on just one axis with three points. My videos show that the start and endpoint are always at the exact same location, but the point in the middle is always offset when the print head changed direction. It also doesn't matter which axis is used, I tried x, y and also directional in both ways that only one motor is working and the offset shows every time on the point in the middle. The Duet logging shows that for each movement between the points the exact same amount of steps is used. I also tried to tension the belts as much as possible so they cannot flex anymore, but that also doesn't help. I'm out of ideas at the moment.

    Do any of you have any other ideas what could cause such a problem?

  • @TheNetStriker said in How to fix offset on CoreXY:

    but the point in the middle is always offset when the print head changed direction.

    overcoming friction in the rails?

  • @TheNetStriker

    Belts can be too tight as well.

    What perhaps matters most is they are the same.

    I had problems something like yours but after matching the belt tension as best I could they problem went away.


  • Moderator

    If you remove the belts and move the carriage by hand does it move freely throughout the entire range of movement?

  • If the mechanism is built so that without the belts the X axis is perpendicular to the Y axis (and that's how it should be built), when you tension the first belt, the X axis will get pulled out of square. When you tension the second belt, you apply just enough tension to square the X axis again. When you increase the second belt's tension,
    the tension in the first belt will increase, so when you tension the first belt, leave it just a little loose.

    After tensioning, if the X and Y axes are perpendicular, the belt tensions should be pretty closely matched, but the most important thing is that the axes are perpendicular. If the axes aren't perpendicular all your prints will be skewed.

  • @Veti @fcwilt @Phaedrux @mrehorstdmd I don't think that friction is a problem. I just tried moving the head without the belts attached and I can move the head with one finger with very little force. I've uploaded a short video of this to my Dropbox:

    On the y axis is a linear rail and on the z axis are normal rails and the head moves on plastic bearings. But as I said I have the problem on every axis, so this can also not be the problem.

    I already changed the belt tensioning countless times, but I always get the same result. Not better, not worse. I also don't know if this would explain that on a straight line with three points only the middle point is always off when the head travels back and the outer points are always correct. When the head moves back from the last point to the middle one it seems to travel a shorter way to the middle point as but then makes this difference up when traveling back to the start point. I don't know what could explain such a behavior.

  • I'm not certain what am I seeing on the image you posted:

    Are those lines shifts in X Y or diagonal direction, or the wall thinckness chnages?

    I'm quite certain that it;s not an X or Y shift, and in a coreXY setup it's quite unlikely that the changes occur only every N layer (because there is a certain number of layers one way then something happens, and again N layers are the other way and this repeats again and again) So I would discount the coreXY part and would investigate extrusion (clean the nozzle too) and the bed (Z).

Log in to reply