nefungující babystep
Napsal: 15.02.2021 00:33
Po letech jsem se konečně rozkýval aktualizovat si Marlina ve svém Rebelu a při té příležitosti jsem se těšil na to, že si zapnu babystep pro osu Z a budu moct jemně poladit první vrstvu "za chodu". Jelikož mám Arduino Mega a RAMPS 1.4, šel jsem do verze 1.1.9.1, dvojkové verze jsou pro novější boardy. Nemám žádnou autoleveling probe.
V configuration_adv.h jsem si nastavil babystepping - viz níže - jaké však bylo moje zklamání, když to nefungovalo. Možnost babystep Z, se mi v menu "Tune" po zahájení tisku sice nabízela (BTW taky vím, že lze do toho menu vstoupit doubleclickem encoderu), ale změna hodnot, v tom menu, se nijak neprojevovala pohybem krokáčů osy Z. Ty závitovky se prostě ani nehly.
Začal jsem tedy zkoumat, co by mohlo být špatně. Napřed jsem si na YouTube omrknul, jak se má babystepping vlastně chovat. Zjistil jsem, že osa Z se změnou babystepu hned a v reálném čase mění a dochází k pohybu závitových tyčí. Nefunguje to tedy tak jak jsem původně myslel, že by se nejprve nastavila rotačním encoderem požadovaná hodnota a po potvrzení se změna teprve projeví.
Změnil jsem v konfiguraci ledacos, Googlil jsem co se dalo, ale nic kloudného jsem nenašel. Až jsem narazil na tohle vlákno a zjistil jsem, že musím nastavit v configuration.h:
...a potom mi babystepping konečně začal fungovat.
Nicméně mi trochu vadí, že jsou teď oba krokáče Z + driver stále pod proudem, jelikož to způsobuje, že krokáče vydávají různé pisklavé a tklivé vysokofrekvenční zvuky a taky se víc zahřívají, včetně driveru.
Pohrál jsem si s proudem na driveru a ubral na nejnižší možnou únosnou hodnotu (na závitovkách naštěstí není třeba takový torque), ale přesto by mne zajímalo, jestli náhodou někdo nevíte, zda-li to nemá nějaké lepší řešení? Disableovat krokáč pomocí G kódu, po first layeru, se mi taky jako řešení moc nelíbí.
To opravdu musím mít kvůli babystepingu na Z stále driver a krokáče pod proudem? Je to divný, jelikož v závěru toho vlákna se píše, že:
Toto však není pravda. BTW zkoušel jsem i úplně poslední nightly build "bugfix-1.1.x" ale bez efektu.
V configuration_adv.h jsem si nastavil babystepping - viz níže - jaké však bylo moje zklamání, když to nefungovalo. Možnost babystep Z, se mi v menu "Tune" po zahájení tisku sice nabízela (BTW taky vím, že lze do toho menu vstoupit doubleclickem encoderu), ale změna hodnot, v tom menu, se nijak neprojevovala pohybem krokáčů osy Z. Ty závitovky se prostě ani nehly.
- Kód: Vybrat vše
#define BABYSTEPPING
#if ENABLED(BABYSTEPPING)
//#define BABYSTEP_XY // Also enable X/Y Babystepping. Not supported on DELTA!
#define BABYSTEP_INVERT_Z false // Change if Z babysteps should go the other way
#define BABYSTEP_MULTIPLICATOR 18 // Babysteps are very small. Increase for faster motion.
//#define BABYSTEP_ZPROBE_OFFSET // Enable to combine M851 and Babystepping
#define DOUBLECLICK_FOR_Z_BABYSTEPPING // Double-click on the Status Screen for Z Babystepping.
#define DOUBLECLICK_MAX_INTERVAL 1250 // Maximum interval between clicks, in milliseconds.
// Note: Extra time may be added to mitigate controller latency.
//#define BABYSTEP_ZPROBE_GFX_OVERLAY // Enable graphical overlay on Z-offset editor
#endif
Začal jsem tedy zkoumat, co by mohlo být špatně. Napřed jsem si na YouTube omrknul, jak se má babystepping vlastně chovat. Zjistil jsem, že osa Z se změnou babystepu hned a v reálném čase mění a dochází k pohybu závitových tyčí. Nefunguje to tedy tak jak jsem původně myslel, že by se nejprve nastavila rotačním encoderem požadovaná hodnota a po potvrzení se změna teprve projeví.
Změnil jsem v konfiguraci ledacos, Googlil jsem co se dalo, ale nic kloudného jsem nenašel. Až jsem narazil na tohle vlákno a zjistil jsem, že musím nastavit v configuration.h:
- Kód: Vybrat vše
#define DISABLE_Z false
...a potom mi babystepping konečně začal fungovat.
Nicméně mi trochu vadí, že jsou teď oba krokáče Z + driver stále pod proudem, jelikož to způsobuje, že krokáče vydávají různé pisklavé a tklivé vysokofrekvenční zvuky a taky se víc zahřívají, včetně driveru.
Pohrál jsem si s proudem na driveru a ubral na nejnižší možnou únosnou hodnotu (na závitovkách naštěstí není třeba takový torque), ale přesto by mne zajímalo, jestli náhodou někdo nevíte, zda-li to nemá nějaké lepší řešení? Disableovat krokáč pomocí G kódu, po first layeru, se mi taky jako řešení moc nelíbí.
To opravdu musím mít kvůli babystepingu na Z stále driver a krokáče pod proudem? Je to divný, jelikož v závěru toho vlákna se píše, že:
Marlin now enables steppers if needed for babystepping.
Toto však není pravda. BTW zkoušel jsem i úplně poslední nightly build "bugfix-1.1.x" ale bez efektu.