We wpisie dotyczącym pierwszych odczuć związanych z drukarką 3D (link) chwaliłem soft dołączany do M3D za prostotę obsługi, możliwość łatwego poznania wszystkich opcji i ogólnie krótkiego czasu potrzebnego na wdrożenie się. Jednak ostatnio, gdy próbowałem wykonać kalibrację backlash, miałem okazję poznać jego wady. Okazało się, że soft niebardzo nadaje się do bardziej zaawansowanych operacji. Niektóre opcje są po prostu zbugowane i nie działają w ogóle. Dojście do tej konkluzji zajęło mi trochę czasu i dzisiaj opiszę problemy jakie napotkałem.

Backlash

Podstawowym celem jaki sobie postawiłem, była kalibracja backlash, czyli korekta luzów na elementach wykonawczych drukarki. Problem dobrze ilustruje poniższy gif:

Pewien zakres ruchu jednego elementu nie jest przekazywany na kolejny element, przez co głowica pozostaje w miejscu, zamiast się przesunąć. Problem ten jest najbardziej widoczny przy drukowaniu okręgów – drukarka nie jest w stanie zrobić idealnego okręgu. Poza tym jeśli robi kilka warstw okręgów, poszczególne warstwy różnią się między sobą powodując stopniowe odkształcanie. Zanim będę mógł zrobić części do swojego robota, muszę dobrze skalibrować backlash. Do sterownika M3D należy wprowadzić wartości o jakie soft ma korygować ruch silników, aby wyeliminować błędy wprowadzane przez luzy. Wartości te podaje się z dokładnością do setnych części milimetra.

Domyślna kalibracja sterownika M3D

Sterownik M3D udostępnia opcję „Print Backlash test”. Po jej wybraniu jest drukowany cylinder, w którym trzeba pomierzyć odległości między charakterystycznymi punktami i na tej podstawie wprowadzić do sterownika wartości korekty. Procedurę można zobaczyć na filmiku:

Niestety u mnie ta opcja nie działała. Model backlash test nie chce się wydrukować. W internecie wyczytałem, że w nowych wersjach softu M3D jest problem z tą opcją.

Dokładna metoda kalibracji z forum M3D

Domyślna metoda nie działała, więc musiałem zastanowić się nad innym sposobem. Na forum M3D trafiłem na metodę kalibracji umożliwiającą wyznaczenie luzów z dokładnością do setnych milimetra. W przeciwieństwie do większości znalezionych przeze mnie metod, nie skupiała się na rysowaniu okręgów i patrzeniu na oko czy już jest dobrze. Polegała na rysowaniu określonego wzoru na powierzchni roboczej, a miejsce, gdzie następowała odchyłka wyznaczało wartość korekty. Ukazały się dwie wersje tej metody:

  • Wersja 1 zawierająca model 3d i pliki gcode – link.
  • Wersja 2 zapewniająca lepszą dokładność, ale bazująca na samych gcode – link.

Tutaj małe wyjaśnienie – gcode to komendy wysyłane bezpośrednio do drukarki. Pozwalają one na sterowanie ruchem głowicy, wypuszczanie filamentu, podgrzewanie itp. Możliwe jest stworzenie własnego pliku gcode i uruchomienie go na drukarce. Gcode to taki asembler na drukarkę 3D. Drugą metodą jest wgranie modelu 3D – najczęściej w pliku STL. Program na bazie tego modelu sam tworzy plik gcode z komendami dla drukarki.

Niestety również tej metody nie udało mi się zastosować. Przy odpalaniu zadania z plików gcode zadanie jest przerywane z błędem. Przyczyną jest próba wypuszczenia filamentu z dyszy przed nagrzaniem się głowicy. Nie jest to problem dostarczonych plików, tylko samego M3D. Przeanalizowałem instrukcje w pliku gcode i komendy podgrzewania głowicy są wpisane poprawnie. Podjąłem również próbę usunięcia kodu podgrzewającego głowicę i wydanie komendy podgrzewania ręcznie przed uruchomieniem skryptu. Niestety powodowało to kolejne błędy. Po poszukiwaniach w internecie znalazłem pokrzepiającą nowinę – w nowych wersjach softu M3D drukowanie z gcode jest zbugowane.

Pozostała mi więc próba uruchomienia z modelu. Ona również zakończyła się niepowodzeniem. Otrzymałem komunikat, że model wychodzi poza przestrzeń roboczą drukarki. Co na pewno nie jest prawdą, bo model był przygotowany dokładnie na tą drukarkę.

Prosta metoda kalibracji

Zaawansowana kalibracja się nie powiodła, pozostało mi tylko poeksperymentować z metodą uproszczoną. W tym celu korzystałem z następującego źródła – link. Metoda polega na wydrukowaniu testowego kształtu i sprawdzeniu, czy wydrukowane okręgi się rozjeżdżają. Następnie należy wpisać wartość korekty luzu na oko i zobaczyć, czy model wyjdzie lepiej. Ta metoda nie zapewnia dużej dokładności. Poza tym procedurę należy powtórzyć wiele razy, aby osiągnąć oczekiwany rezultat. W przeciwieństwie do poprzednio opisywanych metod – ta przynajmniej działała. Niestety rezultaty osiągnięte za jej pomocą nie były satysfakcjonujące. Części, które drukowałem po kalibracji nadal nie były idealnie okrągłe i rozjeżdżały się. Aby wydrukowane części można było wykorzystać, w modelu należało nie projektować poszczególnych elementów na styk, tylko założyć dosyć duże zapasy nawet rzędu 1mm. Poza tym nie ma co wtedy drukować małych części wymagających dużej precyzji, bo po prostu nie wyjdą.

Podsumowanie

Nie udało mi się w zadowalający sposób skalibrować mojego M3D. Problemem, o który się cały czas rozbijałem były niedociągnięcia softu obsługującego drukarkę. Jedyna metoda kalibracji, którą udało mi się przeprowadzić nie zapewnia zbyt dobrych wyników. Kolejnym krokiem, jaki zamierzam podjąć jest wypróbowanie OctoPrint. Jest to serwer pozwalający obsługiwać drukarkę 3D za pomocą interfejsu webowego. Rozwijany jest jako projekt open source wspierający różne modele drukarek 3D i zawierający dużo więcej opcji konfiguracyjnych niż standardowy soft M3D. Mam zamiar postawić go na Raspberry Pi. Na stronie OctoPrint umieszczono gotowy wsad na kartę SD. Jeśli wierzyć wypowiedziom na forum M3D, OctoPrint umożliwia bezproblemowe wykonanie kalibracji backlash.