Issue with volumetric extrusion and power-down safe state



  • Hi there,

    i found a problem with the current power down safe state with volumetric extrusion enabled in RRF 3.0 on Duet2 ethernet.

    current implementation will create an output similiar to the following

    ; File "0:/gcodes/3DBenchy.gcode" resume print after power failure at 2020-01-11 17:53
    G21
    M140 P0 S65.0
    T-1 P0
    G92 X367.515 Y204.243 Z10.700
    G60 S1
    G10 P0 S220 R220
    T0 P0
    M98 P"resurrect-prologue.g"
    M116
    M290 X0.000 Y0.000 Z0.000 R0
    T-1 P0
    T0 P6
    ; Workplace coordinates
    G10 L2 P1 X0.00 Y0.00 Z0.00
    G10 L2 P2 X0.00 Y0.00 Z0.00
    G10 L2 P3 X0.00 Y0.00 Z0.00
    G10 L2 P4 X0.00 Y0.00 Z0.00
    G10 L2 P5 X0.00 Y0.00 Z0.00
    G10 L2 P6 X0.00 Y0.00 Z0.00
    G10 L2 P7 X0.00 Y0.00 Z0.00
    G10 L2 P8 X0.00 Y0.00 Z0.00
    G10 L2 P9 X0.00 Y0.00 Z0.00
    G54
    M200 D0.155
    M106 S0.86
    M106 P0 S0.86
    M106 P2 S0.00
    M116
    G92 E0.00000
    M83
    M23 "0:/gcodes/3DBenchy.gcode"
    M26 S559573
    G0 F6000 Z12.700
    G0 F6000 X367.515 Y204.243
    G0 F6000 Z10.700
    G1 F2520.0 P0
    G21
    M24
    

    Where M200 is 0.155, which is equal to the internal factor but not the filament diameter.

    The line of code from github :

    buf.catf("%c%.03f", c, (double)volumetricExtrusionFactors[i]);
    

    which should be

    buf.catf("%c%.03f", c, (double)(2.0/sqrtf(volumetricExtrusionFactors[i] * Pi)));
    

    Hope this will help you in fixing it.

    Tim


Log in to reply