środa, 9 maja 2018

Modyfikacje drukarki 3D Anet A6 - RAMPS1.4 + Marlin 1.1.8

RAMPS1.4 + Marlin to duet poddający się łatwym modyfikacjom - mamy do dyspozycji mnóstwo pinów, łatwo dostepna, dobra dokumentacja itp. Wymieniając płytę główną Anet 1.0 na Arduino MEGA2560 i RAMPS1.4 oraz 5 StepSticków (sterowników silników krokowych) można na poważnie zacząć modyfikować naszą drukarkę ANET. Finansowo wychodzi odpowiednio: 7+3+6=16Euro. Jeśli uda się sprzedać płytę ANET na OLX za 50% ceny (150zł), to wymiana wychodzi praktycznie za darmo. Jeszcze dokupiłem moduł MOSFET za 2.5 Euro, ale to jakby poza konkursem, bo i tak jest on zalecany do sterowania HeatBed. Poza tym jakieś drobiazgi, które miałem, jak np. GoldPin 2x40 i uniwersalna płytka PCB 7x5cm.
Lista zakupów tutaj:
Poradniki jak to podłączyć i skonfigurować ANET z RAMPS są dostępne w Internecie, np tu:

Ale jest kilka pułapek - myślałem, że napiszę o tym artykuł wcześniej, ale było to już 2 miesiące temu i trochę już zapomniałem. Ale najważniejszą rzecz, nad którą spędziłem najwięcej czasu, czyli połączenie oryginalnego wyświetlacza od A6 do RAMPS mam na szczęście zachowaną dla potomności:
Tu musiałem trochę poszukać w Internecie, obejrzeć schematy RAMPS, innych wyświetlaczy  graficznych typu 12864 i zrewersować podłączenie wyświetlacza z A6. To co jest pisane w źródłach Marlin dotyczy tylko wykorzystania oryginalnej płyty głównej ANET (największa pułapka). 
Dotyczy to też ustawień środowiska Arduino do kompilacji Marlina - płyta ANET ma inny bootloader niż Arduino MEGA2560 -  trzeba wybrać z menu Arduino IDE właśnie MEGA2560.
Jak już skompilowałem Marlina z obsługą wyświetlacza od A6, mogłem przemierzyć się do przeszczepu mózgu drukarki. Mechanicznie zamontowałem płytę w miejsce oryginalnej nawiercając otwory w akrylu. Podobnie zamontowałem MOSFET. Trochę bezsensowne wydało mi się drukowanie jakiś konwerterów otworów, których pełno na Thingiverse. Wydrukowałem tylko niższe wsporniki. Obecnie wygląda to tak:


Powyżej "kanapka" Arduino z RAMPS, widać moduł MOSFET i gąszcz kabli ;-)
Podłączenia termistorów, EndStop i silników krokowych w ANET są oparte o złącza JST zaś RAMPS stosuje złącza DuPont. Na szczęście w tym samym rastrze 2.54mm. Niemniej musiałem przekładać piny w końcówkach JST, bo z jakiegoś powodu ANET wykorzystuje złącza 3 pinowe dla 2 przewodów podłączonych do skrajnych pinów. Końcówki JST wymagały też w kilku miejscach delikatnego podcięcia nożykiem. Musiałem  wymienić przewód do jednego silnika osi Z (akurat miałem taki przewód w komplecie z zapasowym silnikiem), bo oba JST nie mieszczą się obok siebie. Oczywiście można było wszędzie założyć złącza żeńskie DuPont obcinając JST, ale cały czas chciałem mieć możliwość dosyć szybkiego powrotu do płyty ANET.
Sama konfiguracja parametrów Marlin także ostatecznie odbiega od tego, co pokazują filmiki i instrukcje. Przede wszystkim musiałem zmniejszyć akcelerację, z absurdalnych 9000 do około 1000. Ponieważ drukuję na szybie, masa dla osi Y jest znaczna i mogło występować gubienie kroków. 
Walczyłem też z ustawianiem prądu na StepStickach, ale ostatecznie nie przekracza 800 mA (z wyliczeń napięcia) i silniki X i Y nie grzeją się ponad 40°C. Radiatory do chłodzenia samych StepSticków przykleiłem od spodu, dolutowując Gold Piny (plastikowy element zdejmowałem już po przylutowaniu):

Takie rozwiązanie pozwala lepiej chłodzić spód płytki sterownika, która szczególnie w przypadku A4988 jest głównym miejscem oddawania ciepła. Dodatkowo ciąg 3 sterowników (X,Y,Z) teraz lepiej wentylowany przez powietrze, które opływa także od spodu przez szczeliny miedzy długimi pinami.

Na potrzeby testów gubienia kroków opracowałem prosty model:

https://www.thingiverse.com/thing:2906500

Ostatecznie na osi Y pracuje sterownik z DRV8825 i ustawiłem na nim prąd 1.1A (przy ponad 900mA tracił kroki). Nie wiem jak to jest liczone (np http://reprap.org/wiki/A4988_vs_DRV8825_Chinese_Stepper_Driver_Boards), ale grzeje się podobnie jak 800mA na A4988.

Całą drukarkę przykręciłem do półki (płyty) meblowej 50x50 za pomocą metalowych kątowników - w końcu dał się poprawnie wypoziomować HeatBed. Do tej pory rama z przodu potrafiła się unosić.

Ale to dopiero początek ;-)

Do opisania:
  • AutoLevel pojemnościowy
  • Sterowanie wiatrakiem ekstrudera
  • Sterowanie jasnością wyświetlacza 
  • Oświetlenie obszaru wydruku
  • Remote extruder - odchudzenie osi X
  • Samodzielnie wykonana płytka z dodatkowymi 2 tranzystorami MOSFET (w sumie mam 6 wyjść mocy, z 5 korzystam)
  • Drugi HotEnd drukujący - drugi remote extruder + dodatkowy zasilacz 5A
  • Kolory
  • Próby splittera filamentu i trochę o wadach głowicy MK8 w Anet A6.
  • ...