Issue Leveling with G32 using 4 lead screws and motors
-
I am using a setup like the Rat Rig, where there are steel balls attached to the bed that are sitting on parallel bars. The steel balls can slide to accommodate any movement needed to sit level. Gravity and a small magnet is all that holds the bed ball on the parallel bars. This system works great and I am getting good first layers when I use a dial indicator to level the bed prior to running G32. Then of course G29 to build a mesh.
The problem I am having, is when running G32, the bed will try to compensate by lower one of the screws to low, this makes to ball in that corner no longer touch the parallel bars. Trying to by running G32 again only make the problem worse. Are there any kind of a solution for this issue?
-
This post is deleted! -
@SignPostMan You probably have your M671 in a different order to how the z motors are declared in M584
-
@SignPostMan a plane is defined by 3 points. 4 points make it overconstrained. Bed leveling will try to even out any deviations, but that simply isn't possible when the interfaces aren't mounted to the z axis. The only thing I can imagine is that you'd have the leveling algorithm only take 3 points into account, and then calculate where to move the 4th axis, just for additional support. I don't think the firmware is currently capable of doing that.
What is your purpose for the 4th axis? Why not follow the ratrig/hevort triple z setup?
Small side note; you have to make sure the 'leadscrew coordinates' are actually the coordinates of the center of the balls that support the bed, otherwise the calculation will be off even more.
-
@jay_s_uk Ok I will check that out, my bed is 680x680 and I was afraid if I used 3 points I would get to much sag in back corners. Also the bed is 10mm thick and is pretty heavy, so 4 motors handle the weight pretty good. I would also like to make even larger and proving out the 4 motors first.
-
@SignPostMan On the basis that for many years I have been running my 400 x 400 x 10mm thick bed with 12mm of insulation underneath and 6mm of glass on top, with a single motor, three screws and a continuous belt, then 4 motors for your 680 X 680 bed is definitely overkill.
One problem with multiple motors is that whenever power is cycled, the motors will jump and change position by up to 4 full steps. With 3 screws, the bed will tilt so re-lelling will fix the error. It should be noted that this means bed levelling will have to be done every time the machine is turned on. However, with 4 screws the situation is different and one of two things will happen. On the one hand, if the screws are constrained from any vertical movement then the bed will get twisted. On the other hand, if the screws can move vertically, then one or more will become unseated and the bed will be held in position by the other 3 but may rock. I.e. it will be like a 4 legged chair or table on an uneven surface.
For those reasons and IMO, the best arrangement is a single Z motor, 3 screws, and a continuous belt. The second best is 3 screws with individual motors. The least desirable is having any more than 3 screws. -
@deckingman I think you may be right. I was hopping for some voodoo, that I didn't know about. Thanks
-
@SignPostMan while I understand and agreed with the triangle/three leg stool principle, I run a voron trident with 4 z motors due to the flex/sag of the bed, and always level my bed regardless.
I believe @jay_s_uk to be correct, I have had the same issue maybe post your config.g to confirm before disassembling your printer?
-
@jumpedwithbothfeet said in Issue Leveling with G32 using 4 lead screws and motors:
@SignPostMan while I understand and agreed with the triangle/three leg stool principle, I run a voron trident with 4 z motors due to the flex/sag of the bed, and always level my bed regardless.
IMO, it's more likely that you 4 attachment points are what is causing the flex, rather than the weight of the plate itself. Plugging the OP's plate dimensions (680 x 680 x 10mm thick) into one of the many online calculators shows a displacement of 0.00294mm. Using the same calculator shows that the plate would need to be upwards of 4 metres x 4 metres before the deflection becomes greater than 0.1mm and hence problematic.
-
G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"RR 650-1" ; set printer name M669 K1 ; CoreXY G21 ; Set Units to Millimeters M552 S1 ; enable network M586 P0 S1 ; enable HTTP M586 P1 S0 ; disable FTP M586 P2 S0 ; disable Telnet M569 P0.0 S1 ; physical drive 0.0 goes forwards M569 P0.1 S1 ; physical drive 0.1 goes forwards M569 P0.2 S1 ; physical drive 0.2 goes forwards M569 P0.3 S1 ; physical drive 0.3 goes forwards M569 P0.4 S1 ; physical drive 0.4 goes forwards M569 P0.5 S0 ; physical drive 0.5 goes forwards M569 P0.6 S0 ; physical drive 0.5 goes forwards M584 X0.5 Y0.6 Z0.0:0.1:0.2:0.3 E0.4 ; set drive mapping M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation M92 X80.00 Y80.00 Z800.00 E400 ; set steps per mm M906 X1600 Y1600 Z1600 E700 I30 ; set motor currents (mA) and motor idle factor in per cent -- safe for Duet 3 mini 5+ M84 S30 ; Set idle timeout M566 X600.00 Y600.00 Z8.00 E120.00 P1 ; set maximum instantaneous speed changes (mm/min) M203 X30000.00 Y30000.00 Z1600.00 E6000.00 ; set maximum speeds (mm/min) M201 X3000.00 Y3000.00 Z100.00 E3600.00 ; set accelerations (mm/s^2) M208 X0 Y0 Z0 S1 ; set axis minima M208 X650 Y650 Z480 S0 ; set axis maxima M574 X1 S1 P"io2.in" ; configure active low endstops M574 Y2 S1 P"io1.in" ; configure active high endstops ;(PanelDue is on io0) M671 X26:26:685:685 Y29:686:686:29 S5 ; position of leadscrew/bed pivot point at front left, rear left, rear right and front right M557 X30:618 Y30:650 S50 ; define 5x5 mesh grid ;PanelDue set baud rate----------------------------- M575 P1 B57600 S1 ;--------------------bed need work------------------ M308 S0 P"temp0" Y"thermistor" T100000 B3950 A"Bed" ; configure sensor 0 as thermistor on pin temp0 M950 H0 C"out0" T0 Q11 ; create bed heater output on out5 and map it to sensor 0, lower switching frequency to 11Hz M307 H0 B0 S1.00 ; disable bang-bang mode for the bed heater and set PWM limit ;M307 H0 A240.3 C608.7 D8.2 V24.1 B0 ; Bed Heater from other printer M140 H0 ; map heated bed to heater 0 M143 H0 S110 ; set temperature limit for heater 0 to 110C ;------------------Chamber Temp--------------------- M308 S2 P"temp1" Y"thermistor" T100000 B3950 A"Chamber"; configure sensor 2 as thermistor on pin temp2 M950 H2 C"out2" T2 ; create chamber heater output on out2 and map it to sensor 2 ;M307 H2 B0 S1.00 ; disable bang-bang mode for the chamber heater and set PWM limit M307 H2 R6 K0.17:0.11 D5.67 S1.00 ; set the process parameters for heater 1 M141 H2 ; map chamber to heater 2 M143 H2 S70 ; set temperature limit for heater 2 to 60C ;---------------------Fans------------------------- M950 F0 C"out4" Q500 ; create fan 0 on pin out4 and set its frequency M106 P0 C"Layer Fan" S0 H-1 ; set fan 0 name and value. Thermostatic control is turned off M950 F1 C"out3" Q500 ; create fan 1 on pin out3 and set its frequency M106 P1 C"Hotend Fan" S0 H1 T45 ; set fan 1 name and value. Thermostatic control turned on for Hotend M950 F3 C"out6" ; create fan 3 on pin out5 M106 P3 C"Chamber Filter Fan" S1 H2 T45 ; set fan 3 name and value. Thermostatic control turned on for Chamber Temp ;---------------------------------------- M563 P0 D0 H1 F0 ; define tool 1 G10 P0 X0 Y0 Z0 ; set tool 1 axis offsets G10 P0 R0 S0 ; set initial tool 1 active and standby temperatures to 0C M950 H1 C"out1" T1 ; create nozzle heater output on out2 and map it to sensor 1 M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit M143 H1 S350 ; set the maximum temperature in C for heater T0 M308 S1 P"spi.cs2" Y"rtd-max31865" ; configure sensor 1 as PT100 on pin spi.cs1 ;----Euclid Probe------------------------ M558 P8 C"io3.in" H5 F800 T10000 ; set Z probe type to unmodulated and the dive height + speeds G31 P500 X-31.5 Y0 Z3.4 ; set Z probe trigger value, offset and trigger height, more Z means closer to the bed ; Pressure Advance M572 D0 S.055 ;set tool 0 pressure advance M593 P"zvd" F41.5 ; use ZVD input shaping to cancel ringing at 40.5Hz