Bed Leveling Problems on a Delta



  • The problem I am having is that the bed leveling (G29) is saying that there is a 3mm difference between the outside of the bed and the center.

    I have been rebuilding a Little Monster Delta printer for the last year (it has been slow going). Almost nothing other than the frame is stock at this point. It has a duet2 ethernet board, NEMA 23 0.9 deg motors (23HM22-2804S) with 40 tooth gears, and an induction sensor mounted for bed leveling, with a new magnetic steel bed both to make printing easier and to make the induction sensor work.

    My config is using M665 L397.107 R175.000 H520.000 B165.0 for the printer dimensions, which I fairly certain are correct, and M92 X160 Y160 Z160 E410 for the motor settings which I am also fairly certain are correct. The sensor settings are as follows:
    M558 P5 I1 R0.4 H4 F1200 T800
    G31 P500 X0 Y0 Z0
    M557 R80 P8

    Running G29 demonstrates a 3mm height drop from the center of the bed to the edge in any direction. When I change the height in M665 (increase to H540), and reduce the X/Y/Z in M92 to 156, the printer register a deviation change of roughly 20% (flatter). Using a straight steel ruler and a flashlight I can clearly see that the actual deviation is far less than 1mm (likely in the 0.1 to 0.2mm range). In theory I could fix it by providing incorrect values for the height and travel, but this seems like it would create other problems down the road (such as incorrect layer heights).

    I am struggling to figure out what is going on here. Any ideas would be most helpful.



  • A domed (or cup) bed on a Delta means that some part of the geometry is wrong, almost always the delta radius.

    How did you get your R value?

    It should be the HORIZONTAL distance between the effector joint and the carriage joint, measured joint-center to joint center.

    Delta Printer Rod and Radius.png



  • @wcrisman said in Bed Leveling Problems on a Delta:

    Running G29 demonstrates a 3mm height drop from the center of the bed to the edge in any direction

    you need to run a G32 calibration and save those values before anything else.
    see
    https://duet3d.dozuki.com/Wiki/Calibrating_a_delta_printer



  • After a bit more experimentation it seems that the radius of the machine also affects the ability to level the bed. Unfortunately I have no idea how to calculate the radius of the machine. Making it smaller (R165 instead of R175) reduced the deviation between the edge and center of the bed by almost 50%.

    According to the docs the radius is the horizontal distance between the rod ends when the machine is centered. This is nearly impossible to calculate accurately. Even after adjusting this, the whole bed map is so far from reality as to be ridiculous. This process needs overhauling badly.

    I have to ask why the code doesn't simply probe the bed, assume it is level and work backward to calculate likely values for things like this. The machine is quite capable of such a calculation (simply use the average of the probe points for each ring going out from the center).



  • @Danal
    Thank you for that. I figure this out just about the time you wrote this. Unfortunately it assumes you have the head perfectly centered which apparently I do not (working on that now). It is also a very difficult measurement to take accurately, and being off by 0.5mm does appear to have a significant effect.



  • @Veti
    Thank you for the docs link. I had not read that particular one (at least not in a while).

    From what I have read G32 simply calls G29 via the bed.g script. I think running the G29 in my case is identical to running G32 because I have no need to script the deployment of a probe (probe is always deployed).

    After reading these two replies and some of the docs linked, I am trying to get my stops set such that my print head is properly centered when homed. Once I do that, I will recalculate the radius value, and try running a mesh bed compensation routine again.



  • @wcrisman said in Bed Leveling Problems on a Delta:

    From what I have read G32 simply calls G29 via the bed.g script

    no i calculates M665 and M666 based on the probing. without it your delta will not be accurate.



  • @wcrisman said in Bed Leveling Problems on a Delta:

    I have to ask why the code doesn't simply probe the bed, assume it is level and work backward to calculate likely values for things like this. The machine is quite capable of such a calculation (simply use the average of the probe points for each ring going out from the center).

    It does exactly that. G32 probes the bed and calculates and adjusts M666 parameters. There are variations that will adjust different parameters.

    Specifically, my bed.g on my 600mm diameter delta is below. Note the P numbers incrementing, that stores those points for a calculation. The "S8" on the last G30 performs that calculation.

    This is so quick to run on the printer (with a smart effector as a probe) that I do a G32 in the slicer start script; i.e. before every print.

    See this tool to generate your own bed.g. The G32 and when it finishes, do an M666 with no parameters on the console. You'll see the adjustments it made. BE SURE and update your config.g (and/or issue an M500, then being sure there is an M501 near the end of your config.g)

    G28
    M106 P1 S0
    G30 P0 X0.00 Y280.00 Z-99999 H0
    G30 P1 X140.00 Y242.49 Z-99999 H0
    G30 P2 X242.49 Y140.00 Z-99999 H0
    G30 P3 X280.00 Y0.00 Z-99999 H0
    G30 P4 X242.49 Y-140.00 Z-99999 H0
    G30 P5 X140.00 Y-242.49 Z-99999 H0
    G30 P6 X0.00 Y-280.00 Z-99999 H0
    G30 P7 X-140.00 Y-242.49 Z-99999 H0
    G30 P8 X-242.49 Y-140.00 Z-99999 H0
    G30 P9 X-280.00 Y-0.00 Z-99999 H0
    G30 P10 X-242.49 Y140.00 Z-99999 H0
    G30 P11 X-140.00 Y242.49 Z-99999 H0
    G30 P12 X0.00 Y140.00 Z-99999 H0
    G30 P13 X121.24 Y-70.00 Z-99999 H0
    G30 P14 X-121.24 Y-70.00 Z-99999 H0
    G30 P15 X0 Y0 Z-99999 S8
    G29 S1
    M106 P1 S1 I0 F500 H1 T40 
    

Log in to reply