ś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.
  • ...

czwartek, 22 lutego 2018

Drukarka 3D część 3

To miało być w części drugiej, ale na świeżo opisałem awarię płyty głównej. Teraz wracam do poprzednich spraw.

OctoPrint - https://github.com/foosel/OctoPrint/ host do wydruku. Obsługiwany bezpośrednio z Cura 3.2
Instalacja na Orange Pi One z Armbianem zgodnie ze stroną: https://github.com/foosel/OctoPrint/wiki/Setup-on-a-Raspberry-Pi-running-Raspbian bez większych niespodzianek, trzeba dokładnie czytać komunikaty. Brakowało jakiś modułów  Pythona, ale wszystko do wygooglania lub zgadnięcia. Na wstępie miałem problemy z przerywanym wydrukiem - OctoPrint, a właściwie Orange Pi traciło połączenie z portem szeregowym - nawet przestawał widzieć ten port po ponownym włożeniu kabla USB.
Były to problemy z EMI na kablu USB, bo szedł za blisko biurkowej lampki halogenowej – zapomniałem, że kiedyś z tego samego powodu z tą lampką miałem problemy z programowaniem Ardunio). Kamerka też zrywała komunikację (ten sam hub, kamerka blisko felernej lampki). Jednak jednoczesne działnie kamerki i drukarki na tym samym hubie USB 2.0 nie jest zbyt stabilne. Kamerka na razie w odstawkę. Sama kamerka działała w oparciu o pakiet motion, a nie umieszczony przy OctoPrint  sreamer w javie.
OctoPrint pozwala na użycie pluginów. Jeden z nich (Tasmota) zarządza zasilaniem drukarki - 5 minut po wydruku wyłącza drukarkę. Jak wspominałem w pierwszej części taki wyłącznik WiFi umieściłem pod zasilaczem drukarki. Ważna sprawa, że ten plugin korzysta z interfejsu WWW wyłącznika Sonoff, w dodatku musi być włączone Web Log level na 2 (info).
Inne przydatne dodatki to PreHeat Button, Simple Emergency Stop, Fan Speed Control czy może najciekawszy, Temparature Failsafe. Ten ostatni na razie mam nieskonfigurowany, ale 2 razy już mi się zdarzyło, że po rozpoczęciu wydruku wyłączało się grzanie extrudera. Powoduje to zatrzymaniem wypływu filamentu i zużywaniem napędu filamentu i oczywiście braku wydruku.

Oprogramowanie:

Cura 14.07 (ze strony anet3d.com) - na początek ok, działa pod Wine.
Cura 3.2 ze strony producenta + plugin do OctoPrint
FreeCAD 0.17 ze strony https://www.freecadweb.org/ nie zainstalował linku do menu Cinamona)
OpenSCAD ze standardowego repo Ubuntu(na razie nie bawiłem się)

Drukarka 3D część 2

Padła płyta główna. Przestał działać X endstop.
Objawy jak tutuaj na A8:
https://www.youtube.com/watch?v=Fv6vCPg-0nA

Szybkie zapytanie w Google i jest rozwiązanie:

https://www.thingiverse.com/groups/anet-a8-prusa-i3/forums/general/topic:20481

W skrócie:
padł kondensator:

źródło: https://imgur.com/a/i1y6W

Rezystancja na R40 bez wlutowania była poniżej 2kOhm, niezależnie od stanu switcha X, reszta R38, R39 - 9.9kOhm. Omomierz wykazywał zwarcie na kondensatorze C46. Po odlutowania niby miał 10uF, ale jak już wylutowany to wyrok na niego zapadł.
Przylutowałem kondensator (był 10uF, pewnie tantalowy) na nowy 1uF. Płyta działa jak nowa (bo taka jest ;-). Ale trzeba przyznać, że awarii elektroniki po 2 tygodniach się nie spodziewałem. A trochę z Chin rzeczy kupiłem. Na rzazie zwiększyłem sumę w dispucie na Ali o 22 Euro. Płyta obok padniętej karty micro-sd i wklęsłego hot bed to kolejny feler.


piątek, 16 lutego 2018

Drukarka 3D Anet A6 - część 1


Anet A6 - 3D printer – notatki 


Zakup na Aliexpress, ale wysyłka z Niemiec - nie ma cła i przesyłka zajmuje 4 -5 dni. Na GearBest znacznie taniej, ale idzie z Chin, więc trzeba się liczyć z cłem.
GearBest jednak do rozpracowania, bo Ali coraz bardziej "schodzi na psy".


0. Wydrukowałem podkładki M3 1mm aby zwiększyć dystanse do montażu wyświetlacza. Na oryginalnych wyświetlacz był za mocno dociśnięty i nie wyświetlał wszystkich linii. To też był mój pierwszy projekt we FreeCAD ;-) Przyda się tez później przy zmianie poziomowania stołu.

