Klipper i czujnik filamentu

Oprogramowanie sterownika drukarki i do łączenia komputera z drukarką
gwidon777
Postów w temacie: 9
Posty: 285
Rejestracja: 23 sie 2020, 21:40
x 55

Klipper i czujnik filamentu

Post autor: gwidon777 »

Witam.
Postawiłem Klippera Octoprint na przerobionym Sunlu S8 z płytką SKR V1.4 Turbo i RPi 3B+.
Działa całkiem nieźle ale mam niestety trochę problemów.
Podłączyłem czujnik końca filamentu - taki zwykły switch. Wpisałem konfigurację z dokumentacji:
https://www.klipper3d.org/Config_Refere ... tch_sensor

System poprawnie widzi czujnik i poprawnie raportuje kiedy użyję komendy:
QUERY_FILAMENT_SENSOR SENSOR=runout.

Dla testu ograniczyłem działanie czujnika do wysyłania komend tekstowych:

[filament_switch_sensor runout]

pause_on_runout: TRUE
runout_gcode:
{action_respond_info("RUNOUT: Filament runout")}
insert_gcode:
{action_respond_info("RUNOUT: Filament inserted")}
event_delay: 3.0
pause_delay: 1.0
switch_pin: ^!P1.26

Niestety system nie widzi kiedy zabraknie filamentu. Zupełny brak reakcji.
System widzi i reaguje kiedy włożę filament. W terminalu pojawia się:
Recv: // RUNOUT: Filament inserted
Ma ktoś jakiś pomysł dla czego nie działa wykrywanie końca filamentu?
Awatar użytkownika
arek
Postów w temacie: 4
Posty: 197
Rejestracja: 27 kwie 2016, 13:45
Lokalizacja: PL
x 62

Re: Klipper i czujnik filamentu

Post autor: arek »

runout_gcode się wykona dopiero po zakończeniu "pauzy". Daj pause_on_runout: False
gwidon777
Postów w temacie: 9
Posty: 285
Rejestracja: 23 sie 2020, 21:40
x 55

Re: Klipper i czujnik filamentu

Post autor: gwidon777 »

