Anet A8 3D-tulostimelle autolevellointi

Julkaistu: lauantai 28.10.2017

Olen jo pitkään haaveillut autolevelloinnista tulostimilleni (engl. auto bed levelling). Valitettavasti miniFactoryyn tämä on ollut aika hankala toteuttaa (johtuen tulostimen mekaniikasta) joten en sitä ole siihen edes yrittänyt tehdä. Sen sijaan hankkimaani Anet A8 tulostimeen tämän lisäominaisuuden teko on melkein jopa helppoa. Okei, vaatii se perehtymistä aiheeseen, mutta ei ole mitään rakettitiedettä kuitenkaan.

Autolevelloinnin toimimiseksi, tarvitsee tulostinta hieman muokata ja tehdä anturin kiinnikkeitä, sekä tietysti hommata induktiivinen (tai kapasitiivinen) anturi ja rakentaa vähän elektroniikkaa sen ympärille, riippuen onko anturi PNP- vai NPN-tyyppinen.

Autolevellointi, mitä se on?

Automaattisessa tulostusalustan levelloinnissa on kyse siitä, että tulostin tietää tulostusalustan kaltevuuden X, Y ja Z-suunnassa. Tulostin lukee anturin avulla alustan kaltevuuden ja kompensoi tulostuksen aikana tätä. Tämä vähentää epäonnistuneita tulosteita ja parantaa tulostuslaatua, kun kappale on tulostimen suuttimeen nähden 90 asteen kulmassa jatkuvasti. Kaltevalla tulostusalustallahan tämä ei onnistu. Alla oleva esimerkkikuva näyttää hyvin mistä tässä on siis kyse.

Vaikka autolevellointi on hyvä apu tulostuksessa, kannattaa alusta kuitenkin suoristaa mahdollisimman hyvin ja antaa printterin hoitaa loput pienet säätelyt.

Ohjeet

Ilman ohjeitahan tämmöisen teko ei onnistu, mutta onneksipa meillä on Google. Sen ihmeellisestä maailmasta löytyy ohjeet niin vauvan tekoon kuin printterin autolevellointiinkin. Yksi linkki, mistä aloitin lukemisen on tässä: https://3dprint.wiki/reprap/anet/a8/improvement/autobedleveling.

Myöskin Youtubessa on paljon videoita aiheeseen liittyen, jotka on mielestäni hyvä katsella läpi prosessin ymmärtämiseksi: https://www.youtube.com/watch?v=l2B9lNi8LHE.

Tulostimen firmiksen päivittämiseksi Skynet V2.3.2 versioon tarvittavat tiedostot ja ohjeet löytyvät tästä linkistä: https://github.com/thijsk/Skynet3d.

Anturi ja elektroniikka

Olin tällaisen induktiivianturin pelastanut joskus työpaikan roskiksesta (ilmeisesti ei ollut käyttöä tälle) ja laittanut talteen. Nyt tämä oli hyvä kaivaa kätköistä esiin ja alkaa suunnittelemaan, kuinka anturi kiinnitettäisiin tulostimeen. Anturin malli on Turck Ni6U-EG08-AP6X.

Aloitin muokkaamisen ensiksi tulostamalla muovista anturin pidikkeen ja parit mutterit anturin pitämiseksi paikallaan. Käytin tähän apuna thingiversestä löytyvää anturin pidikkeen mallia: https://www.thingiverse.com/thing:1884118.

Vasemmalla oleva pidempi pidike tuli muokattua olevassa olemasta mallista, mutta se osoittautui sitten liian suureksi joten tuolla alkuperäisellä (kuvassa oikealla) mallilla anturin sai asennettua paikalleen hyvin.

Itse elektroniikka anturin ympärille oli yksinkertainen. Koska anturi antaa positiivisen signaalin metallia havaitessaan, niin signaali täytyi invertoida. Anet A8 Z-endstop kytkin toimii niin, että se maadoittaa anturisignaalin, niin invertointitarve tuli tästä syystä. Tämä kuitenkin onnistui helposti seuraavalla kytkennällä:

Transistorina on NPN transistori MPSA14 (Darlington transistori), mutta mikä tahansa NPN-transistori kelpaa tähän tarkoitukseen. Vastuksina on 4.7 kilo-ohmiset vastukset ja niiden tarkoitus on rajoittaa anturilta tulevaa virtaa sekä pitää transistorin kanta maassa (eli transistori pois päältä) kun signaalia ei ole saatavilla. Kun anturilta tulee +12 V signaali, niin transistorin kanta alkaa johtamaan ja transistori kytkee Z-endstop kytkimen maahan. Rakentelin kytkennän nopeasti pienelle näkkärin palalle:

Kiinnitin anturin käyttöjännitteen Anet A8-tulostimen +12 volttiin ja maan tietysti maahan. Käytin olemassa olevaa kaapelointia niin, että katkaisin Z-endstop kytkimelle menevän johdon ja kiinnitin punaisen signaalin näkkärille transistorin kollektorille aivan kuten kytkennässä. Mustaa maa johtoa ei tarvita, koska kytkentä saa maadoituksen muualta (powerilta), joten transistorin tarvitsee vain maadoittaa punainen johto kun levellointianturilta tulee signaali.

Lopuksi testasin että anturi toimii ja Z-endstop signaali menee nollaan niin kuin kuuluukin:

Anturin asentamiseksi alumiinisiin johteisiin piti tehdä M4-kierteet:

Kierteiden muodostuttua anturin pystyi asentamaan paikalleen.

Tässä kohtaa mittasin suurinpiirteittäin anturin ja tulostuspään "offsetin", mitä tarvitaan tulostimen ohjelmoinnissa:

