ToolChanger Toolboard Hemera Motor Not Working
-
Hello,
I designed and built a toolchanger using Duet 3 having 2 hemeras with toolboards (tool1lc v1.0). Everything is working successfully but im having trouble getting both extruder motors to work. Wiring is checked and looks fine, and prior to this post I also tried to map the z drive to the extruder motors, but they are still not working. I have no errors in DWC, and honestly do not know what might be the cause. However I think its firmware related since I don't think I managed to ruin both extruders during assembly :D. -
-
@terencemuscat maybe @dc42 can help?, I followed your guide in building this. I appreciate all your work. Thankyou very much!
-
@terencemuscat can you post an output of
M122
,M122 B10
andM122 B20
? -
m122
=== Diagnostics ===
RepRapFirmware for Duet 3 MB6HC version 3.3 (2021-06-15 21:45:47) running on Duet 3 MB6HC v1.01 or later (SBC mode)
Board ID: 08DJM-9P63L-DJMSS-6J1F0-3S46P-9UFZ8
Used output buffers: 4 of 40 (13 max)
=== RTOS ===
Static ram: 150904
Dynamic ram: 62540 of which 0 recycled
Never used RAM 140748, free system stack 200 words
Tasks: SBC(ready,5.6%,340) HEAT(delaying,0.0%,325) Move(notifyWait,0.0%,352) CanReceiv(notifyWait,0.0%,799) CanSender(notifyWait,0.0%,374) CanClock(delaying,0.0%,339) TMC(notifyWait,7.2%,93) MAIN(running,87.1%,922) IDLE(ready,0.0%,29), total 100.0%
Owned mutexes: HTTP(MAIN)
=== Platform ===
Last reset 00:03:55 ago, cause: power up
Last software reset at 2021-11-29 06:53, reason: User, none spinning, available RAM 138212, slot 1
Software reset code 0x0012 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00400000 BFAR 0x00000000 SP 0x00000000 Task SBC Freestk 0 n/a
Error status: 0x00
Step timer max interval 127
MCU temperature: min 18.3, current 30.7, max 30.8
Supply voltage: min 24.0, current 24.0, max 24.1, under voltage events: 0, over voltage events: 0, power good: yes
12V rail voltage: min 12.0, current 12.1, max 12.1, under voltage events: 0
Heap OK, handles allocated/used 0/0, heap memory allocated/used/recyclable 0/0/0, gc cycles 0
Driver 0: position 0, standstill, reads 878, writes 15 timeouts 0, SG min/max 0/0
Driver 1: position 0, standstill, reads 878, writes 15 timeouts 0, SG min/max 0/0
Driver 2: position 0, standstill, reads 882, writes 11 timeouts 0, SG min/max 0/0
Driver 3: position 0, standstill, reads 878, writes 15 timeouts 0, SG min/max 0/0
Driver 4: position 0, standstill, reads 882, writes 11 timeouts 0, SG min/max 0/0
Driver 5: position 0, standstill, reads 883, writes 11 timeouts 0, SG min/max 0/0
Date/time: 2021-11-29 07:13:06
Slowest loop: 0.63ms; fastest: 0.04ms
=== Storage ===
Free file entries: 10
SD card 0 not detected, interface speed: 37.5MBytes/sec
SD card longest read time 0.0ms, 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 0, completed moves 0, 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 = 0 -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 doing "M122" 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.
=== CAN ===
Messages queued 2044, received 5040, lost 0, longest wait 2ms for reply type 6049, peak Tx sync delay 57497, free buffers 49 (min 48), ts 1177/1176/0
Tx timeouts 0,0,0,0,0,0
=== SBC interface ===
State: 4, failed transfers: 1, checksum errors: 0
Last transfer: 3ms ago
RX/TX seq numbers: 6699/6699
SPI underruns 0, overruns 0
Disconnects: 0, timeouts: 0, IAP RAM available 0x2c83c
Buffer RX/TX: 0/0-0
=== Duet Control Server ===
Duet Control Server v3.3.0
Code buffer space: 4096
Configured SPI speed: 8000000Hz
Full transfers per second: 4.30, max wait times: 8.0ms/0.0ms
Codes per second: 0.05
Maximum length of RX/TX data transfers: 3856/708 -
-
@terencemuscat ok, thats looking good.
can you also post your full config? -
-
@terencemuscat added config so its easy for others to read
; Configuration file for Duet 3 (firmware version 3.3) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v3.3.5 on Tue Nov 16 2021 08:00:11 GMT+0100 (Central European Standard Time) ; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"Terence Tool Changer" ; set printer name M669 K1 ; select CoreXY mode G4 S1 ;wait for expansion boards to start ; Drives M569 P0.0 S1 D2 ; physical drive 0.0 goes forwards M569 P0.1 S1 D2 ; physical drive 0.1 goes forwards M569 P0.2 S1 ; physical drive 0.2 goes forwards M569 P0.3 S1 ; physical drive 0.3 goes forwards M569 P10.0 S1 ; Drive 10.0 (E0) spreadCycle mode M569 P20.0 S1 ; Drive 20.0 (E1) spreadCycle mode M584 X0.0 Y0.1 Z10.0 C0.3 ; set drive mapping M584 E10.0:20.0 ; set extruder drivers M208 X0:370 Y0:323 Z0:350 ; set axis minima & maxima M208 C0:240 S0 ; set axis minima & maxima M350 X16 Y16 Z16 I1 ; configure microstepping with interpolation M350 C8 I0 ; configure microstepping with interpolation M350 E16:16 I1 ; configure microstepping with interpolation M92 X160.00 Y160.00 Z1600.00 C100 ; set steps per mm M92 E409:409 ; set steps per mm for extruders M566 X400.00 Y400.00 Z16.00 C2 E200:200 ; set maximum instantaneous speed changes (mm/min) M203 X12000 Y12000 Z180 C5000 E5000:5000 ; set maximum speeds (mm/min) M201 X1000.00 Y1000.00 Z40.00 C200 E2500:2500; set accelerations (mm/s^2) M906 X1000 Y1000 Z2500 C400 E1400:1400 I30 ; set motor currents (mA) and motor idle factor in per cent (MAX XY=2000mA ; Z=3000mA) M84 S120 ; Set idle timeout ; Endstops M574 X2 S1 P"!io7.in" ; configure switch-type (e.g. microswitch) endstop for high end on X via pin !io7.in M574 Y1 S1 P"!io8.in" ; configure switch-type (e.g. microswitch) endstop for low end on Y via pin !io8.in M574 Z1 S2 ; configure Z-probe endstop for low end on Z M574 C1 S3 ; stall detect coupler M950 J0 C"!io0.in" ; Tool 0 M950 J1 C"!io1.in" ; Tool 1 M950 J2 C"!io2.in" ; Tool 2 M950 J3 C"!io3.in" ; Tool 3 ; Z-Probe M558 P5 C"^io4.in" H1 F120 T6000 ; set Z probe type to switch and the dive height + speeds G31 P500 X0 Y0 Z1 ; set Z probe trigger value, offset and trigger height M557 X45:330 Y55:260 S40 ; define mesh grid ;Stall Detection M915 C S1 F1 H400 ; Coupler ; Bed Heater M308 S0 P"temp0" Y"thermistor" T145000 B4388 C7.06e-8 ; configure sensor 0 as thermistor on pin temp0 M950 H0 C"out0" T0 ; create bed heater output on out0 and map it to sensor 0 M143 H0 S120 ; set temperature limit for heater 0 to 120C M307 H0 R0.213 C960.4 D11.09 S1.00 V23.9 ; Heater 0 tuning results M140 H0 ; map heated bed to heater 0 ; Tool 0 Heater M308 S1 P"10.temp0" Y"thermistor" T97000 B4725 C7.06e-8 ; configure sensor as thermistor M950 H1 C"10.out0" T1 ; create nozzle heater output and map it to sensor 1 M307 H1 B0 R1.893 C181.7 D6.24 S1.00 V24.2 ; Heater 2 tuning results M143 H1 S300 ; set temperature limit for heater 1 to 300C ; Tool 1 Heater M308 S2 P"20.temp0" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor as thermistor M950 H2 C"20.out0" T2 ; create nozzle heater output and map it to sensor 1 M307 H2 B0 R1.733 C177.5 D4.99 S1.00 V24.3 ; Heater 1 tuning results M143 H2 S300 ; set temperature limit for heater 1 to 300C ; Lights M950 F0 C"out4" Q500 ; create fan 0 on pin out4 and set its frequency M106 P0 C"Lights" S1 H-1 ; set fan 0 name and value. Thermostatic control is turned off ;Fans M950 F1 C"10.out1+out1.tach" ; Tool 0 hot end fan with tacho M106 P1 S0 H1 T50 M950 F2 C"10.out2" ; Tool 0 print cooling fan, no tacho M106 P2 C"T0 Print Cooling Fan" S0 B0.5 M950 F3 C"20.out1+out1.tach" ; Tool 1 hot end fan with tacho M106 P3 S0 H2 T50 M950 F4 C"20.out2" ; Tool 1 print cooling fan, no tacho M106 P4 C"T1 Print Cooling Fan" S0 B0.5 ;Tools M563 P0 S"T0" D0 H1 F2 ; Define tool 0 M563 P1 S"T1" D1 H2 F4 ; Define tool 1 M501
-
@terencemuscat nothing jumps out at me as being incorrect.
but looking back at the M122 B10 and B20, for driver 0 on both boards it states "assumed not present". Thats really odd and doesn't match the output I see on my toolboards (but I'm running 3.4b6 and not 3.3).
would you be happy to update to 3.4b6?
can you also update the bootloader on each board? it can be found here https://github.com/Duet3D/Duet3Bootloader/releases/download/2.3/Duet3Bootloader-SAMC21.bin
you would useM997 S3 B10
to do so (and B20 too) -
@terencemuscat it appears that the drivers on both tool boards are not responding to the firmware. Please post hi res photos of the drivers so that we can see if there is any apparent damage to them.
-
@dc42 I'm remembering that during assembly I wired + to - and vice versa by mistake, and I heard a popping noise when I switched it on. However I swapped them and powered back on and everything worked (except steppers). Could it be that I fried the drivers?
I will send a picture later today. If I fried them at least I have another 2 I''m not using.
-
@terencemuscat quite possibly. popping and electronics never go well
-
@terencemuscat said in ToolChanger Toolboard Hemera Motor Not Working:
@dc42 I'm remembering that during assembly I wired + to - and vice versa by mistake, and I heard a popping noise when I switched it on. However I swapped them and powered back on and everything worked (except steppers). Could it be that I fried the drivers?
Sadly, yes. If the VIN + and - are swapped on a board then the output mosfet body diodes in the stepper driver will conduct and the driver will carry whatever current the PSU can supply until the fuse (if any) blows.
The voltage regulator is protected by a diode (not specifically to protect against VIN reversal, but to protect against the regulator output capacitor discharging back through the regulator to VIN). The OUT mosfet body diodes will also conduct if a heater or fan is connected, but a heater will limit the current, so the mosfet will survive for a while at least. If a fan was connected then whether the mosfet survives will depend on how the fan reacted to reverse polarity.
So it's likely that the boards could be repaired by replacing the stepper driver chips, although this requires SMD rework equipment.
-
Thanks everyone for the detailed explanation. This evening I will replace the board and will give you an update.
Attached is also an image of the toolchanger should it be of interest. Thanks!
-
So, i changed the boards and all works perfectly now. Thankyou
-
@terencemuscat thanks for the update and that is a nice looking machine!
-
@t3p3tony Thankyou!