Creality CR10 V3 3D-tulostimen moottoreiden kalibrointiohje

3D-tulostimet ovat usein tehtaalta/toimittajalta saapuessaan niin sanotusti tehdasasetuksissaan, eli koneisiin on asennettu jotkin vakiomalliset yleissäädöt, jotka enempi tai vähempi pitävät paikkansa valmistettaville laitteille. Ymmärrettävästä syystä laitevalmistajalla ei ole aikaa tuunata ja hiplata jokaista yksilöä erikseen kuntoon, koska se nostaisi laitteen yksikkökustannuksia liikaa ja näin laitteen myyntihintaa.

3D-tulostimien omistajat joutuvatkin useimmiten opiskelemaan uusia asioita itse, ja esimerkiksi askelmoottorien kalibrointi on yksi sellainen asia.

Tässä kirjoituksessa ei käsitellä levellointia, mikä sekin on kalibrointia, vaan tulostimen moottoreiden kalibrointia. Tulostimen moottoreita ohjataan askelilla ja englanninkielinen termi on steps.

Tässä kirjoituksessa koitan käydä yksinkertaisesti ja vaihe vaiheelta läpi, kuinka pursotin ja XYZ-moottorit saadaan kalibroitua käyttämällä apuna vain työntömittaa ja viivoitinta. Lisäksi tarvitset ohjelmiston, minkä avulla tulostimelta (sarjaportista) voidaan lukea tietoa ja komentaa sitä. Tällaisia ohjelmia ovat esimerkiksi: Pronterface tai Repetier-Host. Tässä kirjoituksessa käytetään jälkimmäistä.

Tulostin kannattaa valmistella niin, että alusta on puhdas tulostimessa on asennettuna sellaista lankaa mihin voidaan tussilla tehdä merkki. Eli jokin vaalea väri esimerkiksi.

Nämä ohjeet pätevät yleisesti mihin tahansa 3D-tulostimeen, jonka ohjainlaitteen ohjelmistona toimii Marlin-ohjelmisto tai jokin sen variantti. Kunhan laite tottelee G-koodeja, niin kalibroinnin pitäisi onnistua.

HUOM! Tulostimelle syötettävät G-koodit ovat ohjeessa omassa kappaleessa omalla rivillään paksunnettuna ja punaisella värillä.

Miksi kalibrointi kannattaa tehdä?

Tulostimen kalibrointi ei ole välttämättä pakollista, riippuen toki siitä mitä tulostimella tehdään tai kuinka hyvin valmistajan oletusasetukset pitävät paikkansa. Mutta yleensä se on hyvä tehdä, koska sillä optimoidaan ennen kaikkea langan pursotusta ja laitteen tarkkuutta. Kalibroitu tulostin pystyy tuottamaan virtuaalisen 3D-mallin tarkemmin oikeaksi kappaleeksi, kuin kalibroimaton tulostin. Kalibrointi on myös hauska tapa opetella 3D-tulostimen käyttöä käsin ohjaamalla, mutta tiettyä varovaisuutta on syytä noudattaa.

Varoituksen sana

Tässä kirjoituksessa esiintyy komentoja jotka voivat vahingoittaa tulostinta, jos komentoja kirjoitetaan väärässä järjestyksessä. Jos teet tätä toimintoa ensimmäistä kertaa, ole valmiina katkaisemaan tulostimesta virta jos jokin näyttää menevän pieleen. Pieleen menemisellä tarkoitetaan sitä, että tulostin yrittää esimerkiksi liikkua liikealueen ulkopuolelle tai suutin painautuu ja vääntyy tulostusalustaa vasten. Nämä ovat kuitenkin vikatilanteita, joita ei pitäisi syntyä jos ohjeita noudatetaan tarkoin. Vastuu on kuitenkin aina tekijällä.

