Drucker stoppt kurz oder bricht ab

Frohes neues Jahr.

Ich habe folgendes Problem.
An meinem Raspberry Pi 4 hängen insgesamt 3 Drucker. 
2x mit Marlin, und 1x mit Klipper. 
Seit ein paar Monaten habe ich das Problem, dass die Drucker mit Marlin, kurz stocken, bzw.  teilweise stehenbleiben, wenn der Drucker mit Klipper anfängt zu drucken.
Ich habe bereits alle Kabel ausgetauscht und auch mal auf andere Steckplätze gesteckt und mit einem USB Hub verbunden. Aber das Problem besteht weiter.

Folgende Fehlermeldung kommt bei den Drucken, die stehen bleiben.

Mesg:14:53:07.499: Connection status: Buffered:84, Manual Commands: 0, Job Commands: 5000
Mesg:14:53:07.499: Buffer used:84 Enforced free byte:43 lines stored:2
Mesg:14:53:18.707: Warning: Communication timeout - resetting communication buffer.
Mesg:14:53:18.707: This means that a expected firmware response was not seen within the expected time.
Mesg:14:53:18.707: The typical reason is a communication error and print should continue after the communication reset.
Mesg:14:53:18.707: Connection status: Buffered:68, Manual Commands: 0, Job Commands: 5000
Mesg:14:53:18.707: Buffer used:68 Enforced free byte:43 lines stored:2
Mesg:14:53:25.942: Warning: Communication timeout - resetting communication buffer.
Mesg:14:53:25.942: This means that a expected firmware response was not seen within the expected time.
Mesg:14:53:25.942: The typical reason is a communication error and print should continue after the communication reset.
Mesg:14:53:25.942: Connection status: Buffered:68, Manual Commands: 0, Job Commands: 5000
Mesg:14:53:25.942: Buffer used:68 Enforced free byte:41 lines stored:2
Recv:14:53:25.943: Error:Line Number is not Last Line Number+1, Last Line: 28794
Recv:14:53:25.943: Resend: 28795
Mesg:14:54:06.602: Warning: Communication timeout - resetting communication buffer.
Mesg:14:54:06.602: This means that a expected firmware response was not seen within the expected time.
Mesg:14:54:06.602: The typical reason is a communication error and print should continue after the communication reset.
Mesg:14:54:06.602: Connection status: Buffered:82, Manual Commands: 0, Job Commands: 5000
Mesg:14:54:06.602: Buffer used:82 Enforced free byte:41 lines stored:2
Recv:14:54:11.646: Error:Line Number is not Last Line Number+1, Last Line: 30366
Recv:14:54:11.646: Resend: 30367
Mesg:14:54:19.450: Warning: Communication timeout - resetting communication buffer.
Mesg:14:54:19.450: This means that a expected firmware response was not seen within the expected time.
Mesg:14:54:19.450: The typical reason is a communication error and print should continue after the communication reset.
Mesg:14:54:19.450: Connection status: Buffered:92, Manual Commands: 0, Job Commands: 5000
Mesg:14:54:19.450: Buffer used:92 Enforced free byte:31 lines stored:3
Mesg:14:54:26.256: Warning: Communication timeout - resetting communication buffer.
Mesg:14:54:26.256: This means that a expected firmware response was not seen within the expected time.
Mesg:14:54:26.256: The typical reason is a communication error and print should continue after the communication reset.
Mesg:14:54:26.256: Connection status: Buffered:83, Manual Commands: 0, Job Commands: 5000
Mesg:14:54:26.257: Buffer used:83 Enforced free byte:43 lines stored:2

Hat jemand eine Idee, was die Ursache sein könnte?

Vielen Dank


