Homing Z in wrong direction on first power cycle
-
@Jaran Please send M115 (firmware versions) to the Duet and post the response. Please can you also describe the exact steps you're taking. I think its:
- Power on printer (runs config.g)
- Run homeall.g (homes only X and Y)
- Run homez.g (homes Z then descends)
- Turn off printer
- Turn on printer
- homing works?
Also, do you have two Z motors? Are they both connected to Z (ZA and ZB)? If they are connected to separate drivers, you need to define that in you M584, eg:
M584 X0 Y1 Z2:4 E3 ; set drive mapping
Ian
-
M115:
FIRMWARE_NAME: RepRapFirmware for Duet 2 WiFi/Ethernet FIRMWARE_VERSION: 2.05.1 ELECTRONICS: Duet WiFi 1.02 or later FIRMWARE_DATE: 2020-02-09b1
Yes, thats about right, except I don't run the homing files manually, I just hit the "Home all" button on the duet touch display.
I am using two Z motors and they are wired to ZA and ZB now. I did try to run them on seperate drivers earlier but everything should be reverted back to using ZA and ZB.
The homing has always been working fine, until I straightend up the Z axis which caused the bed to drop when its powered off. Im starting to belive this has always been an issue as its only happening when the bed is at the bottom. I can't confirm that for sure as the bed never dropped down to that point earlier and I have never printed anything that big in the Z axis.
All in all the homing works just fine as long as the bed is not dropped down to the lower part of the printer
-
I made a little video of the issue. Please excuse the mess
-
@Jaran said in Homing Z in wrong direction on first power cycle:
I don't run the homing files manually, I just hit the "Home all" button on the duet touch display.
When you run homeall it starts with homeall.g and if it has any remaining unhomed axis when it's done (in your case the z axis) it runs the homez file.
Since you're running 2.05.1 you should probably update your homeall o use H1 instead of S1 for your homing G1 moves.
Also, you can increase your Z axis probing speed substantially and still get good accuracy by setting up a double homing routine in your homez by replacing your single G30 with this:
M558 A1 F400 ; Set single probing at faster feed rate G30 ; Do a single probe to home our Z axis M558 A10 F120 ; Set multi probing at slower feed rate G30 ; Probe again to get a more accurate position
Not a solution to your problem, but should drastically speed up your initial homing from the bottom of the bed.
It's also preferable to move the probe to the center of the bed.
I also notice that you're using G92 in your homeall to reset the homed XY position to 0. If the 0,0 point is off the edge of the bed, it might be best to modify the M208 minima to use a slightly negative value such that 0,0 is the corner of the bed. That way the full travel size of the axis is allowed, but the location of the printable area is still preserved.
-
Hehe, I should indeed speed it up! Thanks for the little snippet
I am going to home in the middle of the printer once im done making changes. Been struggling with the printed parts and lining up the belt so I have taken it all apart quite a few times now. The last setup I had the extruder never moved outside the buildplate, but the new parts allows it to move out of it in the Y axis. Thanks for the tip. At the moment the extruder can only move within its buildplate, but I am going to allow it to move out of it later on to make some sort of nozzle wiping brush.
-
I have just updated my firmware to 3.1.1 so here is my new config file. Im still having the same issue on this firmware. For what its worth I sat up the setup with the online generator.
; Configuration file for Duet WiFi (firmware version 3) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v3.1.4 on Fri Aug 14 2020 12:18:48 GMT+0200 (sentraleuropeisk sommertid) ; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"Jarans HEVO" ; set printer name M669 K1 ; select CoreXY mode ; Network M552 S1 ; enable network M586 P0 S1 ; enable HTTP M586 P1 S0 ; disable FTP M586 P2 S0 ; disable Telnet ; Drives M569 P0 S1 ; physical drive 0 goes forwards M569 P1 S1 ; physical drive 1 goes forwards M569 P2 S1 ; physical drive 2 goes forwards M569 P3 S1 ; physical drive 3 goes forwards M584 X0 Y1 Z2 E3 ; set drive mapping M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation M92 X80.00 Y80.00 Z400.00 E2771.50 ; set steps per mm M566 X480.00 Y480.00 Z24.00 E40.00 ; set maximum instantaneous speed changes (mm/min) M203 X6000.00 Y6000.00 Z400.00 E10000.00 ; set maximum speeds (mm/min) M201 X500.00 Y500.00 Z200.00 E120.00 ; set accelerations (mm/s^2) M906 X1200 Y1200 Z800 E800 I30 ; set motor currents (mA) and motor idle factor in per cent M84 S30 ; Set idle timeout ; Axis Limits M208 X0 Y0 Z0 S1 ; set axis minima M208 X267 Y267 Z250 S0 ; set axis maxima ; Endstops M574 X1 S3 ; configure sensorless endstop for low end on X M574 Y1 S3 ; configure sensorless endstop for low end on Y M574 Z1 S2 ; configure Z-probe endstop for low end on Z ; Stall Detection M915 X Y S3 F0 H100 R0 ; Z-Probe M950 S0 C"exp.heater3" ; create servo pin 0 for BLTouch M558 P9 C"^zprobe.in" H5 F120 T6000 ; set Z probe type to bltouch and the dive height + speeds G31 P25 X28 Y3 Z3.636 ; set Z probe trigger value, offset and trigger height M557 X30:260 Y30:260 S40.4 ; define mesh grid ; Heaters M950 H3 C"nil" ; Disable heater H3 to free up pin M308 S0 P"bedtemp" Y"thermistor" T100000 B4138 ; configure sensor 0 as thermistor on pin bedtemp M950 H0 C"bedheat" T0 ; create bed heater output on bedheat and map it to sensor 0 M307 H0 B0 S1.00 ; disable bang-bang mode for the bed heater and set PWM limit M140 H0 ; map heated bed to heater 0 M143 H0 S120 ; set temperature limit for heater 0 to 120C M308 S1 P"e0temp" Y"thermistor" T100000 B4725 C7.06e-8 R4700 ; configure sensor 1 as thermistor on pin e0temp M950 H1 C"e0heat" T1 ; create nozzle heater output on e0heat and map it to sensor 1 M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit ; Fans M950 F0 C"fan0" Q500 ; create fan 0 on pin fan0 and set its frequency M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off M950 F1 C"fan1" Q500 ; create fan 1 on pin fan1 and set its frequency M106 P1 S1 H1 T45 ; set fan 1 value. Thermostatic control is turned on ; Tools M563 P0 D0 H1 F0 ; define tool 0 G10 P0 X0 Y0 Z0 ; set tool 0 axis offsets G10 P0 R0 S0 ; set initial tool 0 active and standby temperatures to 0C ; Custom settings are not defined ; Miscellaneous M575 P1 S1 B57600 ; enable support for PanelDue
-
I still think this is an issue of the bed weight causing the bed to auto rotate down, perhaps from lack of torque.
Can you try the following:
Temporarily increase the Z motor current to the max rated for the motor.
Reduce the max speed and acceleration for the Z motor.
Reduce microstepping on Z to x8.
You can add this code right below your current drive block and then delete it after testing.
M350 Z8
M906 Z1000
M203 Z200
M201 Z60See if that makes a difference.
If that doesn't help, leave that block in place and then change the Z motor wiring so that one motor goes to your spare extruder driver. Then alter your M584 command to map the Z axis to both drivers as droftarts describes above.
M584 X0 Y1 Z2:4 E3 ; set drive mapping
-
@Jaran I just watched the first video and agree that the bed is powered on the downward movement; it’s not slipping. The only thing I can think of is that the first move, from the bottom of Z to probe, is more than the 250mm set in M208:
M208 X267 Y267 Z250 S0
So my suggestion is to try setting this larger than the Z movement, eg 400, and see if it still does the same thing.
I don’t know why it would be doing this, though. But please test and see if it makes a difference.
Ian
-
@Phaedrux I will for sure give this a shot, but im 99% sure its not due to the weight. The weight has never been an issue before, its only when the bed is at the bottom. If I try to "hold" the bed with my finger below it when it has no current I can simply hold my finger there without giving any preassure and it stays.
@droftarts This sounds like the solution! After changing parts on the printer lately I have for sure gained more Z travel and I intentinally set that limits to be lower earlier as the bed struggled when going all the way down(slightly skewed Z rods).
I will post back in a couple of minutes with an edit
Edit: It was the Z axis limit that caused this. Now it works as intended even at the lowest point it can reach. I did not think about this at all until I read out your message
Thanks alot to both of you! Im starting to get close to a result I can be happy with
-
@Jaran Great! Glad that sorted it. Can you let me know how much travel you have on Z, from bottom to top? I don't know if there's a limit set in the firmware that aborts G30 if the distance travelled is greater than the M208 Z value + [some value], but this behaviour is not expected or documented, so may be a ... (drum roll) ... bug!
Ian
-
@droftarts I have about 290-300mm travel in total on the Z axis. I sat the new limit to 280mm which works fine.
Hehe yeah, it looks like it. As long as you set the limits to match the travel length you will never experience this, but if someone for some reason put the limits on 50% of the travel length I belive you would.
-
@Jaran I asked @dc42 if this was a bug, but it isn’t. He said “max travel is 1.1 * the total Z axis length” so your Z was limited to 275mm with M208 Z250.
A couple more questions; on the first home, did the probe actually trigger, or did it stop short and reverse? Also when it did reverse to the bottom, did it stop, or just keep going and grind the motors when it got to the bottom?
Ian
-
@droftarts Aha, I see.
The probe did trigger. The bed kept moving until it hit the probe no matter how far down it was. It did not stop at the bottom, it kept on going and grinding the motors.