Szaleństwa M600

Oprogramowanie sterownika drukarki i do łączenia komputera z drukarką
Awatar użytkownika
panWiadr0
Postów w temacie: 3
Posty: 1255
Rejestracja: 25 sty 2019, 14:06
Drukarka: niesforny reprap
x 839

Szaleństwa M600

Post autor: panWiadr0 »

Funkcja ADVANCED_PAUSE_FEATURE w moim marlinie 1.19 doznała totalnego p... :crazy:

Konfiguracja jest jest jak poniżej. Zachowanie następujące: jedzie na pozycję NOZZLE_PARK_FEATURE > następuje szybka, kilku sekundowa retrakcja aż do przeksoku ekstrudera > filament wyjeżdża > drukarka przerywa działanie, grzanie, jakiekolwiek czynności (ekran jak świeżo po restarcie) !

Kod: Zaznacz cały

#define ADVANCED_PAUSE_FEATURE
#if ENABLED(ADVANCED_PAUSE_FEATURE)
  #define PAUSE_PARK_RETRACT_FEEDRATE         20  // (mm/s) Initial retract feedrate.
  #define PAUSE_PARK_RETRACT_LENGTH            1  // (mm) Initial retract.
                                                  // This short retract is done immediately, before parking the nozzle.
  #define FILAMENT_CHANGE_UNLOAD_FEEDRATE     10  // (mm/s) Unload filament feedrate. This can be pretty fast.
  #define FILAMENT_CHANGE_UNLOAD_ACCEL        25  // (mm/s^2) Lower acceleration may allow a faster feedrate.
  #define FILAMENT_CHANGE_UNLOAD_LENGTH      100  // (mm) The length of filament for a complete unload.
                                                  //   For Bowden, the full length of the tube and nozzle.
                                                  //   For direct drive, the full length of the nozzle.
                                                  //   Set to 0 for manual unloading.
  #define FILAMENT_CHANGE_SLOW_LOAD_FEEDRATE   6  // (mm/s) Slow move when starting load.
  #define FILAMENT_CHANGE_SLOW_LOAD_LENGTH     0  // (mm) Slow length, to allow time to insert material.
                                                  // 0 to disable start loading and skip to fast load only
  #define FILAMENT_CHANGE_FAST_LOAD_FEEDRATE   6  // (mm/s) Load filament feedrate. This can be pretty fast.
  #define FILAMENT_CHANGE_FAST_LOAD_ACCEL     25  // (mm/s^2) Lower acceleration may allow a faster feedrate.
  #define FILAMENT_CHANGE_FAST_LOAD_LENGTH     10  // (mm) Load length of filament, from extruder gear to nozzle.
                                                  //   For Bowden, the full length of the tube and nozzle.
                                                  //   For direct drive, the full length of the nozzle.
  //#define ADVANCED_PAUSE_CONTINUOUS_PURGE       // Purge continuously up to the purge length until interrupted.
  #define ADVANCED_PAUSE_PURGE_FEEDRATE        3  // (mm/s) Extrude feedrate (after loading). Should be slower than load feedrate.
  #define ADVANCED_PAUSE_PURGE_LENGTH         50  // (mm) Length to extrude after loading.
                                                  //   Set to 0 for manual extrusion.
                                                  //   Filament can be extruded repeatedly from the Filament Change menu
                                                  //   until extrusion is consistent, and to purge old filament.

                                                  // Filament Unload does a Retract, Delay, and Purge first:
  #define FILAMENT_UNLOAD_RETRACT_LENGTH      13  // (mm) Unload initial retract length.
  #define FILAMENT_UNLOAD_DELAY             5000  // (ms) Delay for the filament to cool after retract.
  #define FILAMENT_UNLOAD_PURGE_LENGTH         8  // (mm) An unretract is done, then this length is purged.

  #define PAUSE_PARK_NOZZLE_TIMEOUT           90  // (seconds) Time limit before the nozzle is turned off for safety.
  #define FILAMENT_CHANGE_ALERT_BEEPS         5  // Number of alert beeps to play when a response is needed.
  #define PAUSE_PARK_NO_STEPPER_TIMEOUT           // Enable for XYZ steppers to stay powered on during filament change.

  #define PARK_HEAD_ON_PAUSE                    // Park the nozzle during pause and filament change.
  //#define HOME_BEFORE_FILAMENT_CHANGE           // Ensure homing has been completed prior to parking for filament change

  //#define FILAMENT_LOAD_UNLOAD_GCODES           // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu.
  //#define FILAMENT_UNLOAD_ALL_EXTRUDERS         // Allow M702 to unload all extruders above a minimum target temp (as set by M302)
