Stepper motor problem Duet 3 MB6HC
Hi, I am completely new to the topic of Duet3D . I haven't looked into building a printer in a long time, and an opportunity came up and I'm rebuilding a large Chinese printer with a heating chamber. I thought that I just need to replace the controller with Duet 3 6HC but I am not able to run, any stepper motor. They are not described in any way I just know that one is NEMA17 and two are NEMA 23. They don't move, they don't heat, at first I thought they were getting too little current but that's probably not it. For now I would just like to provoke them to move. Is it possible to check the motors and signals with a multimeter? I suspect that unless I made a mistake in config.g or the motors are broken, the problem may be the cables, because I have no other idea.
Does my code have a bug that could prevent the axis from moving or is there a command I can use to force it to move?
; Configuration file for Duet 3 (firmware version 3) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v3.2.3 on Thu Apr 01 2021 14:42:29 GMT+0200 (czas środkowoeuropejski letni) ; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"My Printer" ; 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.0 S1 ; physical drive 0.0 goes forwards M569 P0.1 S1 ; physical drive 0.1 goes forwards M569 P0.2 S1 ; physical drive 0.2 goes forwards M584 X0.0 Y0.1 Z0.2 ; set drive mapping M350 X16 Y16 Z16 I1 ; configure microstepping with interpolation M92 X200.00 Y80.00 Z400.00 ; set steps per mm M566 X600.00 Y600.00 Z60.00 ; set maximum instantaneous speed changes (mm/min) M203 X600.00 Y600.00 Z180.00 ; set maximum speeds (mm/min) M201 X10.00 Y10.00 Z20.00 ; set accelerations (mm/s^2) M906 X1000 Y2000 Z2000 ; set motor currents (mA) M84 S0 ; Disable motor idle current reduction ; Axis Limits M208 X0 Y0 Z0 S1 ; set axis minima M208 X230 Y210 Z200 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 X15:215 Y15:195 S20 ; define mesh grid ; Heaters ; Fans M950 F0 C"out9" ; create fan 0 on pin out9 and set its frequency M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off ; Tools M563 P0 D0 F0 ; define tool 0 G10 P0 X0 Y0 Z0 ; set tool 0 axis offsets G10 P0 R0 S0 ; set initial tool 0 active and standby temperatures to 0C ; Custom settings are not defined ; Miscellaneous M501 ; load saved parameters from non-volatile memory T0 ; select first tool M564 S0 H0
Start by checking that you've got the motor phases connected correctly.
@phaedrux I did it right. I've searched the tutorials and I'm out of ideas what's wrong here.
@kkallas, how are you trying to move the axes? By default, the firmware does not allow normal axis moves are not allowed until the printer has been homed. So for testing the motors, try commands like this:
G1 H2 X10
G1 H2 X-10
G1 H2 Y10
G1 H2 Y-10
@dc42 I use the function < M564 S0H0 > and then <G1 H2 X100 >.
I shortened the cables - thought maybe there was something wrong with them.
I installed system version 3.2.2 because the default 3.3.3 was a beta.
The motor when connected to the lab power supply each coil jumps a step but when connected to MB6HC nothing happens, it doesn't move or lock.
By measuring the pins on the board it gets:
DRIVER_0_B1 is connected to DRIVER_0_B2
DRIVER_0_A1 is connected to DRIVER_0_A2
When the motor should be running I do not see any voltage on the outputs from the board. Should I select DC or AC on the multimeter? Is there any easy way to check if the controller is faulty?
What does <M122> diagnostics mean with "ok" controllers?
M122 === Diagnostics === RepRapFirmware for Duet 3 MB6HC version 3.2.2 running on Duet 3 MB6HC v0.6 or 1.0 (standalone mode) Board ID: 08DJM-956L2-G43S4-6J1DJ-3SJ6N-986LG Used output buffers: 1 of 40 (20 max) === RTOS === Static ram: 149788 Dynamic ram: 92180 of which 504 recycled Never used RAM 116360, free system stack 164 words Tasks: NETWORK(ready,211) ETHERNET(blocked,110) HEAT(blocked,356) CanReceiv(blocked,927) CanSender(blocked,371) CanClock(blocked,351) TMC(blocked,51) MAIN(running,1117) IDLE(ready,19) Owned mutexes: === Platform === Last reset 00:22:18 ago, cause: power up Last software reset at 2021-04-02 19:05, reason: User, GCodes spinning, available RAM 116360, slot 1 Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00400000 BFAR 0x00000000 SP 0x00000000 Task MAIN Freestk 0 n/a Error status: 0x00 Aux0 errors 0,0,0 Aux1 errors 0,0,0 MCU temperature: min 40.7, current 41.3, max 41.5 Supply voltage: min 23.9, current 24.0, max 24.0, under voltage events: 0, over voltage events: 0, power good: yes 12V rail voltage: min 12.0, current 12.1, max 12.2, under voltage events: 0 Driver 0: position 30000, ok, reads 48285, writes 0 timeouts 0, SG min/max 0/0 Driver 1: position 0, ok, reads 48286, writes 0 timeouts 0, SG min/max 9/9 Driver 2: position 0, ok, reads 48285, writes 0 timeouts 0, SG min/max 9/9 Driver 3: position 0, ok, reads 48285, writes 0 timeouts 0, SG min/max 9/9 Driver 4: position 0, ok, reads 48285, writes 0 timeouts 0, SG min/max 9/9 Driver 5: position 0, ok, reads 48285, writes 0 timeouts 0, SG min/max 9/9 Date/time: 2021-04-02 20:37:45 Slowest loop: 4.32ms; fastest: 0.05ms === Storage === Free file entries: 10 SD card 0 detected, interface speed: 25.0MBytes/sec SD card longest read time 2.4ms, write time 0.0ms, max retries 0 === Move === DMs created 125, maxWait 0ms, bed compensation in use: none, comp offset 0.000 === MainDDARing === Scheduled moves 3, completed moves 3, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1 === AuxDDARing === Scheduled moves 0, completed moves 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1 === Heat === Bed heaters = -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1, chamberHeaters = -1 -1 -1 -1 === 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 SBC is idle in state(s) 0 Daemon is idle in state(s) 0 Aux2 is idle in state(s) 0 Autopause is idle in state(s) 0 Code queue is empty. === Network === Slowest loop: 7.53ms; fastest: 0.02ms Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0), 0 sessions Telnet(0), 0 sessions HTTP sessions: 2 of 8 - Ethernet - State: active Error counts: 0 0 0 0 0 Socket states: 2 2 2 2 2 0 0 0 === CAN === Messages queued 0, send timeouts 2703, received 0, lost 0, longest wait 0ms for reply type 0, free buffers 48
Is the motor connected in that photo? It looks like the endstop is connected to the motor? The bottom is cut off but it looks like the white ribbon from the endstop is going to the motor. The motor cable is hanging disconnected. Maybe the photo doesn't show the actual current state of wiring. Can you maybe post some more photos?
@phaedrux No, the motor was not connected in that photo. I removed one and the circuit currently looks like this. The motors use the same ribbons as the endstops. I thought the ribbon might be the problem which is why the cables are so shortened. I would like to not use the endstops but rather use sensor less homing so I did not connect them. Could this be the problem?
so I did not connect them. Could this be the problem?
No, if you were sending G1 H2 commands the motors are sent movement commands even if they are not homed.
Do you have any other motors to test with? Are you sure the motors are working? Replacing the motors might be the easiest approach since you could get motors to your own specifications.
I bought this stepper motor. Still nothing is moving. Maybe all the motors should be connected. I have no idea what to do anymore. In my opinion the MB6HC is not sending, any signals to the motors. Multimeter shows no voltage, motors don't heat up, how to check if the board is damaged?
Maybe there is a simple gcode that checks the controllers and motors?
If no motor is connected and you try and move the motor you should get some errors in the console. Are you getting any errors?
What current does the new motor require and has it been set in config.g?
What command are you sending to move it?
@phaedrux Can you send us the pinout for the stepper motor you are using?
These pins do not look like they are properly inserted into the connector.
Usually, none of the metal is showing when they are inserted.
@phaedrux When the motors are not connected and I want to move them no errors are displayed.The current for this motor is 1.7A.
M906 X1700 Y800 Z800 ; set motor currents (mA)
I try to start the engine with the command:
M564 S0H0 G91 G1 H2 X100
@alankilian I know this is just for a test rewired connectors.
@kkallas Can you send us the pinout for the stepper motor you are using?
alankilian last edited by alankilian
@kkallas Can you unplug the connector from the Det and tell us the resistance between Green and Black and the resistance between Blue and Red?
That will tell us that you have the correct wires for the stepper-motor coils going to the correct pins on the Duet.
It's pretty easy to get something wrong when wiring a stepper.
@alankilian its 4 ohms for green and black, and 4 ohms for blue and red
That verifies that you have the correct wires connected to the driver.
I'm not sure why you are continuing to have problems.
I don't have one of these boards, so I'm just trying to help in other ways.
@kkallas Are all four of your LEDs lit?
Can you try a different motor port and confirm that the plugs are actually making good contact with the pins?
@kkallas The capacitors on my 6HC look the same as yours, and it works, so I don't think that's the issue. Thought the V_FUSED LED is on, can you check the 15A fuse anyway? You should get an undervoltage message usually, if you try to move a motor when the driver isn't powered.
When you send a move command, does Status panel in the DWC dashboard report that the motor position has moved by the requested amount?
Do you have insulated washer under the screw heads of the mounting screws? They are very large! They probably aren't shorting anything out, but might be worth trying with everything disconnected but the Ethernet, motor and VIN, and with those screws out.
Fuses are ok.
When I manually move the engines no message appears.
Yes, the DWC shows the motor position incremented by the desired value but the motor does not move at all.
I disconnected everything except power supply, stepper motor and power cable - still nothing.
@kkallas I really can’t see anything that would stop the motor moving. Seems like an SPI failure (@dc42)? When and where did you buy the board from?
Have you tried configuring each driver and moving the motor for testing?
@phaedrux Yes. Yesterday I also tried to move the steppers with arduino with motor shield and they work.