FIlament rounout sensor

edited December 2018 in Questions & Answers
wird es irgendwann möglich sein wie bei Octoprint einen Ganz normalen Endstop als Filament Runout Sensor zu nutzen? Nutze im Moment Klipper als Firmware und da ist das anders nicht möglich

Comments

  • Wir planen fürs nächste Release ein Monitor Skript einzufügen. Das wäre ein möglicher Anwendungsfall um solch ein Problem zu lösen. Das wäre dann eine kleine Lua Erweiterung in der man das programmieren kann. Geht jetzt schon mit einem externen Skript das dann über API die Pause auslöst.
  • edited December 2018
    Gibt's dafür dann schon ein Script oder hat sich da noch keiner Gedanken gemacht und es bereit gestellt
  • Denke schon das es das gibt, aber weiß nicht wer eins gebastelt hat. Gibt es vermutlich als python script - einfach ein pi pin abfragen script suchen auf den pin umstellen und z.b. mit curl den API Aufruf mit gcode "@pause Kein Filament mehr" schicken. Möglicherweis egibts auch einen leichten python Befehl aber Python ist nicht meine Programmiersprache. API format ist auf der Homepage unter web api beschrieben.
  • Okay danke für die Info denke ich schau mir das mal am Wochenende an und Fals es geht werde ich es posten
  • So hier mal das Script mit anleitung für den Repetier Server 10 mal getestet über Stecker und 1 mal beim druck

    Als Sensor nutze ich einen Ganz normalen Endstop (nur 2 kabel) mit Open und Close alles andere muss erst getestet werden
    Anschluss wie folgt bei dem Sensor ein kabel an einen Gpio Pin und das andere kabel an GND


    viel Spaß und erfolg beim probieren

    alles nur in deutsch. in englisch bin ich nicht so bewandert villeicht übersetzt es ja noch einer.

    Download: https://www.magentacloud.de/lnk/PMjUxhlE
  • Die Lösung gefällt mirch schon ziemlich gut.

    sudo apt install wiringpi

    ist übrigens der schnelle Weg wiring pi zu installieren. Unterstützt auch pi3+.

    Das einzige was zu Problemen führen könnte ist das es alle 0,5 sekunden pause schickt solange kein Filament anliegt. Das macht es unmöglich pause zu beenden ohne Filament. Es würde direkt wieder starten. Etwas besser wäre nach dem senden von pause auf das einlegen. Müsste dann ungefähr so aussehen (ungestestet)

    #!/bin/sh
    // Requires wiringpi: sudo apt install wiringpi
    #######Variable Edit bevor Use#########

    ip="localhost" #IP from Repetier Server
    port="3344" #Port from Repetier Server
    apikey="aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee"  #Your Api Key from Repetier https://www.repetier-server.com/en/wp-content/uploads/2017/02/33d3.png
    sensor="1" #Is Your sensor (without Filament) normaly closed use 0 or normaly Open use 1
    pin="5" #Gpio Pin where your sensor is connected (see table use wPi column )

    # +-----+-----+---------+------+---+--A Plus--+---+------+---------+-----+-----+
    # | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |
    # +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
    # |     |     |    3.3v |      |   |  1 || 2  |   |      | 5v      |     |     |
    # |   2 |   8 |   SDA.1 |   IN | 1 |  3 || 4  |   |      | 5V      |     |     |
    # |   3 |   9 |   SCL.1 |   IN | 1 |  5 || 6  |   |      | 0v      |     |     |
    # |   4 |   7 | GPIO. 7 |   IN | 1 |  7 || 8  | 1 | OUT  | TxD     | 15  | 14  |
    # |     |     |      0v |      |   |  9 || 10 | 0 | OUT  | RxD     | 16  | 15  |
    # |  17 |   0 | GPIO. 0 |   IN | 0 | 11 || 12 | 0 | IN   | GPIO. 1 | 1   | 18  |
    # |  27 |   2 | GPIO. 2 |   IN | 0 | 13 || 14 |   |      | 0v      |     |     |
    # |  22 |   3 | GPIO. 3 |   IN | 0 | 15 || 16 | 0 | IN   | GPIO. 4 | 4   | 23  |
    # |     |     |    3.3v |      |   | 17 || 18 | 0 | IN   | GPIO. 5 | 5   | 24  |
    # |  10 |  12 |    MOSI |   IN | 0 | 19 || 20 |   |      | 0v      |     |     |
    # |   9 |  13 |    MISO |   IN | 0 | 21 || 22 | 0 | IN   | GPIO. 6 | 6   | 25  |
    # |  11 |  14 |    SCLK |   IN | 0 | 23 || 24 | 1 | IN   | CE0     | 10  | 8   |
    # |     |     |      0v |      |   | 25 || 26 | 1 | IN   | CE1     | 11  | 7   |
    # |   0 |  30 |   SDA.0 |   IN | 1 | 27 || 28 | 1 | IN   | SCL.0   | 31  | 1   |
    # |   5 |  21 | GPIO.21 |   IN | 1 | 29 || 30 |   |      | 0v      |     |     |
    # |   6 |  22 | GPIO.22 |   IN | 1 | 31 || 32 | 0 | IN   | GPIO.26 | 26  | 12  |
    # |  13 |  23 | GPIO.23 |   IN | 0 | 33 || 34 |   |      | 0v      |     |     |
    # |  19 |  24 | GPIO.24 |   IN | 0 | 35 || 36 | 0 | IN   | GPIO.27 | 27  | 16  |
    # |  26 |  25 | GPIO.25 |   IN | 0 | 37 || 38 | 0 | IN   | GPIO.28 | 28  | 20  |
    # |     |     |      0v |      |   | 39 || 40 | 0 | IN   | GPIO.29 | 29  | 21  |
    # +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
    # | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |
    # +-----+-----+---------+------+---+--A Plus--+---+------+---------+-----+-----+
    ###################change nothing from here#####################################
    gpio mode $pin up
    gpio mode $pin in

    while true
    do

    result="$( gpio read $pin )"

    if [ "$result" = "$sensor" ]; then
    echo "Filament rounout" 

    while true
    do

    result="$( gpio read $pin )"

    if [ "$result" != "$sensor" ]; then
    echo "Filament inserted" 
      break
    fi

    sleep 0.5
    done
    fi

    sleep 0.5
    done
  • edited December 2018
    Danke für deinen Anregung. Ist mein erstes selbst geschriebenes Script. musste mich erst mal in alles einlesen und selbst da habe ich nur nach dem nötigsten erstmal gesucht

    hab das ganze angepasst und auch noch die Meldung M117 Filament Rounout alle 2 Sekunden senden lassen. Außerdem läuft die Server/Pin Config jetzt über eine extra Datei die bei der Installation durch abfrage der werte erstellte wird. Somit kann mann das Script dann auch updaten lassen

    Zu finden ist es ab sofort unter

    https://github.com/Raabi91/filament_rounout_Repetier


    Mfg Raabi

  • edited December 2018
    Habe gemerkt das ich einen schreibfehler im runout hatte

    fals der obere link irgendwann nicht mehr geht und ich nicht mehr editieren kann. das ist der neue


  • kommt immer Fehler beim installieren " command not found"
  • hi Sven wann kommt der fehler ?? die befehle was ich nutze ist eigentlich alles Standart
  • edited February 24
    Ich starte Putty.
    Kopiere "git clone https://github.com/Raabi91/filament_runout_Repetier "
    Dann kommt die Fehlermeldung
    "-bash: git: command not found "
  • Dann fehlt scheinbar das gut plugin zum clonen
    damit installieren und nochmals versuchen

    sudo apt install git
Sign In or Register to comment.