#endif
WTF?!
Abys
Awatar użytkownika
dziobu
Zasłużony
Postów w temacie: 3
Posty: 8908
Rejestracja: 28 gru 2016, 16:38
Drukarka: ZMorph 2.0(S)
x 5842
Kontakt:

Re: Szaleństwa M600

Post autor: dziobu »

Też miałem z tym jakieś dzikie przejścia. Nie wiem czy działało źle czy co, ale za cholere nie mogłem dojść do tego co w jakiej chwili robi i dlaczego. Obecnie wszystko działa; może nie do końca jakoś bajecznie, ale swoje robi.

W stosunku do Twojego mam:
  • FILAMENT_CHANGE_UNLOAD_LENGTH -> 0
  • FILAMENT_CHANGE_SLOW_LOAD_LENGTH -> 0
  • FILAMENT_CHANGE_FAST_LOAD_LENGTH -> 0
  • ADVANCED_PAUSE_PURGE_LENGTH -> 0
  • FILAMENT_UNLOAD_RETRACT_LENGTH -> 0
  • FILAMENT_UNLOAD_PURGE_LENGTH -> 0
Abys
Awatar użytkownika
Berg
Zasłużony
Postów w temacie: 1
Posty: 7563
Rejestracja: 05 lis 2016, 11:57
Lokalizacja: Kraków
Drukarka: Lume, K8400, HC Evo
x 2661

Re: Szaleństwa M600

Post autor: Berg »

lepiej sobie własne makra porobić i dodać do custom menu (2.0). A najlepiej przejść na Klippera.

Funkcja load / unload filamentu też jest zrypana, która wymaga adv-pauzy
Abys
Awatar użytkownika
dziobu
Zasłużony
Postów w temacie: 3
Posty: 8908
Rejestracja: 28 gru 2016, 16:38
Drukarka: ZMorph 2.0(S)
x 5842
Kontakt:

Re: Szaleństwa M600

Post autor: dziobu »

To co napisałem działa na tyle dobrze że jak ktoś nie chce się doktoryzować ze sterowania drukarką to tyle wystarcza.
rafaljot pisze:Funkcja load / unload filamentu też jest zrypana, która wymaga adv-pauzy
Jest. Pauza sama w sobie też jest tragiczna.

[OT]
Ale dodam ciekawostkę - mam też smoothie i zawsze jak chciałem wyjechać "hen" to jechałem do 99999 i było OK. Od kilku wersji ograniczyli pole jazdy i jeśli dany rozkaz DOCELOWO nie mieści się w zakresie roboczym to...go nie wykonuje. Czyli jeśli wymiana filamentu to odjechanie w górę 20mm i w bok, to nie odjedzie jeśli będzie blisko "ściany". To jest dopiero zrypanie.
Zwłaszcza że to działało - padło dopiero podczas "rozwoju". I nie dowiem się kiedy, gdyż smoothie nie ma wersji.
Także pauza w Marlinie to pikuś :D
Abys
Awatar użytkownika
panWiadr0
Postów w temacie: 3
Posty: 1255
Rejestracja: 25 sty 2019, 14:06
Drukarka: niesforny reprap
x 839

Re: Szaleństwa M600

Post autor: panWiadr0 »

dziobu pisze:Też miałem z tym jakieś dzikie przejścia. Nie wiem czy działało źle czy co, ale za cholere nie mogłem dojść do tego co w jakiej chwili robi i dlaczego. Obecnie wszystko działa; może nie do końca jakoś bajecznie, ale swoje robi.

W stosunku do Twojego mam:
  • FILAMENT_CHANGE_UNLOAD_LENGTH -> 0
  • FILAMENT_CHANGE_SLOW_LOAD_LENGTH -> 0
  • FILAMENT_CHANGE_FAST_LOAD_LENGTH -> 0
  • ADVANCED_PAUSE_PURGE_LENGTH -> 0
  • FILAMENT_UNLOAD_RETRACT_LENGTH -> 0
  • FILAMENT_UNLOAD_PURGE_LENGTH -> 0
Pomogło o tyle że teraz czeka grzecznie i nie stygnie. Chyba nie chce mi się z tym walczyć.
Awatar użytkownika
dziobu
Zasłużony
Postów w temacie: 3
Posty: 8908
Rejestracja: 28 gru 2016, 16:38
Drukarka: ZMorph 2.0(S)
x 5842
Kontakt:

Re: Szaleństwa M600

Post autor: dziobu »

A u mnie stygnie. Odjeżdża, pika, pracuje ileśtam a po chwili wyłącza dyszę. Trzeba klepnąć przycisk żeby znowu nagrzał.
Configuration_adv.h
(67.4 KiB) Pobrany 163 razy
Configuration.h
(71.29 KiB) Pobrany 145 razy
Awatar użytkownika
Abys
Drukarz
Postów w temacie: 1
Posty: 801
Rejestracja: 09 lut 2019, 19:19
Lokalizacja: Szczecin
Drukarka: Ender 3 SKR1.4T,..
x 350

