Wrong Z axis positioning while printing

  • I am trying to make my old Mendel (ca. 2012) work with the Duet board and all mechanical end stops (no probe). I thought it would be a drop-in replacement for the Melzi board with some added magic, but it appears that there is too much magic in the Duet and I can't figure it all out.

    I have arrived at a point where it moves on command (very nicely) and homes correctly. But while printing, it seems to ignore the Z-homing result and rams the head into the bed, shutting off the extruder. I tried all the round-about ways of solving this problem; I have done everything short of looking into firmware. Raising the end stop has no effect. Adding a vertical offset in the web GUI or in g-code has no effect. Whatever I do, it starts at the correct home position, raises about 5mm, then descends to its target position on an inclined trajectory. It does not stop descending until the extruder touches the bed.

    I have lowered the bed by a couple millimeters and that releaved the extruder somewhat, so it was able to push some material through but the nozzle was still sliding on the bed, just with less pressure. I forced it through the first layer, hoping to see better action as it got to the next layer, but that didn't happen. As it reached the next layer, it started scraping the previously laid material clean off the glass, completely shutting off the extruder. That looked as though it went down instead of up.

    The Z motors on the Mendel go in reverse if wired in the same orientation as other motors (they are mounted on the top of the frame). Are there multiple parameters in settings that need to reflect the fact? I used https://configurator.reprapfirmware.org to compose my current configuration files and haven't touched it since.

  • administrators

    We need a little more detail:

    1. Where is the Z homing switch on your Mendel: is it at the top of the Z axis so that it triggers with the print head as far away from the bed as it will go, or is it at the bottom of the Z axis so that it triggers with the nozzle almost touching the bed?

    2. When the Z homing switch triggers, how high is the nozzle above the bed?

    3. Please post your config.g, homeall.g and homez.g files.

  • Sorry, I was stuck in a rut and needed a fresh start and a heads-up, so thank you very much for that.

    I simply overlooked the trigger height parameter. I got very close to it when I tried to print without the glass and saw the nozzle stop approximately at negative trigger height (as it turned out), but misinterpreted what I saw.

    The Z homing switch is at the bottom of the axis. It is essentially the original Mendel arrangement except for X-axis hardware, which I borrowed from Hephestos. When the Z endstop triggers, the gap between the nozzle and the bed is about 0.25 mm. And then there is a 2.5-mm trigger height subtracted from that:


    G31 P600 X0 Y0 Z2.5                                ; Set Z probe trigger value, offset and trigger height

    [c]homeall.g[/c], [c]homez.g[/c]:

    G92 Z2.5         ; set Z position to trigger height

    So I adjusted the end stop to take that into account, and I am printing again. The first few tests came out ugly, but that's a different issue. I am using the previously-working Cura profile for the same filament and the same extruder drive that produced nearly perfect results with Melzi (although the hot end is now different and the nozzle is smaller). The issue now is that the accelerated motion (which is super-nice and I'm not giving it up) results in gross over-extrusion at the end of each move. I'll work on that and yell if I need help.

    Thanks a lot!

  • administrators


    …The issue now is that the accelerated motion (which is super-nice and I'm not giving it up) results in gross over-extrusion at the end of each move. I'll work on that and yell if I need help.

    You can reduce the acceleration and/or speed settings to the ones you used before, and/or try pressure advance.

  • Yes, I had noticed pressure advance and it did help a little bit, to the extent that I was able to find an optimumal setting. But it did not solve the problem.

    Here's what happened. I guesstimated speed and acceleration limits from major resonance modes, and they turned out to be pretty good estimates, but I forgot that the g-code commands for setting those values expected per-minute velocities. The result was mesmerizing. I just sat there and admired the smoothness of motion. I took it as a sign of Duet's intelligence and forgot to check whether the character of the movements I observed had anything to do with the values I had entered. Best of all, I thought, was that none of the motion was transferring to the walls of my apartment. Surprisingly, that newfound smoothness didn't really affect the overall print time too much, so I didn't realize what I got wrong until much later.

    Today I found and corrected the error, and now the machine shakes like crazy again, but it produces passable prints. Not bad for a second try. The strokes are still thinner in the middle than near the ends and there is a small ridge on the top surface where the infill meets the perimeter. Traces of ringing are visible on the sides but are not really palpable (way under 0.01mm) – which is an excellent result for a frame that is not famous for its rigidity and a print head whose total weight is approaching 1 kg.

    Thank you for thinking with me. I wouldn't be making as much progress without your help.

Log in to reply