Independent Y and Z Motors not working
-
@bearer From wiki: RepRapFirmware does not support individual motor settings where an axis has multiple motors connected to different stepper drivers. The first parameter specified will be used for all motors on the axis. You should use identical motors on any axis that has more than one motor to avoid unexpected behaviour.
Example: If you have two motors on your Z axis, physically connected to Z and E0 stepper drivers, configured with M584 Z2:3, set M92 Z80, not M92 Z80:80
-
@Jim46 It's most likely the position of the M584 within your config.g file. It must come earlier than any M350 or M906 commands. I'm not sure if assigning additional motors to axes works the same as if you create new axes, but to be safe I'd suggest you put the M584 before any M92, M201, M203, M208, M350, M566, M574, M667 and M669 commands.
Failing that, suggest you post your entire config.g.
-
Hi All, thanks for your help. In the following config.g set up... X1 motor runs well +/- Trying to run the Y or Z motors causes the Status to show busy for a long time. Nothing else works when busy.
; Configuration file for Duet 3 (firmware version 3) ; executed by the firmware on start-up ;System on 05/08/20 ; generated by RepRapFirmware Configuration Tool v2.1.8 on Mon May 04 2020 10:26:28 GMT-0600 (Mountain Daylight Time) ; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"duet3" ; set printer name ; Network M552 P0.0.0.0 S1 ; enable network and acquire dynamic address via DHCP 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 M569 P4 S1 ; physical drive 4 goes forwards M569 P5 S1 ; physical drive 5 goes forwards M584 E0 X1 Y2:3 Z4:5 ; set drive mapping dual y on 2&3 + dual z on 4+5 M350 X16 Y16 Z16 I1 ; configure microstepping with interpolation M92 X53.33 Y53.33:53.33 Z53.33:53.33 E400 ; set steps per mm M566 X900 Y900:900 Z12:12 E2000 ; set maximum instantaneous speed changes (mm/min) M203 X6000 Y6000:6000 Z180:180 E6000 ; set maximum speeds (mm/min) M201 X500 Y5000:5000 Z20:20 E3000 ; set accelerations (mm/s^2) M906 X800 Y800:800 Z800:800 I30 ; set motor currents (mA) and motor idle factor in per cent M84 S30 ; time out ; Axis Limits M208 X0 Y0 Z0 S1 ; set axis minima M208 X1000 Y1000 Z1000 S0 ; set axis maxima ; Endstops M574 X1 S1 P"io1.in" M574 Y1 S1 P"io2.in" M574 Z1 S1 P"io3.in" ; Z-Probe M558 P0 H5 F120 T6000 ; disable Z probe but set dive height, probe speed and travel speed M557 X0:1000 Y0:1000 S50 ; define mesh grid ; Heaters ; Fans ; Tools ; Custom settings are not defined M302 P1 ; allow cold extusion (clay is cold)
Hope this helps,
Jim -
@Jim46 said in Independent Y and Z Motors not working:
M92 X53.33 Y53.33:53.33 Z53.33:53.33 E400 ; set steps per mm M566 X900 Y900:900 Z12:12 E2000 ; set maximum instantaneous speed changes (mm/min) M203 X6000 Y6000:6000 Z180:180 E6000 ; set maximum speeds (mm/min) M201 X500 Y5000:5000 Z20:20 E3000 ; set accelerations (mm/s^2) M906 X800 Y800:800 Z800:800 I30 ; set motor currents (mA) and motor idle factor in per cent
You only need one value for the Y and Z motors.
Like this:
M92 X53.33 Y53.33 Z53.33 E400 ; set steps per mm M566 X900 Y900 Z12 E2000 ; set maximum instantaneous speed changes (mm/min) M203 X6000 Y6000 Z180 E6000 ; set maximum speeds (mm/min) M201 X500 Y5000 Z20 E3000 ; set accelerations (mm/s^2) M906 X800 Y800 Z800 I30 ; set motor currents (mA) and motor idle factor in per cent
-
@Phaedrux said in Independent Y and Z Motors not working:
You only need one value for the Y and Z motors.
that was just a long shot from me, started out with just the one value which didnt't work either.
-
; Configuration file for Duet 3 (firmware version 3) ; executed by the firmware on start-up ;System on 05/10/20 ; generated by RepRapFirmware Configuration Tool v2.1.8 on Mon May 04 2020 10:26:28 GMT-0600 (Mountain Daylight Time) ; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"duet3" ; set printer name ; Network M552 P0.0.0.0 S1 ; enable network and acquire dynamic address via DHCP M586 P0 S1 ; enable HTTP M586 P1 S0 ; disable FTP M586 P2 S0 ; disable Telnet ; Drives M584 E0 X1 Y2:3 Z4:5 ; set drive mapping dual y on 2&3 + dual z on 4+5 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 M569 P4 S1 ; physical drive 4 goes forwards M569 P5 S1 ; physical drive 5 goes forwards ;M584 E0 X1 Y2:3 Z4:5 ; set drive mapping dual y on 2&3 + dual z on 4+5 M350 X16 Y16 Z16 I1 ; configure microstepping with interpolation M92 X53.33 Y53.33 Z53.33 E400 ; set steps per mm ;M92 X53.33 Y53.33:53.33 Z53.33:53.33 E400 ; set steps per mm M566 X900 Y900 Z12 E2000 ; set maximum instantaneous speed changes (mm/min) M203 X6000 Y6000 Z180 E6000 ; set maximum speeds (mm/min) M201 X500 Y5000 Z20 E3000 ; set accelerations (mm/s^2) M906 X800 Y800 Z800 I30 ; set motor currents (mA) and motor idle factor in per cent M84 S30 ; time out ; Axis Limits M208 X0 Y0 Z0 S1 ; set axis minima M208 X1000 Y1000 Z1000 S0 ; set axis maxima ; Endstops M574 X1 S1 P"io1.in" M574 Y1 S1 P"io2.in" M574 Z1 S1 P"io3.in" ; Z-Probe M558 P0 H5 F120 T6000 ; disable Z probe but set dive height, probe speed and travel speed M557 X0:1000 Y0:1000 S50 ; define mesh grid ; Heaters ; Fans ; Tools ; Custom settings are not defined M302 P1 ; allow cold extusion (clay is cold)
Hi Phaedrux,
I made the changes you recommended and it improved the results,
X motor moved +/- well
Y motors moved +/- well
Z motors when commanded did not move; however the Y motors moved slowly.
Clearly not right, yet I can't see anything that causes this.
Ideas? -
@Jim46 said in Independent Y and Z Motors not working:
M350 X16 Y16 Z16 I1 ; configure microstepping with interpolation
You're missing
E16
here.@Jim46 said in Independent Y and Z Motors not working:
M906 X800 Y800 Z800 I30 ; set motor currents (mA) and motor idle factor in per cent
You're also missing the motor current for E here.
For your motor currents, target 60-85% of the motors rated value to ensure smooth clean motion. Are your Z motors different than the other motors? Do they require more current?
How do you have the Z motors connected?
If you connect the Z motors to other drivers, do the motors work then?
If you connect the X and Y motor to the Z drivers, do they move then?
-
Hi Phaedrux,
I made the M350 change, it now reads:
M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolationI'm running NEMA23 motors from OpenBuilds on all axes. They have, I think, a Rated Current DC 3.0A/Phase.
https://openbuildspartstore.com/nema-23-stepper-motor-high-torque-series/
Presently, on the Duet3D 1.0 board (connected to RPi4 using the Duet microSD card), the:
X motor is on Driver 1
Y motor 1 is on Driver 2
Y motor 2 is on Driver 3
Z motor 1 is on Driver 4
Z motor 2 is on Driver 5In the single motor mode, I was successful moving all motors +/- using
M584 E0 X1 Y2 Z4 as you see no Drive 3 and 5
Then, I used this
M584 E0 X1 Y3 Z5 as you see no Drive 2 and 4Yet when trying dual mapping
M584 E0 X1 Y2:3 Z4:5 ; set drive mapping dual y on 2&3 + dual z on 4+5
This is when the problem occurs of Y moving slowly when Z commands are sent.
I switched the Y (was on Drives 2 & 3) and Z motors ( was on Drivers 4 &5) are now Y motors connected to Drivers 4 & 5, and Z motors connected to Drivers 2 & 3. The motors connected to Drivers 2 & 3 run +/- smoothly when a Y command is given. They also move +/- slowly when a Z command it given. The motors on Drivers 4 & 5 are not working when in dual mode. Yet, they work in single motor mode.
Any more ideas? (is there something wrong with the board?)
Jim -
@Jim46 said in Independent Y and Z Motors not working:
M906 X800 Y800 Z800 I30
For those motors try increasing your motor currents a bit for testing.
M906 X1600 Y1600 Z1600 E1600 I30
Which is 60% of their rated max. For normal operation you may want to increase that even further.I'm still a little confused on what there would be movement of the Z axis when you're commanding movement of the Y axis.
Just to confirm, the motors are on the test bench and not actually installed in a printer kinematic yet, correct?
How are you commanding movement of the motors?
Are you running any homing macros yet?Can you send M584 in the console by itself and report back with what it says?
Your M584 looks correct and it is early enough in your config.g The only thing that maybe sticks out to me is that the E letter assignment is first, when it would typically be last. So maybe try modifying it to be
M584 X1 Y2:3 Z4:5 E0
Can you also send M122 and report back with that as well?
-
Hello Phaedrux,
Thanks for your suggestions.
I updated the M906 and M584 as suggested.
To clarify; I make commands from the Machine Movement table in the Dashboard.
When I command the X motor on Driver 1 I get nice +/- movement.
When I command, say the +50 on Y, the dual Y motors on Drivers 2 & 3 gives nice +/- movement.
When I command, say the +25 on Z, the dual Z motors on Drivers 4 & 5 DOES NOT move the Z motors. However, the Y motors DO move as if they think they are the Z motors, that is, they move slowly. Again no Z motor movement in the dual motor mode.
Yes, this is a bench set up where I am trying to determine if the motors move correctly when given a command.
No Homing Macros yet. I don't know how to set those up so far.
When I run M122 on the DashBoard, it gives a warning that the "response takes too long" and say see the Console. I open the Console and don't find an M122 event. Therefore, no information.
I updated the RRF Config tool and added the changes recommended.
Here it is,; Configuration file for Duet 3 (firmware version 3) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v2.1.8 on Mon May 11 2020 13:56:00 GMT-0600 (Mountain Daylight Time) ; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"Duet 3" ; set printer name ; Network M552 P0.0.0.0 S1 ; enable network network and acquire dynamnic address via DHCP M586 P0 S1 ; enable HTTP M586 P1 S0 ; disable FTP M586 P2 S0 ; disable Telnet ; Drives M584 X1 Y2:3 Z4:5 E0 ; set drive mapping, dual on Y drives 2&3 and Z drives on 4&5 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 ; physicsl drive 3 goes forwards M569 P4 S1 ; physical drive 4 goes forwards M569 P5 S1 ; physical drive 5 goes forwards M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation M92 X53.33 Y53.33 Z53.33 E400 ; set steps per mm M566 X900.00 Y900.00 Z12.00 E2000 ; set maximum instantaneous speed changes (mm/min) M203 X6000.00 Y6000.00 Z180.00 E6000 ; set maximum speeds (mm/min) M201 X500.00 Y500.00 Z20.00 E3000 ; set accelerations (mm/s^2) M906 X1600 Y1600 Z1600 E1600 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 X1000 Y1000 Z1000 S0 ; set axis maxima ; Endstops ; WARNING: No endstops configured ; Z-Probe M558 P0 H5 F120 T6000 ; disable Z probe but set dive height, probe speed and travel speed M557 X0:1000 Y0:1000 S50 ; define mesh grid ; Heaters ; Fans ; Tools ; Custom settings are not defined M302 P1 ; allow cold extrusion (clay is cold)
Thanks again, Jim
-
Hi Phaedrux,
I forgot to report m the M584 command, I just did it and here are the result in the Console. The field is blue and the text reads:
5/12/2020, 11:59:17 AM M584
Driver assignments: X0.1 Y0.2:0.3 Z0.2:0.3 E0.0, 3 axes visible.
That looks a little strange to me. Would it be X0.1 Y0.2:0.3 Z0.4:0.5 E0.0 ??? If this is so, how do you edit that?
Also Side question. Can I use 53.3333 on Line 29 M92 Steps per mm?
Thank you so much,
Jim -
Alright, that confirms my suspicion. At least that explains why Y is moving. I think we need to modify how your M584 is written. The way you have it currently works in RRF2, but in RRF3 we need to specify the board location of the drivers so that it knows if it's on the main board or on a tool board, etc.
Try this
M584 X0.1 Y0.2:0.3 Z0.4:0.5 E0.0
The leading 0 identifies the main board. The number after the period is the driver number on that board.
https://duet3d.dozuki.com/Wiki/Gcode#Section_M584_Set_drive_mapping
In RRF_3, M584 works the same way as in RRF_2, with exception that on Duet 3 the driver on expansion boards are assigned with <board address>.<driver number>. Example: M584 X0 Y1 Z2 E3:4:1.0:1.1 The "0" index for the main board is implicit, this is equivalent to the previous example: M584 X0.0 Y0.1 Z0.2 E0.3:0.4:1.0:1.1
I should have clued into that sooner.
@Jim46 said in Independent Y and Z Motors not working:
Also Side question. Can I use 53.3333 on Line 29 M92 Steps per mm?
Yes, decimal values are supported in Reprap firmware.
-
@Phaedrux said in Independent Y and Z Motors not working:
The leading 0 identifies the main board. The number after the period is the driver number on that board.
he had it like that initially and no drivers worked, removing the 0. resulted in some success. could be changed since RRF3.0 though.
-
@bearer Hmmm. I also thought it was implied for the main board with no leading board identifier, but the result of M584 in the console indicates that either the M584 in config.g is either not being applied or there is another M584 hiding out somewhere else.
-
Greetings,
Up dated M584
M584 X0.1 Y0.2:0.3 Z0.4:0.5 E0.0 ; set drive mapping, dual on Y drives 2&3 and Z drives on 4&5
Ran M584 and came back in console with:
5/12/2020, 3:18:04 PM M584
Driver assignments: X0.1 Y0.2:0.3 Z0.2:0.3 E0.0, 3 axes visible.
To your point, it looks like M584 is not updating the Z drives. How does one find a ghost version of M584? Or, could this be an issue in the firmware?
It seems like we might be near an answer?
jim -
@Jim46 I don't see an M501 in your config.g so that rules out the possibility of it being config_overide.g. Try sending M98 P"config.g". This will run the config.g file again. Then send M584 again and report the result.
-
@Jim46 what version of RRF3 are you using? Send M115 and post reply. Earlier versions had an issue with defining more than one multiple motor axis in one M584 command. Try:
M584 X1 Y2:3 M584 Z4:5 E0
Ian
-
@droftarts said in Independent Y and Z Motors not working:
Earlier versions
it should be 3.0 (possibly 3.0beta-somethin) so you're probably onto something there.
-
To add to Ian's reply, I recommend you upgrade to RRF 3.01-RC12 if you are running an earlier version.
-
Hello All,
Just ran M98 P"config.g" and then M584 yielding...5/12/2020, 4:19:04 PM M584 Driver assignments: X0.1 Y0.2:0.3 Z0.2:0.3 E0.0, 3 axes visible
5/12/2020, 4:22:10 PM M115 FIRMWARE_NAME: RepRapFirmware for Duet 3 v0.6 FIRMWARE_VERSION: 3.0beta11 ELECTRONICS: Duet 3 version v0.6 FIRMWARE_DATE: 2019-10-21b1
Loaded and ran commands from the Dashboard,
M584 X1 Y2:3 M584 Z4:5 E0
Hallelujah! It worked!
X1 X-50 and X+50 ran smoothly!
Y2&3 Y-50 and Y+50 ran smoothly
Z4&5 Z-25 and Z+25 ran the Z motors smoothly, NO effect on the Y motors now!
Gentlemen, please take a big bow and applause from me!
Jim
PS. I imagine that there are a lot of updates coming that I may ask for your help again.