Wgrywanie i konfiguracja oprogramowania Repetier do drukarki 3d

Drukarka została zbudowana, trzeba jeszcze wprawić ją w ruch. Nadszedł więc czas, żeby do Arduino, na którym oparty jest sterownik, wgrać jakiś program. Jaki? Wybór nie jest oczywisty, ale mi spodobał się pakiet Repetier, który zawiera Repetier Firmware.

Konfiguracja - Repetier Firmware

Środowisko programistyczne Arduino opisywałem dawno temu. Jego obsługa nie powinna nikomu sprawić problemów. Teoretycznie sama konfiguracja oprogramowania również powinna być prosta, bo producent dostarcza konfigurator, który w kilku krokach pozwala ustawić wszystkie potrzebne na początek opcje. Tyle teorii, bo osobę, która nie miała wcześniej związku z drukarkami 3d, formularz przytłacza liczbą opcji.

Ja chciałem jak najszybciej wgrać jakąkolwiek działającą wersję, a przy okazji nie boję się tekstowych plików konfiguracyjnych. Przeszedłem więc zestaw formularzy wybierając tylko podstawowe rzeczy:

  • procesor – 8-bitowy Atmel
  • płyta elektroniki – Ramps 1.4
  • typ drukarki – cartesian

Całą resztę opcji zostawiłem domyślną, do późniejszego poprawienia. Pozwoliło mi to podłączyć wszystkie elementy i zacząć testować, szukając jednocześnie ustawień, które należy poprawić.

Po przejściu przez wszystkie opcje narzędzia konfiguracyjnego mamy możliwość ściągnięcia oprogramowania z wybranymi ustawieniami, jak i samych ustawień w formie pliku Configuration.h. Należy zrobić jedno i drugie, ponieważ pierwsza opcja działa (w obecnej wersji) kulawo i nie zapisuje wybranych ustawień wewnątrz pliku. Pewnie wkrótce błąd zostanie naprawiony i ta uwaga nie będzie miała zastosowania.

Gotowy program otwieramy w Arduino IDE, wybieramy rodzaj płytki – Arduino Mega 2560 oraz port szeregowy. Następnie kompilujemy i wgrywamy. Jeżeli IDE jest aktualne, konfiguracja na miejscu, a Arduino podłączone, powinno udać się bez problemu.

To oczywiście dopiero początek, bo teraz czeka nas konfiguracja, kalibracja i wiele ponownych transferów programu do elektroniki. Oczywiście część opcji daje się ustawić bezpośrednio z panelu LCD, natomiast dla kompletności, jak i zachowania spójnej konfiguracji w jednym miejscu, warto robić to w programie.

Warto zdawać sobie sprawę, jakie ustawienia należą do oprogramowania wewnętrznego, bo nie wszystkie. Firmware odpowiada za sterowanie grzałkami, silnikami, częściowo pracą ekstrudera. Trzeba będzie więc ustawić parametry odpowiadające za sterowanie silnikami – podać ile kroków należy zlecić, żeby przesunąć osie o jednostkę odległości (mm). z jaką prędkością można przesuwać osie i z jakim przyspieszeniem. Podobnie z ekstuderem (lub ekstruderami) – ile kroków silnika potrzeba dla wypchnięcia 1mm filamentu. Przy czym nie interesuje nas tu jeszcze co to za filament, jaka jest jego średnica, przez jak szeroką dyszę będzie wychodzić, czy w jakiej temperaturze się topi – za to odpowiada już oprogramowanie sterujące procesem druku i to one wie jaką temperaturę zlecić i ile mm filamentu wydać w jednostce czasu, żeby otrzymać odpowiednią grubość lub wysokość warstwy.