Kirjoitus on jaettu muutamaan vaiheeseen ja klikkaamalla pääset hyppäämään suoraan kirjoituksen eri kohtaan:

  1. Tulostimen kytkeminen tietokoneeseen
  2. Käytettävien G-koodien ja kalibrointimetodin selitys
  3. Pursotinmoottorin kalibrointi
  4. XY-moottoreiden kalibrointi
  5. Z-moottorin kalibrointi

Vaihe 1 - Tulostimen kytkeminen tietokoneeseen

Aloitetaan käynnistämällä 3D-tulostin virtakytkimestä ja kytkemällä tietokone USB-kaapelilla tietokoneeseen. Tulostimissa on tyypillisesti joko USB-B tai micro/mini-USB liitin, mihin kaapeli kytketään. Kaapelin kytkennän jälkeen tulostin käynnistyy uudestaan ja näkyy tietokoneelle virtuaalisena sarjaporttina.


Ensiksi tarkistetaan sarjaportin numero, mikä tietokoneella tulostimelle on. Tämä onnistuu laitehallinnasta (Device Manager) ja sen voit avata monella eri tavalla. Yksi helpoin tapa on painaa näppäimistöltä Windows-näppäintä ja kirjoittaa käyttöjärjestelmän kielestä riippuen joko "laitehallinta" tai "device manager". Toinen vaihtoehto on käyttää Windows+X näppäinyhdistelmää ja valita laitehallinta esiin ilmestyvästä listasta.

Device Manager laitehallinta

Tulostimen pitäisi näkyä tietokoneella kohdassa Ports (Portit). Teksti COM ja numero sen perässä kertoo sarjaportin numeron ja se vaihtelee, joten sinun tulostimesi voi olla jokin muukin kuin kuvassa esitetty. Jos et ole varma missä portissa tulostimesi on, niin käytä USB-johtoa irti tietokoneesta ja katso mikä portti häviää. Kytke USB-johto takaisin samaan USB-liittimeen, niin saman COMx:n pitäisi ilmestyä takaisin ja voidaan päätellä, että tulostimesi on juurikin se COM-portti.

Kuvakaappaus vanhemmasta suomenkielisestä Windowsista

Kun portin numero on tiedossa, avataan Repetier-Host ja asetetaan yhteysasetukset kuntoon tulostimen asetuksista (Määritykset -> Tulostimen asetukset / Config -> Printer Settings). Jos käyttöliittymän kieli on englanti, sen voit vaihtaa Config->Language -valikosta, mutta se ei ole pakollista.

Repetier-Host yhteys 3D-tulostimeen
Tulostimen yhteysasetukset, vahvista OK-napilla.

Nyt kun asetukset on laitettu, otetaan yhteys tulostimeen:

Repetier Host yhdistä

Log-ikkunasta nähdään tulostimen lähettämät tiedot tietokoneelle. Jos log-ikkuna ei ole näkyvissä, klikkaa hiirellä load-kuvakkeen vieressä olevaa Log-painiketta.

Alla on listattu minun tulostimeni lähettämät tiedot tietokoneelle. Lista on varsin pitkä mutta ei hätää, tästä listasta emme ole vielä kiinnostuneita. Alla on merkitty kuitenkin punaisella muutama hyödyllinen tieto, mitä logista selviää:

