Syncing extrusion flow multiplier in UI

edited October 2020 in Repetier-Server
I have a question about syncing the extrusion flow multiplier value in Repetier-server UI.
As I understand then internally Repetier-server is catching it from the gcode (M221) command
or you can set the value manually from UI and server will send M221 command to firmware.

In Klipper firmware, I'm using filament width module and the module is setting the extrusion flow multiplier
internally in Klipper. The Repetier-Server doesn't know that this value was changed.

Is it possible to report the value of the new extrusion flow multiplier to the Repetier-Server
without executing M221 S<percent> command?

Comments

  • That really depends on klipper here. For repetier-firmware we have in our repetier.xml the following line:
    <response type="flowMultiplier" factor="1">FlowMultiply:(\d+)</response>
    which detects when firmware changes flow. Question is does klipper send any message to console when it changes the flow rate? If so what? Then a similar line could be added to klipper.xml firmware description and server would detect the changes from firmware side and show them correctly.
  • Thank you! That was exactly what I was looking for.

  • edited October 2020
    If anyone is interested then I'm testing these Klipper macros.
    [gcode_macro REPORT_FILAMENT_WIDTH]
    variable_last_width: 0
    gcode:
        {% set current_width = printer['hall_filament_width_sensor'].Diameter|float|round(2) %}
        {% if current_width != last_width|float|round(2) %}
            RESPOND TYPE=command MSG={"FlowMultiply:%d" % (printer['gcode_move'].extrude_factor * 100.0,)}
            M117 {"Filament:%4.2fmm" % (printer['hall_filament_width_sensor'].Diameter,)}
        {% endif %}
        SET_GCODE_VARIABLE MACRO=REPORT_FILAMENT_WIDTH VARIABLE=last_width VALUE={current_width}
    
    [delayed_gcode PERIODIC_FILAMENT_WIDTH]
    gcode:
        REPORT_FILAMENT_WIDTH
        UPDATE_DELAYED_GCODE ID=PERIODIC_FILAMENT_WIDTH DURATION=2
    It will output extrude factor value to Repetier-Server when filament diameter is changed
    Recv:22:49:03.359: // FlowMultiply:106
    and for detecting the flow change in Repetier-Server I'm using the following line.
    <response type="flowMultiplier" factor="1">//\s*FlowMultiply:(\d+)</response>
    Thank you @Repetier
  • So guess that means Klipper does not write a message on it's own:-(
    Great you found a solution to still transfer it, but being quite special so I can not add it be default. But if klipper adds a message by default let me know and I add the response parser.
Sign In or Register to comment.