{"id":2108,"date":"2025-03-23T12:45:46","date_gmt":"2025-03-23T10:45:46","guid":{"rendered":"https:\/\/hyotynen.iki.fi\/kotiautomaatio\/?p=2108"},"modified":"2025-03-23T12:45:47","modified_gmt":"2025-03-23T10:45:47","slug":"paivitysta-vanhaan-3d-tulostimeen-osa-1-klipper-mainsail","status":"publish","type":"post","link":"https:\/\/hyotynen.iki.fi\/kotiautomaatio\/paivitysta-vanhaan-3d-tulostimeen-osa-1-klipper-mainsail\/","title":{"rendered":"P\u00e4ivityst\u00e4 vanhaan 3D-tulostimeen, Osa 1: Klipper &amp; Mainsail"},"content":{"rendered":"\n<p>K\u00e4yt\u00f6ss\u00e4ni on useamman vuoden hyvin palvellut ensimm\u00e4isen sukupolven <a href=\"https:\/\/hyotynen.iki.fi\/kotiautomaatio\/3d-tulostin\/\">Ender 3 Pro<\/a> 3D-tulostin. Olen tehnyt siihen vuosien varrella useita p\u00e4ivityksi\u00e4: vaihtanut Bowden -extruuderin suoravetomalliin, lis\u00e4nnyt <a href=\"https:\/\/www.antclabs.com\/bltouch\">BLTouch-anturin<\/a> ja web-kameran, liitt\u00e4nyt tulostimeen <a href=\"https:\/\/www.raspberrypi.com\/\">Raspberry Pi<\/a>:n ja <a href=\"https:\/\/hyotynen.iki.fi\/kotiautomaatio\/octoprint\/\">Octoprint<\/a> -k\u00e4ytt\u00f6liittym\u00e4n sek\u00e4 tehnyt lukuisia pienempi\u00e4 p\u00e4ivityksi\u00e4.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"537\" height=\"600\" src=\"https:\/\/hyotynen.iki.fi\/kotiautomaatio\/wp-content\/uploads\/2025\/03\/Ender3-Pro-Klipper-Mainsail.png\" alt=\"Ender3 Pro, Klipper &amp; Mainsail\" class=\"wp-image-2119\" srcset=\"https:\/\/hyotynen.iki.fi\/kotiautomaatio\/wp-content\/uploads\/2025\/03\/Ender3-Pro-Klipper-Mainsail.png 537w, https:\/\/hyotynen.iki.fi\/kotiautomaatio\/wp-content\/uploads\/2025\/03\/Ender3-Pro-Klipper-Mainsail-269x300.png 269w, https:\/\/hyotynen.iki.fi\/kotiautomaatio\/wp-content\/uploads\/2025\/03\/Ender3-Pro-Klipper-Mainsail-242x270.png 242w\" sizes=\"auto, (max-width: 537px) 100vw, 537px\" \/><figcaption class=\"wp-element-caption\">Ender3 Pro, Klipper &#038; Mainsail<\/figcaption><\/figure>\n<\/div>\n\n\n<p>Tulostimessa ei ole mit\u00e4\u00e4n varsinaista vikaa muuta kuin ett\u00e4 se on nykymittapuulla hieman hidas. Tulostimessa on ensimm\u00e4isen sukupolven 8-bittinen ohjainkortti sek\u00e4 Marlin -firmware, mik\u00e4 rajoittaa tulostuksen nopeuden nostoa, vaikka askelmoottorit nopeampaan pystyisiv\u00e4tkin.<\/p>\n\n\n\n<p><a href=\"https:\/\/www.klipper3d.org\/\">Klipper<\/a> on vaihtoehtoinen 3D-tulostimen firmware. Sen suurin ero Marliniin verrattuna on ett\u00e4 suurin osa tulostimen laskentaty\u00f6st\u00e4 tehd\u00e4\u00e4n sit\u00e4 ohjaavalla tietokoneella, t\u00e4ss\u00e4 tapauksessa Raspberry Pi:ll\u00e4. T\u00e4m\u00e4 poistaa Marlin -firmwaren rajoitukset ja mahdollistaa samalla muita hy\u00f6dyllisi\u00e4 ominaisuuksi, joista my\u00f6hemmin lis\u00e4\u00e4.<\/p>\n\n\n\n<p><a href=\"https:\/\/docs.mainsail.xyz\/\">Mainsail<\/a> on Klipper -tulostimen k\u00e4ytt\u00f6liittym\u00e4 Raspberry Pi:ss\u00e4. Aiemmin k\u00e4yt\u00f6ss\u00e4ni olleeseen Octoprintiin verrattuna Mainsail on kevyt ja tehty erityisesti Klipperi\u00e4 varten. Mainsailin lis\u00e4ksi my\u00f6s Octoprintin saa halutessaan yhdistetty\u00e4 Klipper -tulostimeen. Kolmas vaihtoehto k\u00e4ytt\u00f6liittym\u00e4ksi on <a href=\"https:\/\/docs.fluidd.xyz\/\">Fluidd<\/a>.<\/p>\n\n\n\n<p>Ensimm\u00e4iseksi asensin <a href=\"https:\/\/docs-os.mainsail.xyz\/getting-started\/raspberry-pi-os-based\">Mainsail OS<\/a>:n Raspberry Pi Imager -ohjelmalla PC:n avulla Pi:n muistikortille. T\u00e4m\u00e4n j\u00e4lkeen muistikortti laitetaan Pi:hin ja kone k\u00e4ynnistet\u00e4\u00e4n. Mainsail OS on sen j\u00e4lkeen k\u00e4ytett\u00e4viss\u00e4 selaimella Pi:n IP-osoitteella tai asennuksen yhteydess\u00e4 m\u00e4\u00e4ritellyll\u00e4 domainilla.<\/p>\n\n\n\n<p>Jotta Mainsail saadaan keskustelemaan tulostimen kanssa, t\u00e4ytyy tulostimen firmware p\u00e4ivitt\u00e4\u00e4 Marlinista Klipperiin. T\u00e4h\u00e4n hommaan l\u00f6ytyi <a href=\"https:\/\/www.klipper3d.org\/Installation.html#building-and-flashing-the-micro-controller\">ohjeet<\/a> Klipperin sivuilta. SSH-yhteys Raspberry Pi:hin jossa ajetaan seuraavat komennot firmwaren tekemiseksi:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cd ~\/klipper\/\nmake menuconfig (valitse prosessorimalliksi <em>atmega1284p<\/em>)\nmake<\/code><\/pre>\n\n\n\n<p>Firmware flashataan t\u00e4m\u00e4n j\u00e4lkeen tulostimeen. Sit\u00e4 varten t\u00e4ytyy tiet\u00e4\u00e4 USB:lla kytketyn tulostimen ID. T\u00e4m\u00e4n saa selville komennolla: <em>ls \/dev\/serial\/by-id\/*<\/em> Varsinainen flashaus tehd\u00e4\u00e4n komennoilla: <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo service klipper stop\nmake flash FLASH_DEVICE=\/dev\/serial\/by-id\/usb-1a86_USB2.0-Serial-if00-port0\nsudo service klipper start<\/code><\/pre>\n\n\n\n<p>Mainsail ei viel\u00e4 t\u00e4m\u00e4n j\u00e4lkeen l\u00f6yd\u00e4 tulostinta, koska tarvittava printer.cfg -tiedosto puuttuu. Sopiva pohja l\u00f6ytyi <a href=\"https:\/\/raw.githubusercontent.com\/Klipper3d\/klipper\/refs\/heads\/master\/config\/printer-creality-ender3-2018.cfg\">Githubista<\/a>, jonka tallensin Mainsailin <em>config<\/em> -hakemistoon, <em>printer.cfg<\/em> -nimell\u00e4. Ensialkuun lis\u00e4sin tiedostoon rivin, mill\u00e4 luetaan mainsail.cfg sek\u00e4 muokkasin tulostimen ID:n:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;include mainsail.cfg]\n\n&#91;mcu]\nserial: \/dev\/serial\/by-id\/usb-1a86_USB2.0-Serial-if00-port0<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"535\" src=\"https:\/\/hyotynen.iki.fi\/kotiautomaatio\/wp-content\/uploads\/2025\/03\/Mainsail-1024x535.png\" alt=\"Mainsail\" class=\"wp-image-2118\" srcset=\"https:\/\/hyotynen.iki.fi\/kotiautomaatio\/wp-content\/uploads\/2025\/03\/Mainsail-1024x535.png 1024w, https:\/\/hyotynen.iki.fi\/kotiautomaatio\/wp-content\/uploads\/2025\/03\/Mainsail-300x157.png 300w, https:\/\/hyotynen.iki.fi\/kotiautomaatio\/wp-content\/uploads\/2025\/03\/Mainsail-768x402.png 768w, https:\/\/hyotynen.iki.fi\/kotiautomaatio\/wp-content\/uploads\/2025\/03\/Mainsail-1536x803.png 1536w, https:\/\/hyotynen.iki.fi\/kotiautomaatio\/wp-content\/uploads\/2025\/03\/Mainsail-516x270.png 516w, https:\/\/hyotynen.iki.fi\/kotiautomaatio\/wp-content\/uploads\/2025\/03\/Mainsail.png 1884w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Mainsail<\/figcaption><\/figure>\n\n\n\n<p>Aikaisemmin Octoprintin k\u00e4yt\u00f6ss\u00e4 ollut USB:lla yhdistetty web-kamera l\u00f6ytyi automaattisesti Mainsailin k\u00e4ytt\u00f6liittym\u00e4st\u00e4. Mainsail tukee monia <a href=\"https:\/\/docs.mainsail.xyz\/settings\/webcams\/\">kameraprotokollia<\/a>, joilla kameroita voi j\u00e4rjestelm\u00e4\u00e4n liitt\u00e4\u00e4 ja hallita.<\/p>\n\n\n\n<p>Raspberry Pi:ss\u00e4ni on kiinni relekortti, joka ohjaa tulostinkaapin valoja sek\u00e4 poistopuhallinta. Pi:lle tehtiin n\u00e4it\u00e4 varten oma <a href=\"https:\/\/www.klipper3d.org\/RPi_microcontroller.html\">firmware<\/a> ja se lis\u00e4ttiin toissijaiseksi mikrokontrolleriksi Klipperin asetuksiin. T\u00e4m\u00e4n j\u00e4lkeen konfiguraatiotiedostoon m\u00e4\u00e4riteltiin mik\u00e4 GPIO -pinni ohjaa mit\u00e4kin laitetta. Halutessaan n\u00e4it\u00e4 voi ohjata suoraan G-koodista:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;mcu rpi]\nserial: \/tmp\/klipper_host_mcu\n\n# A led strip\n&#91;output_pin caselight]\npin: !rpi:gpio17\nvalue: 0\nshutdown_value: 0\n\n# Fans\n&#91;output_pin casefan]\npin: !rpi:gpio27\nvalue: 0\nshutdown_value: 0<\/code><\/pre>\n\n\n\n<p>Automaattisen tulostusalustan tasomaisuuden tarkastukseen (<a href=\"https:\/\/www.klipper3d.org\/Bed_Mesh.html\">ABL<\/a>) tarvittiin seuraavat rivit <em>printer.cfg<\/em>:hen Alla olevat arvot riippuvat k\u00e4ytetyst\u00e4 anturista, sen fyysisest\u00e4 paikasta ja tulostusalustan koosta:: <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;stepper_z]\nstep_pin: PB3\ndir_pin: PB2\nenable_pin: !PA5\nmicrosteps: 16\nrotation_distance: 8\nendstop_pin: probe:z_virtual_endstop\nposition_max: 250\nposition_min: -3\n\n&#91;safe_z_home]\nhome_xy_position: 150, 120\nspeed: 80\nz_hop: 8\nz_hop_speed: 5\n\n&#91;bltouch]\nsensor_pin: ^PC4\ncontrol_pin: PA4\nx_offset: -44.0\ny_offset: -9.0\nspeed: 5.0\nsamples: 2\nsample_retract_dist: 8.0\n\n&#91;bed_mesh]\nspeed: 80\nhorizontal_move_z: 5\nmesh_min: 5,5\nmesh_max: 185,220\nprobe_count: 5<\/code><\/pre>\n\n\n\n<p>Ekstruuderin sy\u00f6tt\u00f6nopeus on my\u00f6s kalibroitava, jotta se osaa sy\u00f6tt\u00e4\u00e4 oikean m\u00e4\u00e4r\u00e4n lankaa tulostettaessa. T\u00e4m\u00e4n voi tehd\u00e4 <a href=\"https:\/\/www.klipper3d.org\/Rotation_Distance.html\">useammalla eri tavalla<\/a>, kuten <a href=\"https:\/\/www.klipper3d.org\/Rotation_Distance.html#calibrating-rotation_distance-on-extruders\">mittaamalla ja laskemalla<\/a>. T\u00e4m\u00e4n lis\u00e4ksi t\u00e4ytyy m\u00e4\u00e4ritt\u00e4\u00e4 tulostusp\u00e4\u00e4n <em>Z offset<\/em> -arvo perinteisell\u00e4 paperitestill\u00e4 antamalla seuraavat komennot tulostimen konsoliin Mainsailissa:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>PROBE_CALIBRATE\nSAVE_CONFIG<\/code><\/pre>\n\n\n\n<p>Tulostin on n\u00e4ill\u00e4 toimenpiteill\u00e4 k\u00e4ytett\u00e4viss\u00e4 normaalisti. Sen saa yhdistetty\u00e4 Slicereihin jolloin tulostus onnistuu ilman manuaalista tiedostojen siirtoa. Tulostimen hallinta on helppoa web-k\u00e4ytt\u00f6liittym\u00e4n kautta ja se toimii erinomaisesti my\u00f6s mobiililaitteissa ilman erillisi\u00e4 sovelluksia. Klipperin mahdollistamiin tulostusnopeuksiin ja muihin lis\u00e4ominaisuuksiin perehdyt\u00e4\u00e4n my\u00f6hemmin.<\/p>\n\n\n\n<p>Kaikkia p\u00e4ivityksen yksityiskohtia ei t\u00e4ss\u00e4 k\u00e4yty l\u00e4pi. Tarvittaessa Klipperin ja Mainsailin ajantasaisimmat konfiguraatiotiedostot l\u00f6ytyv\u00e4t <a href=\"https:\/\/github.com\/hyotynen\/Ender-3-Pro\/tree\/main\/printer_data\/config\">Githubista<\/a>. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>K\u00e4yt\u00f6ss\u00e4ni on useamman vuoden hyvin palvellut ensimm\u00e4isen sukupolven Ender 3 Pro 3D-tulostin. Olen tehnyt siihen vuosien varrella useita p\u00e4ivityksi\u00e4: vaihtanut Bowden -extruuderin suoravetomalliin, lis\u00e4nnyt BLTouch-anturin ja web-kameran, liitt\u00e4nyt tulostimeen Raspberry Pi:n ja Octoprint -k\u00e4ytt\u00f6liittym\u00e4n sek\u00e4 tehnyt lukuisia pienempi\u00e4 p\u00e4ivityksi\u00e4. Tulostimessa ei ole mit\u00e4\u00e4n varsinaista vikaa muuta kuin ett\u00e4 se on nykymittapuulla hieman hidas. Tulostimessa on ensimm\u00e4isen sukupolven 8-bittinen ohjainkortti sek\u00e4 Marlin -firmware, mik\u00e4 rajoittaa tulostuksen nopeuden nostoa, vaikka askelmoottorit nopeampaan pystyisiv\u00e4tkin. Klipper on vaihtoehtoinen 3D-tulostimen firmware. Sen suurin ero Marliniin&#8230;<\/p>\n<p class=\"read-more\"><a class=\"btn btn-default\" href=\"https:\/\/hyotynen.iki.fi\/kotiautomaatio\/paivitysta-vanhaan-3d-tulostimeen-osa-1-klipper-mainsail\/\"> Read More<span class=\"screen-reader-text\">  Read More<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":2119,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[73,1],"tags":[65,94,59],"class_list":["post-2108","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-rakentelu","category-yleinen","tag-3d-tulostus","tag-klipper","tag-raspberry-pi"],"jetpack_featured_media_url":"https:\/\/hyotynen.iki.fi\/kotiautomaatio\/wp-content\/uploads\/2025\/03\/Ender3-Pro-Klipper-Mainsail.png","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/hyotynen.iki.fi\/kotiautomaatio\/wp-json\/wp\/v2\/posts\/2108","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hyotynen.iki.fi\/kotiautomaatio\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hyotynen.iki.fi\/kotiautomaatio\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hyotynen.iki.fi\/kotiautomaatio\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/hyotynen.iki.fi\/kotiautomaatio\/wp-json\/wp\/v2\/comments?post=2108"}],"version-history":[{"count":11,"href":"https:\/\/hyotynen.iki.fi\/kotiautomaatio\/wp-json\/wp\/v2\/posts\/2108\/revisions"}],"predecessor-version":[{"id":2236,"href":"https:\/\/hyotynen.iki.fi\/kotiautomaatio\/wp-json\/wp\/v2\/posts\/2108\/revisions\/2236"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/hyotynen.iki.fi\/kotiautomaatio\/wp-json\/wp\/v2\/media\/2119"}],"wp:attachment":[{"href":"https:\/\/hyotynen.iki.fi\/kotiautomaatio\/wp-json\/wp\/v2\/media?parent=2108"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hyotynen.iki.fi\/kotiautomaatio\/wp-json\/wp\/v2\/categories?post=2108"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hyotynen.iki.fi\/kotiautomaatio\/wp-json\/wp\/v2\/tags?post=2108"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}