11:24:55.883 : start
11:24:55.883 : echo: External Reset
11:24:55.883 : Marlin 1.1.6.0 <-- Firmiksen versio
11:24:55.883 : echo: Last Updated: 2020-04-29 | Author: CR-10 V3
11:24:55.883 : echo:Compiled: Apr 29 2020
11:24:55.883 : echo: Free Memory: 2002 PlannerBufferBytes: 1232
11:24:55.883 : echo:V41 stored settings retrieved (498 bytes; crc 24682)
11:24:55.899 : echo: G21 ; Units in mm
11:24:55.899 : echo: M149 C ; Units in Celsius
11:24:55.899 : echo:Filament settings: Disabled
11:24:55.899 : echo: M200 D1.75 <-- Filamentin halkaisija
11:24:55.899 : echo: M200 D0
11:24:55.899 : echo:Steps per unit:
11:24:55.899 : echo: M92 X80.00 Y80.00 Z400.00 E382.14 <-- nykyiset e-stepsit
11:24:55.914 : echo:Maximum feedrates (units/s):
11:24:55.914 : echo: M203 X500.00 Y500.00 Z5.00 E25.00
11:24:55.914 : echo:Maximum Acceleration (units/s2):
11:24:55.914 : echo: M201 X500 Y500 Z100 E1000
11:24:55.930 : echo:Acceleration (units/s2): P R T
11:24:55.930 : echo: M204 P500.00 R500.00 T1000.00
11:24:55.946 : echo:Advanced: S T B X Z E
11:24:55.952 : echo: M205 S0.00 T0.00 B20000 X10.00 Y10.00 Z0.40 E5.00
11:24:55.952 : echo:Home offset:
11:24:55.952 : echo: M206 X0.00 Y0.00 Z0.00
11:24:55.952 : echo:Material heatup parameters:
11:24:55.952 : echo: M145 S0 H205 B50 F255
11:24:55.952 : M145 S1 H240 B70 F255
11:24:55.952 : echo:PID settings:
11:24:55.968 : echo: M301 P19.47 I1.59 D59.40 <-- suuttimen PID arvot
11:24:55.968 : echo: M304 P201.86 I10.67 D954.96 <-- pedin PID arvot
11:24:56.056 : N1 M11034 11:24:56.056 : N2 M11536
11:24:56.056 : N3 M10536 11:24:56.056 : N4 M11435
11:24:56.056 : N5 M111 S698 11:24:56.056 : N6 T060
11:24:56.056 : N7 M8028 11:24:59.041 : echo:TF card ok 11:24:59.044 : Init power off infomation. 11:24:59.044 : size: 11:24:59.044 : 585 11:24:59.049 : init valid: 11:24:59.049 : 0 11:24:59.049 : 0 11:24:59.061 : echo:TF card ok 11:24:59.063 : Init power off infomation. 11:24:59.063 : size: 11:24:59.063 : 585 11:24:59.070 : init valid: 11:24:59.070 : 0 11:24:59.070 : 0 11:24:59.101 : N8 M220 S100105
11:24:59.101 : N9 M221 S100105 11:24:59.102 : N10 M111 S686
11:24:59.103 : Cap:EEPROM:1
11:24:59.106 : Cap:AUTOREPORT_TEMP:1
11:24:59.106 : Cap:PROGRESS:0
11:24:59.108 : Cap:PRINT_JOB:1
11:24:59.108 : Cap:AUTOLEVEL:0
11:24:59.108 : Cap:Z_PROBE:0
11:24:59.111 : Cap:LEVELING_DATA:0
11:24:59.114 : Cap:SOFTWARE_POWER:0
11:24:59.114 : Cap:TOGGLE_LIGHTS:0
11:24:59.115 : Cap:CASE_LIGHT_BRIGHTNESS:0
11:24:59.115 : Cap:EMERGENCY_PARSER:0
11:24:59.115 : N11 T010 11:24:59.158 : X:0.00 Y:0.00 Z:0.00 E:0.00 Count X:0 Y:0 Z:0 11:24:59.158 : N12 M155 S183
11:24:59.174 : echo:DEBUG:INFO,ERRORS
11:24:59.174 : echo:Active Extruder: 0
11:24:59.174 : echo:DEBUG:INFO,ERRORS
11:24:59.174 : echo:Active Extruder: 0

Yhteys 3D-tulostimeen on nyt kunnossa ja voidaan aloittaa kalibrointirutiini.

Vaihe 2 - G-koodit ja kalibrointimenetelmä

