OctoPrint – Instalace a nastavení
V tomto návodu si povíme jak nainstalovat na počítač
Raspberry Pi tiskový server
OctoPrint. Vše popíšu velmi podrobně, aby to zvládl i začátečník, který nemá s těmito počítači žádnou zkušenost. Současně budou k dispozici již předinstalované varianty (image) obsahující nastavený systém s danou funkcionalitou, takže pokud nebudete chtít, nemusíte instalaci provádět ručně, ale rovnou spustit Vámi preferovanou Image.
Varianty OctoPrintu:
1. Pouze varianta bez displeje – Od této varianty se budou odvíjet všechny ostatní
2. S displejem a grafickým rozhraním:
OctoScreen
3. S displejem a grafickým rozhraním:
OctoDash
4. S displejem a grafickým rozhraním:
TouchUI
Co budeme potřebovat za Hardware:
1.
Raspberry Pi 3B (+), případně 4B
2.
LCD displej 3,5“ s dotykovou rezistivní vrstvou
3.
Micro SD kartu class 10 a rychlejší ideálně 32GB
4.
Krabička pro Raspberry – Další ve složce STL
Co budeme potřebovat za Software:
1.
SD Card Formatter - Pro zformátování SD karty v prostředí Windows
2.
BalenaEtcher - Pro nahrání Image na SD kartu
3.
Win32DiskImager - Alternativa k balenaEtcheru, která umí udělat i zálohu (image).
4.
PuTTY - Terminál pro konfiguraci Raspberry
5.
Advanced IP Scanner - pro zjištění IP adresy Raspberry
6.
Image systému s OctoPrintem - OctoPi 0.18.0 RC2 (ve složce: Image1. Základní stažená)
Ještě než se pustíme do instalace, chci všechny upozornit, že nejsem žádný specialista na Linux a tyto jednodeskové mini počítače. Proto moje postupy nemusí být zcela ideální a určitě to jde dělat i jinak. Nicméně popisované postupy jsou funkční. Je však nutné mít na paměti, že od doby psaní tohoto návodu mohlo dojít k mnoha změnám, a proto zde popisovaný postup nemusí být funkční. Pokud tedy budete mít s instalací jakýkoli problém, použijte přesně definovaný hardware a software, což by mělo být dle daného návodu funkční.
Taktéž zde nebudu vysvětlovat co to je ten OctoPrint a jak ho přesně používat. Pokud tento návod čtete, předpokládám, že máte důvod si ho instalovat a tak i víte, k čemu a jak ho chcete použít. Proto se budu omezovat do značné míry pouze na jeho zprovoznění a jen okrajově si povíme co a jak nastavit.
Hardware použitý při testech:
Samozřejmě instalaci můžete provést na různém hardware, a proto nemohu ručit, že postup bude 100% funkční pro každou variantu. Takže zde píšu, na čem jsem to testoval já, a tudíž by to mělo bez problému fungovat:
Raspberry Pi 3B
LCD displej 3,5“ 480x320pix připojený přes GPIO (SPI)
Základní image OctoPrintu - OctoPi 0.18.0 RC2 (součástí dokumentace)
Taktéž je nutné upozornit, že při instalaci musí být počítač Raspberry připojen k internetu, neb vše se bude instalovat online z repozitářů. Současně je nutné, abychom měli k Raspberry přístup po síti, protože většinu operací budeme provádět vzdáleně přes terminál. Rozhodně doporučuji Raspberry připojit do sítě pomocí kabelu a nikoli přes WIFI. Samozřejmě, až bude vše nainstalováno a nakonfigurováno je možno Raspberry připojit do WIFI sítě.
1. Krok první – Příprava SD karty.
Jak už jsem v úvodu zmínil, budeme potřebovat micro SD kartu. Výběr této karty je celkem zásadní a platí zde, že čím má karta větší kapacitu, tím lépe. Optimální je asi kapacita 32GB. Další důležitý parametr karty je její rychlost. Jako naprosté minimum je Class 10, což znamená, že na kartu je možno zapisovat minimálně 10MB/s. Nicméně i tato hodnota je hodně na hraně. Osobně mám vyzkoušeno, že jsou celkem dobré karty koupené v Číně, které i když mají deklarováno Class 10 dokážou zapisovat v průměru 30MB/s, což už je velice dobré.
Pokud máme tedy k dispozici vhodnou kartu a máme staženou image OctoPrintu (v mém případě OctoPi 0.18.0 RC2) už potřebujeme pouze nainstalovat vhodný program, kterým danou image zapíšeme na SD kartu. Vhodných programů je celkem dost a v úvodu jsou nějaké odkazy na stažení. Já budu vše popisovat v programu Win32DiskImager.
Vložíme tedy SD kartu do čtečky, čímž by se nám měla přihlásit v systému pod nějakým písmenem. V mém případě BOOT(E).
Následně spustíme program
Win32DiskImager, vybereme image
2020-12-02-octopi-buster-armhf-lite-0.18.0.img, vybereme SD kartu pod písmenem E a dáme zapsat (
Write) image.
Na obrázku si všimněte červeného orámování, kde je zadaný soubor s image, dále zeleně označena SD karta pod písmenem E. Toto písmeno budete mít ve Vašem PC nejspíš jiné. Pokud je vše správně vybráno, stačí kliknout na tlačítko
Write. Ještě jsme jednou tázáni, zda opravdu image na daný disk (SD kartu) zapsat. Poté co potvrdíme zápis, již začne proces zápisu. Vlevo dole si můžete všimnout rychlosti, jakou je image na SD kartu zapisována. V žádném případě by tato rychlost neměla být nižší jak 10MB/s. Pokud je nižší, použijte jinou SD kartu s vyšší rychlostí.
Ještě se hodí říci, že před samotným zápisem image není nutné kartu nijak formátovat nebo upravovat. Zápis image na kartě vytvoří potřebné oddíly a správný souborový systém.
Po ukončení zápisu je možné, že vyskočí hlášení, že vložená SD karta není naformátovaná a zda ji chcete formátovat. V žádném případě to nedělejte a všechny tyto hlášení ignorujte a pozavírejte.
Nyní můžeme kartu ukončit a bezpečně odebrat ze systému (jak je naznačeno na obrázku vlevo). Tímto je první krok přípravy SD karty hotov a můžeme přejít k druhému kroku.
2. Krok druhý – Příprava Raspberry.
V dalším kroku je potřeba připravit Raspberry, které musí být bezpodmínečně vybaveno chladiči, které najdete třeba
zde. A dále by mělo být vybaveno i aktivním chlazením, což lze zařídit ventilátorem 40x40x10mm namontovaným z boku krabičky. Tuto krabičku najdete v příloze ve složce STL.
A poslední věc ovšem neméně důležitá je velice kvalitní napájení Raspberry. Z principu moc nedoporučuji napájení přes USB konektor, ale spíše připájet napájecí kablíky přímo na PCB Raspberry. To však vyžaduje určitou zručnost a znalost elektroniky,
takže to laici nebudou v žádném případě dělat a poradí si jinak. Já používám pro napájení malý
DC/DC měnič typu StepDOWN s regulovatelným výstupním napětím nastaveným na 5,1V. Měnič je údajně schopen dodat proud až 3A. Pro napájení používám přímo napětí ze zdroje 3D tiskárny (12V nebo 24V).
Samozřejmě nezapomeneme osadit TFT 3,5" displej.
Při jeho osazování si dejte pozor, abyste ho správně zasunuly do konektoru na Raspberry.
Nyní už tedy nic nebrání vložení SD karty do Raspberry. Dále připojte ethernetový kabel (s přístupem k internetu) a napájení, které zapněte. Pokud máte k dispozici monitor s HDMI rozhraním můžete ho k Raspberry také připojit. Není to sice nutné, ale budete moci sledovat, zda se Raspberry chová správně a startuje. V tuto chvíli totiž ještě nebude fungovat malý TFT displej. Ten zprovozníme až později.
Vzhledem k tomu, že nemáme k Raspberry připojenou klávesnici ani myš nemůžeme ho tedy ovládat přímo a musíme se k němu připojit vzdáleně pomocí SSH. K tomu potřebujeme program PuTTY. Takže pokud ho ještě nemáte nainstalovaný je nejvyšší čas. Pokud ho již nainstalovaný máte, můžete ho spustit.
Na obrázku nahoře vidíte okno konfigurace připojení. Červeně orámované jsou důležité volby. V první řadě potřebujeme IP adresu, kterou dostalo Raspberry přidělenou od Vašeho lokálního DHCP serveru. Pokud máte k Raspberry připojen monitor a Raspberry už naběhlo, měla by tato adresa být vypsaná někde na konci logu. Nicméně pokud k RB nemáte monitor připojený, musíte adresu zjistit jinak. Zkušenější se mohou podívat do routeru, kde by tato adresa měla být v nějakém logu. Případně můžeme použít jednoduchý prográmek
Advanced IP Scanner, kterým proskenujeme síť. Jak takový sken vypadá, se můžete podívat na následujícím obrázku.
Zvýrazněný řádek je naše Raspberry s adresou
192.168.43.26. Tuto adresu je nutné zadat do PuTTY kolonka
Host Name (or IP Address). V kolonce
Port zkontrolujeme, že je
22. Druh připojení by měl být
SSH a ještě můžete volitelně nastavit
Close Window on Exit na Always (tato volba uzavře PuTTY po ukončení relace).
Pokud máme tedy všechny toto hodnoty vyplněny a správné, můžeme kliknout na
Open.
Pokud se k Raspberry připojujeme takto poprvé, obdržíme varování, které pouze potvrdíme
Ano.
Otevře se okno terminálu a jsme vyzváni k přihlášení.
Login as:
pi
Password:
raspberry
Při zadávání hesla se nebudou žádné znaky vypisovat jako je tomu například ve Windows, kde se zobrazují například tečky či hvězdičky. Na linuxu se nezobrazuje nic. Jakmile tedy zadáme heslo, stiskneme Enter a budeme přihlášeni.
Po přihlášení si můžete všimnout v červeném poli IP adresy a Host Name:
http://octopi.local
Host Name je ideální pro přihlášení pokud neznáme IP adresu zařízení (Raspberry). Protože pokud je tato IP adresa přidělována DHCP serverem a nemáme nastavená konkrétní pravidla při přidělování IP adres například podle MAC adresy, časem platnost přidělené IP adresy vyprší a DHCP server přidělí jinou adresu. Pak by bylo opět nutné tuto adresu zjišťovat. Navíc pokud se budeme chtít připojit k webovému rozhraní OctoPrintu opět je lepší použít Host Name neb ten bude neměnný.
V modrém poli máme vypsány základní informace o tiskovém serveru
OctoPrint a operačním systému na kterém běží
OctoPi.
No a zcela na konci už máme zelenou šipkou naznačen příkazový řádek, do kterého budeme zapisovat příkazy a vůbec kouzlit.
Za určitých okolností se může stát, že Vám nepůjde se s Raspberry spojit přes Putty (SSH). To by mohlo znamenat, že v nastavení Raspberry je zakázáno SSH (nejspíše z bezpečnostních důvodů). V takovém případě je nutné SSH povolit. Nejjednodušší způsob jak to udělat, je na SD kartě v oddíle BOOT (FAT32) vytvořit soubor SSH.TXT. Soubor může být prázdný a nemusí mít ani koncovku .txt. Tím dojde k povolení SSH bez ohledu na to jak je Raspberry nakonfigurované.
Od následujícího textu vše co bude tučným zeleným písmem (
sudo reboot now), se bude zapisovat do tohoto příkazového řádku a potvrzovat Entrem. Pro jednoduchost není nutné tyto příkazy do terminálu opisovat, ale můžete je tam vkládat. Stačí si daný příkaz uložit do paměti (CTRL + C) (schránky) a pak pravým tlačítkem myši kliknout na zelený kurzor, čímž bude příkaz vložena, již ho stačí potvrdit
Enter.
V prvním kroku je tedy dobré provést aktualizace, což provedeme následujícími příkazy:
sudo apt-get update
sudo apt-get upgrade
Při provádění těchto příkazů je dost často nutné zadávat heslo, aby mohl být příkaz vykonán. Týká se to hlavně, pokud něco instalujeme nebo modifikujeme nějaké soubory. Taktéž můžeme být v průběhu provádění nějaké operace tázáni, zda ji opravdu chceme provést. Většinou stačí zadat
y a dát
Enter.
Po provedení těchto příkazů je dále dobré provést ještě nějaká nastavení. Takže spustíme konfigurační utilitu:
sudo raspi-config
Otevře se nám průvodce nastavení, kde můžeme celkem pohodlně měnit nebo upravovat základní parametry.
V první řadě je dobrý nápad změna hesla pro přihlášení uživatele pi.
1 System Options / S3 Password.
Dále přejdeme na
5 Localisation Options a zde můžeme nastavit pod položkou
L1 Locale českou lokalizaci (není to však nutné). Já nastavuji
cs_CZ.UTF-8 UTF-8. Na tuto položku nastavíme kurzor a stiskneme
Mezerník, čímž ji vybereme (označí se hvězdičkou). Následně pomocí
Tabulátoru nastavíme kurzor na
OK a dáme
Enter. Na další obrazovce vybereme ještě výchozí jazyk na
cs_CZ.UTF-8 a potvrdíme
Enter.
Dále je nutno nastavit
L2 Timezone. Takže nastavíme
Europe / Prague. Toto je velice důležité, abychom měli na Raspberry správný čas. A ještě zbývá nastavit
L4 WLAN Country na
CZ Czech Republic (tímto nastavením dojde ke správnému nastavení WIFI kanálů).
Tato nastavení nám v tuto chvíli stačí, abychom mohly zprovoznit veškerou požadovanou funkcionalitu. Nicméně ještě zmíním jedno velmi užitečné nastavení pod položkou
6 Advanced Options / A1 Expand Filesystem. Tímto totiž můžeme rozšířit dostupné místo na SD kartě na její plnou kapacitu. Jen ve zkratce si o tom něco povíme. Pokud totiž nahráváme na SD kartu image systému (viz krok první), jsou na kartě vytvořeny 2 oddíly. Jeden oddíl je BOOT a je formátován FAT32. To je také oddíl, který dokáže Windows číst a je na něm uloženo nastavení Raspberry. Tento oddíl má pouze pár desítek MB. Nicméně samotný systém je na druhém oddílu, který je formátovaný systémem EXT4. K tomuto oddílu nemá Windows přístup. No a tento oddíl je pouze tak velký jak byl definovaný v době utváření image. Pokud tedy tato image má velikost někde kolem 4GB, bude například na SD kartě s kapacitou 32GB alokováno pouze 4GB a zbylé místo bude nedostupné, protože není přiděleno žádnému oddílu. No a tento příkaz rozšíří druhý oddíl se systémem na plnou kapacitu SD karty, aby se využila její celá kapacita. Ve většině případů pokud používáme oficiální image systému, je v něm nastaveno automatické rozšíření při prvním spuštění. Ale pokud použijete image s vlastní zálohou (nebo zde mnou vytvořenou předinstalovanou), kterou nahrajete na SD kartu s větší kapacitou, než měla ta s původním systémem, přišly byste o zbylé místo na SD kartě a to by byla škoda.
Takže to by bylo vše z nastavení. Samozřejmě si můžete projít všechny položky a případně si upravit ještě něco dle vlastních preferencí. Nicméně to moc nedoporučuji, pokud opravdu nevíte, co děláte.
3. Krok třetí – Příprava a nastavení OctoPrintu.
Abychom mohli provést úvodní konfiguraci OctoPrintu je nutné se k němu přihlásit pomocí webového prohlížeče. Do adresního řádku můžeme napsat IP adresu Raspberry, ale jak už jsem naznačil, je mnohem výhodnější použít Host name:
http://octopi.local
Během chvilky by se měl spustit průvodce nastavení, viz obrázek.
Projdeme si ho tedy společně. Na úvodní kartě
Start klikneme pouze na
Next.
Na další kartě
Restore from a backup? taktéž nemusíme nic dělat a jen potvrdíme
Next.
Access Control – Zde vyplníme přihlašovací údaje pro přístup k OctoPrintu. V mém případě je to:
Username:
Sakul.cz
Password:
octoprint
A klikneme na
Create Account a dále na
Next.
Configure Anonymous Usage Tracking – Zde je to zcela na Vás, já dávám
Enable a dále
Next.
Configure the connectivity check – Zde dejte opět
Enable a
Next.
Configure plugin blacklist processing – Opět
Enable a
Next.
Set up your printer profile – Zde je třeba vyplnit pár věcí o Vaší tiskárně. Toto nastavení a vlastně většinu, budete posléze moci bez problému upravit, takže to není až tak kritické co tam zadáte. Já zadávám pouze Name:
3D Tiskarna. Nicméně si asi vyplňte hodnoty a další karty dle Vaší tiskárny, která bude připojena.
No a na další kartě potvrdíme
Finish a tím je první část hotová.
Aby se nám v prostředí OctoPrintu dobře pracovalo, je dobré do něho nainstalovat Češtinu. Klikneme tedy na symbol
klíče v horní liště (první zleva vedle symbolu vypnutí).
V levém menu vybereme položku
Appearance, dále klikneme na tlačítko
Manage.. (vedle Language Packs)
Na otevřené kartě klikneme na
Browse a vyhledáme v našem PC, kde máme staženou češtinu (soubor Zip) a vybereme ji. Tato čeština je součástí dokumentace, nebo si ji můžete stáhnout zde:
https://michaelkuty.com/howto/octoprint/
Poté klikneme na
Upload a počkáme, až se nahraje a objeví ve výpisu. Následně kartu zavřeme
Close a ještě potvrdíme
Save.
Nyní musíme server restartovat (symbol vypínače v horní liště -
Reboot system).
Jakmile server opět naběhne, mělo by být celé prostředí v češtině.
Samozřejmě češtin existuje více, takže pokud preferujete jinou je to čistě na Vás. Bohužel některé novější položky nejsou přeloženy, neb mnou použitá čeština je již staršího data, ale většina přeložená je.
Současně po tomto restartu můžete obdržet hlášení, že je dostupná aktualizace.
Takže ji provedeme.
Pokud byste při pokusu o aktualizaci dostali hlášení, že aktualizaci nelze provést, nebo že selhala, může to být způsobeno nízkým napájecím napětím (méně jak 5V) Raspberry. To poznáte tak, že v horní liště bliká ikona blesku s vykřičníkem (viz následující obrázek).
V takovém případě je nutné tento problém s napájením vyřešit, protože by nešli instalovat ani dodatečné pluginy a server by mohl být nestabilní.
Nyní by bylo dobré připojit 3D tiskárnu a vyzkoušet zda se se serverem spojí. Pokud ano je dobré zaškrtnout volbu
Automaticky se připojit po startu serveru.
Více už zde práci s OctoPrintem nebudu probírat. To už si každý prostuduje sám a vše si přizpůsobí svým potřebám.
Nyní se vrhneme na zprovoznění TFT displeje a nějakého toho grafického uživatelského rozhraní. Ale ještě před tím si uděláme zálohu systému, kdyby se něco nepovedlo, abychom nemuseli celý předešlý postup znovu opakovat.
4. Krok čtvrtý – vytvoření image systému (záloha)
Pokud by někdo nechtěl celé toto martýrium podstupovat je součástí dokumentace image vytvořená s veškerým dosavadním nastavením. Nicméně i pokud jste si vše až dosud dělali dle tohoto návodu, je dobré si dosavadní práci uložit. Pokud by v následujících krocích došlo k nějakému problému, bude se k čemu vrátit.
Takže záloha se udělá velice jednoduše. Vypneme Raspberry a vyjmeme z něj SD kartu a vložíme ji do čtečky na PC. Spustíme program Win32DiskImager, vedle řádku
Image File klikneme na ikonu složky, vybereme umístění, kam budeme chtít image uložit a zapíšeme, jak se bude jmenovat. Je důležité na konec názvu přidat
.img (1_OctoPi_0_18_0_RC2-OP_v1_5_3-Bez_TFT.img) a následně dáme
Otevřít. Poté již stačí kliknout na tlačítko
Read.
Tímto způsobem je možno udělat zálohu jakéhokoli systému uloženého na SD kartě. Důrazně doporučuji si tyto zálohy dělat, protože životnost SD karty je značně omezená (6-20 měsíců dle vytížení). Tuto image můžete najít v dokumentaci ve složce:
Image2. Přednastavená bez TFT (soubor: 1_OctoPi_0_18_0_RC2-OP_v1_5_3-Bez_TFT.7z). I nadále budu vytvářet image jednotlivých konfigurací, takže je můžete použít. Po nahrání těchto image na SD kartu je nutné dle bodu
2. Krok druhý – Příprava Raspberry rozšířit partii na celou kapacitu SD karty.
5. Krok pátý – zprovoznění 3,5“ TFT 480x320 displeje
Nyní nadešel konečně čas zprovoznit i malý dotykový displej. Já používám variantu 3,5“ s rozlišením 480x320 pix s dotykovou rezistivní vrstvou (viz obrázek níže).
Na obrázku je displej záměrně z druhé strany, aby byla vidět deska PCB a konektor pro připojení. Potřebujete totiž přesně tento displej. Hlavně pozor na varianty, které nemají připojovací konektor v jednom kuse, ale dělený na 2 části. Takový displej by dle tohoto návodu nejspíš nefungoval.
A zde končí tato ukázka. Pokud si chcete přečíst kompletní návod (23 stran), najdete ho na mém Patreonu: https://www.patreon.com/posts/46703889 a to včetně všech image.
Případné další info najdete v diskusi:
ZDE