Nyt tulostin on fyysisesti valmis autolevellointiin ja seuraavaksi siirrytään firmiksen kimppuun.

Ohjelmiston päivitys

Ohjelmisto päivitetään Anet A8 tulostimelle periaatteessa kuten mille tahansa Arduino-levylle. Koska kyseessä on kuitenkin hieman erikoisempi versio tulostimen firmiksestä (ei siis vakio ohjelmisto joka tulee tulostimen mukana), niin tulostimen koodeihin tarvitsee hieman tehdä muutoksia. Induktiivianturin sijainnin kertominen ohjelmalle on oikeastaan olennaisin asia.

Ohjeita noudattamalla avataan oikea softapaketti ja tehdään muutokset configuration.h tiedostoon.

Jos anturi sijaitsee tulostuspään vasemmalla puolen (edestä katsoen) niin X_PROBE_OFFSET_FROM_EXTRUDER on negatiivinen luku. Tässä tapauksessa luvut ovat positiivisia.

Skynet 2.3.2 version mukana tulee myös ohjeet, joita noudattamalla päivityksen saa tehtyä suhteellisen kivuttomasti.

Kun Z-proben asetukset on tehty, voidaan päivitetty firmis ladata tulostimeen.

Autolevelloinnin kalibrointi

Kalibrointi suoritetaan jollakin ohjausohjelmalla, esimerkiksi Repetier-Host tai Pronterface, millä voidaan syöttää G-koodeja tulostimelle.

Aluksi kuitenkin varmistetaan, että anturi on asennettu kuvan mukaisella tavalla ja että anturi varmasti tunnistaa metallisen tulostusalustan:

Sen jälkeen tulostusalusta ja tulostuspää lämmitetään. Kun metalliset osat lämpiävät, ne hieman myös laajenevat ja koska tulostettaessa osat ovat aina kuumia, niin tällä saadaan paras tarkkuus kalibrointiin tehtyä.

Osien lämmettyä voidaan Z-offset säätää kohdalleen. Z-offset täytyy säätää siksi, että tulostin tietää kuinka kaukana itse tulostussuutin on anturista. Anturihan antaa pysäytyssignaalin ennen kuin tulostuspää on edes kiinni alustassa, joten tätä täytyy komennoilla hieman säätää.

Seuraavassa on kerrottu vaiheet, jotka tein tulostinta kalibroitaessa:

  1. Tulostuspää nostetaan hieman ylöspäin alustasta, esimerkiksi käsiajolla tai komennolla G1 Z5.
  2. Syötetään tulostimelle M851 Z0 komento, joka resetoi Z-offsetin, tulostin vastaa kertomalla että Z-offset on nyt nollattu:
  3. M500 komennolla tallennetaan offset muistiin.
  4. G28 komennolla tulostimen akselit ajetaan kotiasentoon ja tulostuspää liikkuu keskemmälle alustaa. Tämän jälkeen tulostin laskee Z-akselia kunnes anturi havaitsee alustan ja sen jälkeen nostaa tulostuspäätä 10 mm ylöspäin.
  5. Seuraavaksi tulostuspää ajetaan keskelle G1 X110 Y110 komennolla. Feedratena voi käyttää jotakin haluamaa esim F1200 tms. Minulla ei ollut mitään joten tulostuspää siirtyi keskelle erittäin hitaasti.
  6. Seuraavaksi tulostuspäätä aletaan laskea kohti alustaa niin kauan, että suutin koskettaa tulostusalustaa. Suuttimen ja alustan väliin asetetaan A4 paperi, minkä avulla sopiva väljyys tarkastetaan. Tulostimelle kannattaa syöttää komento G91, joka kertoo että liikkeet ovat nyt suhteessa edelliseen sijaintiin. Tällöin Z-akselia voidaan liikuttaa ylös ja alaspäin G1-komennoilla.
  7. Kun A4 paperilla ja tulostupään liikuttelulla on saatu väljät pois, niin printterille syötetään komento G92 Z0. Tämä kertoo printterille, että "tässä on uusi nollakohta".
  8. Seuraavaksi lähetetään tulostimelle komento G30 X110 Y110. Tällöin tulostuspää nousee ja laskee ja tulostin mittaa missä induktiivianturin rajat ovat. Tulostimelta saatu Z-arvo otetaan talteen:
  9. Nyt saatu uusi Z-arvo syötetään tulostimen Z-offsetiksi komennolla M851 Z-10.62 tässä tapauksessa. Lopuksi arvot tallennetaan M500 komennolla jolloin tulostin muistaa asetukset myös virtojen sammuttamisen jälkeen.
  10. Autolevellointia voi nyt testata syöttämällä G28 (kotiutuskomento) ja G29 (autolevellointi) komennot.

Kalibrointi ei ainakaan itselläni mennyt heti ekalla oikein, vaan säätöjä piti suorittaa moneen otteeseen. Kalibrointiin kaikkineensa meni aikaa noin 3-4 tuntia, mutta lopulta pääsin testikappaletta tulostamaan.

Varmistelin lopuksi vielä anturin asemointia pikaliimalla, ettei se lähtisi itsestään liikkumaan taipuvien johtojen yms. vuoksi (koska anturi liikkuu tulostuspään matkassa).

Anturin asentaminen oli ihan mielenkiintoinen projekti ja sillä kaiketi sai taas tulostuslaatua hieman parannettua. Z-akseliin jäi vielä hieman offsettia, mutta sitä pystyy vähän säätämään tulostimen valikostakin. Täytyy tässä vielä tehdä uusi kalibrointikierros kunhan tuota on hetken aikaa käyttänyt.