G-koodit ovat komentoja, jotka 3D-tulostin tulkitsee ja muuttaa printterin toiminnoiksi. Kaikki mitä tulostin tekee, johtuu G-koodista ja sitä voidaan syöttää joko käsin (kuten tässä tehdään tietokoneohjelman avulla) tai muistikortilta (kuten tulostaessa).

Tulostimelle syötettävät G-koodit ovat ohjeessa omalla rivillään paksunnettuna ja punaisella värillä.

G-koodit, joita tulostin tukee riippuu sen ohjainohjelmistosta eli firmwaresta (puhekielessä firmis). Yleisimmät komennot ovat printteristä huolimatta aina tuettu, kuten lämmitys, pursotus, liikkeet jne. Listan eri komennoista näet Marlin-ohjelmiston kotisivuilta: https://marlinfw.org/meta/gcode/.

Tässä tehtävässä kalibroinnissa tarvitaan seuraavia komentoja ja ne on selitetty alle. Huom! Kaikki G-koodit eivät ala G-kirjaimella ja tarkempi syntaksi kannattaa tarkistaa komentojen-kotisivuilta linkistä yllä. Kaikkia koodeja ei ole tarpeellista tässä vaiheessa vielä muistaa tai ymmärtää, vaan ne on selitetty "auki" siinä ohjeen vaiheessa, kun kyseinen koodi vastaan tulee.

G-komentoSelitysEsimerkki
G28Kotiutuskomento kaikille akseleille. Printteri ajaa akselit kotiasentoon.G28
M104Asettaa suuttimen lämpötilan ilman odottelua.M104 S215
M109Asettaa suuttimen lämpötilan mutta ei suorita muita komentoja ennen kuin lämpötila on saavutettu.M109 S215
G90Asettaa liikkeet absoluuttiseen moodiin, eli liikutaan tulostimen koordinaatistossa suhteessa nollapaikkaan.G90
G91Asettaa liikkeet suhteelliseen moodiin, eli liikkeet ovat suhteessa nykyiseen sijaintiinG91
G92 Asettaa nykyisen sijainnin nollapaikaksi tulostimen koordinaatistossa. Voidaan käyttää myös asettamaan yksittäinen tai useampi akseli nollaan.G92 X0
G92 Y0 Z0
M83Asettaa pursottimen suhteelliseen moodiin, jolloin filamenttia voidaan syöttää suhteessa nykysijaintiinM83
M92Asettaa moottorien askellukset halutuksi.M92 X85.00
M503Printterin tietojen kysely. M503
M500Säätöjen tallennus tulostimen muistiin.M500
G1 Liikekomento XYZE -akseleille. Esimerkissä X-akselia liikutetaan 10mm positiiviseen suuntaan (oikealle).G1 X10
Tarvittavia G-koodeja. Näistä lisää tarpeen tullen.

Kalibrointimenetelmä on varsin yksinkertainen ja se voidaan purkaa osiin näin:

  1. Liikutetaan moottoria halutun määrän verran
  2. Mitataan paljonko moottori oikeasti liikkui
  3. Lasketaan paljonko askelia oikeasti tarvitaan verrattuna nykyisiin askeleihin
  4. Syötetään uudet askeleet ohjelmistolle ja tallennetaan ne muistiin
  5. Toistetaan mittaus ja korjataan tarvittaessa

Vaihe 3 - Pursotinmoottorin kalibrointi

Ennen kalibroinnin aloitusta otetaan talteen nykyiset moottorien askeleet eli stepsit, lähettämällä tulostimelle komennon M503 tai lukemalla ne listasta joka tulostui kun yhteys printteriin muodostettiin:

M503

11:24:55.899 : echo:Steps per unit:
11:24:55.899 : echo: M92 X80.00 Y80.00 Z400.00 E382.14

Tässä vaiheessa tarvitaan E-kirjaimen jälkeen olevaa lukua ja se otetaan talteen, eli 382.14 merkitään muistiin. E tarkoittaa extruderia eli pursotinmoottoria. Asetetaan jo tässä vaiheessa pursotin suhteelliseen moodin, niin lankaa voidaan helposti G1-komennoilla syöttää:

