feedrate confusions



  • I had done a test that i have raised a query about... link bellow

    https://forum.duet3d.com/topic/12130/random-test-trying-to-understand-feedrate

    This is more like a continuation or followup

    I moved 1 motor for 100mm at a feedrate of 100mm/min, it took 1 minute.

    now i connected another motor with the exact same settings in steps/mm, current, direction, acceleration, speed, instantaneous speed changes etc in the second extruder,

    Then ran a command G1 E100:100 F100
    This means both the motors should move have ideally moved 100mm in 1 min.
    but this was a shocker. it took 1:25min.

    This got me worked up and curious ath the sam time, so i connected a duex5 and two more motors.
    G1 E100: 100: 100:0 F100
    ran the above code and it took 1:44 min

    G1 E100: 100: 100:100 F100
    this took 2min...šŸ˜Ø šŸ˜±

    so now i am confused how this works and what happens in the background... can anyone shed some light on why this happens.


  • Moderator

    Can you post your config.g so we can see how your motors and tools are set up? This might have a bearing on what each extruder does, ie if you have the tool set up as a mixing extruder, or different motor configurations for different motors limiting speed.

    Regarding minimum speed, you can set this with the 'I' parameter in M203. Default is 30mm/min (0.5mm/s).

    Ian



  • M584 X0 Y1 Z2 E3:4:5:6 ; drive remapping

    ; Drives
    M569 P0 S1 ; Physical drive 0 goes forwards
    M569 P1 S0 ; Physical drive 1 goes forwards
    M569 P2 S0 ; Physical drive 2 goes backwards
    M569 P3 S1 ; Physical drive 3 goes forwards
    M569 P4 S0 ; Physical drive 4 goes forwards
    M350 X128 Y128 Z128 E128:128:128:128 I1 ; Configure microstepping without interpolation
    M92 X640.00 Y640.00 Z3200.00 E3200:3200:3200:3200 ; Set steps per mm
    M566 X900.00 Y900.00 Z12.00 E120.00 ; Set maximum instantaneous speed changes (mm/min)(E120)
    M203 X12000.00 Y12000.00 Z500.00 E3000.00 ; Set maximum speeds (mm/min)
    M201 X1000.00 Y1000.00 Z100.00 E5000.00 ; Set accelerations (mm/s^2)
    M906 X855.00 Y855.00 Z1000.00 E855.00:855.00:855.00:855.00 I30 ; Set motor currents (mA) and motor idle factor in per cent
    M84 S30 ; Set idle timeout


  • Moderator

    @georgepaul said in feedrate confusions:

    M566 X900.00 Y900.00 Z12.00 E120.00 ; Set maximum instantaneous speed changes (mm/min)(E120)
    M203 X12000.00 Y12000.00 Z500.00 E3000.00 ; Set maximum speeds (mm/min)
    M201 X1000.00 Y1000.00 Z100.00 E5000.00 ; Set accelerations (mm/s^2)

    You need to repeat the values for each extruder as you did in the other commands as well with these ones. Otherwise they will most likely get a default value.
    EDIT: My fault. They will auto-repeat.



  • M584 X0 Y1 Z2 E3:4:5:6 ; drive remapping

    ; Drives
    M569 P0 S1 ; Physical drive 0 goes forwards
    M569 P1 S0 ; Physical drive 1 goes forwards
    M569 P2 S0 ; Physical drive 2 goes backwards
    M569 P3 S1 ; Physical drive 3 goes forwards
    M569 P4 S0 ; Physical drive 4 goes forwards
    M350 X128 Y128 Z128 E128:128:128:128 I1 ; Configure microstepping without interpolation
    M92 X640.00 Y640.00 Z3200.00 E3200:3200:3200:3200 ; Set steps per mm
    M566 X900.00 Y900.00 Z12.00 E120.00:120.00:120.00:120.00 ; Set maximum instantaneous speed changes (mm/min)(E120)
    M203 X12000.00 Y12000.00 Z500.00 E3000:3000:3000:3000 ; Set maximum speeds (mm/min)
    M201 X1000.00 Y1000.00 Z100.00 E5000.00:5000.00:5000.00:5000.00 ; Set accelerations (mm/s^2)
    M906 X855.00 Y855.00 Z1000.00 E855.00:855.00:855.00:855.00 I30 ; Set motor currents (mA) and motor idle factor in per cent
    M84 S30 ; Set idle timeout

    I tried this also



  • ; Tools
    M563 P0 D0:1:2:3 H1 ; 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


  • Moderator

    @georgepaul Did you also just try

    G1 E100 F100
    

    ?
    Since your tool is configured to have 4 extruders and probably no mixing ratio (M567 ) this should already be sufficient to move all extruder steppers. What happens then in regards to duration?



  • @wilriker when i send G1 E100 F100, the first extruder(E0) moves and it rotates for 1 minute.


  • Moderator

    @georgepaul OK, then next question: does it work correctly if you define an equal mixing ratio like

    M567 P0 E1:1:1:1
    

    and then just use

    G1 E100 F100
    

    ?



  • @wilriker said in feedrate confusions:

    M567 P0 E1:1:1:1

    i tried this.. it still took 2 minutes


  • Moderator

    @georgepaul OK, we need more information. Can you please run the following commands on your machine and post the output:

    M115
    M201
    M203
    M566
    M92
    M350
    M906
    

    This will print what the machine currently takes as configured values plus the current firmware version.



  • @georgepaul said in feedrate confusions:

    100

    M115
    FIRMWARE_NAME: RepRapFirmware for Duet 2 WiFi/Ethernet FIRMWARE_VERSION: 2.0(RTOS) ELECTRONICS: Duet WiFi 1.02 or later + DueX5 FIRMWARE_DATE: 2018-06-05b3

    M201
    Accelerations: X: 1000.0, Y: 1000.0, Z: 100.0, E: 5000.0:5000.0:5000.0:5000.0

    M203
    Maximum feedrates: X: 12000.0, Y: 12000.0, Z: 500.0, E: 3000.0:3000.0:3000.0:3000.0

    M566
    Maximum jerk rates: X: 900.0, Y: 900.0, Z: 12.0, E: 120.0:120.0:120.0:120.0

    M92
    Steps/mm: X: 640.000, Y: 640.000, Z: 3200.000, E: 3200.000:3200.000:3200.000:3200.000

    M350
    Microstepping - X:128(on), Y:128(on), Z:128(on), E:128(on):128(on):128(on):128(on)

    M906
    Motor current (mA) - X:855, Y:855, Z:1000, E:855:855:855:855, idle factor 30%


  • Moderator

    As a first step perhaps try upgrading the firmware to latest and see if there has been a bug fix or change that makes a difference. Check the Whats New change log as well.

    And does it occur the same with x16 microstepping?



  • @Phaedrux

    I haven't tried with varying micro-stepping yet.. I don't think it should make a difference because for one motor E100 F100 is perfect.



  • @Phaedrux i just tried with 1/16 microstepping... still 2 minutesšŸ˜²



  • I just updated my firmware from 2.00 to 2.03 and ran the same tests.

    M115
    FIRMWARE_NAME: RepRapFirmware for Duet 2 WiFi/Ethernet FIRMWARE_VERSION: 2.03 ELECTRONICS: Duet WiFi 1.02 or later + DueX5 FIRMWARE_DATE: 2019-06-13b2

    Now with M567 P0 E1:1:1:1

    • G1 E100 F100 / G1 E100:0:0:0 F100 all four motors turn in 1 minute.

    • G1 E100: 100:0:0 F100 two motors turn in 2 minute.

    • G1 E100: 100: 100:0 F100 three motors turn in 3 minute.

    • G1 E100: 100: 100: 100 F100 four motors turn in 4 minute.

    And without M567 P0 E1:1:1:1

    • G1 E100 F100 / G1 E100:0:0:0 F100 first motors turn in 1 minute.

    • G1 E100:100 F100 two motors turn in 2 minute.

    • G1 E100: 100:100 F100 three motors turn in 3 minute.

    • G1 E100: 100: 100:100 F100 four motors turn in 4 minute.



  • now that the timing has changed by itself(after updates), i am sure its nothing to do with my config.g file


  • Moderator

    Thinking about it that makes even sense because: with the G1 E100:100:100:100 F100 you command to extrude a total of 400mm of filament (distributed over for extruders) with a feedrate of 100mm/min. That takes four minutes.



  • @wilriker
    That's what I thought too.. so i tried with X and Y axis also,

    G1 X100 E100 F100 ;the move took 1minute
    G1 Y100 E100 F100 ;the move took 1minute
    G1 X100 Y100 E100 F100 ;the move took 1minute 25 seconds



  • i am just curious to know what the printer is doing behind my backšŸ˜›

    there must be some formulae running in the background. What are the variables and constants that define these movements and feedrates?



  • @wilriker This logic makes sense because i tried, G1 E100:50:50:100 F100 and it took 3 minutes



  • @georgepaul said in feedrate confusions:

    @wilriker
    That's what I thought too.. so i tried with X and Y axis also,

    G1 X100 E100 F100 ;the move took 1minute
    G1 Y100 E100 F100 ;the move took 1minute
    G1 X100 Y100 E100 F100 ;the move took 1minute 25 seconds

    That looks fine. The first command means move the X axis 100mm at a feedrate of 100mm/minute while extruding 100mm of filament. The second command is the same but for the Y axis. The third command means move in both the X and Y directions by 100mm. That's a diagonal move so the length of that diagonal is longer (by the square root of 2 so about 1.4 times longer). 60 seconds x 1.4 is about 84 seconds so near enough 1 minute and 25.

    Edit. Be careful with feedrate. If you do G1 F50 then G1 X100 F100, the move will start at 50mm/minute and end at 100mm/minute so it will ramp up to speed over that move and thus take longer. https://duet3d.dozuki.com/Wiki/Gcode#Section_G0_G1_Move


  • Moderator

    @deckingman said in feedrate confusions:

    @georgepaul said in feedrate confusions:
    Edit. Be careful with feedrate. If you do G1 F50 then G1 X100 F100, the move will start at 50mm/minute and end at 100mm/minute so it will ramp up to speed over that move and thus take longer. https://duet3d.dozuki.com/Wiki/Gcode#Section_G0_G1_Move

    Hi Ian,
    I don't think your interpretation of the wiki is correct here. What the section you refer to means is that a given feedrate parameter is sticky (i.e. does not have to be repeated) until the next one is seen. The first example shows that by first setting a feedrate and then a movement without an explicit feedrate reusing the previously set one. The second example basically states that the first set feedrate is immediately overwritten by the one given in the move command. But it does not bring that across very well.

    I also just tested it by running

    G1 F10
    G1 X100 F3000
    

    and it does not accelerate all the way from 10 to 3000mm/min but accelerates (with my 3000mm/sĀ²) to 3000mm/min immediately.



  • @wilriker I have to admit that I haven't tested it myself but from the wiki quote ...........

    "
    G1 F1500
    G1 X50 Y25.3 E22.4 F3000

    However, in the above example, we set a feedrate of 1500mm/minute on line 1, then do the move described above accelerating to a feedrate of 3000 mm/minute as it does so. The extrusion will accelerate along with the X and Y movement, so everything stays synchronized."

    and ...........

    "Feedrate is treated as simply another variable (like X, Y, Z, and E) to be linearly interpolated".

    end of quote.

    Maybe it only acts does the linear interpolation of feedrate if it's a print move which includes extrusion ?? My printer is still in bits so I can't test it myself.



  • @deckingman yes, this is perfect... now i get it.. let me do some other tests and see what i can post herešŸ™„


Log in to reply