Duet 2Wifi Board: 3 Z-Axis configuration create problem
-
@R006 It might help if you post a picture of the board showing how you have the motors connected.
-
-
@R006 Di you have a higher resolution version, it is hard to see what you have connected to the board in that picture.
-
@R006 in your config.g, you haven’t specified any timing for your external drivers, set by M569 Txx:xx:xx:xx parameter. I think this may be causing a problem, as it will be using the default timing of ‘fast’, which is only suitable for the on-board drivers. The high frequency of these steps, and the high step rate you have set for Z (M92 Z2133.33) may be causing the interference. Try:
M569 P5 S1 T5:5:10:10
And similar for any other external driver.
Ian
-
@droftarts , @dc42 , @T3P3Tony
hey,
i tried as per your suggestion but problem remains same. Please find detailed observations as per trials:with onboard drivers connected for all axes:
- I have 4 boards, and all of them with latest or old software have same behaviour.
- Somehow on while moving Z, Y axis gets some pulse.
- If i interchange the driver of X& Y, from P0 , P1 respectively to P1, P0, even then the noise appears only on the Y channel.
- The problem is some intermittent pulse that generates only on Y channel when declared. If i make P0 & P1 as X, then noise does not appear.
- It appears only if the Zmove is > 5mm .
- This noise does not generate when we HOME Z, but move Z at the same homing speed, the problem appears.
with XY via external driver:
7) When we use SPI-> external driver-> with suggested timing parameters, the probelms still exists.I have tried many things, Can you please check this once in the boards with you ? Somewhere a pulse is generated for the Y axis only when z moves.
Is there anywhere in code where i can look for the problem ?
***What can be the possible causes for such behaviour?***bolded text
-
can't upload original file because the original file size is more and giving error while upload it
-
@R006 please post your current config.g.
Ian
-
@droftarts
configG90 M83 M550 P"INFD300s" M551 P"INFD300" ; Network ;M552 S1 M552 S-1 M586 P0 S1 M586 P1 S0 M586 P2 S0 ; Drives M569 P0 S1 M569 P1 S1 M569 P2 S1 M569 P3 S1 M569 P4 S1 M569 P5 S1 M584 X0 Y1 Z2:3:4 E5 M350 X32 Y32 I0 M350 Z16 E16 I1 M92 X160.00 Y160.00 Z2133.33 E932.00 ;change as per machine M566 X720.00 Y720.00 Z300.00 E600.00 M203 X8400.00 Y8400.00 Z420.00 E8400.00 M201 X3000.00 Y3000.00 Z30.00 E250.00 ;M-curr M906 X2200 Y2200 Z1600 E800 I30 M84 S30 ; Axis Limits M208 X0 Y0 Z0 S1 M208 X280 Y280 Z291 S0 ; filament Sensor M591 D0 P7 C"exp.e3stop" R15:300 L7 E17 S1 ; Endstops M574 X1 S1 P"xstop" M574 Y1 S1 P"ystop" M574 Z1 S1 P"zstop+e0_stop+e1_stop" ; Z-Probe M950 S0 C"exp.heater3" M558 P9 C"^zprobe.in" H5 F120 T6000 ;G31 P500 X-35 Y-30 Z2.199 G31 P500 X0 Y0 Z1.0 ; Auto level, coordinates as per motor order in M584 M671 X-17.66:297.34:140.00 Y-5.00:-5.00:327.61 S5.0 ;points position with left right ¢er ; define mesh grid M557 X30:270 Y30:270 S20 M376 H5 ; End Limits ;M950 J1 C"!exp.e4stop" ;M581 P1 T2 R0 S1 ;M582 T2 ;M581 P-1 T2 ;M581 P1 T0 R0 S1 ;PA M572 D0 S0.050 ;SKEW M556 Y1.1 S50.0 ; Bed Heater M308 S0 P"bedtemp" Y"thermistor" T100000 B4138 M950 H0 C"bedheat" T0 M307 H0 B0 S1.00 M140 H0 M143 H0 S105 ; Extuder Heater M308 S1 P"e0temp" Y"pt1000" M950 H1 C"e0heat" T1 M307 H1 B0 S1.00 M143 H1 S320 ; cooling Fans M950 F0 C"fan0" Q500 M106 P0 S0 H-1 M950 F1 C"fan1" Q500 M106 P1 S0 H-1 ; Tools M563 P0 D0 H1 F0 G10 P0 X0 Y0 Z0 G10 P0 R0 S0 ; Custom settings are not defined ; Miscellaneous M575 P1 S1 B57600 M501 M911 S21 R22.5 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" M929 S3 P"/macros/SERVICE/log/STPL_DEBUG.txt" M17
i have tested with 4 more boards with me all the 8 boards show same problem of noise on Y drive whenever Z moves irrespective of Z speed.
here is my invoice conforming on my original board purchase.
kindly tell me how to proceed, as none of the board is working well & I am confident about the config declaration of motors.
I have also observed that whenever Yaxis gets this extra pulses due to Z move, after that on homing Y axis, its displays values like -0.6 or -0.0 depending upon its position.Please respond at the earliest here, as I have a customer to respond to & I am stuck with the board isssue.
-
@droftarts @T3P3Tony @Phaedrux @dc42
I am waiting for your response. -
@R006 said in Duet 2Wifi Board: 3 Z-Axis configuration create problem:
Your config:
M350 Z16 E16 I1 ; configure microstepping with interpolation M92 X160.00 Y160.00 Z2133.33 E932.00 ; set steps per mm ;change as per machine M566 X720.00 Y720.00 Z300.00 E600.00 ; set maximum instantaneous speed changes/jerk (mm/min) M203 X8400.00 Y8400.00 Z420.00 E8400.00 ; set maximum speeds (mm/min) M201 X3000.00 Y3000.00 Z30.00 E250.00 ; set accelerations (mm/s^2) ;M-curr M906 X2200 Y2200 Z1600 E800 I30 ; set motor currents (mA) and motor idle factor in per cent
I think the problem is EMF when the motors start and stop, caused by the high jerk setting and the high step rate on the Z axis.
Your Z has 16x microstepping with 2133.33 steps per mm, jerk is 300mm/min (5mm/s), acceleration is 30mm/s^2 and top speed is 420mm/min (7mm/s) (it was 1800mm/min or 30mm/s in your first config.g). Any move will start at 5mm/s, and (if my maths is correct) it takes 0.066s and 0.4mm to get to 7mm/s. At 5mm/s, the step rate is 10.666kHz, at 7mm/s it is 14.9kHz. So it's not really accelerating, more just starting at full speed!
I checked using the specification from MotionKing for your motor https://www.motionking.com/Products/Hybrid_Stepper_Motors/2-phase/17H2A_Stepper_Motor_42mm_1.8degree.htm and the RepRapFirmware EMF calculator https://www.reprapfirmware.org/emf.html, and when running I think the axis should be okay, even at 12V, and should be okay up to around 840mm/min (14mm/s). This doesn't calculate problems when starting and stopping, though.
At what point in the Z move does the step on Y occur? If it is at the start or, more likely, end of the move, I think it's likely the high jerk is causing a voltage spike. You said you saw a single pulse/spike signal, but not when.
Try reducing jerk. Start with
M566 Z6
(6mm/min, or 0.1mm/s), which is a more normal figure for an axis with a high step rate. If that works without causing a move in Y, try increasing it if you need more performance. While the motor may be able to use high jerk with no load, once in the machine and under load, I would expect that jerk would need to be reduced to avoid skipping steps at the beginning of the move.Further questions:
What voltage PSU are you using?
Are you using the same PSU for the Duet and external stepper drivers?
If you are using different PSUs, have you connected the negative terminals of the two PSUs together, so there is a common ground?Ian
-
@R006 said in Duet 2Wifi Board: 3 Z-Axis configuration create problem:
;SKEW
M556 Y1.1 S50.0@dc42 just pointed out to me that you have this line in config.g, and is likely the source of the problem. It wasn't visible in the first config.g you posted. See https://docs.duet3d.com/en/User_manual/Reference/Gcodes#m556-axis-skew-compensation
The X, Y and Z figures are the number of millimeters of the short side of the triangle that represents how out of true a pair of axes is. The X figure is the error between X and Y, the Y figure is the error between Y and Z, and the Z figure is the error between X and Z. Positive values indicate that the angle between the axis pair is obtuse, negative acute.
The Y value is the skew in YZ. So Z moves will cause a movement in Y. Comment this line out.
Ian
-
@droftarts
David seems to be absolutely right. Thank you both of you!
When I set skew factor 0, this problem doesn't appear.now my question is , if skew is enabled , after some printing or moves, Y position changes. On HOMEY, I see Y position as -0.6 or so. How do I set it to 0 on Yhome?
Ideally, on Homing, position should be 0, right? Please revert on this.
(note: atimes this negative value is -0.0, -0.6, -1.9 etc, on homing Y)Thanks & Regards,
R006 -
@R006 Homing Y will set the Y axis to zero at the point of triggering the Y axis endstop, regardless of Z height. If you have skew in YZ enabled, homing Y at Z0 (ie Z is already homed before Y) will cause Y to have a different offset from the bed when compared to homing Y at Z100. Either always home Y before Z (because no skew is applied if Z is unhomed), or if Z is homed before Y, always home at the same Z height.
If you want to home Y when Z is already homed, but at different Z heights, you can work out the Y offset for each Z height, and apply a Y offset to the Y axis after homing, by sending an G92 command with the Y offset. You could even use Meta Gcode to calculate the offset based on the skew value and the current Z height.
Ian
-
@droftarts
okay.
Where (in which file) can I add skew compensation? -
@R006 In config.g. If your machine is not square, it is not square all the time.
Ian