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