X Axis stops working after moving Y
-
Hi!
I bought a half-finished Workbee last year and I finally got it assembled and all 3 axis moving.
However after a short period of time - Often times as soon as i move the Y axis - My X Axis stops working.
The motor will just emit a "humming" noise instead. I uploaded a short clip of the issue here.I tried flipping the connectors on the board for the Z and X axis and that moves the issue to the Z axis instead. This to me indicates a problem with the Duet board or my config and not the machine.
Bonus info: After the axis stops working I'm able to turn the screw with my fingers. The other axis are all "locked" when idling.
I found this post from someone with what sounds like the same issue and he got it fixed by updating the firmware. I was running RRF 3.3 before and updating to RRF 3.4 sadly didn't help.
Any ideas what to try next?
Hardware
Machine: Lead 1510 Workbee (RatRig according to the seller)
Controller: Duet 2 Wifi
Power supply: 400w 24v (Also tested with 600w 12v PSU, same issue)
Steppers: 1* Z, 1* X, 2* Y
Limit switches: 1 for each axisconfig-axes.g:
M584 X0 Y1:3 Z2 ; Apply drive mapping to axes M584 P3. M906 X2400 Y2400 Z2400 I100 ; Set motor currents (mA) M92 X400 Y400 Z400 ; Set steps per mm M350 X16 Y16 Z16 U16 I1 ; Configure microstepping M203 X2500 Y2500 Z2500 ; Set maximum speeds (mm/min) M201 X150 Y150 Z150 ; Set accelerations (mm/s^2) M566 X500 Y500 Z500 ; Set maximum instantaneous speed changes (mm/min) M669 K0 X1:0:0:0 Y0:1:0:1 Z0:0:1:0
M122 Output right after axis stopped moving
m122 === Diagnostics === RepRapFirmware for Duet 2 WiFi/Ethernet version 3.4.0 (2022-03-15 18:58:31) running on Duet WiFi 1.02 or later Board ID: 08DGM-956GU-DJ3SN-6J9F6-3S46N-1VQZH Used output buffers: 3 of 24 (19 max) === RTOS === Static ram: 23868 Dynamic ram: 73384 of which 12 recycled Never used RAM 11864, free system stack 148 words Tasks: NETWORK(ready,14.1%,238) HEAT(notifyWait,0.0%,387) Move(notifyWait,0.0%,305) MAIN(running,85.5%,514) IDLE(ready,0.4%,30), total 100.0% Owned mutexes: WiFi(NETWORK) === Platform === Last reset 00:04:36 ago, cause: power up Last software reset at 2022-03-20 21:01, reason: User, GCodes spinning, available RAM 13336, slot 2 Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0041f000 BFAR 0xe000ed38 SP 0x00000000 Task MAIN Freestk 0 n/a Error status: 0x00 Step timer max interval 0 MCU temperature: min 20.9, current 28.5, max 28.8 Supply voltage: min 24.1, current 24.2, max 24.4, under voltage events: 0, over voltage events: 0, power good: yes Heap OK, handles allocated/used 99/1, heap memory allocated/used/recyclable 2048/24/0, gc cycles 0 Events: 0 queued, 0 completed Driver 0: standstill, SG min 0 Driver 1: standstill, SG min 131 Driver 2: standstill, SG min 53 Driver 3: standstill, SG min 122 Driver 4: standstill, SG min n/a Driver 5: Driver 6: Driver 7: Driver 8: Driver 9: Driver 10: Driver 11: Date/time: 2022-03-27 20:02:36 Cache data hit count 4294967295 Slowest loop: 7.24ms; fastest: 0.18ms I2C nak errors 0, send timeouts 0, receive timeouts 0, finishTimeouts 0, resets 0 === Storage === Free file entries: 10 SD card 0 detected, interface speed: 20.0MBytes/sec SD card longest read time 2.6ms, write time 0.0ms, max retries 0 === Move === DMs created 83, segments created 4, maxWait 235337ms, bed compensation in use: none, comp offset 0.000 === MainDDARing === Scheduled moves 34, completed 34, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 20], CDDA state -1 === AuxDDARing === Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1 === Heat === Bed heaters -1 -1 -1 -1, chamber heaters -1 -1 -1 -1, ordering errs 0 === GCodes === Segments left: 0 Movement lock held by null HTTP is idle in state(s) 0 Telnet is idle in state(s) 0 File is idle in state(s) 0 USB is idle in state(s) 0 Aux is idle in state(s) 0 Trigger is idle in state(s) 0 Queue is idle in state(s) 0 LCD is idle in state(s) 0 Daemon is idle in state(s) 0 Autopause is idle in state(s) 0 Code queue is empty === Network === Slowest loop: 120.40ms; fastest: 0.00ms Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0), 0 sessions HTTP sessions: 1 of 8 - WiFi - Network state is active WiFi module is providing access point Failed messages: pending 0, notready 0, noresp 0 WiFi firmware version 1.26 WiFi MAC address be:dd:c2:63:67:12 WiFi Vcc 3.33, reset reason Turned on by main processor WiFi flash size 4194304, free heap 20504 WiFi IP address 192.168.0.70 Connected clients 2 Clock register 00002002 Socket states: 0 0 0 0 0 0 0 0
-
In your config you have the type of printer specified as Cartesian.
So your X stepper is mounted to the Y gantry and moves front/back as the Y axis moves? Is that correct?
If so, I would suspect that you may have an intermittent connection to the X stepper that is affected by the Y axis movement.
Frederick
-
@fcwilt Correct.
That was my first assumption as well. I checked and redid all connections but the issue is still there.
Also as mentioned - If I switch X and Z around, the problem moves to the Z axis and now the X axis works just fine. -
Another thing I noticed today: After moving the Y axis the motors will emit a certain high frequency sound while idling.
After a while that sound stops and then I'm yet again able to move the X axis. -
@dc said in X Axis stops working after moving Y:
Another thing I noticed today: After moving the Y axis the motors will emit a certain high frequency sound while idling.
After a while that sound stops and then I'm yet again able to move the X axis.I notice that in one of the M584 commands you have Y1:3.
Below that you have M584 P3.
That's two axes Y and P referencing the same stepper. Also I have no idea what the period after the P would mean.
Is that intentional?
Frederick
-
@fcwilt I have no idea what that is supposed to to. I can't remember adding it but I might have copy pasted a bit too much when I was setting up the dual Y axis.
I'll try to remove it as soon as I have a few minutes, thanks!
-
@fcwilt P allows you to hide axis so they aren't visible in DWC https://docs.duet3d.com/en/User_manual/Reference/Gcodes#m584-set-drive-mapping
In this instance it isn't required.@DC can you post your full config?
I don't see why M669 K0 etc is required on a standard workbee setup -
@dc said in X Axis stops working after moving Y:
Remove this line (unnecessary):
M584 P3.
Remove U16 from this line (potentially confusing firmware):
M350 X16 Y16 Z16 U16 I1 ; Configure microstepping
Remove this line (unnecessary, potentially confusing firmware):
M669 K0 X1:0:0:0 Y0:1:0:1 Z0:0:1:0
If that doesn't help, post your full config.g and any macros run from it. Also send
M98 P"config.g"
and post response.Ian
-
@jay_s_uk said in X Axis stops working after moving Y:
@fcwilt P allows you to hide axis so they aren't visible in DWC https://docs.duet3d.com/en/User_manual/Reference/Gcodes#m584-set-drive-mapping
Thanks - I had forgotten about that.
Frederick
-
Remove U16 from this line (potentially confusing firmware):
M350 X16 Y16 Z16 U16 I1 ; Configure microstepping
Remove this line (unnecessary, potentially confusing firmware):
M669 K0 X1:0:0:0 Y0:1:0:1 Z0:0:1:0
Woohoo! That seems to have been it - I'm now able to move all 3 axis again and again and again... Thanks a lot for the suggestions everyone!
Can anybody explain to me what the proper setting for M350 should be or how I figure it out?
And what is the purpose of M669? Why shouldn't kinematics be set to cartesian on my Workbee?And last but not least; Does anyone happen to have a link to a full 3.4 config for a setup matching mine?
Sincerely,
Daniel -
@dc said in X Axis stops working after moving Y:
Can anybody explain to me what the proper setting for M350 should be or how I figure it out?
Well generally you need the letters for each axis, in your case X, Y, Z, and the letters for your extruders (usually E0 and/or E1).
Some folks put one M350 for the axes and another for the extruders.
I've never used anything but 16x on the axes and extruders and I1 to enable interpolation. The reason for always using 16x was the the boards I started with, Duet 2 WiFi, only supported interpolation for 16x.
If there is some really good reason for using other than 16x I have not read about it. Others may have a better understanding and will chime in.
And what is the purpose of M669? Why shouldn't kinematics be set to cartesian on my Workbee?
M669 K0 is a quick way of setting the X, Y, Z parameters for a Cartesian. You can use X, Y, Z if you know what they should be for a given kinematics. But having K0 and the X, Y, Z parameters is redundant and possible troublesome if the K value specifies one set of X, Y, Z values and you specify another set with the X, Y, Z parameters.
Frederick
-
@fcwilt said in X Axis stops working after moving Y:
I've never used anything but 16x on the axes and extruders and I1 to enable interpolation. The reason for always using 16x was the the boards I started with, Duet 2 WiFi, only supported interpolation for 16x.
16x it is
M669 K0 is a quick way of setting the X, Y, Z parameters for a Cartesian. You can use X, Y, Z if you know what they should be for a given kinematics. But having K0 and the X, Y, Z parameters is redundant and possible troublesome if the K value specifies one set of X, Y, Z values and you specify another set with the X, Y, Z parameters.
That makes sense, thanks for the explanation!
-
@dc cartesian is also the default kinematics, no M669 needed.
Ian
-