M83

3D tulostimen kalibrointi
120 mm kohta ennen syöttöä merkitään tussilla

Seuraavaksi merkitään tulostuslankaan työntömitan avulla tarkalleen 120.00 millimetrin päähän merkki. Merkin tulee olla tämän matkan päässä siitä pinnasta, mistä voidaan luotettavasti mitata ennen syöttömoottorille menoa. Mitan voi ottaa ja merkin tehdä myös ennen Bowden putkea, jos tulostimesi on esimerkiksi Ender 3 tai vastaava.

Pursotinmoottori kalibroidaan ensin, joten se on syytä laittaa lämpeämään pursotusta varten. Asetetaan tulostuspää sellaiseen lämpötilaan, missä filamenttia normaalistikin pursotetaan ulos suuttimesta. Tässä tapauksessa 215 C. Lämpötilan voi asettaa Repetier-Host ohjelmassa joko käsiohjauksen ikkunasta tai sitten G-koodilla M104 S215 tai jos halutaan olla varmoja M109 S215.

M109 S215

M109 komennon jälkeen on odotettava että suutin lämpeää. Muut komennot menevät jonoon suoritettavaksi ja mitään ei tapahdu, ennen kuin suutin on tavoitelämpötilassa.

Kun tulostuspää on kuumana ja halutussa tulostuslämpötilassa, suoritetaan pursotuskäsky komennolla G1 E100 F100. Tämä komento pursottaa suuttimesta lankaa ulos 100 mm nopeudella 100 mm/min. Jos E-kirjaimen paikalla on XYZ, niin tulostimen pää liikkuu johonkin suuntaan ja näin voidaan tulostinta ohjata yksinkertaisesti käsin.

G1 E100 F100

Jos mitään ei pursotu, niin lähetä tulostimelle komento M83 ja kokeile uudestaan. Mikäli vieläkään ei mitään tapahdu, niin tarkista tulostimen suuttimen oikea lämpötila.

Kun pursotus on suoritettu, mitataan filamentin pituus merkin ja aiemman mittauskohdan väliltä eli samasta paikasta.

Nyt mitattu uusi pituus kertoo meille seuraavaa:

  • Tulostimelta pyydettiin pursottamaan 100 mm lankaa
  • Tulostin pursotti oikeasti 120 - 24.98 = 95.02 mm lankaa
  • Johtopäätös: tulostin pursottaa liian vähän eli alipursottaa.

Koska nykyiset stepsit E-moottorille on 382.14, voidaan laskea uusien askelien arvo seuraavalla kaavalla:

Merkki_filamentissa - mitattu_matka = todellinen_matka
120 - 24.98 = 95.02

Nykyiset_stepsit/todellinen_matka * haluttu_matka = oikeat_stepsit
382.14 / 95.02 * 100 = 402.1679646

Uudet oikeat askeleet voidaan pyöristää kahteen desimaaliin, eli 402.18. Tämä arvo voidaan nyt syöttää tulostimelle komennolla:

M92 E402.18

Tallennetaan uusi arvo muistiin komennolla M500. Tarkistus komennolla M503.

M500
M503

Nyt kannattaa tehdä uusi merkki uudelleen 120 mm:n päähän filamenttiin ja toistaa mittaus. Kun arvot ovat oikein, niin lankaa tulostuu tasan 100mm, ei enempää eikä vähempää.

Vaihe 4 XY-moottoreiden kalibrointi

Seuraavaksi kalibroidaan XY-moottorit mitan ja osoittimen avulla. Tavoitteena on liikuttaa akselia 100mm kerrallaan yhteen suuntaan ja mitata todellinen kuljettu matka. Jälleen otetaan stepsit talteen ennen kuin muutetaan mitään, komennolla M503. Tällä kertaa olemme kiinnostuneita tietenkin X ja Y -askelista ja luvut 80.00 merkitään talteen.