Re: Szaleństwa M600

Post autor: Abys »

Potwierdzam, dzieją się dziwne rzeczy niestworzone.
Po aktualizacji własnego marlina, zmiana kilku elementów po za wspomnianą w temacie pauzą teraz przestała poprawnie działać.
Przy retrakcji filamentu ekstruder wydaje dziwne dźwięki, przy załadowaniu filamentu też nie jest lepiej.
Wygląda mi to na kosmiczne akceleracje, gdzie silnik/ekstruder nie wyrabia i przeskakuje.
Skoro kolega miał restarty to może jest coś jeszcze powiązane z wyświetlaniem obrazu, ja trafiłem na takie cudo:
20200106_125504.jpg
Nie mogę potwierdzić że powoduje to wspomniana pauza, ale nie zdziwiłbym się :)
(podczas druku taki kwiatek)

Mój kod:

Kod: Zaznacz cały

#define ADVANCED_PAUSE_FEATURE
#if ENABLED(ADVANCED_PAUSE_FEATURE)
  #define PAUSE_PARK_RETRACT_FEEDRATE         60  // (mm/s) Initial retract feedrate.
  #define PAUSE_PARK_RETRACT_LENGTH            2  // (mm) Initial retract.
                                                  // This short retract is done immediately, before parking the nozzle.
  #define FILAMENT_CHANGE_UNLOAD_FEEDRATE     10  // (mm/s) Unload filament feedrate. This can be pretty fast.
  #define FILAMENT_CHANGE_UNLOAD_ACCEL        25  // (mm/s^2) Lower acceleration may allow a faster feedrate.
  #define FILAMENT_CHANGE_UNLOAD_LENGTH      100  // (mm) The length of filament for a complete unload.
                                                  //   For Bowden, the full length of the tube and nozzle.
                                                  //   For direct drive, the full length of the nozzle.
                                                  //   Set to 0 for manual unloading.
  #define FILAMENT_CHANGE_SLOW_LOAD_FEEDRATE   6  // (mm/s) Slow move when starting load.
  #define FILAMENT_CHANGE_SLOW_LOAD_LENGTH     0  // (mm) Slow length, to allow time to insert material.
                                                  // 0 to disable start loading and skip to fast load only
  #define FILAMENT_CHANGE_FAST_LOAD_FEEDRATE   6  // (mm/s) Load filament feedrate. This can be pretty fast.
  #define FILAMENT_CHANGE_FAST_LOAD_ACCEL     25  // (mm/s^2) Lower acceleration may allow a faster feedrate.
  #define FILAMENT_CHANGE_FAST_LOAD_LENGTH     0  // (mm) Load length of filament, from extruder gear to nozzle.
                                                  //   For Bowden, the full length of the tube and nozzle.
                                                  //   For direct drive, the full length of the nozzle.
  //#define ADVANCED_PAUSE_CONTINUOUS_PURGE       // Purge continuously up to the purge length until interrupted.
  #define ADVANCED_PAUSE_PURGE_FEEDRATE        3  // (mm/s) Extrude feedrate (after loading). Should be slower than load feedrate.
  #define ADVANCED_PAUSE_PURGE_LENGTH         50  // (mm) Length to extrude after loading.
                                                  //   Set to 0 for manual extrusion.
                                                  //   Filament can be extruded repeatedly from the Filament Change menu
                                                  //   until extrusion is consistent, and to purge old filament.

                                                  // Filament Unload does a Retract, Delay, and Purge first:
  #define FILAMENT_UNLOAD_RETRACT_LENGTH      13  // (mm) Unload initial retract length.
  #define FILAMENT_UNLOAD_DELAY             5000  // (ms) Delay for the filament to cool after retract.
  #define FILAMENT_UNLOAD_PURGE_LENGTH         8  // (mm) An unretract is done, then this length is purged.

  #define PAUSE_PARK_NOZZLE_TIMEOUT           45  // (seconds) Time limit before the nozzle is turned off for safety.
  #define FILAMENT_CHANGE_ALERT_BEEPS          0  // Number of alert beeps to play when a response is needed.
  #define PAUSE_PARK_NO_STEPPER_TIMEOUT           // Enable for XYZ steppers to stay powered on during filament change.

  //#define PARK_HEAD_ON_PAUSE                    // Park the nozzle during pause and filament change.
  //#define HOME_BEFORE_FILAMENT_CHANGE           // Ensure homing has been completed prior to parking for filament change

  #define FILAMENT_LOAD_UNLOAD_GCODES           // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu.
  //#define FILAMENT_UNLOAD_ALL_EXTRUDERS         // Allow M702 to unload all extruders above a minimum target temp (as set by M302)
