Duet 2Wifi Board: 3 Z-Axis configuration create problem
-
@Phaedrux
M1122024-02-21 10:04:42 [debug] RepRapFirmware for Duet 2 WiFi/Ethernet MOD. By STPL version 3.4.0beta3 (2023-08-17 14:30:25) running on Duet WiFi 1.02 or later 2024-02-21 10:04:42 [debug] Board ID: 08DLM-996RU-N8PS0-6J9F8-3SN6M-KVVMR 2024-02-21 10:04:42 [debug] Used output buffers: 3 of 24 (24 max) 2024-02-21 10:04:42 [debug] === RTOS === 2024-02-21 10:04:42 [debug] Static ram: 23940 2024-02-21 10:04:42 [debug] Dynamic ram: 75676 of which 0 recycled 2024-02-21 10:04:42 [debug] Never used RAM 9248, free system stack 100 words 2024-02-21 10:04:42 [debug] Tasks: 2024-02-21 10:04:42 [debug] NETWORK(ready,14.0%,199) 2024-02-21 10:04:42 [debug] HEAT(notifyWait,0.0%,140) 2024-02-21 10:04:42 [debug] Move(notifyWait,1.0%,297) 2024-02-21 10:04:42 [debug] MAIN(running,84.9%,317) 2024-02-21 10:04:42 [debug] IDLE(ready,0.0%,29) 2024-02-21 10:04:42 [debug] , total 100.0% Owned mutexes: 2024-02-21 10:04:42 [debug] Aux(MAIN) 2024-02-21 10:04:42 [debug] === Platform === 2024-02-21 10:04:42 [debug] Last reset 22:16:10 ago, cause: power up 2024-02-21 10:04:42 [debug] Last software reset time unknown, reason: User, GCodes spinning, available RAM 11928, slot 1 2024-02-21 10:04:42 [debug] Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0041f000 BFAR 0xe000ed38 SP 0x00000000 Task MAIN Freestk 0 n/a 2024-02-21 10:04:42 [debug] Error status: 0x0c 2024-02-21 10:04:42 [debug] Aux0 errors 0,0,0 2024-02-21 10:04:42 [debug] Step timer max interval 0 2024-02-21 10:04:42 [debug] MCU temperature: min 30.0, current 30.3, max 30.7 2024-02-21 10:04:42 [debug] Supply voltage: min 23.8, current 24.3, max 24.7, under voltage events: 0, over voltage events: 0, power good: yes 2024-02-21 10:04:42 [debug] Heap OK, handles allocated/used 99/1, heap memory allocated/used/recyclable 2048/14/0, gc cycles 0 2024-02-21 10:04:42 [debug] Driver 0: position 42246, ok, SG min/max not available 2024-02-21 10:04:42 [debug] Driver 1: position 38649, ok, SG min/max not available 2024-02-21 10:04:42 [debug] Driver 2: position 14123, standstill, SG min/max not available 2024-02-21 10:04:42 [debug] Driver 3: position 0, standstill, SG min/max not available 2024-02-21 10:04:42 [debug] Driver 4: position 0, standstill, SG min/max not available 2024-02-21 10:04:42 [debug] Driver 5: position 0 2024-02-21 10:04:42 [debug] Driver 6: position 0 2024-02-21 10:04:42 [debug] Driver 7: position 0 2024-02-21 10:04:42 [debug] Driver 8: position 0 2024-02-21 10:04:42 [debug] Driver 9: position 0 2024-02-21 10:04:42 [debug] Driver 10: position 0 2024-02-21 10:04:42 [debug] Driver 11: position 0 2024-02-21 10:04:42 [debug] Date/time: 2024-02-21 10:04:42 [debug] 2024-02-21 10:04:42 2024-02-21 10:04:42 [debug] Cache data hit count 4294967295 2024-02-21 10:04:42 [debug] Slowest loop: 8.19ms; fastest: 0.18ms 2024-02-21 10:04:42 [debug] I2C nak errors 0, send timeouts 0, receive timeouts 0, finishTimeouts 0, resets 0 2024-02-21 10:04:42 [debug] === Storage === Free file entries: 8 2024-02-21 10:04:42 [debug] SD card 0 detected, interface speed: 20.0MBytes/sec 2024-02-21 10:04:42 [debug] SD card longest read time 2.0ms, write time 1.0ms, max retries 0 2024-02-21 10:04:42 [debug] === Move === DMs created 83, segments created 15, maxWait 0ms, bed compensation in use: none, comp offset 0.000 2024-02-21 10:04:42 [debug] === MainDDARing === Scheduled moves 14329, completed moves 14324, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state 3 2024-02-21 10:04:42 [debug] === AuxDDARing === Scheduled moves 0, completed moves 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1 2024-02-21 10:04:42 [debug] === Heat === Bed heaters = 2024-02-21 10:04:42 [debug] 0 2024-02-21 10:04:42 [debug] -1 2024-02-21 10:04:42 [debug] -1 2024-02-21 10:04:42 [debug] -1 2024-02-21 10:04:42 [debug] , chamberHeaters = 2024-02-21 10:04:42 [debug] -1 2024-02-21 10:04:42 [debug] -1 2024-02-21 10:04:42 [debug] -1 2024-02-21 10:04:42 [debug] -1 2024-02-21 10:04:42 [debug] Heater 0 is on, I-accum = 0.2 2024-02-21 10:04:42 [debug] Heater 1 is on, I-accum = 0.4 2024-02-21 10:04:42 [debug] === GCodes === 2024-02-21 10:04:42 [debug] Segments left: 1 2024-02-21 10:04:42 [debug] Movement lock held by null 2024-02-21 10:04:42 [debug] HTTP is idle in state(s) 0 2024-02-21 10:04:42 [debug] Telnet is idle in state(s) 0 2024-02-21 10:04:42 [debug] File is doing "G1 X264.039 Y247.89 E1.1394" in state(s) 0 2024-02-21 10:04:42 [debug] USB is idle in state(s) 0 2024-02-21 10:04:42 [debug] Aux is ready with "M122" in state(s) 0 2024-02-21 10:04:42 [debug] Trigger is idle in state(s) 0 2024-02-21 10:04:42 [debug] Queue is idle in state(s) 0 2024-02-21 10:04:42 [debug] LCD is idle in state(s) 0 2024-02-21 10:04:42 [debug] Daemon is idle in state(s) 0 2024-02-21 10:04:42 [debug] Autopause is idle in state(s) 0 2024-02-21 10:04:42 [debug] Code queue is empty 2024-02-21 10:04:42 [debug] === Filament sensors === 2024-02-21 10:04:42 [debug] Extruder 0 sensor: ok 2024-02-21 10:04:42 [debug] === Network === 2024-02-21 10:04:42 [debug] Slowest loop: 201.09ms; fastest: 0.07ms 2024-02-21 10:04:42 [debug] Responder states: 2024-02-21 10:04:42 [debug] HTTP(0) 2024-02-21 10:04:42 [debug] HTTP(0) 2024-02-21 10:04:42 [debug] HTTP(0) 2024-02-21 10:04:42 [debug] HTTP(0) 2024-02-21 10:04:42 [debug] FTP(0) 2024-02-21 10:04:42 [debug] Telnet(0), 0 sessions 2024-02-21 10:04:42 [debug] HTTP sessions: 1 of 8 2024-02-21 10:04:42 [debug] - WiFi - Network state is active 2024-02-21 10:04:42 [debug] WiFi module is connected to access point 2024-02-21 10:04:42 [debug] Failed messages: pending 0, notready 0, noresp 1 2024-02-21 10:04:42 [debug] WiFi firmware version 1.27 2024-02-21 10:04:42 [debug] WiFi MAC address 48:3f:da:a6:ee:20 2024-02-21 10:04:42 [debug] WiFi Vcc 3.42, reset reason Power up 2024-02-21 10:04:42 [debug] WiFi flash size 2097152, free heap 26032 2024-02-21 10:04:42 [debug] WiFi IP address 192.168.0.101 2024-02-21 10:04:42 [debug] WiFi signal strength -69dBm, mode 802.11n, reconnections 0, sleep mode modem 2024-02-21 10:04:42 [debug] Clock register 00002002 2024-02-21 10:04:42 [debug] Socket states: 2024-02-21 10:04:42 [debug] 0 2024-02-21 10:04:42 [debug] 0 2024-02-21 10:04:42 [debug] 0 2024-02-21 10:04:42 [debug] 0 2024-02-21 10:04:42 [debug] 0 2024-02-21 10:04:42 [debug] 0 2024-02-21 10:04:42 [debug] 0 2024-02-21 10:04:42 [debug] 0
M98 P"config.g"
2024-02-21 10:07:14 [debug] WiFi module stopped 2024-02-21 10:07:14 [debug] HTTP is enabled on port 80 2024-02-21 10:07:14 [debug] FTP is disabled 2024-02-21 10:07:14 [debug] TELNET is disabled 2024-02-21 10:08:13 [debug] Done printing file 2024-02-21 10:08:13 [debug] Done printing file 2024-02-21 10:08:13 [warn] Cancelled printing file 1:/gcodes/new/20-2/300_50 cube_acc500_j5_ps_100.gcode, print time was 7h 47m 2024-02-21 10:08:13 [warn] Error: G0/G1: insufficient axes homed 2024-02-21 10:08:13 [info] G10 P0 X0 Y0 Z0 2024-02-21 10:08:13 [info] G10 P0 R0 S0 2024-02-21 10:08:13 [warn] Warning: Heater 1 appears to be over-powered. If left on at full power, its temperature is predicted to reach 767C 2024-02-21 10:08:13 [info] G10 L2 P1 X0.00 Y0.00 Z0.00 2024-02-21 10:08:13 [info] G10 L2 P2 X0.00 Y0.00 Z0.00 2024-02-21 10:08:13 [info] G10 L2 P3 X0.00 Y0.00 Z0.00 2024-02-21 10:08:13 [info] G10 L2 P4 X0.00 Y0.00 Z0.00 2024-02-21 10:08:13 [info] G10 L2 P5 X0.00 Y0.00 Z0.00 2024-02-21 10:08:13 [info] G10 L2 P6 X0.00 Y0.00 Z0.00 2024-02-21 10:08:13 [info] G10 L2 P7 X0.00 Y0.00 Z0.00 2024-02-21 10:08:13 [info] G10 L2 P8 X0.00 Y0.00 Z0.00 2024-02-21 10:08:13 [info] G10 L2 P9 X0.00 Y0.00 Z0.00 2024-02-21 10:08:13 [info] Event logging stopped 2024-02-21 10:08:13 [info] Event logging started at level debug 2024-02-21 10:08:13 [info] Running: Duet WiFi 1.02 or later: 3.4.0beta3 (2023-08-17 14:30:24) 2024-02-21 10:08:13 [debug] STPL-INFD300 - Print your imagination!
-
@R006 so what external drivers are you using on the expansion header for the motors you are connecting there.
Also a note you are using custom RRF, have you tested with stock RRF?
-
@T3P3Tony
external driver: Motion king stepper motor drive model no. 2L415Byes we have tested with stock RRF.
-
@R006 is it a genuine Duet3D board? Which version of RRF did you test with? Try 3.4.6 https://github.com/Duet3D/RepRapFirmware/releases/tag/3.4.6
Ian
-
@droftarts
yes it is.
i tried with 3.4.4 & 3.4.6 RRF version standard RRF.I even tried to configure 2 motor in Z with same configuration, but again on Z movement, Y axis gets some random pulse.
Tried with 3 different duet 2 WIFI boards and observed this problem repeatedly, when the Z travel more then 5-10 mm then Y motor rotates intermittently, due to some random pulse signals on it,
Could you please try at your end, by configuring 3 different Z motors, oneY and one X, run 4 stepper motors with just the board? (temporarily just mark Z0, Y0 X0 using G92 & move Z axis by 5mm, then Y axis gets some pulse? IF you hold the motor shaft, you might feel it. You can also monitor the Y axis pins on DSO to see this.
NOTE: External driver was only used for Extruder. I was using onboard drivers for axes.
-
-
@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?