Toolboard Extruder Motor Stutters (most of the time)



  • I'm configuring a machine with a toolboard. I have everything hooked up and working except the extruder. When extruding, it just stutters most of the time. Very occasionally the extruder motor will turn properly (like twice all afternoon)

    It happens with both Hemeras I have.

    Increasing current to 1500 with M906 just makes it louder.

    Thinking it was a bad connection, I made up another motor cable. Same issue. Jiggling the cable and connections was no help.

    Any suggestions?

    Config.g here:
    ; Configuration file for Duet WiFi (firmware version 2.03)
    ; executed by the firmware on start-up
    ;
    ; generated by RepRapFirmware Configuration Tool v2.1.8 on Sat Mar 14 2020 10:43:20 GMT-0700 (Pacific Daylight Time)

    ; General preferences
    G90 ; send absolute coordinates...
    M83 ; ...but relative extruder moves
    M550 P"duet3" ; set printer name

    ; Network
    M552 S1 ; enable network
    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 S0 ; physical drive 2 goes backwards
    M569 P3 S0 ; physical drive 3 goes backwards
    M569 P4 S0 ; physical drive 3 goes backwards
    M569 P5 S0 ; physical drive 3 goes forwards
    M569 P20.0 S0

    M584 X0.5 Y0.1 Z0.2:0.3:0.4 ; set drive mapping. 0.0 reports short to ground
    M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation
    M92 X160.00 Y160.00 Z1600.00 E409.00 ; set steps per mm
    M566 X900.00 Y900.00 Z12.00 E120.00 ; set maximum instantaneous speed changes (mm/min)
    M203 X18000.00 Y18000.00 Z1000.00 E1200.00 ; set maximum speeds (mm/min)
    M201 X3500.00 Y3500.00 Z420.00 E250.00 ; set accelerations (mm/s^2)
    M906 X2500 Y2500 Z1500 E800 I30 ; set motor currents (mA) and motor idle factor in per cent
    M84 S30 ; Set idle timeout

    ; Axis Limits
    ; Width = 280, but put origin at center of bed
    ; Height = 260
    ;M208 X-146 Y-130 Z0 S1 ; set axis minima
    M208 X-125 Y-130 Z0 S1 ; set axis minima. setting xMin to -130 causes probe to jump out because nobody knows how magnets work
    M208 X130 Y128 Z250 S0 ; set axis maxima

    ; Endstops
    M574 X1 S1 P"io0.in"
    M574 Y1 S1 P"io1.in" ; S1: microswitch endstops. x at x max, y at ymax

    ;M574 Z1 S2 ; set endstops controlled by probe

    ; Z-Probe
    M558 P8 H13 F320 T12000 C"20.io0.in" ; set Z probe type to switch and the dive height + speeds.
    ;M558 H3 ;*** Remove this line after delta calibration has been done and new delta parameters have been saved
    G31 P500 X-21.1 Y28.5 Z10 ; set Z probe trigger value, offset and trigger height
    M557 X-100:100 Y-100:100 S80 ; define mesh grid

    ;Z config
    M671 X-130:130:130 Y0:130:-130 S10 ; ballscrews at left middle, right rear, right front, 0.5mm max corrections, 1.0 Fudge Factor (default)

    ; Temperature Sensors
    M308 S0 P"0.temp0" Y"thermistor" T100000 A"Bed"
    ;M308 S1 P"0.temp1" Y"thermistor" T100000 A"Head0"
    M308 S2 Y"mcu-temp" A"CPU"
    M308 S3 Y"drivers" A"TMC Drivers"

    ; Heaters

    M950 H0 C"0.out1" T0 Q30 ;Bed heater
    ;M950 H1 C"0.out2" T1 ;Extruder0
    ;M950 H2 C"0.out3" T2 ;Extruder0
    ;M950 H3 C"0.out4" T3 ;Extruder0

    M307 H0 A107.0 C409.2 D8 S1.00 V23.9 B0 ; Bed Heaters
    ;autotune results: gain 107.0, time constant 209.2, dead time 1.6, max PWM 1.00, calibration voltage 23.9, mode PID

    ;M305 P0 T100000 B4138 R4700 ; set thermistor + ADC parameters for heater 0
    M143 H0 S120 ; set temperature limit for heater 0 to 120C
    ;M305 P1 T100000 B4138 R4700 ; set thermistor + ADC parameters for heater 1

    M140 H0 P0 ; define the bed heater so DWC sees it and displays in the UI

    ; Fans
    ;M106 P0 S0 I0 F500 H-1 ; set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off
    ;M106 P1 S1 I0 F500 H1 T45 ; set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on

    ; Hemera - Reconfigured via M952 B121 A20 to be at address 20

    ; Hemera motors
    M569 P20.0 S0 ; set tool extruder direction
    M584 E20.0 ; set extruder drives

    ; Hemera sensors and heaters
    M308 S1 P"20.temp0" Y"thermistor" B4725 C7.06e-8
    M950 H1 C"20.out0" T1 ; Temperature Sensor 1
    M143 H1 S280 ; set temperature limit for heater 1 to 280C

    ; Hemera fans
    M950 F1 C"20.out2" ; Tool 2 hot end fan
    M950 F2 C"20.out1" ; Tool 1 print cooling fan, no tacho
    M106 P1 S255 H1 T50 ; Tool 1 hot end
    M106 P2 S0 ; Tool 1 PCF

    ; Tools
    M563 P0 D0 H1 F2 S"Extruder0" ; Define tool 0
    ;M563 P1 H0 S"Bed" ; Define tool 1
    ;M563 P2 H2 S"MCU" ; Define tool 2
    ;M563 P3 H3 S"Drivers" ; Define tool 3

    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
    T0 ; select first tool

    ;G92 X000 Y000 Z10
    ;M564 H0 S0 ; allow movement without homing



  • Also, I have checked that the resistance across the A coil is 2 ohms and B coil is also 2, with no shorts between any of the pins. Measurements done at the pins in the back of the connector on the toolboard.



  • Board: Duet 3 MB6HC v0.6 or 1.0 (MB6HC)
    DSF Version: 1.2.5.0
    Firmware: RepRapFirmware for Duet 3 MB6HC 3.01-RC4 (2020-03-16b1)
    Board TOOL1LC firmware 3.01-RC4 (2020-03-16b1)

    After doing a 5mm extruder move:
    M122 B20
    Diagnostics for board 20:
    Board TOOL1LC firmware 3.01-RC4 (2020-03-16b1)
    Never used RAM 8.2Kb, max stack 604b
    HEAT 1132 CanAsync 1460 CanRecv 1392 TMC 212 AIN 532 MAIN 2304
    Last reset 00:00:57 ago, cause: software
    Driver 0: short-to-ground standstill, SG min/max 0/302, read errors 0, write errors 0, ifcount 44, reads 28602, writes 2, timeouts 0, DMA errors 0, failedOp 0xff
    Moves scheduled 4, completed 4, hiccups 0
    VIN: 24.0V
    MCU temperature: min 33.3C, current 35.8C, max 35.8C
    Ticks since heat task active 55, ADC conversions started 57796, completed 57795, timed out 0
    Last sensors broadcast 00000002 found 1 59 ticks ago
    Free CAN buffers: 36
    NVM user row b1d088a9 fffff8bb 20003b9c 20003ba8
    TSENS 000ddf GAIN 016461 OFFS 002a69 CAL 1f2f
    3/18/2020, 8:29:45 PM



  • Sounds like a bad wire or crimp in one of the connections. Assuming the A&B coils are wired correctly in the connectors of course.



  • @timcurtis67

    I tried two different connector harnesses. No crimping done by me because one side done by ldo the other is the pigtail supplied with the toolboard. The solder connections I made are more than sound. However to test the bad connector theory I made up a 2nd cable. Same problem. I also measured resistance across the a+/a- and b+/b- on the toolboard and they are correct - 2 ohms as expected with no shorts to ground.

    Also, ran the hemera with the cover off so the bare pinion gear was free to turn. Still stutters.

    I think the driver is bad or bad toolboard connection . The solder on the tmc2209 pins is less than perfect. There might be an unintentional solder bridge between 2 of the pins on the atmel chip. Hard to tell.



  • @wesc said in Toolboard Extruder Motor Stutters (most of the time):

    I think the driver is bad or bad toolboard connection . The solder on the tmc2209 pins is less than perfect. There might be an unintentional solder bridge between 2 of the pins on the atmel chip. Hard to tell.

    Can you post a good photo? IIRC, TMC chips have some dual pins to a common pad for total current carrying ability; these often look like solder bridges, but are actually OK.


  • administrators

    Hi @wesc, your M122 report is reporting short-to-ground, which explains the lack of proper movement. Please verify with a multimeter (and power off) that you still have:

    • 2 ohms between pins 1 and 2 of the motor output (measured on the underside of the tool board)
    • 2 ohms between pins 3 and 4
    • No continuity between any other pair of pins (e.g. 1 and 3)
    • No continuity between any of those pins and the frame of the motor

    If the board is mounted on the Hemera, also make sure there is no possibility that any part of the back of the tool board is shorting against the Hemera frame.



  • 1-2: 2.2 ohms
    3-4: 2.2 ohms
    All other pairs are 2.5 megaohms or more
    Board was on Hemera, but i used extra standoffs in addition to the plastic ones and clipped the protruding part leads to shorten them. Happens with the board off the Hemera as well.

    Attached pics from the world's finest $15 USB microscope. Solder on the leads looks a little blobby.

    Photo on 3-19-20 at 9.31 AM.jpg
    Photo on 3-19-20 at 9.28 AM.jpg


  • Moderator

    @wesc The M584 command for your extruder needs to come BEFORE the motor settings. Currently you have:

    ; Drives
    M569 P0 S1 ; physical drive 0 goes forwards
    M569 P1 S1 ; physical drive 1 goes forwards
    M569 P2 S0 ; physical drive 2 goes backwards
    M569 P3 S0 ; physical drive 3 goes backwards
    M569 P4 S0 ; physical drive 3 goes backwards
    M569 P5 S0 ; physical drive 3 goes forwards
    M569 P20.0 S0
    
    M584 X0.5 Y0.1 Z0.2:0.3:0.4 ; set drive mapping. 0.0 reports short to ground
    M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation
    M92 X160.00 Y160.00 Z1600.00 E409.00 ; set steps per mm
    M566 X900.00 Y900.00 Z12.00 E120.00 ; set maximum instantaneous speed changes (mm/min)
    M203 X18000.00 Y18000.00 Z1000.00 E1200.00 ; set maximum speeds (mm/min)
    M201 X3500.00 Y3500.00 Z420.00 E250.00 ; set accelerations (mm/s^2)
    M906 X2500 Y2500 Z1500 E800 I30 ; set motor currents (mA) and motor idle factor in per cent
    M84 S30 ; Set idle timeout
    
    ; Axis Limits
    ...
    
    ; Endstops
    ...
    
    ; Z-Probe
    ...
    
    ;Z config
    ...
    
    ; Temperature Sensors
    ...
    
    ; Heaters
    ...
    
    ; Fans
    ...
    
    ; Hemera - Reconfigured via M952 B121 A20 to be at address 20
    
    ; Hemera motors
    M569 P20.0 S0 ; set tool extruder direction
    M584 E20.0 ; set extruder drives
    
    ; Hemera sensors and heaters
    
    etc
    

    Move the Hemera section up to below the M584 that defines the other axes (ie under line number 10 above), otherwise it's using the default motor settings. Remove one of the M569 P20.0 S0 commands.

    Ian



  • Ugggh, so this is weird. I updated the firmware thinking it could have been a firmware issue (long shot, I know).

    M997 B20

    After waiting many miinutes with no response, I power cycled.
    '
    Now the Duet3 isn't communicating with my Toolboard - tons of CAN response timeouts. No slow red flash, just the solid blue and solid red leds. The heater and fan turned on (I see the warning about that in the docs), so i removed all connections to the board except CAN and power and stepper.

    I tried a double button power on to reset.
    M115 B121 (or 10 or 20, the address i previously programmed) also error.
    M409 K"boards" yields this:

    {"key":"boards","flags":"","result":[{"canAddress":0,"firmwareDate":"2020-03-16b1","firmwareFileName":"Duet3Firmware_MB6HC.bin","firmwareName":"RepRapFirmware for Duet 3 MB6HC","firmwareVersion":"3.01-RC4","iapFileNameSBC":"Duet3_SBCiap_MB6HC.bin","iapFileNameSD":"Duet3_SDiap_MB6HC.bin","mcuTemp":{"current":29.4,"max":29.5,"min":18.3},"name":"Duet 3 MB6HC","shortName":"MB6HC","supports12864":false,"v12":{"current":12.2,"max":12.3,"min":12.2},"vIn":{"current":23.9,"max":24.0,"min":23.9}}]}

    Seems the bootloader got corrupted.

    Is there a bossa solution to reprogram the bootloader on a Toolboard?


  • administrators

    Ian has identified the root cause of the original problem: your M906 command that sets the extruder current was earlier in config.g than the M584 command that defined the extruder driver. So the motor current wasn't being set, which would result in less than 100mA current.

    I'm not sure why the firmware update failed. Did you notice any flashing of the red LED during the update process? If the firmware file you tried to install did not have a valid CRC then it would have repeatedly tried to fetch and install the firmware, and the LED would flash at intervals. If you turned the power off while it was writing to flash memory, perhaps that corrupted the bootloader (it's not clear from the datasheet whether the bootloader protection provides adequate protection if power is removed while another part of the flash memory is being written).

    What I would like you to do now is to disconnect the CAN connector from the tool board, and once again power the board up while both buttons are held down (then release them after powering up). If the red LED between the two buttons show no activity at all, I will authorize a warranty replacement, because re-installing the bootloader requires an Atmel ICE or similar SWD programming tool. If you do get any activity from that LED, please report what flashes you see.



  • @dc42 said in Toolboard Extruder Motor Stutters (most of the time):

    an has identified the root cause of the original problem: your M906 command that sets the extruder current was earlier in config.g than the M584 command that defined the extruder driver. So the motor current wasn't being set, which would result in less than 100mA current.

    In original post: "Increasing current to 1500 with M906 just makes it louder.", so Ian's theory isn't correct. (wasn't totally obvious that I did that with the console)



  • @dc42 said in Toolboard Extruder Motor Stutters (most of the time):

    ly tried to fetch and install the firmware, and the LED would flash at intervals. If you turned the power off while it was writing to flash memory, perhaps that corrupted the bootloader (it's not clear from the datasheet whether the bootloader protection provides adequate protection if power is removed while another part of the flash memory is being written).
    What I would like you to do now is to disconnect the CAN connector from the tool board, and once again power the board up while both buttons are held down (then release them after powering up). If the

    The .bin file was the same one I originally flashed to the Toolboard that was uploaded to /sys

    Just tried a reboot with CAN disconnected and buttons pressed. No LEDs on between the buttons, and no bootloader/CAN connection.


  • Moderator

    @wesc It's not just the current, it's all the motor settings. From M584:

    Order dependence
    M584 must come earlier in config.g than any M350 and M906 commands. If it creates new axes, it must also be earlier than any M92, M201, M203, M208, M350, M566, M574, M667 and M669 commands.

    Ian



  • Ah. Wish i could try the different order. 😞


  • administrators

    I authorise a warranty replacement for your tool board.


Log in to reply