Warto zacząć od silników krokowych. Bardzo przy tym pomaga niezależy kalkulator. W sekcji do wyliczania kroków na mm dla pasków podajemy opcje:

  • kąt kroku silnika krokowego – odczytujemy go ze specyfikacji silnika; jeżeli zamiast tego mamy liczbę kroków na obrót to dzielimy 360 stopni przez tę liczbę i  np. dla 200 kroków otrzymujemy 1,8 stopnia
  • liczbę mikrokroków na krok – jest to zależne od sterownika silnika krokowego i konfiguracji Ramps; można założyć, że będzie to 1/16 – przy stepstickach A4988 takie ustawienie uzyskujemy gdy wszystkie 3 zworki Ramps pod danym sterownikiem są załączone
  • rozstaw zębów paska – u mnie 2mm dla paska GT2
  • liczbę zębów zębatki – u mnie 20

Dla mojej konfiguracji wychodzi 80 kroków na milimetr, zarówno dla osi X, jak i Y. Inna sekcja kalkulatora pozwala wyliczyć parametry dla śrub gwintowanych, czyli w przypadku Grabera – dla osi Z. Dwie pierwsze zmienne, dotyczące kąta kroku i liczby mikrokroków są takie same jak powyżej. Dochodzi rodzaj śruby (u mnie M5) i przełożenie (u mnie 1:1). W przypadku osi Z Grabera w mojej konfiguracji jest 4000 kroków na milimetr. Pokazuje to jasno, że nie należy spodziewać się zbyt dużych prędkości tej osi w porównaniu do X i Y.

Należy teraz w pliku configuration.h odszukać odpowiednie parametry i wstawić wyliczone wartości:

#define XAXIS_STEPS_PER_MM 80
#define YAXIS_STEPS_PER_MM 80
#define ZAXIS_STEPS_PER_MM 4000

Powyższe parametry mogą się minimalnie zmienić po kalibracji wymiarów wydruków.

Pozostając przy kalkulatorze warto oszacować liczbę kroków silnika ekstrudera:

#define EXT0_STEPS_PER_MM 712

Wyliczenie tej wartości nie jest proste. Opierając się na jednym z poradników, użyłem wzoru dla ekstruderów Wade (z przełożeniem):

kroki_na_mm = mikrokroki_na_obrot * (zeby_duzego_kola / zęby_małego_koła) / (efektywna_srednica_sruby_radełkowej * pi)

Mikroktoki_na_obrot uzyskujemy mnożąc liczbę kroków silnika na obrót (200) przez liczbę mikrokroków na krok (16). Trudno to policzyć dokładnie ze względu na dokładność określenia efektywnej średnicy śruby radełkowej ekstrudera. Skoro i tak ten parametr będzie ustalany w trakcie kalibracji, można więc policzyć na razie wartość z pewnym przybliżeniem. Proces kalibracji być może opiszę przy okazji, chociaż akurat na ten temat z pewnością powinni się wypowiadać drukarze bardziej doświadczeni ode mnie.

Dla ekstrudera (tak naprawdę dla hotendu) koniecznie trzeba też określić jeszcze przynajmniej jedną zmienną konfiguracyjną, bo bez tego uruchomienie grzania może się źle skończyć – rodzaj termistora zainstalowanego przy grzałce głowicy:

#define EXT0_TEMPSENSOR_TYPE 14

W moim przypadku jest to typ 14 – termistor NTC 3950. Skąd wiem? Ze specyfikacji, termistory kupowałem osobno. Typy termistorów można znaleźć w komentarzach w configuration.h, a jeżeli ich tam nie będzie, bo konfigurator może je usunąć, to zawsze można zajrzeć do aktualnych źródeł (lub po prostu wybrać właściwą opcję w konfiguratorze).

Analogiczna sytuacja jest w przypadku stołu grzejnego:

#define HEATED_BED_SENSOR_TYPE 14

Jak już jesteśmy przy wyborze sprzętu to do skonfigurowania jest też panel z LCD. Należy włączyć obsługę karty SD:

#define SDSUPPORT 1

Można włączyć obługę języka polskiego i wyłączyć bardziej egzotyczne:

