Configs for PCB PnP for Duet3D 6XD and 3 x 3HC expansion boards
-
@droftarts said in Configs for PCB PnP for Duet3D 6XD and 3 x 3HC expansion boards:
@developeralgo222 Does DWC update the motor position after you send a G1 command? Or any messages in the console? What does M119 report?
I usually send G92 X0 Y0 Z0 to set the axes as homed, then I don't have to send G1 H2 commands, just straight G1.
I'd leave the timing on T5:5:10:10, it shouldn't hurt. 2.5us is at it's limit.
Ian
when i send a command like G1 H2 X10 , DWC will update the distance indicating X has moved but the Actual X motor does not spin to move on the X-axis , Same to Y-Axis
When i did send M119 after that
12/9/2023, 5:34:37 PM: G1 12/9/2023, 5:34:47 PM: G92 X0 Y0 Z0 12/9/2023, 5:35:00 PM: M119: Endstops - X: not stopped, Y: not stopped, Z: at min stop, U: at min stop, V: at min stop, W: at min stop, A: at min stop, B: at min stop, C: not stopped, D: not stopped, a: not stopped, b: not stopped, c: not stopped, d: not stopped, Z probe: at min stop 12/9/2023, 5:38:49 PM: G1 H2 X10 12/9/2023, 5:39:03 PM: G1 H2 X100 12/9/2023, 5:39:19 PM: G1 H2 Y100 12/9/2023, 5:40:50 PM: G1 H2 X500 12/9/2023, 5:41:05 PM: G1 H2 Y500 12/9/2023, 5:41:18 PM: M119: Endstops - X: not stopped, Y: not stopped, Z: at min stop, U: at min stop, V: at min stop, W: at min stop, A: at min stop, B: at min stop, C: not stopped, D: not stopped, a: not stopped, b: not stopped, c: not stopped, d: not stopped, Z probe: at min stop
But still X and Y do not move at all .Not an even 1mm . They are energized and locked
DWC screen shows X and Y moved but nothing is moving.
-
@developeralgo222 I had a look at your wiring, and that looks correct. You mentioned earlier about the motor phases, did you check them? See https://docs.duet3d.com/en/User_manual/Connecting_hardware/Motors_connecting#identifying-the-stepper-motor-phases
Can you show how you have set the DIP switches? From what I can tell, they should be set as:
SW1 = on (86HSE8N motor)
SW2 = on (shouldn't matter, but clockwise)For the microstepping, you've told the Duet to expect 40 steps per mm, and 50mm per revolution. That would be 50x40 = 2000 steps per revolution. The drivers don't seem to have a setting for that, so try 3200. 3200/50 = 64 steps per mm. Change M92 to that, eg
M92 X64 Y64
SW3 = off
SW4 = off
SW5 = on
SW6 = onNote that M350 (microstepping) and M906 (driver current) are irrelevant for external drivers
I've just noticed your jerk, acceleration and maximum speed! These may be way too fast, especially if the driver is on the default 400 steps per revolution. Most likely, it's receiving steps so fast it can't move!
M566 X900.0 Y900.0 Z900.0 U900.0 V900.0 W900.0 A900.0 B900.0 C100.0 D100.0 'A100.0 'B100.0 'C100.0 'D100.0 ; set maximum instantaneous speed changes (mm/min) M203 X126000.00 Y126000.00 Z24000.00 U24000.00 V24000.00 W24000.00 A24000.00 B24000.00 C24000.00 D24000.00 'A24000.00 'B24000.00 'C24000.00 'D24000.00 ; set maximum speeds (mm/min) M201 X50000.00 Y50000.00 Z500.00 U500.00 V500.00 W500.00 A500.00 B500.00 C5000.00 D5000.00 'A5000.00 'B5000.00 'C5000.00 'D5000.00 ; set accelerations (mm/s^2)
All of these are really high, and it may be jerk + acceleration that is stalling the motor. Try:
M566 X300 Y300 M203 X5000 Y5000 M201 X1000 Y1000
If that works, you can test to see how much you can increase those speeds. Though I'd probably go for a higher microstepping value for more accuracy in the X and Y axes.
Ian
-
@droftarts said in Configs for PCB PnP for Duet3D 6XD and 3 x 3HC expansion boards:
@developeralgo222 I had a look at your wiring, and that looks correct. You mentioned earlier about the motor phases, did you check them? See https://docs.duet3d.com/en/User_manual/Connecting_hardware/Motors_connecting#identifying-the-stepper-motor-phases
Can you show how you have set the DIP switches? From what I can tell, they should be set as:
SW1 = on (86HSE8N motor)
SW2 = on (shouldn't matter, but clockwise)For the microstepping, you've told the Duet to expect 40 steps per mm, and 50mm per revolution. That would be 50x40 = 2000 steps per revolution. The drivers don't seem to have a setting for that, so try 3200. 3200/50 = 64 steps per mm. Change M92 to that, eg
M92 X64 Y64
SW3 = off
SW4 = off
SW5 = on
SW6 = onNote that M350 (microstepping) and M906 (driver current) are irrelevant for external drivers
I've just noticed your jerk, acceleration and maximum speed! These may be way too fast, especially if the driver is on the default 400 steps per revolution. Most likely, it's receiving steps so fast it can't move!
M566 X900.0 Y900.0 Z900.0 U900.0 V900.0 W900.0 A900.0 B900.0 C100.0 D100.0 'A100.0 'B100.0 'C100.0 'D100.0 ; set maximum instantaneous speed changes (mm/min) M203 X126000.00 Y126000.00 Z24000.00 U24000.00 V24000.00 W24000.00 A24000.00 B24000.00 C24000.00 D24000.00 'A24000.00 'B24000.00 'C24000.00 'D24000.00 ; set maximum speeds (mm/min) M201 X50000.00 Y50000.00 Z500.00 U500.00 V500.00 W500.00 A500.00 B500.00 C5000.00 D5000.00 'A5000.00 'B5000.00 'C5000.00 'D5000.00 ; set accelerations (mm/s^2)
All of these are really high, and it may be jerk + acceleration that is stalling the motor. Try:
M566 X300 Y300 M203 X5000 Y5000 M201 X1000 Y1000
If that works, you can test to see how much you can increase those speeds. Though I'd probably go for a higher microstepping value for more accuracy in the X and Y axes.
Ian
Updated the config.g, changed Drive Dip Switch settings for microstepping to SW1=ON, SW2=ON, SW3=OFF, SW4=OFF, SW5=ON, SW6=ON and attempted homing commands again and still no movement on X & Y axis
M350 Z16 U16 V16 W16 A16 B16 C16 D16 'A16 'B16 'C16 'D16 I1 ; configure microstepping with interpolation. This is irrelevant for external drives (X & Y ) M92 X64.00 Y64.00 Z8.888 U8.888 V8.888 W8.888 A8.888 B8.888 C8.888 D8.888 'A8.888 'B8.888 'C8.888 'D8.888 ; set steps per mm 50mm/rev M566 X300.0 Y300.0 Z300.0 U300.0 V300.0 W300.0 A300.0 B300.0 C100.0 D100.0 'A100.0 'B100.0 'C100.0 'D100.0 ; set maximum instantaneous speed changes (mm/min) M203 X5000.00 Y5000.00 Z5000.00 U5000.00 V5000.00 W5000.00 A5000.00 B5000.00 C5000.00 D5000.00 'A5000.00 'B5000.00 'C5000.00 'D5000.00 ; set maximum speeds (mm/min) M201 X1000.00 Y1000.00 Z500.00 U500.00 V500.00 W500.00 A500.00 B500.00 C1000.00 D1000.00 'A1000.00 'B1000.00 'C1000.00 'D1000.00 ; set accelerations (mm/s^2) M906 Z600.0 U600.0 V600.0 W600.0 A600.0 B600.0 C500.0 D500.0 'A500.0 'B500.0 'C500.0 'D500.0 I30 ; set motor currents (mA) and motor idle factor in per cent. This is irrelevant for external drives (X & Y )
-
@developeralgo222 I'm running out of ideas. As far as I can tell, there's nothing stopping the Duet sending step pulses to the motor driver, and it thinks the drive is moving, because the axis position is updated.
I am wondering if the motor energising is a red herring, and it's not actually enabling, because it's not going into an alarm condition:
ALM:Alarm indicator light: ... if the red light is flicker three times within 3 seconds, that means position ultra difference or the encoder connector is disconnected.
I don't think it's even registering it should move, because the driver is not enabled. Does the motor energise as soon as power is applied to the driver (with the Duet off), or only once the Duet is turned on?
How is the 3-pin 'Driver active enable select' jumper, next to Driver 1, set? I think the jumper is between EN_POL and GND, which should be correct for this drive:
The Enable output is either low when "on" and high impedance when "off", or vice versa, depending on the position of the 'Driver Enable Polarity' (En_Pol) jumper.
Also try changing M569 R parameter to R0:
Rnnn Driver enable polarity: 0 = active low, 1 = active high, -1 = driver is always disabled and is not monitored (default 0)
Another option is to try disconnecting +5V and -EN from the stepper driver, because external drivers are often active with no signal on the enable line, to allow for simpler systems which only have step and direction outputs.
The only other thing I can think of is to put an oscilloscope on the Duet outputs.
Ian
-
@developeralgo222 said in Configs for PCB PnP for Duet3D 6XD and 3 x 3HC expansion boards:
(2) M98 P"config.g" when sent it disconnects and nothing happens
I would start investigating this issue first, because it is a critical error. You might damage the onboard 5V regulator if it's a overcurrent shutdown...
Other stuff might solve itself after you've found the reason for the disconnects. -
I finally got a MACH 3 Controller board and MACH 3 software to test the X & Y Axis motors( NEMA 34 8.5N.m (86HSE8N-BC38) ) and External Driver (HSS86) . The Motors work fine no issue they are able to move Left to Right on X-axis and Forward and back on Y-axis. Confirming that the following connections from Motor to Driver are correct (NEMA 34 Motor Power & Encoder connections) The only thing i changed for the test is the Signal wiring to comply with the MACH 3 Controller
On Duet 3 6XD
Signal Connection:
External Drive (HSS86) --------> (Cable Color) ------> Duet 3 6XD Drive_x
- PUL+ , DIR+, ENA+, ALM+ --------> (Red) ------> 5V_EXT
- PUL- --------> (Blue) ------> Dx_STEP-
- DIR- --------> (Yellow) ------> Dx_DIR-
- ENA- --------> (Green) ------> Dx_EN-
- ALM- --------> (Black) ------> Dx_ERR
On MACH 3 Control Board with USB Motion Driver RnRMotion.dll installed
Signal Connection:
External Drive (HSS86) --------> (Cable Color) ------> MACH 3 Controller X-axis
- PUL+ --------> (Red) ------> XP
- PUL- --------> (Green) ------> GND
- DIR+ --------> (Yellow) ------> XD
- PUL- to DIR - (Drive side only) ----> (Black)
It seems on MACH 3 if you compare it to Duet 6XD connections it seems they are reversed as @droftarts mentioned
- PUL+ --------> (Red) ------> XP ( Dx_STEP+ )
- DIR+ --------> (Yellow) ------> XD ( Dx_DIR+ )
- ENA+ --------> (Blue) ------> XE ( Dx_ENA+ ) ******?
- ALM+ --------> (Black) ------> XA ( Dx_ALM+ ) ******?
- PUL- , DIR-, ENA- , ALM- --------> (Green) ------> GND
It seems the issue is on the Duet 3 6XD side configuration and the signal connection from the external drive. Not sure how to do this on Duet 6XD
-
@developeralgo222 it looks like the driver is switched the other way around from ‘normal’ drivers, in that it needs a +5V signal with a common ground, rather than having a common +5V that is pulled to ground by a signal. It’s a shame the data sheet is so sparse on details. Where did you find the info on wiring up the Mach 3 controller?
I’ll have to ask @dc42 in the morning if the 6XD can do that.
If you are thinking it’s a configuration error, especially if sending
M98 P"config.g"
causes a reset, create a basic config.g that only sets the X and Y axes.Ian
-
@droftarts said in Configs for PCB PnP for Duet3D 6XD and 3 x 3HC expansion boards:
@developeralgo222 it looks like the driver is switched the other way around from ‘normal’ drivers, in that it needs a +5V signal with a common ground, rather than having a common +5V that is pulled to ground by a signal. It’s a shame the data sheet is so sparse on details. Where did you find the info on wiring up the Mach 3 controller?
Just on youtube and google search , an online user made a demo on how to test the same setup on youtube and someone explained how to connect MACH 3 controller and to NEMA 34 motors
MACH 3 Controller connection to HSS86 Drive + Nema 34 closed Motor
MACH3 Controller installation and Wiring
This is a very simple NEMA 34 closed Loop/External Drive connection to 6XD not sure why it would not work
-
@developeralgo222 does it lock up the same way as when connected to the 6XD? On the Mach3 board there’s nothing connected to enable. I suggested disconnecting the enable wires earlier.
With enable wires connected, M17 enables and M18 disables motors.
Ian
-
@droftarts said in Configs for PCB PnP for Duet3D 6XD and 3 x 3HC expansion boards:
@developeralgo222 does it lock up the same way as when connected to the 6XD? On the Mach3 board there’s nothing connected to enable. I suggested disconnecting the enable wires earlier.
With enable wires connected, M17 enables and M18 disables motors.
Ian
M17: Enable/Power all stepper motors
M18: Disable all stepper motorsDoes this mean it only applies to Open Loop Stepper motors or even closed Loop ?
-
@developeralgo222 Good point, I'm not sure. I don't have an external driver and motor setup to test.
Ian
-
@droftarts said in Configs for PCB PnP for Duet3D 6XD and 3 x 3HC expansion boards:
@developeralgo222 Good point, I'm not sure. I don't have an external driver and motor setup to test.
Ian
Even with M17 included in the config.g for Duet 6XD. it does not move X and Y at all
; Enable All the drives M17 ; Enable All the drives
-
@developeralgo222 I asked this earlier:
Does it lock up the same way when enabled on the Mach3 board, as it does when connected to the 6XD?
On the Mach3 board there’s nothing connected to enable, which would seem to mean it needs an enable low signal. Have you tried disconnecting the enable when connected to the 6XD?Ian
-
@droftarts said in Configs for PCB PnP for Duet3D 6XD and 3 x 3HC expansion boards:
@developeralgo222 I asked this earlier:
Does it lock up the same way when enabled on the Mach3 board, as it does when connected to the 6XD?
On the Mach3 board there’s nothing connected to enable, which would seem to mean it needs an enable low signal. Have you tried disconnecting the enable when connected to the 6XD?Ian
on MACH 3 it locks UP, when you power up and its energized and then when you config and Reset your MACH 3 , it unlocks and you can start jogging the motors right away . Looking at the schematics of the wiring diagram . it seems to indicate that the wiring should be
PUL+ --------> (Red) ------> XP ( Dx_STEP+ )
DIR+ --------> (Yellow) ------> XD ( Dx_DIR+ )
ENA+ --------> (Blue) ------> XE ( Dx_ENA+ ) ******?
ALM+ --------> (Black) ------> XA ( Dx_ALM+ ) ******?
PUL- , DIR-, ENA- , ALM- --------> (Green) ------> GNDHow can it be done on Duet 3 6XD ? . Duet 3 6XD must have a way of doing this ?
-
@developeralgo222 The way that wiring diagram is, is EXACTLY how the 6XD is wired! It has a common +5V going to PUL+, DIR+ and ENA+. Then the PUL-, DIR- and ENA- are wired to the controller pins that pull that +5V to GND when the pin is active. This is the 'normal' way of wiring these drivers.
It's the Mach3 layout that doesn't match this wiring diagram, as it seems to be send +5V signals in to PUL+ and DIR+, and has a common GND connecting PUL- and DIR-.
However, both should work, as it's just sending a signal.@developeralgo222 said in Configs for PCB PnP for Duet3D 6XD and 3 x 3HC expansion boards:
on MACH 3 it locks UP, when you power up and its energized and then when you config and Reset your MACH 3 , it unlocks and you can start jogging the motors right away .
This sounds like the functionality that we need to replicate. Like I've said, the enable wires aren't connected on either of the links you sent. My best guess is that the enable signal isn't quite right, but it seems to work with Mach3 with enable disconnected. Disconnect the enable wires.
Edit: Check continuity on all the wires from the Duet driver 0 connector to the motor driver. Maybe there's a bad crimp or poor connection somewhere along the line.
Ian
-
@droftarts said in Configs for PCB PnP for Duet3D 6XD and 3 x 3HC expansion boards:
@developeralgo222 said in [Configs for PCB PnP for Duet3D 6XD and 3 x 3HC expansion boards]
This sounds like the functionality that we need to replicate. Like I've said, the enable wires aren't connected on either of the links you sent. My best guess is that the enable signal isn't quite right, but it seems to work with Mach3 with enable disconnected. Disconnect the enable wires.@droftarts , i disconnected and the ENABLE Wires from the External Drive and the Duet 6XD and that did the trick. Now i am able to move X and Y -axis Motors now
-
@developeralgo222 in that case, to make the Enable line work properly you need to move the Driver Enable Polarity jumper on the 6XD to the other position. See https://docs.duet3d.com/Duet3D_hardware/Duet_3_family/Duet_3_Mainboard_6XD_Hardware_Overview#description-of-connections.
-
@dc42 said in Configs for PCB PnP for Duet3D 6XD and 3 x 3HC expansion boards:
@developeralgo222 in that case, to make the Enable line work properly you need to move the Driver Enable Polarity jumper on the 6XD to the other position. See https://docs.duet3d.com/Duet3D_hardware/Duet_3_family/Duet_3_Mainboard_6XD_Hardware_Overview#description-of-connections.
Currently the 1 x3 Pin Jumper (Driver Active Enable Select ) is in the Active Enable Position(Left Side) . I will move it to the Active Disable position (Right Side) and then connect the ENA+ & ENA- and test again
-
@developeralgo222 said in Configs for PCB PnP for Duet3D 6XD and 3 x 3HC expansion boards:
@dc42 said in Configs for PCB PnP for Duet3D 6XD and 3 x 3HC expansion boards:
@developeralgo222 in that case, to make the Enable line work properly you need to move the Driver Enable Polarity jumper on the 6XD to the other position. See https://docs.duet3d.com/Duet3D_hardware/Duet_3_family/Duet_3_Mainboard_6XD_Hardware_Overview#description-of-connections.
Currently the 1 x3 Pin Jumper (Driver Active Enable Select ) is in the Active Enable Position(Left Side) . I will move it to the Active Disable position (Right Side) and then connect the ENA+ & ENA- and test again
i tested this by moving the Jumper to Active Disable and connecting the ENA+ to 5V power and ENA- to Dx-EN- but it did not work. The Motors are not energized or locked , i can roll them manually But they don't move if i send any command to move them from the console e.g
G1 G1 H2 X50 G1 H2 Y50
i also have M17 in the config.g but that did not help.
As for now, The only way the 2 x NEMA 34 Closed Loop Motors for X & Y-Axis are able to move is by disconnecting EN+ & EN- from Duet 3 6XD and the External Drivers (HSS86)
-
@developeralgo222 Is this how the drives are still set?
; Drives ;Physical Drives CAN ID = 0 M569 P0.0 S0 R1 T5:5:10:10 ; X-Axis physical drive 0.0 goes forwards on CAN ID = 0 - Duet 6XD Drive 0.0 with 5us timings between pulses M569 P0.1 S1 R1 T5:5:10:10 ; Y-Axis physical drive 0.1 goes forwards on CAN ID = 0 - Duet 6XD Drive 0.1 with 5us timings between pulses
Can you try changing the R1 to R0? Or if it is R0, change to R1. I'm not sure it will make a difference, but worth testing.
Ian