arek pisze: 11 kwie 2024, 15:53 runout_gcode się wykona dopiero po zakończeniu "pauzy". Daj pause_on_runout: False
Tego też próbowałem. Nie działa :(
Awatar użytkownika
arek
Postów w temacie: 4
Posty: 197
Rejestracja: 27 kwie 2016, 13:45
Lokalizacja: PL
x 62

Re: Klipper i czujnik filamentu

Post autor: arek »

Dla pewności. Gdy filament się skończy wydruk leci dalej ale komenda QUERY_FILAMENT_SENSOR SENSOR=runout wtedy wykonana mówi, że filamentu brak wg sensora, zgadza się?

SET_FILAMENT_SENSOR SENSOR=runout ENABLE=1 nie wiem czy domyślnie jest on na starcie.
gwidon777
Postów w temacie: 9
Posty: 285
Rejestracja: 23 sie 2020, 21:40
x 55

Re: Klipper i czujnik filamentu

Post autor: gwidon777 »

arek pisze: 11 kwie 2024, 16:41 Dla pewności. Gdy filament się skończy wydruk leci dalej ale komenda QUERY_FILAMENT_SENSOR SENSOR=runout wtedy wykonana mówi, że filamentu brak wg sensora, zgadza się?

SET_FILAMENT_SENSOR SENSOR=runout ENABLE=1 nie wiem czy domyślnie jest on na starcie.
Kiedy wyjąłem filament z czujnika w trakcie wydruku drukarka zaczynała wariować. Zacząłem więc testy "na sucho".

Wydaje mi się, że czujnik cały czas jest "włączony", ponieważ raportuje w terminalu pojawienie się filamentu. To czego nie widzę to momentu kiedy filamentu brakuje.
Czy powinienem testować ten czujnik wyłącznie podczas trwającego wydruku?
Awatar użytkownika
Rozarh
Drukarz
Postów w temacie: 1
Posty: 635
Rejestracja: 12 kwie 2021, 10:45
Lokalizacja: opolskie
Drukarka: Fenix, A20M, TT1SM..
x 260

Re: Klipper i czujnik filamentu

Post autor: Rozarh »

Podstawą działania czujnika filamentu w Klipper są makra PAUSE i RESUME.
"runout_gcode" i "insert_gcode" są opcjonalne i z reguły nie trzeba ich używać.

Po wykryciu braku filamentu Klipper odpala makro PAUSE (o ile masz ustawione pause_on_runout: True) - jeśli masz w nim jakąś kaszanę to "drukarka zaczynała wariować"
Po włożeniu filamentu do czujnika należy ręcznie odpalić makro RESUME.

Jeśli ustawisz pause_on_runout na False i nie zdefiniujesz runout_gcode to detekcja braku filamentu będzie zablokowana.

Definiując runout_gcode i insert_gcode podaje się komendy GCODE w kolejnych linijkach umieszczając na początku z nich tabulator (wcięcie). Można wpisać kilka linijek ale każda z nich musi się zaczynać od wcięcia. Pierwsza linijka bez wcięcia nie będzie już procesowana.
np:

Kod: Zaznacz cały

[filament_switch_sensor my_sensor]
pause_on_runout: False
runout_gcode:
  G91 ; relative coordinates
  G0 Z+20 F3000 ; lift up head 20mm
  G90 ; absolute coordinates
G0 X0 Y0 F5000 ; go to wait position
W tym makro głowica się tylko podniesie (o ile Klipper nie zgłosi błędu konfiguracji) ale już nie pojedzie do punktu (0,0). Dodatkowo makro PAUSE nie zostanie wykonane.
Parafrazując wpis by artusiek:
Nie chcesz grzebać? Kup Prusę lub Bambu Labs
Kupiłeś coś co dopieszczasz? Naucz się grzebać!!!
gwidon777
Postów w temacie: 9
Posty: 285
Rejestracja: 23 sie 2020, 21:40
x 55

Re: Klipper i czujnik filamentu

Post autor: gwidon777 »

Dzięki za wyjaśnienie.
Teraz już działa.
Awatar użytkownika
arek
Postów w temacie: 4
Posty: 197
Rejestracja: 27 kwie 2016, 13:45
Lokalizacja: PL
x 62

Re: Klipper i czujnik filamentu

Post autor: arek »

To może napisz co było nie tak, brak wcięć?
gwidon777
Postów w temacie: 9
Posty: 285
Rejestracja: 23 sie 2020, 21:40
x 55

Re: Klipper i czujnik filamentu

Post autor: gwidon777 »

Dzięki wyjaśnieniu kolegi Rozarh zrozumiałem jak działa ta funkcja i wiedziałem na co zwrócić uwagę (powiązanie z Pause i Resume). To mi dużo dało.
Wcześniej pisałem, że testuję działanie "na sucho" to znaczyło że bez puszczania wydruku i tu był mój pierwszy błąd. U mnie wyciągnięcie filamentu z czujnika nie powoduje żadnej reakcji ze strony drukarki jeśli ta nie drukuje. Zacząłem więc puszczać wydruki i testować zachowanie co oczywiście zabrało dużo więcej czasu.
Dodatkowo trafiłem na stronę: https://ellis3dp.com/Print-Tuning-Guide ... ament.html
I ściągnąłem z niej gotowe makra Pause/Resume. Dostosowałem je do moich potrzeb i wszystko działa jak trzeba.
gwidon777
Postów w temacie: 9
Posty: 285
Rejestracja: 23 sie 2020, 21:40
x 55

Re: Klipper i czujnik filamentu

Post autor: gwidon777 »

Teraz mam kłopot z tym, że czujnik filamentu załącza się bez potrzeby. FIlament jest a drukarka przestaje drukować. Nie wiem z czego to wynika. Może jakiś problem z kablem a może czujnik jest wadliwy. Czujnik zamocowany całkiem solidnie i nie rusza się.
Czy zwiększenie "event_delay: 3.0" może tu pomóc?
Chodzi o to, żeby program ignorował chwilowe sygnały czujnika i zareagował na sygnał z czujnika filamentu, który trwa powyżej zadanej wartości.
ODPOWIEDZ

Wróć do „Firmware'y i hosty”