Driver order and slave axis
-
I have finally succeeded, sort of, in configuring my 4th axis to work with WorkBee. Initially I had drivers assigned as X0 Y1:3 Z2 U9 P3. First of all I have tried adding axis A (X0 Y1:3 Z2 A4 U9 P3) but DWC kept crashing so I have not investigated any further. Then I decided to try to use axis W as a simulated rotary, with -360..+360mm travel distance as I'm using it only for indexing, so it could have been OK.
Changing driver assignment to X0 Y1:3 Z2 W4 U9 P4 was not usable as axis U was shown as 4th axis instead of axis W. So I have decided to swap axis U with axis W in config.g and homing scripts. While it apparently worked (I did the configuration last evening), it was actually a total mess that I have discovered just today, when trying to actually machine something. The axis Y homing was completely wrong, with the slave axis not moving during homing - luckily I was ready to click the emergency stop button! Manually resetting the Y axis with G92 Y0 allowed me to properly move it and the two drivers were in sync.
In the end the only solution was to swap the used drivers as well. So now I have X0 Y1:4 Z2 U3 W9 P4 and all the homing scripts updated accordingly. Apparently that implies that the order of the axis mapping to the drivers is very important when trying to independently home master/slave axis configurations, thus allowing X0 Y1 Z2 U3 W4 P5 but not allowing X0 Y1 Z2 U4 W3 P5, needed during the homing, when squaring the gantry.
-
I'm not sure and I'm out with only my phone available, but I'm wondering if the problems you were having were due to the fact that mapping drives doesn't remove their original assignment. So if you use a drive that was originally for an extruder, then you have to explicitly reassign the extruder. HTH
-
@deckingman I have mentioned in my message only the relevant part of the M584 commands. In config.g I have M584 X0 Y1:4 Z2 U3 W9 E5:6 P4. First thing that I did when trying to add the 4th axis was to change previously E4:5:6 to E5:6 and have the board reset after updating config.g.
-
Ah OK. The other thing I wonder is do you have to assign additional axes to the next numerically available number? What I mean is, in your above example you have 0123456 and 9. Should you use 7 instead of 9? Just a guess......
-
@deckingman From what I could see, the dummy axis used only for squaring the gantry is better to be assigned to a missing driver. But, anyway, I have just the Duet Ethernet, so only drivers 0..4.
-
You can assign drivers in any order you like, the firmware doesn't care. What does matter is that you remove any old assignments. The easiest way to do this is to specify the assignment of all axes and the extruder assignment in the M584 command in config.g.
It's also important that any commands to set microstepping or motor currents come after the M584 command.
Finally, any commands that use the new axis letters you created in M584 must come after the M584 command.
From your other post, it appears that DWC has a problem with random assignment of axis letters. I will check that I can reproduce this and ask Chrishamm to fix it. Thanks for your patience.
-
@dc42 Then why M584 X0 Y1:4 Z2 U3 W9 E5:6 P4 works very well and M584 X0 Y1:3 Z2 U4 W9 E5:6 P4 doesn't allow squaring the gantry? Practically, with the second version of the command I see only left Y axis moving during homing, with the right Y axis (that is what W axis is used for!) not moving at all. But that happens only during homing!
This is the homey.g file that works:
M581 Y W S-1 T0 C0
M584 Y1 W4 P5
G91
G1 S1 Y-1500 W-1500 F1000
G0 Y5 W5
G1 S1 Y-10 W-10 F100
G0 Y0.06 ; Gantry squaring offset
M584 Y1:4 W9 P4
G0 Y1
G90
G92 Y0
M581 Y W S1 T0 C0If the config.g line is changed to M584 X0 Y1:3 Z2 U4 W9 E5:6 P4 and the two lines in the homey.g are changed to M584 Y1 W3 P5 and M584 Y1:3 W9 P4, only the stepper assigned to driver 1 is rotating while executing G1 S1 Y-1500 W-1500 F1000.
With the not working assignment, if I manually send G92 Y0 through the console, practically making the firmware consider that the Y axis is homed, any G0 or G1 movement on Y is correctly working. So it seems to be a problem only with the G1 S1 command!
For the DWC bug just change the line in config.g to M584 X0 Y1:4 Z2 A3 W9 E5:6 P4 and you immediately get the crash. No need to set any other parameters for the A axis.
-
-
Did you check that you have the current setting commands etc. after the M584 command? See my previous reply.
-
Are you sure you don't have a faulty driver?
-
-
@dc42 By simply removing the extra axis configuration all worked as before. So no way a driver could be faulty. Even more, with the new working setup I'm using all 5 drivers, all set to 2.4A (all steppers are speced for 3A), and all of them performing as expected.
For now I'm happy that I could find a working configuration that allows me to fully use what I have around. The fact that in the process of making things working I have found a possible problem of the firmware (the one related strictly to G1 S1) is for future users that might need something similar (that also includes me if I need to add extra stuff to my CNC).
Anyway, when the DWC is also sorted out, I will update the WorkBee related stuff with the new configuration files. For now it is really awkward to use the U axis for rotary. I also considered using C axis for dummy (instead of the current W axis) and have a proper B axis for rotary (the 4th axis is parallel to the Y axis in my setup), but after a quick browse through the code I decided that it is not really that safe!
-
@dc42 When talking to Chrishamm, could there be an extra set of jog buttons for 0.01mm steps? When properly aligning the gantry with the machined piece, sometimes it is very important. Right now I have to manually send G0 commands for that! All other CNC software include support for that.
-
@catalin_ro said in Driver order and slave axis:
@dc42 When talking to Chrishamm, could there be an extra set of jog buttons for 0.01mm steps? When properly aligning the gantry with the machined piece, sometimes it is very important. Right now I have to manually send G0 commands for that! All other CNC software include support for that.
I think Chrishamm already said in a post in the DWC Wishlist section of this forum that he has it on his work list to make the jog increments configurable for all axes. In the meantime, you could set up macros to jog 0.01mm.