M503

11:24:55.899 : echo:Steps per unit:
11:24:55.899 : echo: M92 X80.00 Y80.00 Z400.00 E402.18

Osoittimena olen käyttänyt suuttimen puhdistukseen tarkoitettua neulaa, mutta tässä voi käyttää muutakin välinettä. Aluksi ennen muuta ajetaan moottorit kotiasentoon kotiutuskäskyllä:

G28

Seuraavaksi tulostuspäätä liikutetaan G1 XYZ komennoilla niin, että mitta ja osoitin voidaan kiinnittää. Esimerkiksi kuvassa suutin on kotiutuksen jälkeen ensin ajettu ensin ylös G1 Z50 komennolla ja sen jälkeen G1 Xnn ja G1 Ynn komennoilla sopivaan kohtaan (nn = numero). Nämä koordinaatit vaihtelevat sen mukaan kuinka itse teet tämän kalibroinnin, mutta tässä omat luvut:

G1 Z50
G1 X100
G1 Y80

Mitta asetetaan tulostusalustalle sopivaan kohtaan ja osoittimen voi kiinnittää tulostuspäähän esimerkiksi teipillä, kuten kuvassa.

XY moottoreiden kalibrointi

Seuraavaksi osoitin ajetaan G1-komennoilla tai Repetier-Hostin käsisyötöllä lähemmäs mitta-asteikkoa ja johonkin tasalukuun mitan alkupäähän. Kovin suuria lukemia ei kannata käyttää, vaan liikuttaa tulostinta vähän kerrallaan.

Kun osoitin on sopivassa kohtaa asteikkoa, sanotaanko nyt vaikka että kohdassa X = 42.55 (tulostimen lukema, mitta-asteikossa vaikkapa kohdassa 2.0 cm), niin liikutetaan tulostinta komennolla G1 X142.55 100mm eteenpäin:

G1 X142.55

Osoittimen pitäisi nyt olla kohdassa 12.0 cm, mikäli askeleet eli stepsit X-moottorilla ovat oikein. Näin ei kuitenkaan minulla ollut vaan neula oli noin puoli milliä liikaa yli. Askeleet lasketaan samalla kaavalla kuin pursottimelle, eli näin:

Nykyiset_stepsit/todellinen_matka * haluttu_matka = oikeat_stepsit
80.00/100.5 * 100 = 79.60199005 --> pyöristys 79.60

Saatu uusi arvo ilmoitetaan tulostimelle ja tallennetaan muistiin.

M92 X79.60
M500
M503

Sama toimenpide toistetaan Y-akselille, X-kirjaimen tilalla on komennoissa vain Y.

Vaihe 5 - Z-moottorin kalibrointi

Z-moottori kalibroidaan samoin kuin XY-moottoritkin, mitta asteikko on vain pystyssä ja kannattaa olla tarkkana, ettei mitään jää puristumaan Z-akselin alle kun sitä lasketaan.

Yllä olevassa kuvassa on minun setuppini. Komennot eivät eroa muuten kuin että XY-kirjaimen paikalla on nyt Z. Muista tallennus M500 komennolla stepsien lähetyksen jälkeen. Tässä tapauksessa Z-akseli oli prikulleen oikein, joten muutoksia ei tarvittu. Z-akseli onkin omien havaintojen mukaan yleensä tarkin jo heti tehtaalta tullessa.

Tulostin on nyt moottoreiltaan kalibroitu ja tämä toimenpide voi olla tarpeellista toistaa esimerkiksi huollon yhteydessä (venyneet / löystyneet remmit tms.).

Jos löysit artikkelista virheitä tai jokin on esitetty epäselvästi, olisit kiltti ja ilmoittaisit siitä info-sivujen kautta. Kaikki ehdotukset artikkelin parantamiseksi otetaan huomioon aina!

Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

This site uses Akismet to reduce spam. Learn how your comment data is processed.