Duet 3 + Tool board extruders out of sync



  • I have two extruder motors configured for for a mixing ratio 1 to 1. One motor connected to tool-board and another to Duet 3 driver 5.

    Motors configured like this:

    M584 X0.0 Y0.1 Z0.2:0.3:0.4 E121.0:0.5             ; set drive mapping
    ...
    M350 X16 Y16 Z16 E16 I1                            ; configure microstepping with interpolation
    M92 X160.00 Y160.00 Z800.00 E463                   ; set steps per mm
    ...
    M567 P0 E1:1                                       ; extruder motors mixing ratio
    

    After 16 hours print I noticed that the differences between my extruder motors positions is not acceptable!

    Capture.PNG

    Am I doing something wrong or there Is a bug in the firmware?



  • can you post the output of M122


  • administrators

    Do the extruders have different pressure advance settings?



  • @dc42 said in Duet 3 + Tool board extruders out of sync:

    Do the extruders have different pressure advance settings?

    The same, like this:

    M572 D0:1 S0.074:0.074							   ; pressure advance tuning
    


  • @Veti said in Duet 3 + Tool board extruders out of sync:

    an you post the output of M122

    Won't give you much, new job started already:

    M122
    === Diagnostics ===
    RepRapFirmware for Duet 3 MB6HC version 3.1.1 running on Duet 3 MB6HC v1.01 or later (SBC mode)
    Board ID: 08DJM-956L2-G43S8-6JKDL-3SJ6L-1802G
    Used output buffers: 1 of 40 (11 max)
    === RTOS ===
    Static ram: 154604
    Dynamic ram: 162888 of which 60 recycled
    Exception stack ram used: 528
    Never used ram: 75136
    Tasks: NETWORK(ready,1972) HEAT(blocked,1188) CanReceiv(suspended,3388) CanSender(suspended,1428) CanClock(blocked,1436) TMC(blocked,68) MAIN(running,2672) IDLE(ready,76)
    Owned mutexes:
    === Platform ===
    Last reset 00:25:35 ago, cause: software
    Last software reset at 2020-09-05 14:05, reason: User, spinning module LinuxInterface, available RAM 75472 bytes (slot 1)
    Software reset code 0x0010 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0444a000 BFAR 0x00000000 SP 0xffffffff Task MAIN
    Error status: 0
    MCU temperature: min 43.7, current 46.2, max 46.4
    Supply voltage: min 23.8, current 23.8, max 24.0, under voltage events: 0, over voltage events: 0, power good: yes
    12V rail voltage: min 12.1, current 12.2, max 12.2, under voltage events: 0
    Driver 0: ok, reads 45092, writes 22 timeouts 0, SG min/max 0/1023
    Driver 1: ok, reads 45092, writes 22 timeouts 0, SG min/max 0/1023
    Driver 2: standstill, reads 45093, writes 22 timeouts 0, SG min/max 0/1023
    Driver 3: standstill, reads 45093, writes 22 timeouts 0, SG min/max 0/1023
    Driver 4: standstill, reads 45094, writes 22 timeouts 0, SG min/max 0/1023
    Driver 5: ok, reads 45094, writes 22 timeouts 0, SG min/max 0/486
    Date/time: 2020-09-05 14:31:10
    Slowest loop: 7.36ms; fastest: 0.14ms
    === Storage ===
    Free file entries: 10
    SD card 0 not detected, interface speed: 37.5MBytes/sec
    SD card longest read time 0.0ms, write time 0.0ms, max retries 0
    === Move ===
    Hiccups: 0(0), FreeDm: 371, MinFreeDm: 285, MaxWait: 412437ms
    Bed compensation in use: mesh, comp offset 0.000
    === MainDDARing ===
    Scheduled moves: 10998, completed moves: 10938, StepErrors: 0, LaErrors: 0, Underruns: 0, 0  CDDA state: 3
    === 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
    Heater 0 is on, I-accum = 0.4
    Heater 1 is on, I-accum = 0.0
    === GCodes ===
    Segments left: 1
    Movement lock held by null
    HTTP* is ready with "M122" in state(s) 0
    Telnet is idle in state(s) 0
    File* is doing "G1 X265.122009 Y213.313995 E2.858500" 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
    Aux2 is idle in state(s) 0
    Autopause is idle in state(s) 0
    Code queue is empty.
    === Network ===
    Slowest loop: 1.09ms; fastest: 0.01ms
    Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0), 0 sessions Telnet(0), 0 sessions
    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 17238, longest wait 3ms for type 6012
    === Linux interface ===
    State: 0, failed transfers: 0
    Last transfer: 25ms ago
    RX/TX seq numbers: 49779/49781
    SPI underruns 0, overruns 0
    Number of disconnects: 0
    Buffer RX/TX: 1680/2952-0
    === Duet Control Server ===
    Duet Control Server v3.1.1
    File:
    Buffered code: G1 X265.122 Y213.314 E2.8585
    Buffered code: G1 X265.125 Y213.314 E2.8586
    Buffered code: G1 X265.355 Y213.305 E2.8659
    Buffered code: G1 X265.503 Y213.300 E2.8706
    Buffered code: G1 X308.992 Y213.300 E4.2447
    Buffered code: G1 X309.007 Y213.301 E4.2452
    Buffered code: G1 X309.111 Y213.310 E4.2485
    Buffered code: G1 X309.220 Y213.336 E4.2520
    Buffered code: G1 X309.225 Y213.338 E4.2522
    Buffered code: G1 X309.243 Y213.346 E4.2528
    Buffered code: G1 X309.323 Y213.380 E4.2555
    Buffered code: G1 X309.412 Y213.436 E4.2589
    Buffered code: G1 X309.420 Y213.444 E4.2592
    Buffered code: G1 X309.561 Y213.585 E4.2656
    Buffered code: G1 X309.564 Y213.588 E4.2657
    Buffered code: G1 X309.578 Y213.611 E4.2665
    Buffered code: G1 X309.616 Y213.670 E4.2687
    Buffered code: G1 X309.619 Y213.675 E4.2689
    Buffered code: G1 X309.670 Y213.803 E4.2733
    Buffered code: G1 X309.678 Y213.837 E4.2744
    Buffered code: G1 X309.682 Y213.853 E4.2749
    Buffered code: G1 X309.690 Y213.888 E4.2760
    Buffered code: G1 X309.698 Y213.984 E4.2791
    Buffered code: G1 X309.700 Y214.008 E4.2798
    Buffered code: G1 X309.700 Y253.992 E5.5432
    Buffered code: G1 X309.698 Y254.016 E5.5440
    Buffered code: G1 X309.690 Y254.112 E5.5470
    Buffered code: G1 X309.682 Y254.147 E5.5482
    Buffered code: G1 X309.678 Y254.163 E5.5487
    Buffered code: G1 X309.670 Y254.197 E5.5498
    Buffered code: G1 X309.619 Y254.326 E5.5542
    Buffered code: G1 X309.615 Y254.331 E5.5544
    ==> 1528 bytes
    Code buffer space: 1184
    Configured SPI speed: 8000000 Hz
    Full transfers per second: 32.54
    File /opt/dsf/sd/gcodes/motor_mounts.gcode is selected, processing
    


  • Already see the difference in the new job.
    Capture.PNG



  • @evomotors If you've got multiple extruders then you ought to set the steps per mm for each extruder. Currently you have

    M92 X160.00 Y160.00 Z800.00 E463 
    

    but it ought to be

    M92 X160.00 Y160.00 Z800.00 E463:E463
    

    The same applies to other commands such as M350 (although that will default to 16x), M566, M203, M201, M906 etc...



  • @deckingman said in Duet 3 + Tool board extruders out of sync:

    @evomotors If you've got multiple extruders then you ought to set the steps per mm for each extruder. Currently you have

    M92 X160.00 Y160.00 Z800.00 E463 
    

    but it ought to be

    M92 X160.00 Y160.00 Z800.00 E463:E463
    

    The same applies to other commands such as M350 (although that will default to 16x), M566, M203, M201, M906 etc...

    Thank you! Doing this seem to work.


  • administrators

    I am surprised, it's normally the case that if only one E value is provided, it gets duplicated to all extruders. I will check.



  • ![0_1599336711016_Capture2.PNG](Uploading 100%) @dc42 said in Duet 3 + Tool board extruders out of sync:

    I am surprised, it's normally the case that if only one E value is provided, it gets duplicated to all extruders. I will check.

    Well... it seem to be working now.


  • administrators

    I have just checked with the latest firmware build, and found that a single M92 E value does get duplicated to all extruders as I expected.



  • @dc42 said in Duet 3 + Tool board extruders out of sync:

    I have just checked with the latest firmware build, and found that a single M92 E value does get duplicated to all extruders as I expected.

    It must be bug somewhere. It stopped going out of sync when I added these values for E

    M350 X16 Y16 Z16 E16:16 I1                         ; configure microstepping with interpolation
    M92 X160.00 Y160.00 Z800.00 E405:405               ; set steps per mm
    M566 X1000.00 Y1000.00 Z50.00 E3000.00:3000.00         	   ; set maximum instantaneous speed changes (mm/min)
    M203 X30000.00 Y30000.00 Z2000.00 E180000.00:180000.00       ; set maximum speeds (mm/min)
    M201 X1800.00 Y1800.00 Z100.00 E2000.00:2000.00            ; set accelerations (mm/s^2)
    M906 X1600 Y1600 Z1600 E900:1000 I80               ; set motor currents (mA) and motor idle factor in per cent
    


  • @evomotors I guess to be absolutely sure that it wasn't just a coincidence, you ought to revert the configuration back to how you had it and test again. If the problem rears it's ugly head again and is repeatable, then you have a strong case that there is indeed a bug (which might be related to having one extruder on a tool board and the other on the main board.

    It's the only way that you'll convince @dc42 to look into it.



  • @deckingman I'm fine with it working with explicit values in config. I'm pretty sure he has lots on other stuff to do.



  • @evomotors said in Duet 3 + Tool board extruders out of sync:

    @deckingman I'm fine with it working with explicit values in config. I'm pretty sure he has lots on other stuff to do.

    I understand that but someone else might run into the same problem in the future. So if it is a bug, and if @dc42 can fix it, it will save others from having the same issues that you experienced.

    Having said all that, personally I try to make a habit of always explicitly declaring anything which might otherwise have a default value.



  • @deckingman Good point, I will try later.


Log in to reply