1. Zmian położenia podpory stołu, odwrotnie jak jest to w instrukcji. Wtedy w skrajnych położeniach nie ma zwiększającego się naciągu pasków. https://3dprint.wiki/reprap/anet/a8/bed-carriage

Dodatkowe separatory z zestawu (Y axis belt fixation clamp) do przykręcania paska nie tylko od zewnątrz, ale też od strony podpory stołu. Zaprojektowałem odpowiednią część, ale na razie nie miałem pod ręką dłuższych śrub M4.

2. Kompensacja lekko wklęsłego stołu??? Tylko szkło.

3. Naciąg pasków Y i X po kilku wydrukach  - zniwelowałem oscylacje o raz jajka zamiast kółek. Możliwe ze po prostu dopiero po kilku dniach się ułożyły i trzeba je było dociągnąć.

4. Nasmarowanie śrub trapezowych Z olejem silikonowym (popiskiwała, szczególnie prawa), ale też:

5. Ustawienie luzu pomiędzy osiami w sprzęgłach osi Z - https://3dprint.wiki/reprap/anet/a8/coupler

6. Naciąg paska osi Y zrobiony za pomocą oryginalnych części. Mocowanie paska z przodu poluźnione zostało na śrubach o około 2 mm, pasek naciągnięty ponownie. Teraz dokręcając śruby można wygodnie dociągnąć pasek osi Y (szczególnie, że hot bed ze szkłem jest dużo cięższy).

7. Wydrukowane części:
- dukt powietrza, ale niepełny, tylko z wycięciem około 90 stopni z przodu – można spokojnie obserwować co się dzieje pod głowicą https://www.thingiverse.com/thing:2013199
AnetA6FanV5Space.STL
- bardzo ładna obudowa do zasilacza z logiem i otworami: https://www.thingiverse.com/thing:2001954, są wersje na różne wtyczki jak również bez otworu. U mnie wyłacznik ze starego zasilacza ATX i w środku przekaźnik Sonoff (oczywiście z softem od sonoff-tasmota). Docelowo sterowanie zasilaniem drukarki z OctoPrint.
-jakaś przelotka do filamentu montowana na wcisk na belce górnej z wydłużonymi „łapkami” (oryginalny stojak jest na szafce powyżej)

8. Przyszyło szkło (Allegro,lixfactory -> Propox, 14zł z klipsami, 9zł bez, szło ponad tydzień) – uwagi do montażu:
- podkleić taśma izolacyjną stół na brzegu od spodu, żeby nie uszkodzić spinaczami izolacji i ścieżek grzejnych
- szkło przesunięte o (5,5) żeby nie uszkodzić brzegu szkła głowicą podczas poziomowania
- poziomowanie prawie do końca ściśnięte sprężyny, podniosłem trochę endstop Z, jest 2-3 mm luzu na sprężynach.
- trzeba bardzo uważać przy umiejscawianiu wydruku w Cura czy innym slicerze, jeśli używa się powiększonych duktów powietrznych extrudera. U mnie skończyło się tylko złamaniem tego duktu, jak zaczepił o klips przy większym wydruku
- zgodnie z informacjami z forum reprap.pl, szkło spryskać za pomocą HEGRON Gel Spray (w Rossamnie za 15zł) i rozsmarować. Rewelacja – super mocno trzyma na gorąco, jak stół ostygnie wydrukowaną część po prostu się podnosi. Przy wydruku o powierzchni 100cm2 na taśmie papierowej chyba musiałbym wyrwać razem z taśmą, na szkle zero problemu. Spokojnie można wydruk „wprasowywać” w stół, nie ma problemu ze odczepieniem wydruku na zimno, na gorąco się nie da;-)
- powierzchnia wydruku od strony szkła gładka jak szkło
- całość około 30zł + inpost - a starczy pewnie na dłużej niż 10 cudownych naklejek buildtak kosztujących więcej.


9. Wydrukowane pokrętła do poziomowania stołu + podklejki z taśmy izolacyjnej pod sprężyny w rogach, szczegolnie (0,0) i (220,220) – żeby sprężyna nie uszkodziła izolacji stołu i nie zwarła ścieżek albo je przerwała. Podkładki pod sprężynę od dołu (góra może być gorąca i podkładki drukowane się rozpuszczą ). Dodatkowo wydrukowałem podkładki z M3 wysokie na 1mm ( punkt 0), żeby dać dodatkowy dystans pomiędzy pokrętką a podporą stołu – mniejszy opór przy kręceniu. Nie dawałem podkładek pod nakrętki do zablokowania śrub w stole.

10. Oczywiście nakładka na śrubę do ładowania filamentu i prowadnica filamentu w extruderze.