Comments

  • Klappt denn der Klipper Druck dabei? Nicht das klipper hier auf die Ports zugreift. Wobei dann klipper eigentlich gar nicht klappen sollte.

    Da hier ja nur Bruchstücke des logs stehen und auch nicht klar ist wann genau Klipper gestartet ist - sind ja mehrere timeouts. Es scheint aber das es zumindest zu einer Kommunikationsstörung kommt wo das "ok" nicht empfangen wird was dann zum timeout führt. Marlin antwortet aner mit Resend: scheint also das die Verbindung an sich weiter besteht. Die beiden Resends sind über 1000 Zeilen auseinander dazwischen hat es also offenbar eine weile geklappt. Wenn alle timeouts nach dem Klipper start kommen, ist es wohl schlecht entstört. Evtl. fehlen auch die usb termintatoren oder Kabel kommen zu nah an die usb Leitungen und induzieren Störungen.

    Welchen Drucker hast du am Hub angeschlossen? Da zu vermuten ist, das der Klipper Drucker hier zu interferenzen führt würde ich den am Hub und die anderen regulär anschließen zum testen damit möglichst wenige Probleme am pi ankommen.
  • Danke für die Antwort.
    Der Klipper Drucker funktioniert problemlos.

    Die Marlin Drucker fangen halt sofort an zu stocken, sobald der Klipper startet. Die drucken dann teilweise 10-20 Sekunden normal, und bleiben dann für 2 Sekunden stehen und machen dann einfach weiter.
    Manchmal bleiben die Marlin, dann auch komplett stehen und machen nicht mehr weiter. Das kommt aber recht selten vor.
    Teilweise gibt es auch keine Probleme.
    An dem Server sind noch 2 USB Kameras anschlossen, diese habe ich aber ebenfalls schon mal angeklemmt, ohne Erfolg.

    Aktuell hängt der Klipper Drucker an dem USB Hub und die anderen direkt am Pi.

    Das ganze Setup lief über 1 Jahr Fehlerfrei und fing dann irgendwann an.
    Deine Vermutung geht aber schon in die Richtung, dass irgendwas mit den Kabeln nicht stimmt?
    Dann wer ich vielleicht noch mal komplett alle USB Kabel durch neue Hochwertige ersetzten.

  • Kabel dachte ich weniger. Wenn die beiden Marlin Drucker ohne Klipper normal fehlerlos drucken denke ich nicht das es die Kabel sind. 10-20 sekunden normal drucken kann am Puffer liegen je nachdem wie lang die gepufferten moves sind. Problem ist offenbar das dann ein "ok" nicht korrekt ankommt was ein timeout triggert damit es weiter geht.

    Was ich meine ist das manchmal Drucker schlecht entstört sind und sich dann EMF über die usb Kabel einschleicht und zu störungen führt Linux/USB Hub trennt dann sogar gelegentlich USB mit dem Hinweis das es EMF sein könnte das zum Schutz des restlichen Systems zum Trennen führt. mÜssen ja nur einige bits anders raus kommen. Passiert gerne wenn man die Last am Drucker schnell ändert also Bett/Extruder gleichzeitig auf vollast und dann noch homen. Oder halt wenn ein großer Stromnutzer (Heizen/Motor) nah an einem kommunikationskabel kommt kann über induktion Störung auf die Sendeleitung kommen. Wenn es mit dem gleichen Settup lange gut ging hat sich vielleicht intern ein Kabel verschoben? Wäre ja aschon komisch wenn ein Gerät plötzlich störungen erzeugt.

    Welche Server-Version nutzt du? Sobald wir 1.4.5 fertig haben solltest du darauf wechseln, wir haben d anoch ein paar Sachen verbessert je nachdem von wo du kommst. Arbeite mit hochdruck an der erstellung, sollte diese Woche kommen. Es zeigt teilweise einige störungen besser im log an um die Fehlersuche zu vereinfachen.

    Hast du schnelles neuverbinden nach Trennung aktiviert, falls hier usb getrennt wurde?
  • Der Klipper Drucker ist ein Artillery Sidewinder X1. Also ein billiger China Drucker. Kann natürlich sein, dass da irgendwas nicht optimal entstört ist.
    Der eine Marlin Drucker ist ein Ender 3 mit SKR E3 Board und der andere ein Prusa Mini Original.

    Ich habe aktuell die 1.4.4 drauf.

    "Drucker nach schnellem Wiederverbinden fortsetzen" ist AN
    "USB neu verbinden nach Timeout" ist auf NIE

    Macht es z.B. Sinn, die Eingangspuffergröße von 127Byte auf 255Byte zu stellen, oder Ping Pong Modus?

    Ich probiere es einfach mal <span>:smile:</span>
  • Ok, also das Problem liegt definitiv am Artillery Sidewinder selbst (Klipper).

    Ich kann jetzt noch ganz sagen was genau es ist, aber die Probleme beginnen z.B. sobald der Hotend aufheizt.
    Habe zu Test noch mal ein andere USB Kabel genommen (deutlich länger). Damit bricht dann selbst die Verbindung vom Sidewinder ab. Dann kommt so eine Meldung beim Repetier Server, ob man die Firmware "Reactivieren" möchte.
    Irgendwas ist da nicht in Ordnung. Ich guck mal, ob ich da was finde.
    Danke für die Hilfe!


  • Einen sidewinder x1 hab ich auch, allerdings mit original marlin. Da macht er bei mir keine Probleme. Hatte ihn allerdings gekauft weil viele Verbingsprobleme damit hatten und wollte das mal selber testen.

    Ihn mal mit Klipper zu probieren ist eine Idee. Klappt das display danach noch? Ist zwar nicht so wichtig aber wäre nett wenn es zumindest etwas klappen würde. Hab diese klippe rkonfigs gefunden:
    https://github.com/Clank50AE/Clanks-Klipper-Configs

    Sind das auch deine oder hast du was neueres?
  • Der Sidewinder lief mit Klipper und Repetier Server über ein Jahr ohne Probleme bei mir. 

    Ich habe das Mainboard aber noch von Hand und nicht mit RS geflashed. Das Display geht bei mir nicht. Ich musste das auch glaube ich abklemmen, damit das Flashen überhaupt funktioniert hat. Habs nie wieder angeklemmt, ich steure alles über RS.
    Ich habe alles über Kiauh installiert, z.B. Mainsail und Fluidd.


    Ich überlege Klipper noch mal über RS einzurichten. Da ich ganz schon in mit den Rechten rumspielen musste, damit es klappt. Das macht ein Backup auch nicht unbedingt leichter.
    Kann ich dann auch Mainsail benutzen und auch über RS eine zweite Klipper instanz installieren?


    Meine Config sieht ähnlich aus. Hab die mal unten geposted. Sind noch paar Sachen drin, wie der Runout Sensor, LED am Druckkopf und Pressure Advanced

    [stepper_x]
    step_pin: ar54
    dir_pin: ar55
    enable_pin: !ar38
    microsteps: 16
    rotation_distance: 40
    endstop_pin: ^!ar3
    position_endstop: 0
    position_max: 310
    homing_speed: 40.0

    [stepper_y]
    step_pin: ar60
    dir_pin: ar61
    enable_pin: !ar56
    microsteps: 16
    rotation_distance: 40
    endstop_pin: ^!ar14
    position_endstop: 0
    position_max: 310
    homing_speed: 40
    homing_positive_dir: false

    [stepper_z]
    step_pin: ar46
    dir_pin: !ar48
    enable_pin: !ar62
    microsteps: 16
    rotation_distance: 8
    endstop_pin: ^!ar18
    position_endstop: 0
    position_min: -3
    position_max: 400
    homing_speed: 15
    second_homing_speed: 1

    [stepper_z1]
    step_pin: ar36
    dir_pin: !ar34
    enable_pin: !ar30
    microsteps: 16
    rotation_distance: 8

    [extruder]
    step_pin: ar26
    dir_pin: ar28
    enable_pin: !ar24
    microsteps: 16
    rotation_distance: 7.53
    pressure_advance: 0.03
    nozzle_diameter: 0.400
    filament_diameter: 1.750
    heater_pin: ar10
    sensor_type: EPCOS 100K B57560G104F
    sensor_pin: analog13
    min_extrude_temp: 180
    min_temp: 5
    max_temp: 300
    max_extrude_only_distance: 500
    max_extrude_cross_section: 2.0

    [heater_bed]
    heater_pin: ar8
    sensor_type: EPCOS 100K B57560G104F
    sensor_pin: analog14
    min_temp: 5
    max_temp: 150

    [fan]
    pin: ar9
    kick_start_time: 0.500

    [heater_fan my_nozzle_fan]
    pin:ar7
    heater: extruder
    heater_temp: 50.0
    fan_speed: 1.0

    ##LED

    [output_pin my_LED_pin_RED] 
    pin: ar5
    pwm: true
    hardware_pwm: true
    value: 0
    shutdown_value: 0
    scale: 255
    cycle_time: 0.010
    [output_pin my_LED_pin_BLUE]
    pin: ar6
    pwm: true
    hardware_pwm: true
    value: 0
    shutdown_value: 0
    scale: 255
    cycle_time: 0.010

    [output_pin my_LED_pin_GREEN]
    pin: ar4
    pwm: true
    hardware_pwm: true
    value: 0
    shutdown_value: 0
    scale: 255
    cycle_time: 0.010

    #[output_pin my_LED_pin_WHITE]
    #pin: ar11
    #pwm: true
    #hardware_pwm: true
    #value: 255
    #shutdown_value: 0
    #scale: 255

    [gcode_macro heating_nozzle_indicator]
    # turn on BLUE full brightness, turn off all other LED colours 
    gcode:
    set_pin PIN=my_LED_pin_BLUE VALUE=255
    set_pin PIN=my_LED_pin_RED VALUE=0
    set_pin PIN=my_LED_pin_GREEN VALUE=0
    # set_pin PIN=my_LED_pin_WHITE VALUE=0

    [gcode_macro led_print_activ]
    # turn on BLUE full brightness, turn off all other LED colours 
    gcode:
    set_pin PIN=my_LED_pin_BLUE VALUE=0
    set_pin PIN=my_LED_pin_RED VALUE=255
    set_pin PIN=my_LED_pin_GREEN VALUE=255

    [gcode_macro led_off]
    # turn on BLUE full brightness, turn off all other LED colours 
    gcode:
    set_pin PIN=my_LED_pin_BLUE VALUE=0
    set_pin PIN=my_LED_pin_RED VALUE=0
    set_pin PIN=my_LED_pin_GREEN VALUE=0

    ##LED

    [mcu]
    #make sure this reflects your serial port you found when flashing klipper
    serial: /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0
    #pin_map: arduino
    [board_pins arduino-mega]
    aliases:
        ar0=PE0, ar1=PE1, ar2=PE4, ar3=PE5, ar4=PG5,
        ar5=PE3, ar6=PH3, ar7=PH4, ar8=PH5, ar9=PH6,
        ar10=PB4, ar11=PB5, ar12=PB6, ar13=PB7, ar14=PJ1,
        ar15=PJ0, ar16=PH1, ar17=PH0, ar18=PD3, ar19=PD2,
        ar20=PD1, ar21=PD0, ar22=PA0, ar23=PA1, ar24=PA2,
        ar25=PA3, ar26=PA4, ar27=PA5, ar28=PA6, ar29=PA7,
        ar30=PC7, ar31=PC6, ar32=PC5, ar33=PC4, ar34=PC3,
        ar35=PC2, ar36=PC1, ar37=PC0, ar38=PD7, ar39=PG2,
        ar40=PG1, ar41=PG0, ar42=PL7, ar43=PL6, ar44=PL5,
        ar45=PL4, ar46=PL3, ar47=PL2, ar48=PL1, ar49=PL0,
        ar50=PB3, ar51=PB2, ar52=PB1, ar53=PB0, ar54=PF0,
        ar55=PF1, ar56=PF2, ar57=PF3, ar58=PF4, ar59=PF5,
        ar60=PF6, ar61=PF7, ar62=PK0, ar63=PK1, ar64=PK2,
        ar65=PK3, ar66=PK4, ar67=PK5, ar68=PK6, ar69=PK7,
        analog0=PF0, analog1=PF1, analog2=PF2, analog3=PF3, analog4=PF4,
        analog5=PF5, analog6=PF6, analog7=PF7, analog8=PK0, analog9=PK1,
        analog10=PK2, analog11=PK3, analog12=PK4, analog13=PK5, analog14=PK6,
        analog15=PK7,
        # Marlin adds these additional aliases
        ml70=PG4, ml71=PG3, ml72=PJ2, ml73=PJ3, ml74=PJ7,
        ml75=PJ4, ml76=PJ5, ml77=PJ6, ml78=PE2, ml79=PE6,
        ml80=PE7, ml81=PD4, ml82=PD5, ml83=PD6, ml84=PH2,
        ml85=PH7

    [printer]
    kinematics: cartesian
    max_velocity: 200
    max_accel: 2500
    max_z_velocity: 50
    max_z_accel: 100
    square_corner_velocity: 5 

    [input_shaper]
    shaper_freq_x: 74.3
    shaper_freq_y: 88.8

    [bed_screws]
    screw1: 55,55
    screw1_name: front left
    screw2: 255,55
    screw2_name: front right
    screw3: 255,255
    screw3_name: back right
    screw4: 55,255
    screw4_name: back left
    speed: 100.0


    [screws_tilt_adjust]
    screw1: 22,83
    screw1_name: front left
    screw2: 222,83
    screw2_name: front right
    screw3: 22,283
    screw3_name: back left
    screw4: 222,283
    screw4_name: back right
    speed: 100.0
    screw_thread: CW-M5


    [gcode_macro START_PRINT]
    # On how to override default parameters
    #default_parameter_BED_TEMP: 60
    #default_parameter_EXTRUDER_TEMP: 200
    gcode:
        {% set BED_TEMP = params.EXTRUDER_TEMP|default(60)|float %}
        {% set EXTRUDER_TEMP = params.EXTRUDER_TEMP|default(200)|float %}
        # Home the printer
    G28    
        # Use absolute coordinates
        G90
        # Move the nozzle near the bed
        G1 X0 Y0 Z5 F3000
        # Move the nozzle very close to the bed
        G1 Z0.15 F300
        G92 E0 ;Reset Extruder
        G1 X20 Y5 Z0.3 F5000.0    
        G1 Z0.3 F1000     
        G1 X200 Y5 F1500.0 E15    
        G1 X200 Y5.3 Z0.3 F5000.0     
        G1 X5.3  Y5.3 Z0.3 F1500.0 E30
        G1 Z3 F1000      
        G21 ; set units to millimeters
        G90 ; use absolute coordinates
        M83 ; use relative distances for extrusion
        G92 E0

    [gcode_macro END_PRINT]
    gcode:
        # Turn off bed, extruder, and fan
        M140 S0
        M104 S0
        M106 S0
        # Move nozzle away from print while retracting
        G91
        G1 X-2 Y-2 E-3 F300
        # Raise nozzle by 10mm
        G1 Z30 F3000
        G90
        # Disable steppers
        M84


    [respond]
    default_type: command



    ###MAINSAIL###

    [virtual_sdcard]
    path: ~/gcode_files

    [display_status]

    [pause_resume]

    [gcode_macro PAUSE]
    description: Pause the actual running print
    rename_existing: PAUSE_BASE
    gcode:
        ##### set defaults #####
        {% set x = params.X|default(230) %}      #edit to your park position
        {% set y = params.Y|default(230) %}      #edit to your park position
        {% set z = params.Z|default(10)|float %} #edit to your park position
        {% set e = params.E|default(1) %}        #edit to your retract length
        ##### calculate save lift position #####
        {% set max_z = printer.toolhead.axis_maximum.z|float %}
        {% set act_z = printer.toolhead.position.z|float %}
        {% set lift_z = z|abs %}
        {% if act_z < (max_z - lift_z) %}
            {% set z_safe = lift_z %}
        {% else %}
            {% set z_safe = max_z - act_z %}
        {% endif %}
        {%set min_extrude_temp = printer.configfile.settings["extruder"]["min_extrude_temp"]|int %}
        {%set act_extrude_temp = printer.extruder.temperature|int %}
        ##### end of definitions #####
        PAUSE_BASE
        G91
        {% if act_extrude_temp > min_extrude_temp %}
          G1 E-{e} F2100
        {% else %}
          {action_respond_info("Extruder not hot enough")}
        {% endif %}
        {% if "xyz" in printer.toolhead.homed_axes %}    
          G1 Z{z_safe}
          G90
          G1 X{x} Y{y} F6000
        {% else %}
          {action_respond_info("Printer not homed")}
        {% endif %}

    [gcode_macro RESUME]
    description: Resume the actual running print
    rename_existing: RESUME_BASE
    gcode:
        ##### set defaults #####
        {% set e = params.E|default(1) %} #edit to your retract length
        {%set min_extrude_temp = printer.configfile.settings["extruder"]["min_extrude_temp"]|int %}
        {%set act_extrude_temp = printer.extruder.temperature|int %}
        #### get VELOCITY parameter if specified ####
        {% if 'VELOCITY' in params|upper %}
          {% set get_params = ('VELOCITY=' + params.VELOCITY)  %}
        {%else %}
          {% set get_params = "" %}
        {% endif %}
        ##### end of definitions #####
        G91
        {% if act_extrude_temp > min_extrude_temp %}
          G1 E{e} F2100
        {% else %}
          {action_respond_info("Extruder not hot enough")}
        {% endif %}  
        RESUME_BASE {get_params}

    [gcode_macro CANCEL_PRINT]
    description: Cancel the actual running print
    rename_existing: CANCEL_PRINT_BASE
    gcode:
        TURN_OFF_HEATERS
        CLEAR_PAUSE
        SDCARD_RESET_FILE
        CANCEL_PRINT_BASE


    ###MAINSAIL'###

    #[pause_resume]
    #recover_velocity: 50.

    [filament_switch_sensor my_sensor]
    #Move filament runout sensor from TFT to X+ endstop pin. Umcomment all but this line if you want to use this
    pause_on_runout: false
    #insert_gcode: RESUME
    pause_delay: 2
    switch_pin: ar2
    runout_gcode:
    M118 filament_runout

    [gcode_macro M900]
    gcode: SET_PRESSURE_ADVANCE ADVANCE={K}
  • > Kann ich dann auch Mainsail benutzen und auch über RS eine zweite Klipper instanz installieren?
    Nein,  Repetier-Server macht im Grunde das gleiche wie Mainsail aber da nur einer direkt mit Klipper reden kann und wir nicht mit Mainsail reden können geht nur der eine oder der andere.
  • Bist du sicher?
    Aktuell benutzte ich auch Klipper mit RS und Mainsail und Fluidd gleichzeitig auf dem gleichen rpi. Das geht problemlos.
    Ich frage mich nur, ob das auch geht, wenn man Klipper mit RS server installiert. Wäre jetzt aber auch nicht wild, weil ich Mainsail nur zum Updaten von Klipper nutze und zum bearbeiten der printer.cfg. Das wird dann aber ja auch mit RS möglich sein.
  • Dachte du meinst externes mainsail. Auf gleichem rechner hab ich es zugegebener maßen nie versucht. Wenn Klipper das kann (also parallele Verbindungen und antworten an den absender) wäre das kein Problem solange nicht beide Drucken. Einzig vielleicht Rechteprobleme weil wir ja als repetierserver arbeiten und Klipper/Mainsail normal als user pi weshalb ja zugriff auf /tmp/printer nicht korrekt klappt und ein anderes Verzeichnis für Socket genutzt werden muss mit standard klipper installationen.
Sign In or Register to comment.