low motor torque



  • Hi,
    i´m currently building a new printer. While doing that, I ran into a problem: My motors output next to no torque, especially in the Z-Axis. I can easily stop them with two fingers.
    The Z-Axis is driven by two of the motors mentioned below, via two 8mm diameter, 1,5mm pitch trapezoidel lead screws.
    If the motors are´t active, I can turn them smoothly, without much resistance. (-> so they are´t mechanically stuck.)

    My setup consists of a Duet 2 Wifi (V1.04c), a Duex 5, 24V Meanwell PSU, and "MT-1704HSM168RE" (or just "E3D - High Torque Motor").

    I already tried using different kind of steppermotors (17HDC1031-20B), different cables, and different stepperdrivers, but nothing helped. (the other motors also hat very little torque)
    I also tested setting the current for Z to 1600mA, that made it better, but I could still stall the motors with two fingers.
    (Im talking about holding torque and torque while moving ->they are both low)

    Here is my "config.g":

    ; Configuration file for Duet WiFi (firmware version 2.03)
    ; executed by the firmware on start-up
    
    ; General preferences
    G90                                     ; send absolute coordinates...
    M83                                     ; ...but relative extruder moves
    M550 P"MGN-Cube"                        ; set printer name
    M667 S1                                 ; select CoreXY mode
    
    ; Network
    M552 S1                                 ; enable network
    M586 P0 S1                              ; enable HTTP
    M586 P1 S0                              ; disable FTP
    M586 P2 S0                              ; disable Telnet
    
    ; Drives
    M569 P0 S0                              ; physical drive 0 goes forwards X
    M569 P1 S0                              ; physical drive 1 goes forwards Y
    M569 P2 S0                              ; physical drive 2 goes forwards Z-L
    M569 P3 S0                              ; physical drive 3 goes forwards Z-R
    M560 P4 S1                              ; physical drive 4 goes forwards E
    M350 X16 Y16 Z16 E16 I1                 ; configure microstepping with interpolation
    M92 X200.00 Y200.00 Z4266.67 E420.00    ; set steps/mm
    M566 X900.00 Y900.00 Z12.00 E120.00     ; set jerk (mm/min)
    M203 X6000.00 Y6000.00 Z90.00 E1200.00  ; set maximum speeds (mm/min)
    M201 X500.00 Y500.00 Z50.00 E250.00     ; set accelerations (mm/s^2)
    M584 X0 Y1 Z2:3 E4                      ; two Z motors connected to driver outputs Z and E0
    M671 X-60:360 Y150:150 S15              ; leadscrews at left (connected to Z) and right (connected to E1) (of X axis)
    M906 X800 Y800 Z1600:1600 E800 I30      ; set motor currents (mA) and motor idle factor in percent
    M84 S30                                 ; Set idle timeout
    
    ; Axis Limits
    M208 X0 Y0 Z0 S1                        ; set axis min
    M208 X300 Y300 Z365 S0                  ; set axis max
    
    ; Endstops
    M574 X1 Y1 S1                           ; set active high endstops
    M574 Z1 S2                              ; set endstop controlled by probe
    
    ; Z-Probe
    M558 P1 H5 F120 T6000                   ; set Z probe type to IR-Probe and the dive height + speed
    G31 P500 X0 Y0 Z2.5                     ; set Z probe trigger value, offset and trigger height
    M557 X0:280 Y5:300 S80                  ; define mesh grid
    
    ; Heaters
    M307 H0 B0 S1.00                        ; disable bang-bang mode for the bed heater and set PWM limit
    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
    M143 H1 S280                            ; set temperature limit for heater 1 to 280C
    
    ; 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 T50               ; set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on
    
    ; Tools
    M563 P0 D0 H1 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 Configuration
    
    

    and some other information:

    M906
    Motor current (mA) - X:800, Y:800, Z:1600, E:800, idle factor 30%
    
    M913
    Motor current % of normal - X:100, Y:100, Z:100, E:100
    
    M122
    === Diagnostics ===
    RepRapFirmware for Duet 2 WiFi/Ethernet version 2.02(RTOS) running on Duet WiFi 1.02 or later + DueX5
    Board ID: 08DGM-917DA-G4MS4-6JTDG-3SN6Q-9SX79
    Used output buffers: 3 of 20 (6 max)
    === RTOS ===
    Static ram: 25524
    Dynamic ram: 98516 of which 0 recycled
    Exception stack ram used: 496
    Never used ram: 6536
    Tasks: NETWORK(ready,544) HEAT(blocked,1232) MAIN(running,3852) IDLE(ready,200)
    Owned mutexes:
    === Platform ===
    Last reset 00:29:18 ago, cause: software
    Last software reset at 2020-01-11 10:08, reason: User, spinning module GCodes, available RAM 6716 bytes (slot 3)
    Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0441f000 BFAR 0xe000ed38 SP 0xffffffff Task 0x4e49414d
    Error status: 0
    Free file entries: 10
    SD card 0 detected, interface speed: 20.0MBytes/sec
    SD card longest block write time: 2.1ms, max retries 0
    MCU temperature: min 30.9, current 32.6, max 33.1
    Supply voltage: min 23.9, current 24.1, max 24.2, under voltage events: 0, over voltage events: 0, power good: yes
    Driver 0: standstill, SG min/max 0/105
    Driver 1: standstill, SG min/max 0/107
    Driver 2: standstill, SG min/max 0/153
    Driver 3: standstill, SG min/max 0/138
    Driver 4: standstill, SG min/max not available
    Driver 5: standstill, SG min/max not available
    Driver 6: standstill, SG min/max not available
    Driver 7: standstill, SG min/max not available
    Driver 8: standstill, SG min/max not available
    Driver 9: standstill, SG min/max not available
    Date/time: 1970-01-01 00:00:00
    Cache data hit count 4294967295
    Slowest loop: 4.36ms; fastest: 0.07ms
    I2C nak errors 0, send timeouts 0, receive timeouts 0, finishTimeouts 0
    === Move ===
    Hiccups: 0, StepErrors: 0, LaErrors: 0, FreeDm: 240, MinFreeDm: 238, MaxWait: 5870ms, Underruns: 0, 0
    Scheduled moves: 10, completed moves: 10
    Bed compensation in use: none
    Bed probe heights: 0.000 0.000 0.000 0.000 0.000
    === Heat ===
    Bed heaters = 0 -1 -1 -1, chamberHeaters = -1 -1
    === GCodes ===
    Segments left: 0
    Stack records: 1 allocated, 0 in use
    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
    serial is idle in state(s) 0
    aux is idle in state(s) 0
    daemon is idle in state(s) 0
    queue is idle in state(s) 0
    autopause is idle in state(s) 0
    Code queue is empty.
    === Network ===
    Slowest loop: 15.54ms; fastest: 0.00ms
    Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0) Telnet(0)
    HTTP sessions: 1 of 8
    - WiFi -
    Network state is running
    WiFi module is connected to access point 
    Failed messages: pending 0, notready 0, noresp 0
    WiFi firmware version 1.23
    WiFi MAC address dc:4f:22:6e:6f:5b
    WiFi Vcc 3.44, reset reason Turned on by main processor
    WiFi flash size 4194304, free heap 26520
    WiFi IP address 192.168.0.104![1.jpg](/assets/uploads/files/1578735775703-1-resized.jpg) 
    WiFi signal strength -65dBm, reconnections 0, sleep mode modem
    Socket states: 0 0 0 0 0 0 0 0
    

    And here are some pictures of my wiring:
    1.jpg
    2.jpg
    3.jpg
    4.jpg
    5.jpg

    I hope I mentioned everything.

    Sincerely,
    Nico





  • Yes, I have ~2,9 ohm / phase, and open-circuit between phases. As it should be.



  • https://duet3d.dozuki.com/Wiki/Gcode#Section_M584_Set_drive_mapping

    M584 must come earlier in config.g than any M350 and M906 commands.

    your thermistor configuration is wrong. B4138 is the default incorrect for you.

    normally what you are observing would be because of faulty wiring.
    you have your connectors the wrong way round. black is towards the vin terminals. but that should only swap directions.

    please update to the latest firmware. (2.05 for now. later go for 3.0)



  • I just updated my Firmware to 2.05, and moved M584 above M350.... now only the motor connected to the Z-Output moves. (with the new Firmware and bofore moving the command, it was like before).
    And what do you mean with B4138 beeing wrong? (I only have the Bed Heater/thermistor connected at the moment.)



  • is there a message about disconnected phase in the console log?

    the beta value 4138 is not the correct value for the thermistors you are using, so it will display the wrong temperature at high temperatures.



  • No, it doesn´t show any error massages.
    And thank you for pointing me out about the thermistor values, but how do you know wich kind of thermistors I use?

    I´m just wondering, why one of the motors stops working when I move M584 to the correct position?

    ; Configuration file for Duet WiFi (firmware version 2.03)
    ; executed by the firmware on start-up
    
    ; General preferences
    G90                                     ; send absolute coordinates...
    M83                                     ; ...but relative extruder moves
    M550 P"MGN-Cube"                        ; set printer name
    M667 S1                                 ; select CoreXY mode
    
    ; Network
    M552 S1                                 ; enable network
    M586 P0 S1                              ; enable HTTP
    M586 P1 S0                              ; disable FTP
    M586 P2 S0                              ; disable Telnet
    
    ; Drives
    M569 P0 S0                              ; physical drive 0 goes forwards X
    M569 P1 S0                              ; physical drive 1 goes forwards Y
    M569 P2 S0                              ; physical drive 2 goes forwards Z-L
    M569 P3 S0                              ; physical drive 3 goes forwards Z-R
    M560 P4 S1                              ; physical drive 4 goes forwards E
    M584 X0 Y1 Z2:3 E4                      ; two Z motors connected to driver outputs Z and E0
    M671 X-60:360 Y150:150 S15              ; leadscrews at left (connected to Z) and right (connected to E1) (of X axis)
    M350 X16 Y16 Z16 E16 I1                 ; configure microstepping with interpolation
    M92 X200.00 Y200.00 Z4266.67 E420.00    ; set steps/mm
    M566 X900.00 Y900.00 Z12 E120.00        ; set jerk (mm/min)
    M203 X6000.00 Y6000.00 Z90 E1200.00     ; set maximum speeds (mm/min)
    M201 X500.00 Y500.00 Z50 E250.00        ; set accelerations (mm/s^2)
    M906 X800 Y800 Z1600 E800 I30           ; set motor currents (mA) and motor idle factor in percent
    M84 S5                                  ; Set idle timeout
    
    ; Axis Limits
    M208 X0 Y0 Z0 S1                        ; set axis min
    M208 X300 Y300 Z365 S0                  ; set axis max
    
    ; Endstops
    M574 X1 Y1 S1                           ; set active high endstops
    M574 Z1 S2                              ; set endstop controlled by probe
    
    ; Z-Probe
    M558 P1 H5 F120 T6000                   ; set Z probe type to IR-Probe and the dive height + speed
    G31 P500 X0 Y0 Z2.5                     ; set Z probe trigger value, offset and trigger height
    M557 X0:280 Y5:300 S80                  ; define mesh grid
    
    ; Heaters
    M307 H0 B0 S1.00                        ; disable bang-bang mode for the bed heater and set PWM limit
    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
    M143 H1 S280                            ; set temperature limit for heater 1 to 280C
    
    ; 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 T50               ; set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on
    
    ; Tools
    M563 P0 D0 H1 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 Configuration
    
    

    It is right like this, isn´t it?



  • @Neufra said in low motor torque:

    but how do you know wich kind of thermistors I use?

    which thermistors did you buy?

    and which motor is not working?



  • I have NTC100K thermistors.
    If you mean wich motors have little torque, it´s all of them. If you mean wich one stopped working after moving M584, it´s the second Z-Motor (connected to E0)



  • @Neufra said in low motor torque:

    I have NTC100K thermistors.

    that just says it has 100k restistance at 25C nothing more. you need a specific type defintion of the thermistor like semitec-104gt-2.

    for testing can you disconnect the duex5?



  • I don´t know wich specific type of thermistor my bed has, it just says: "Thermistor 100k". (My hotends have those "Semitec-104gt-2" thermistors you mentioned)
    When I disconect the duex, do I have to change something in the firmware as well?



  • @Neufra said in low motor torque:

    I don´t know wich specific type of thermistor my bed has, it just says: "Thermistor 100k". (My hotends have those "Semitec-104gt-2" thermistors you mentioned)

    if its a chinese bed. its most likely a B3950.

    the semitec is B4725 C7.060000e-8

    When I disconect the duex, do I have to change something in the firmware as well?

    no



  • Soo, disconecting the duex doesn´t seem to change anything, the Motor connected to the E0 output still doesn´t move.

    About the thermistors, I put in the correct values for the Hotends.
    (I have this heater for my bed. I will contact their support and ask them about the thermistor type!)



  • ok connect up the duex5 again and remap the second z to one on the duex5



  • This post is deleted!


  • The motor works now, I can´t reverse it, but it works. (I just flipped the connector)



  • @Neufra
    reversing the connector should only change the direction. maybe a bad crimp job?



  • No. That´s not what I mean. The motor works, independently of the connector direction. But I can´t change the motor direction through confi.g, only by reversing the connector.



  • @Neufra said in low motor torque:

    But I can´t change the motor direction through confi.g, only by reversing the connector.

    are you restarting after changing the config.g?
    are you editing the config.g in your sys folder?

    also try M98 P"/sys/config.g"



  • well, DuetWebControl asks me the following, after any change in config.g:

    Reset board?
    Would you like to restart your board to apply the updated configuration? 
    

    I click "yes" there.
    And on top of the config.g editor it says:

    0:/sys/config.g
    

    Your command gives me that:

    M98 P"/sys/config.g"
    HTTP is enabled on port 80
    FTP is disabled
    TELNET is disabled
    Writing to file: 4 S1
    Done saving file.
    Error: Bad command: 560 P5 S1
    

Log in to reply