Unable to run 128 or 256 microstepping



  • Hi.

    It is not high on my list of priorities to fix but still, it might turn out my board is damaged or something.
    I am not able to use any higher micro-stepping than 64, motors will stop moving after 10mm of movement or so, DWC will show "Busy" by emergency stop button. There is no noise, it doesn't look like skipping steps or stalling, rather like driver hanging or freezing. I tried increasing current with no effect.

    It is coreXY, with 0.9 nema17 steppers on X/Y, 24V supply.

    I am including my entire config.g as I have probaby made a mistake somewhere there.

    ; Configuration file for Duet Ethernet (firmware version 1.20 or newer)
    ; executed by the firmware on start-up
    ;
    ; generated by RepRapFirmware Configuration Tool on Sun Apr 08 2018 21:29:44 GMT+0100 (BST)
    
    
    ;**************************************************
    ;**          General preferences                 **
    ;**************************************************
    M111 S0 			; Debugging off
    G21 				; Work in millimetres
    M555 P1 			; Set firmware compatibility to look like RepRapFirmare
    G90                             ; Send absolute coordinates...
    M83                             ; ...but relative extruder moves
    ;M80				; Turn on PSU
    
    M667 S1                         ; Select CoreXY mode
    
    ;**************************************************
    ;**                 Network                      **
    ;**************************************************
    M550 PHEVO                      ; Set machine name
    M540 PBE:EF:DE:AD:FE:ED         ; Set MAC address
    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 S1                      ; Enable Telnet
    
    
    ;**************************************************
    ;**                   Drives                     **
    ;**************************************************
    M569 P0 S1                      ; Drive 0 (X) goes backwards
    M569 P1 S0                      ; Drive 1 (Y) goes forwards
    M569 P2 S0                      ; Drive 2 (Z) goes forwards
    M569 P3 S0                      ; Drive 3 (E1) goes forwards
    M569 P4 S1                      ; Drive 4 (E2) goes backwards
    
    M350 X256 Y256 Z64 I0           ; Configure microstepping without interpolation
    M350 E32:32 I0                  ; Configure microstepping without interpolation
    M92 X2560 Y2560 Z6400 E1607:1692; Set steps per mm (simple extruder 282; clone 1720)
    M566 X900 Y900 Z12 E120         ; Set maximum instantaneous speed changes (mm/min)
    M203 X12000 Y12000 Z400 E6000   ; Set maximum speeds (mm/min)
    M201 X3000 Y3000 Z250 E3000     ; Set accelerations (mm/s^2) (prusa ma 3000)
    M906 X800 Y800 Z800 E1100 I20   ; Set motor currents (mA) and motor idle factor in per cent
    M84 S30                         ; Set idle timeout
    
    ; Pressure advance
    ;M572 D3:4 S0.1
    
    ;**************************************************
    ;**                 Axis Limits                  **
    ;**************************************************
    M208 X0 Y0 Z0 S1                ; Set axis minima
    M208 X400 Y411 Z370 S0          ; Set axis maxima
    M556 S81.5 Y0 Z0.5209		; Axis compensation for YZ and YZ planes
    M556 S100 X-0.31		; Axis compensation for XY plane
    
    
    
    ;**************************************************
    **                    Endstops                   **
    ***************************************************
    M574 X1 Y1 S1                   ; Set active high endstops
    
    
    ;**************************************************
    ;**                   Z-Probe                    **
    ;**************************************************
    M574 Z1 S2                      ; Set endstops controlled by probe
    M558 P5 H5 F120 T24000          ; Set Z probe type to unmodulated and the dive height + speeds
    G31 P600 X-12.5 Y63.8 Z0.58     ; Set Z probe trigger value, offset and trigger height
    M557 X-12.5:377.5 Y63.8:423.8 S50; Define mesh grid
    
    
    ;**************************************************
    ;**                  Heaters                     **
    ;**************************************************
    ;M301 H0 S1.00 P10 I0.1 D200 T0.4 W180 B30 ; Use PID on bed heater (may require further tuning)
    M307 H0 A305.2 C1020.5 D0.7 B0	; PID tuning Heated Bed
    M307 H1 A483.9 C161 D6.2 S1 B0 	; PID tuning hotend
    M305 P0 T100000 B4138 C0 R4700  ; Set thermistor + ADC parameters for heater 0
    M143 H0 S120                    ; Set temperature limit for heater 0 to 120C
    M305 P1 T100000 B4138 C0 R4700  ; Set thermistor + ADC parameters for heater 1
    M143 H1 S280                    ; Set temperature limit for heater 1 to 280C
    
    M307 H7 A-1 C-1 D-1		; Disable Heater 7 for servo use
    
    
    ;**************************************************
    ;**                   Fans                       **
    ;**************************************************
    M106 P0 S0.3 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
    M106 P2 S1 I0 F500 H1 T45       ; Set fan 2 value, PWM signal inversion and frequency. Thermostatic control is turned on
    M106 P3 H100:101:102 T45:55 L0.3  ; Set fan 3 value, Thermostatic control is turned on for virtual heaters 100 and 
    				; 101 (MCU and TMC2660)
    M106 P5 T45 H1                  ; Set fan 5 value. Thermostatic control is turned on for Heater 1
    
    
    ;**************************************************
    ;**                  Tools                       **
    ;**************************************************
    ; Tool 0
    M563 S"Titan"P0 D0 H1           ; Define tool 0
    G10 P0 X0 Y0 Z0                 ; Set tool 0 axis offsets
    G10 P0 R160 S210                ; Set initial tool 0 active and standby temperatures to 0C
    
    ; Tool 1
    M563 S"Drakon" P1 D1 H1           ; Define tool 1
    G10 P1 X0 Y0 Z0                 ; Set tool 1 axis offsets
    G10 P1 R160 S210                ; Set initial tool 1 active and standby temperatures to 0C
    
    
    ;**************************************************
    ;**          Automatic power saving              **
    ;**************************************************
    M911 S20 R22 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; Set voltage thresholds and actions to run on power loss
    
    
    ;**************************************************
    ;**               Custom settings                **
    ;**************************************************
    M207 S180 F6000                 ; Set F/W retraction in mm 
    ;M915 F0 X Y S3 H400 R1          ; Stall detection
    

  • administrators

    This is a known issue with firmware 1.21 when the microstepping it set higher than the machine and electronics can physically manage. It is believed fixed in the 2.0RC firmware.



  • @dc42 Does it mean that machine cannot physically manage this? Am I pushing it too far?

    Updated to 2.0RC firmware, I can report that 256 micro-stepping started to work when using jog controls, but it is moving very weirdly when doing some faster non-print moves when printing. The diagonal move has been completed in something like a sequence of moves of left and right motor, performing "steps" like moves in X and Y, instead of one move diagonally. Also, stalls and it is skipping steps. I have not tested it any further...


  • administrators

    In firmware 1.21 and earlier, the MaxReps figure in the M122 report would indicate whether you were pushing the controller too fast. MaxReps of 50 or less was good, 100 was just about OK, more than 100 means that you need to reduce speed and/or microstepping. A side effect of MaxReps getting too high was web interface disconnections, because the MCU was spending all its time generating step pulses, leaving no time to service the network interface.

    In firmware 2.0 MaxReps is monitored dynamically. If it gets too high, a short pause is inserted. But it looks like I need to do some more work on this. I think I understand what is going on and I will fix it in the next RC.


Locked
 

Looks like your connection to Duet3D was lost, please wait while we try to reconnect.