#endif
Ender 3 SKR 1.4 Turbo / MKS Gen L V1, Bambu Lab P1P
Awatar użytkownika
panWiadr0
Postów w temacie: 3
Posty: 1255
Rejestracja: 25 sty 2019, 14:06
Drukarka: niesforny reprap
x 839

Re: Szaleństwa M600

Post autor: panWiadr0 »

UP. Pytanie pomocnicze. Czy te błędy występują też w Marlinie 2.x?
Grzesinski
Postów w temacie: 2
Posty: 252
Rejestracja: 23 lis 2020, 12:18
x 53

Re: Szaleństwa M600

Post autor: Grzesinski »

Pozwolę sobie na małe wykopaliska, bo właśnie walczę z tym problemem (Marlin 2.0.91).
Ogólnie działa, jedynie początkowa retrakcja = jazgot + gubienie kroków jest mocno niepokojąca.
Ekstruder Sherpa mini 705st/mm silnik od TL CSE14HRA1L410A-01, do testów ustawione 90% Imax.
Wczoraj zrobiłem serię testów i wygląda że przy takim przełożeniu maksymalna wartość to
PAUSE_PARK_RETRACT_FEEDRATE = 30 mm/s
Dla 40 mm/s pojawiają się pierwsze symptomy gubienia kroków.
I ta sprawa tu może być zamknięta, bo cała reszta procesu idzie gładko.

Ale sprawdziłem dokumentację Moonsa (przy okazji jeśli ktoś wie gdzie znaleźć dokładny datasheet do powyższego będę zobowiązany).
i ich wykresy maksymalnej częstotliwości sterowania silnika kończą się w okolicach 9000st/s (generalnie dla wszystkich silników).
Wpisane w Configuration_adv.h (def. Marlin) PAUSE_PARK_RETRACT_FEEDRATE = 60 mm/s oznacza 42000st/s czyli sporo.
W wyliczanie Maximum running frequency point na razie się nie bawiłem.

Problem przy wysuwaniu filamentu jest mało istotny.
Gorzej, że podobne prędkości mogą być wykorzystywane podczas retrakcji, co może przekładać się na nadlewanie materiału (pogubione kroki przy wycofywaniu) w konstrukcjach wykorzystujących ekstruder z przełożeniem.
Nie zauważyłem żadnych dziwnych objawów podczas pracy ale chyba trzeba będzie się temu dokładniej przyjrzeć.
Czy te 30mm/s (może 40mm/s) to maksymalne bezpieczne prędkości retrakcji dla Sherpy i podobnych?
Buszmen
Grzesinski
Postów w temacie: 2
Posty: 252
Rejestracja: 23 lis 2020, 12:18
x 53

Re: Szaleństwa M600

Post autor: Grzesinski »

Poświęciłem chwilę czasu na sprawdzenie czy opisane wcześniej zjawisko może wpływać na retrakcję podczas drukowania.
Test prosty - obracanie silnika z prędkością 60mm/s w jedną stronę, powrót o taką samą odległość ale z prędkością 30mm/s (bez filamentu).
Z obserwacji dla długiego przesunięcia - silnik po przekroczeniu granicznej częstotliwości sygnału sterującego wykonuje część obrotu a później staje dając odgłosy gubionych kroków.
Dla przesunięcia do 2mm wszystko działa bardzo dobrze. Dla przesunięć 3-4mm pojawiają się już niepokojące odgłosy ale silnik wraca dokładnie do pozycji wyjściowej. Dla przesunięć 5mm i więcej silnik nie wraca do pozycji wyjściowej czyli wycofanie filamanentu gubi kroki (albo raczej obraca się nieco i staje).
Zatem problem będzie dotyczył bowdena z extruderem korzystającym z przekładni i wysokich prędkości wycofywania.
W sumie można było się spodziewać: większy moment kosztem szybkości.
Wydaje mi się, że graniczną wartością silnika jest 25000 kroków/s (dla LDO pancake, dla dużych silników może być niższa z uwagi na bezwładność wirnika). Jeśli ilość_kroków_E/mm x prędkość ekstruzji [mm/s] przekroczy tę wartość można się liczyć z dodatkową porcją materiału po retrakcji (z reguły wycofywanie jest szybsze).

Działanie wyładowywania w Marlinie działa dobrze, ruch na dłuższej drodze ujawnił problemy elektromechaniczne.
Buszmen
ODPOWIEDZ

Wróć do „Firmware'y i hosty”