Linux: Flsun i3 + Cura + OctoPrint
Lähetetty: Su Touko 05, 2024 6:43 pm
Tässä jutussa käsitellään OctoPrintin asennusta ja käyttöä tulostuksen hallintaan langattomasti Flsun i3 Plus Large-tulostimessa 300x300x420 tulostinalalla. Tulostin on jonkin verran modattu, siihen on vaihdettu pedille kunnolliset lineaarijohteet alkuperäisten pyöreiden tankojen/kuulakorien tilalle, lämpölevyn alla oleva levy vaihdettu pleksistä kunnon alumiiniin jotta johteet ja aluslevy eivät ajan mittaan painuisi mutkalle (alkuperäiset menivät melko vikkelään). Lisäksi langansyöttö on muutettu suorasyötöksi kun alunperin syöttömoottorit sijaitsivat laitteen kehikon päällä. Korkeuden kalibrointiin autoleveling 12 mittapisteellä ja Z-anturi vaihdettu kunnolliseen vakion tilalle joka kärsi liiallisesta mittausvirheestä lämpötilan muutosten vaikutuksesta. Lisäksi tukia ja moottorien asennuspalikoita tulosteltu sinne tänne sekä tulostuspään koko asennelma.
Tavoitteena siis saada tulostin toimimaan pelkän verkkovirran perässä langattomasti ilman USB-johtoja. Slicerina olen käyttänyt aina Curaa ja OctoPrint serverin raudaksi valikoitui ensin testausvaiheessa Bigtreetech CB1 eMMC-versio sen valmiiden liitäntöjen johdosta. Toimivuuden testaamisen jälkeen OctoPrint serveriksi vaihdoin NanoPi Neo Airin sen pienen koon takia jolloin se sopii mukavammin järjestelmälle tulevan tulostetun kotelon sisään sekä ajatus ettei laita turhan "järeää" laitetta ohjaamaan pelkästään yhtä tulostinta.
NanoPi Neo Airista löytyy ARM Cortex-A7 1.2GHz neliydin prossu, 512MB muistia, 8GB eMMC sekä WiFi. USB-liitäntä tulostimelle kuten myös 5V sisään laitetaan piikkirimojen kautta. USB ja 5V varten tullaan vielä myöhemmin lisäämään jonkinlainen shield johon liitännät saadaan kätevästi. Koteloon laitetaan siis tulostimen mukana tulleet ohjainkortti MKS Gen L ja näyttö MKS TFT32_L V4.0 sekä OctoPrint serverikortti jonka virrat otetaan tulostimen ohjainkortin 5V lähdöstä.
5V NanoPi:lle otetaan tulostimen ohjainkortilta sen takia että näyttö ja ohjainkortti olisivat muuten aina päällä kun ohjainkortin USB-liitännässä on päällä oleva tietokone. Näin saadaan myös palvelin käynnistymään aina kun tulostin käynnistetään. Toki virrat olisi voinut ottaa myös erillisellä virtalähteellä ja jättää USB-liitännästä 5V pois mutta testien perusteella ohjainkortin ulostulosta virta riittää mainiosti myös NanoPi:lle. Ohjainkortissa käytetään MP1584 step-down regulaattoria 5V jännitelähtöön ja siitä saa ulos 3A joten ongelmia ei pitäisi sen suhteen olla.
3D mallintaminen tapahtuu onshape-nimisellä pilvipohjaisella softalla joka pyörii suoraan selaimessa joten on aika pitkälti alustariippumaton. Onshape vastaa käytettävyydeltään Fusion360 jota olen aikaisemmin käyttänyt, mutta on harrastajalisenssillä ilmainen. Slicerina tosiaan Cura ja näitä kaikkia pyörittää Raspberry Pi 5 8GB malli jossa asennettuna Ubuntu XFCE4 työpöydällä.
Projektin vaiheet:
HUOM: Tämän ohjeen OctoPrintin asennus pätee ARM64-pohjaiseen Ubuntu-käyttöjärjestelmään, joten muiden distrojen ja arkkitehtuurien kanssa voi olla eroa asennuskomennoissa ja service-skriptin ja sen aktivoimisen kanssa.
Vaihe 1: OctoPrint asennus ja tulostuksen testaus Bigtreetech CB1:ssä
Tämän vaiheen suoritin käytännössä vain siitä syystä, että näkisin miten tulostin toimii OctoPrintin kanssa ja että sen asennus ylipäätään onnistuu. CB1:ssä on Allwinnerin H616-prossu, eli 64-bittinen neliytiminen Cortex-A53 1.5GHz kellotaajuudella. Muistia 1GB ja 32GB eMMC. Käyttöjärjestelmän asennus eMMC muistille vaati hieman googlailua että löytyi oikeat softat ja u-bootit millä eMMC-muistin sai näkymään tiedostonhallinnassa. Tämän jälkeen se oli yhtä suoraviivaista kuin SD-kortille asennuskin.
Käyttöjärjestelmänä käytin Armbian 24.2.3 Jammy with Linux 6.1.79-legacy-sun50iw9-btt versiota. Asennusta varten tarvitsi CB1 levy dip-kytkimistä asettaa boot-modeen sekä USB OTG-modeen. Sen jälkeen korttiin virrat ja u-boot sisään komennolla:
Pieni odottelu ja eMMC ilmestyi tiedostonhallintaan. Tämän jälkeen Disks-ohjelma auki Ubuntussa, valitaan eMMC muisti ja kolmen pisteen valikosta "Restore Disk Image...". Valitaan levykuva, tässä tapauksessa "Armbian_24.2.3_Bigtreetech-cb1_jammy_legacy_6.1.79.img.xz" jonka voi ladata täältä ja laitetaan kirjoittamaan. Kun kirjoitus on valmis, virrat pois, dippikytkimet perusasentoon ja virrat päälle. Ensimmäisessä käynnistyksessä pyydetään asettamaan root-käyttäjän salasana sekä luomaan normaali käyttäjä sudo-oikeuksin, shellin valinta (bash / zsh) sekä asettamaan aikavyöhyke ja kieliasetus. Jos kortti ei ole kiinni langallisessa verkossa, pitää myös langattoman asetukset laittaa. Tämä onnistuu seuraavasti:
Ensin kannattaa tarkastaa että oma verkko löytyy komennolla:
Sitten asetetaan SSID ja salasana:
Jos ja kun yhdistäminen onnistuu, siitä tulee ilmoitus ruudulle, jotakuinkin tämän tyylinen:
Kurkataan verkon asetukset:
Sitten vielä seuraava komento varmistamaan että verkkoon yhdistytään automaattisesti bootissa:
Kun verkkoyhteys on toiminnassa, kannattaa suorittaa täysi päivitys järjestelmälle komennoilla:
Kun päivitys on valmis, voidaankin valmistautua OctoPrintin asennukseen. Asennellaan ensin tarvittavat python- ym. paketit:
Varmistetaan että ollaan kotihakemistossa ja luodaan OctoPrint kansio sekä siirrytään sinne:
Luodaan asennusta varten virtuaaliympäristö Pythonille:
Aktivoidaan se:
Asennetaan OctoPrintin Python riippuvuudet:
Ja lopuksi itse OctoPrint:
Lisätään käyttäjä sopiviin ryhmiin että OctoPrint pystyy käyttämään sarjaporttia:
Tämän jälkeen pitää kirjautua ulos/takaisin sisään jotta muutokset tulee voimaan tai suorittaa terminaalissa komento:
Kun tarvittavat ryhmien oikeudet on aktivoitu, OctoPrint serveri käynnistetään komennolla:
Kannattaa myös laittaa OctoPrint käynnistymään automaattisesti käynnistyksen yhteydessä. Luo tiedosto octoprint.service ja lisää sinne seuraava:
Siirrä se oikeaan kansioon:
Ja lopuksi aktivoi se:
Nyt OctoPrinttiin pitäisi päästä käsiksi selaimella laittamalla osoitteeksi <octoprint ip>:5000 (esimerkiksi: 192.168.1.200:5000)
Vaihe 2: OctoPrint asennus NanoPi Neo Air:ssa
Vaihe 3: NanoPi johdotus ohjainkortille ja tulostuksen testaus
Vaihe 4: Shieldin piirtäminen KiCAD:lla NanoPi Neo Air:lle
Vaihe 5: Kotelon piirtäminen ja tulostus
Tavoitteena siis saada tulostin toimimaan pelkän verkkovirran perässä langattomasti ilman USB-johtoja. Slicerina olen käyttänyt aina Curaa ja OctoPrint serverin raudaksi valikoitui ensin testausvaiheessa Bigtreetech CB1 eMMC-versio sen valmiiden liitäntöjen johdosta. Toimivuuden testaamisen jälkeen OctoPrint serveriksi vaihdoin NanoPi Neo Airin sen pienen koon takia jolloin se sopii mukavammin järjestelmälle tulevan tulostetun kotelon sisään sekä ajatus ettei laita turhan "järeää" laitetta ohjaamaan pelkästään yhtä tulostinta.
NanoPi Neo Airista löytyy ARM Cortex-A7 1.2GHz neliydin prossu, 512MB muistia, 8GB eMMC sekä WiFi. USB-liitäntä tulostimelle kuten myös 5V sisään laitetaan piikkirimojen kautta. USB ja 5V varten tullaan vielä myöhemmin lisäämään jonkinlainen shield johon liitännät saadaan kätevästi. Koteloon laitetaan siis tulostimen mukana tulleet ohjainkortti MKS Gen L ja näyttö MKS TFT32_L V4.0 sekä OctoPrint serverikortti jonka virrat otetaan tulostimen ohjainkortin 5V lähdöstä.
5V NanoPi:lle otetaan tulostimen ohjainkortilta sen takia että näyttö ja ohjainkortti olisivat muuten aina päällä kun ohjainkortin USB-liitännässä on päällä oleva tietokone. Näin saadaan myös palvelin käynnistymään aina kun tulostin käynnistetään. Toki virrat olisi voinut ottaa myös erillisellä virtalähteellä ja jättää USB-liitännästä 5V pois mutta testien perusteella ohjainkortin ulostulosta virta riittää mainiosti myös NanoPi:lle. Ohjainkortissa käytetään MP1584 step-down regulaattoria 5V jännitelähtöön ja siitä saa ulos 3A joten ongelmia ei pitäisi sen suhteen olla.
3D mallintaminen tapahtuu onshape-nimisellä pilvipohjaisella softalla joka pyörii suoraan selaimessa joten on aika pitkälti alustariippumaton. Onshape vastaa käytettävyydeltään Fusion360 jota olen aikaisemmin käyttänyt, mutta on harrastajalisenssillä ilmainen. Slicerina tosiaan Cura ja näitä kaikkia pyörittää Raspberry Pi 5 8GB malli jossa asennettuna Ubuntu XFCE4 työpöydällä.
Projektin vaiheet:
- OctoPrint asennus ja tulostuksen testaus Bigtreetech CB1:ssä
- OctoPrint asennus NanoPi Neo Air:ssa
- NanoPi johdotus ohjainkortille ja tulostuksen testaus
- Shieldin piirtäminen KiCAD:lla NanoPi Neo Air:lle
- Kotelon piirtäminen ja tulostus
HUOM: Tämän ohjeen OctoPrintin asennus pätee ARM64-pohjaiseen Ubuntu-käyttöjärjestelmään, joten muiden distrojen ja arkkitehtuurien kanssa voi olla eroa asennuskomennoissa ja service-skriptin ja sen aktivoimisen kanssa.
Vaihe 1: OctoPrint asennus ja tulostuksen testaus Bigtreetech CB1:ssä
Tämän vaiheen suoritin käytännössä vain siitä syystä, että näkisin miten tulostin toimii OctoPrintin kanssa ja että sen asennus ylipäätään onnistuu. CB1:ssä on Allwinnerin H616-prossu, eli 64-bittinen neliytiminen Cortex-A53 1.5GHz kellotaajuudella. Muistia 1GB ja 32GB eMMC. Käyttöjärjestelmän asennus eMMC muistille vaati hieman googlailua että löytyi oikeat softat ja u-bootit millä eMMC-muistin sai näkymään tiedostonhallinnassa. Tämän jälkeen se oli yhtä suoraviivaista kuin SD-kortille asennuskin.
Käyttöjärjestelmänä käytin Armbian 24.2.3 Jammy with Linux 6.1.79-legacy-sun50iw9-btt versiota. Asennusta varten tarvitsi CB1 levy dip-kytkimistä asettaa boot-modeen sekä USB OTG-modeen. Sen jälkeen korttiin virrat ja u-boot sisään komennolla:
Koodi: Valitse kaikki
sudo ./sunxi-fel -v uboot ./u-boot-sunxi-cb1-emmc.binEnsin kannattaa tarkastaa että oma verkko löytyy komennolla:
Koodi: Valitse kaikki
nmcli device wifiKoodi: Valitse kaikki
nmcli device wifi connect WIFI_SSID password WIFI_PASSWORDKoodi: Valitse kaikki
Device 'wlan0' successfully activated with....Koodi: Valitse kaikki
nmcli con showKoodi: Valitse kaikki
nmcli con mod WIFI_SSID connection.autoconnect trueKoodi: Valitse kaikki
sudo apt update
sudo apt upgrade
sudo reboot nowKoodi: Valitse kaikki
sudo apt install python-pip python-dev python-setuptools python-virtualenv git libyaml-dev build-essentialKoodi: Valitse kaikki
cd ~ && mkdir Octoprint && cd OctoprintKoodi: Valitse kaikki
python3 -m venv venvKoodi: Valitse kaikki
source venv/bin/activateKoodi: Valitse kaikki
pip install --upgrade pip wheelKoodi: Valitse kaikki
pip install --no-cache-dir octoprintKoodi: Valitse kaikki
sudo usermod -a -G tty,dialout <käyttäjätunnus>Koodi: Valitse kaikki
su <käyttäjätunnus>Koodi: Valitse kaikki
~/OctoPrint/venv/bin/octoprint serveKoodi: Valitse kaikki
[Unit]
Description=OctoPrint
After=network-online.target
Wants=network-online.target
[Service]
Type=exec
User=<USERNAME>
ExecStart=/home/<USERNAME>/OctoPrint/venv/bin/octoprint serve
Restart=on-abort
[Install]
WantedBy=multi-user.target
Koodi: Valitse kaikki
sudo mv octoprint.service /etc/systemd/system/Koodi: Valitse kaikki
sudo systemctl enable octoprint.serviceVaihe 2: OctoPrint asennus NanoPi Neo Air:ssa
Vaihe 3: NanoPi johdotus ohjainkortille ja tulostuksen testaus
Vaihe 4: Shieldin piirtäminen KiCAD:lla NanoPi Neo Air:lle
Vaihe 5: Kotelon piirtäminen ja tulostus