Max speed cap?



  • I use a Duet 6HC + 3HC on 3.01RC7. Wanted to see how the printer I build would handle high travel speeds.
    I have as of yet only the XY installed. I can't seem to get a speed higher than 283mm/s as reported by the DWC.
    CoreXY with 0,9* steppers. Travel move: "G1 X450 Y450 F20000", Acc 5000.
    Even tried halving the microsteps to 8 but no change.

    It should be able to do higher speed.

    2020-04-14 23:20:43	m203
    Max speeds (mm/sec): X: 400.0, Y: 400.0, Z: 3.0, E: 20.0:20.0, min. speed 0.50
    2020-04-14 23:19:28	m122 b1
    Diagnostics for board 1:
    Board EXP3HC firmware 3.01-RC7 (2020-04-14b1)
    Never used RAM 163.1Kb, max stack 537b
    HEAT 1088 CanAsync 1392 CanRecv 1428 TMC 164 AIN 532 MAIN 2216
    Last reset 00:06:00 ago, cause: software
    Driver 0: standstill, reads 23600, writes 24 timeouts 0, SG min/max 0/206
    Driver 1: standstill, reads 23615, writes 11 timeouts 0, SG min/max 0/0
    Driver 2: standstill, reads 23605, writes 24 timeouts 0, SG min/max 0/117
    Moves scheduled 18, completed 18, hiccups 0
    VIN: 30.9V, V12: 12.1V
    MCU temperature: min 39.8C, current 40.0C, max 40.0C
    Ticks since heat task active 161, ADC conversions started 360154, completed 360154, timed out 0
    Last sensors broadcast 00000001 found 1 163 ticks ago
    Free CAN buffers: 36
    NVM user row de9a9239 aeecffb1 ffffffff ffffffff
    2020-04-14 23:19:10	M122
    === Diagnostics ===
    RepRapFirmware for Duet 3 MB6HC version 3.01-RC7 running on Duet 3 MB6HC v0.6 or 1.0
    Board ID: 08DJM-956L2-G43S4-6JKDD-3SJ6L-TB62G
    Used output buffers: 1 of 40 (11 max)
    === RTOS ===
    Static ram: 154580
    Dynamic ram: 161660 of which 120 recycled
    Exception stack ram used: 388
    Never used ram: 76468
    Tasks: NETWORK(ready,2076) HEAT(blocked,1260) CanReceiv(suspended,3384) CanSender(suspended,1432) CanClock(blocked,1432) TMC(blocked,216) MAIN(running,4740) IDLE(ready,80)
    Owned mutexes:
    === Platform ===
    Last reset 00:05:41 ago, cause: software
    Last software reset at 2020-04-14 23:13, reason: User, spinning module LinuxInterface, available RAM 76680 bytes (slot 1)
    Software reset code 0x0010 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0444a000 BFAR 0x00000000 SP 0xffffffff Task 0x4e49414d
    Error status: 0
    Free file entries: 10
    SD card 0 not detected, interface speed: 37.5MBytes/sec
    SD card longest block write time: 0.0ms, max retries 0
    MCU temperature: min 37.7, current 38.0, max 38.2
    Supply voltage: min 24.0, 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.0, max 12.1, under voltage events: 0
    Driver 0: standstill, reads 42974, writes 14 timeouts 0, SG min/max 0/0
    Driver 1: standstill, reads 42977, writes 11 timeouts 0, SG min/max 0/0
    Driver 2: standstill, reads 42977, writes 11 timeouts 0, SG min/max 0/0
    Driver 3: standstill, reads 42975, writes 14 timeouts 0, SG min/max 0/0
    Driver 4: standstill, reads 42975, writes 14 timeouts 0, SG min/max 0/0
    Driver 5: standstill, reads 42979, writes 11 timeouts 0, SG min/max 0/0
    Date/time: 2020-04-14 23:19:09
    Slowest loop: 3.68ms; fastest: 0.14ms
    === Move ===
    Hiccups: 0(0), FreeDm: 375, MinFreeDm: 375, MaxWait: 32500ms
    Bed compensation in use: none, comp offset 0.000
    === MainDDARing ===
    Scheduled moves: 19, completed moves: 19, StepErrors: 0, LaErrors: 0, Underruns: 0, 0  CDDA state: -1
    === AuxDDARing ===
    Scheduled moves: 0, completed moves: 0, StepErrors: 0, LaErrors: 0, Underruns: 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 ready with "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
    Autopause is idle in state(s) 0
    Code queue is empty.
    === Network ===
    Slowest loop: 0.82ms; fastest: 0.01ms
    Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0) Telnet(0)
    HTTP sessions: 0 of 8
    - Ethernet -
    State: disabled
    Error counts: 0 0 0 0 0
    Socket states: 0 0 0 0 0 0 0 0
    === CAN ===
    Messages sent 1435, longest wait 1ms for type 6021
    === Linux interface ===
    State: 0, failed transfers: 0
    Last transfer: 17ms ago
    RX/TX seq numbers: 41102/10993
    SPI underruns 0, overruns 0
    Number of disconnects: 0
    Buffer RX/TX: 0/0-0
    === Duet Control Server ===
    Duet Control Server v1.3.2.0
    Code buffer space: 4096
    Configured SPI speed: 8000000 Hz
    Full transfers per second: 32.42
    

    Config:

    ; Configuration file for Duet 3 (firmware version 3)
    ; executed by the firmware on start-up
    ;
    ; generated by RepRapFirmware Configuration Tool v2.1.8 on Tue Mar 17 2020 22:56:04 GMT+0100 (centraleuropeisk normaltid)
    
    ; General preferences
    G90                                             ; send absolute coordinates...
    M83                                             ; ...but relative extruder moves
    M550 P"qTC"                                  ; set printer name
    
    M667 S1                                         ; select CoreXY mode
    
    ; Drives
    M569 P1.0 S1 F4                                    ; physical drive 1.0 goes forwards
    M569 P1.2 S0 F4                                   ; physical drive 1.2 goes forwards
    M569 P0.0 S1                                    ; physical drive 0.0 goes forwards
    M569 P0.3 S1                                    ; physical drive 0.3 goes forwards
    M569 P0.4 S1                                    ; physical drive 0.4 goes forwards
    M584 X1.0 Y1.2 Z0.0 E0.3:0.4                    ; set drive mapping
    M350 X8 Y8 Z16 E16:16 I1                      ; configure microstepping with interpolation
    M92 X160.00 Y160.00 Z4000.00 E420.00:420.00 S16 ; set steps per mm as defined for 16 microsteps
    M566 X900.00 Y900.00 Z12.00 E120.00:120.00      ; set maximum instantaneous speed changes (mm/min)
    M203 X24000.00 Y24000.00 Z180.00 E1200.00:1200.00 ; set maximum speeds (mm/min)
    M201 X5000.00 Y5000.00 Z20.00 E250.00:250.00      ; set accelerations (mm/s^2)
    M906 X1300 Y1300 Z800 E800:800 I30              ; set motor currents (mA) and motor idle factor in per cent
    M84 S30                                         ; Set idle timeout
    
    ; Axis Limits
    M208 X0 Y0 Z0 S1                                ; set axis minima
    M208 X600 Y500 Z200 S0                          ; set axis maxima
    
    ; Endstops
    M574 X1 S1 P"!1.io0.in"							; Endstop for X is on io0 on expansion 1
    M574 Y1 S1 P"^1.io1.in"							; Endstop for Y is on io1 on expansion 1
    M574 Z0											; Z has no endstop right now.
    
    ; Emergency Button
    M950 J1 C"0.io0.in"								; Use the input pin on io0 on the main board
    M581 P1 T0 S0									; Use above to trigger Emergency Reset. PowerCycle afterwards.
    
    
    ; 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
    M308 S0 P"1.temp0" Y"thermistor" T100000 B4138  ; configure sensor 0 as thermistor on pin 1.temp0
    M950 H0 C"1.out0" T0                            ; create bed heater output on 1.out0 and map it to sensor 0
    M143 H0 S120                                    ; set temperature limit for heater 0 to 120C
    M307 H0 B0 S1.00                                ; disable bang-bang mode for the bed heater and set PWM limit
    M140 H0                                         ; map heated bed to heater 0
    M308 S1 P"temp0" Y"thermistor" T100000 B4138    ; configure sensor 1 as thermistor on pin temp0
    M950 H1 C"out0" T1                              ; create nozzle heater output on out0 and map it to sensor 1
    M143 H1 S280                                    ; set temperature limit for heater 1 to 280C
    M307 H1 B0 S1.00                                ; disable bang-bang mode for heater  and set PWM limit
    
    ; Fans
    M950 F0 C"out3" Q500                            ; create fan 0 on pin out3 and set its frequency
    M106 P0 S0 H-1                                  ; set fan 0 value. Thermostatic control is turned off
    M950 F1 C"out4" Q500                            ; create fan 1 on pin out4 and set its frequency
    M106 P1 S1 H1 T45                               ; set fan 1 value. 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 settings are not defined
    
    ; Miscellaneous
    M501                                            ; load saved parameters from non-volatile memory
    
    
    


  • Hmm, 283 mm/s is oddly close to the product quotient of your max speed from M203 and the square root of 2.

    Have you tried the travel move in multiple directions? IE, engaging both motors at once, one motor at a time, etc.?


  • Moderator

    If you use the EMF calculator found here what does it say your max attainable speed should be based on your motor specs? https://www.reprapfirmware.org/

    You can also use this one to find your max accel https://wilriker.github.io/maximum-acceleration-calculator/



  • @bot
    Yes, that was it actually ...


Log in to reply