#define LANGUAGE_EN_ACTIVE 1
#define LANGUAGE_DE_ACTIVE 0
#define LANGUAGE_NL_ACTIVE 0
#define LANGUAGE_PT_ACTIVE 0
#define LANGUAGE_IT_ACTIVE 0
#define LANGUAGE_ES_ACTIVE 0
#define LANGUAGE_FI_ACTIVE 0
#define LANGUAGE_SE_ACTIVE 0
#define LANGUAGE_FR_ACTIVE 0
#define LANGUAGE_CZ_ACTIVE 0
#define LANGUAGE_PL_ACTIVE 1
#define LANGUAGE_TR_ACTIVE 0

Oraz ostanie, ale najważniejsze, typ kontrolera, który ponownie możemy znaleźć w komentarzach do źródeł configuration.h:

#define FEATURE_CONTROLLER 2

Warto też ustawić z jaką prędkością (w mm/s) poszczególne osie mają wracać do początku układu współrzędnych (np. przed rozpoczęciem wydruku). Ja ustawiłem dość niskie wartości:

#define HOMING_FEEDRATE_X 20
#define HOMING_FEEDRATE_Y 20
#define HOMING_FEEDRATE_Z 2

Jakie są maksymalne prędkości osi:

#define HOMING_FEEDRATE_X 20
#define HOMING_FEEDRATE_Y 20
#define HOMING_FEEDRATE_Z 2

Oraz jakie są maksymalne przyspieszenia:

#define MAX_ACCELERATION_UNITS_PER_SQ_SECOND_X 1000
#define MAX_ACCELERATION_UNITS_PER_SQ_SECOND_Y 1000
#define MAX_ACCELERATION_UNITS_PER_SQ_SECOND_Z 10
#define MAX_TRAVEL_ACCELERATION_UNITS_PER_SQ_SECOND_X 2000
#define MAX_TRAVEL_ACCELERATION_UNITS_PER_SQ_SECOND_Y 2000
#define MAX_TRAVEL_ACCELERATION_UNITS_PER_SQ_SECOND_Z 20

Z tego co pamiętam, to modyfikowałem wartości osi Z. Ma to prawdopodobnie związek z tym, że oś Z może mieć bardzo różną konstrukcję, a nawet przy klasycznych konstrukcja Prusa czy Graber zastosowanie śrub trapezowych pozwala na uzyskanie prędkości nieosiągalnych dla zwykłym prętów gwintowanych, które są u mnie. Sprawdzają się jednak lepiej niż myślałem, a są bardzo tanie, a prędkość osi Z nie jest szczególnie istotna.

Przed kompilacją i wysłaniem kodu do Arduino należy zamienić wartość EEPROM_MODE (oczwyście w configuration.h). Zmiana spowoduje nadpisanie aktualnych wartości w pamięci drukarki parametrami z pliku konfiguracyjnego. Wartość można wprowadzać dowolnie, ale sensowne jest zwiększanie o jeden za każdym razem, co przy okazji pozwala odróżnić wersje pliku.

Tak u mnie wyglądały podstawy konfiguracji oprogramowania. Oczywiście potem wgrywałem do Arduino kod jeszcze wielokrotnie – podczas kalibracji algorytmu PID grzania głowicy i ekstrudera oraz przy drobnych poprawkach ustawień. Te parametry pozwoliły przetestować działanie sprzętu, poprawność konstrukcji i przystąpić do kalibracji. Zapewne dla wielu osób wyklikanie wszystkiego od razu w konfiguratorze będzie wygodniejsze, natomiast u mnie modyfikacja parametrów w pliku sprawdziła się dobrze.

Advertisements

One Response to Wgrywanie i konfiguracja oprogramowania Repetier do drukarki 3d

  1. Jarecki says:

    Od dawna myślę o swojej drukarce 3D (także do obudów do elektroniki 🙂 ) ale cena nawet kitów do złożenia była nie do przejścia. Widzę, że jednak da się w okolicach 1000 coś sklecić. Wielkie dzięki za tą serię artykułów!

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Log Out / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Log Out / Zmień )

Facebook photo

Komentujesz korzystając z konta Facebook. Log Out / Zmień )

Google+ photo

Komentujesz korzystając z konta Google+. Log Out / Zmień )

Connecting to %s

%d bloggers like this: