pátek 22. prosince 2017

Óda na 3D tiskárnu i3 MK2 po roce provozu

Když jsem si v říjnu 2016 konečně vybral 3D tiskárnu, sliboval jsem, že po určité době znovu napíšu, jak tiskárna funguje - jestli je tak spolehlivá, jak jsem při výběru požadoval. Dnes je to 13 měsíců od chvíle, kdy jsem originál Průša i3 MK2 sestavil, takže je nejvyšší čas trošku rekapitulovat.

SCAD program pro krabičku WiFi Teploměru
můj zatím nejsložitější design v OnShape



Především je potřeba říct, že tisknu mnohem méně, než bych sám chtěl, a to ze dvou důvodů: za prvé nemám čas vytvářet modely. Když už mě něco napadne, že bych vytiskl, tak je to potřeba nejdříve narýsovat v nějakém CADu, a to mi trvá dlouho. Přestože jsem se zlepšil v používání aplikace OpenSCAD, a také se nově naučil tak 20 % vlastností čistě webového CADu OnShape, což mi umožňuje tvořit relativně složité věci, pořád nejsem dost rychlý nebo nemám dost času vytvořit modely věcí, které potřebuji vytisknout.


návh krabičky pro laboratorní zdroj v OnShape

hotový laboratorní zdroj

Druhým důvodem je, že mám tiskárnu ve stejné místnosti, kde mám pracovní počítač. Přestože při tisku plast nesmrdí, tak mi vadí ty výpary, nebo jak nazvat ten roztavený plast ve vzduchu. Představuju si naturalisticky, jak se mi plíce zalepují nanočásticemi plastu hůř než kuřákovi dehtem, a tak z pracovny při tisku raději utíkám. No a protože mám pořád nějakou práci na počítači, tak zkrátka tiskárnu nepouštím ani když bych chtěl a měl co tisknout. Každá drobnost se totiž tiskne několik hodin a na takovou dobu obvykle bez počítače nevydržím.

část vzduchotechniky ke krbu

speciální pružný držák krabičky KM 22

Zde bych rád apeloval na všechny tiskaře chystající se stěhovat - pokud do bytu, tak volte zásadně byt s více pokoji, než kolik máte členů v rodině (tedy pro čtyřčlennou rodinu je nutný 5+1). Jedině tak zbyde pro tiskárnu jeden volný pokojíček, jaký si zaslouží. Pokud se chystáte stavět rodinný dům, rozhodně naplánujte jednu místnost jen pro tiskárnu. Není potřeba nic velkého, stačí dva metry čtvereční jak pro WC, zkrátka nějaký kamrlík, kam nikdo nemá potřebu chodit a kde je možné instalovat aktivní odvětrání přes zeď (trubka a ventilátor, co ty tiskové zplodiny vytáhne ven).

ruční ovladač systému pro havarijní zastavení přívodu vody v domě

Luskoun z Thingiverse.com - pohyblivý výtisk z jednoho kusu

I přes tato omezení jsem za posledních 400 dní tiskl celkem 9,5 dne (= 230 hodin) čistého času a vytiskl jsem více než 834 metrů tiskové struny (dle statistik tiskárny). A teď to nejdůležitější, kvůli čemu tento blog post píšu: po celou dobu tisk funguje přesně tak, jak jsem potřeboval, tedy naprosto bezúdržbově. Jen přijdu k tiskárně, strčím kartu s připraveným modelem v gcode, kliknu na tisk, utřu MK42 podložku papírovou kuchyňskou utěrkou namočenou v Okeně (pro tisk z PETG) nebo IPA (pro tisk z PLA) a je to. Už ani nekontroluju, jestli přilne první vrstva, rovnou odcházím z pracovny. Až se vrátím, je vše v pořádku vytištěno. Nikdy mi žádný tisk neselhal, nikdy se nic neodlepilo od MK42 podložky.

krabičky na čidla vlhkosti a vysoké teploty pro WiFi Teploměr

krabičky na čtyřportovou USB nabíječku (vlastní vynález)

Naopak, odlepování od MK42 podložky je jediná činnost, která není s i3 MK2 pohodová. Vyžaduje to velké úsilí a častokrát i násilí. PETG drží na PEI více než dobře. Nejsem zvíře, abych do výtisků mlátil z boku kladivem, jak někteří doporučují - většinou se uchyluji k podebrání rohu výtisku nabroušenou špachtlí, což bohužel trochu zdeformuje rožek výtisku. Zde je stále prostor pro zlepšení, které vlastně už nastalo v podobě magnetické podložky MK52 u Průša i3 MK3 - tu stačí jednoduše prohnout a výtisk by měl sám odskočit.

krabička na DC-DC UPS (bude brzy publikováno)

tiskl jsem krabičky na všechny Orange Pi počítače (tohle je One)

Dlužno dodat, že jsem za celou dobu nemusel na tiskárně nic měnit ani spravovat. Všechno funguje dobře od prvotního sestavení. Akorát jsem teď trošku olejem na šicí stroje a kola namazal pojezdové tyče, ale asi to bylo zbytečné, protože se nic nezměnilo (ani k lepšímu, ani k horšímu). No a samozřejmě průběžně aktualizuju firmware v tiskárně, který Průšův tým pořád vylepšuje.

spojky záclonových tyčí pro posuvný baldachýn nad terasou (bude publikováno)

krabička na míru pro WiFi Teploměr

Nezdůrazňoval jsem to dřív, ale pro jistotu to zmíním. Díky odladěným profilům v Průšově Slic3ru jsem nikdy nemusel s ničím laborovat, nic ladit nebo tunit. Hotový model ve formátu .STL nahraju do Slic3ru PE, kliknu Slice a Export gcode a je to. Tisk vždy funguje s výchozími parametry (aspoň při tisku z PLA a PETG). Tohle jsem považoval za samozřejmost, ale po rozhovoru s majiteli 3D tiskáren od jiných výrobců jsem pochopil, že to tak samozřejmé není - že někteří s laděním parametrů tisku tráví dost času. To s i3 MK2 dělat nemusím, a jsem za to moc rád.

tajný projekt s WiFi, LCD a Li-Ion baterií (pořád není dokončen)

speciální složitý držák VDSL modemu na zeď

Závěr je zřejmý: s tiskárnou i3 MK2 jsem velmi spokojen, jelikož funguje stejně spolehlivě jako jiné dílenské nářadí (třeba vrtačka). Prostě přijdu a používám, nemusím nic před tiskem spravovat či ladit. S Průšou už naštěstí neplatí můj starší výrok "3D tiskárna je jako domácí zvířátko - musíte se o něj starat, aby vám nezdechlo". Chybí mi akorát tak magnetická podložka z i3 MK3, protože výtisky z PETG (primárně už tisknu pouze z PETG) drží na PEI opravdu moc dobře. Jelikož se pro i3 MK2 dá magnetická podložka získat v rámci upgrade na MK2.5, vidím budoucnost 3D tisku zářnou :-)



P.S. aby ta chvála výše nevypadala jako placená reklama, tak mám dvě špatné zkušenosti s profilem FAST ve Slic3ru, který nastavuje výšku vrstvy 0,35 mm. Dvakrát jsem ho použil a dvakrát jsem se přitom spálil. V prvním případě mi ventilátor nafoukal infill do jakýchsi vlnek, které vyčnívaly nad výtisk a pak do nich brnkala tisková hlava a PINDA. To bylo zlé. Podruhé jsem použil FAST a vypadalo to, jako by výrobek chytil celulitidu. Tím jsem se definitivně naučil, že profil FAST je špatně. A pak mě zkušenější tiskaři naučili pravidlo, že výška vrstvy nemá být vyšší než 2/3 šířky trysky, což u 0,4mm trysky znamená, že 0,25mm vrstva je maximum.

vlevo nahoře je vidět zvlnění vrstvy, které vyčnívalo a brnkalo o hlavu

Plastová celulitida? Profil FAST raději nepoužívat...

P.P.S. ještě jeden problém jsem si dodatečně vybavil. To velké zvíře, co leží přes celou podložku nahoře, se narodilo mé tiskárně s problémem na páteři v dolní části zad. Mohlo za to nedostatečné a pouze jednostranné chlazení výtisku. Ventilátor u MK2 totiž fouká jen zepředu. Pomohlo by přídavné chlazení zezadu (stačí obyčejný ventilátor, který fouká na výtisk). U MK3 je to myslím také vyřešeno lepším vývodem chladicího ventilátoru kolem trysky ze tří stran.

čtvrtek 21. prosince 2017

Chytré sportovní hodinky DM58

Jistě jste mě už slyšeli plánovat si stavbu vlastních chytrých hodinek - nezapomínám to zmínit na žádné z mých přednášek o Internetu věcí, Arduinu či ESP WiFi čipech. Dokonce už mám úplně jasno v tom, z čeho a jak je postavím, jen se k tomu pořád nemůžu dostat kvůli jiným rozdělaným věcem. Tak jsem si zatím koupil jiné hodinky, abych si neodvykl nosit něco na ruce, než se konečně dostanu k té stavbě vlastních.

Mé požadavky na chytré hodinky jsou docela střídmé (v pořadí od nejdůležitějších): doba výdrže na jedno nabití, vodotěsnost, možnost programovat vlastní aplikace, upozornění na telefonáty a zprávy (SMS a instant messaging typu Telegram či Hangouts). Jiné věci mě u hodinek nezajímají. Jo a cena - cena musí být rozumná, ne jak za ojetý automobil.

Po předlouhém vybírání jsem zvolil sport tracker DM58, především proto, že sliboval až 25 dní funkčnosti na jedno nabití (7 dní při intenzivním využívání) a nabízel krytí IP67, takže perfektně vodotěsné. Navíc stály 720 Kč, což je za chytré hodinky rozumná cena.

Tyto hodinky mají velmi sportovní vlastnosti: kromě měření tepu (což dneska začíná být skoro standard) měří dokonce tlak (zapomněl jsem jak). Navíc počítají kroky, mají nějaký speciální běžecký mód, při kterém ještě navíc nějak využívají GPS v mobilu, umí upozornit na dlouhé nehybné sezení (to v kanceláři upotřebím!), kontrolují kvalitu spánku, umí aktivovat fotoaparát mobilu a zřejmě mají umět i najít doma ztracený mobil. Výborné je, že jsou velmi tenké a lehké, takže se dobře nosí.



Tolik reklamní řečičky a nyní tvrdá fakta: výdrž na jedno nabití 120mAh článku je kratší než 4 dny. Poprvé mě to překvapilo, ale říkal jsem si, že je to tím neustálým měřením tepu (každých 30 minut), takže jsem ho vypl, stejně jako měření tlaku. Hodinky stále vydrží jen 4 dny, i když je prakticky nepoužívám. Takže brutální zklamání. Navíc indikátor zbývající kapacity lže: je čtyřdílkový, ale už u dvou dílků se může kdykoliv stát, že hodinky prostě zhasnou a konec.

Dále: hodinky fungují díky velké čínské aplikaci v mobilu, která chce práva úplně na všechno. Původně jsem jí to zakázal, ale pak jsem postupně rezignoval a povoloval další a další práva. Snad jen mikrofon jsem jí nedovolil, protože jsem opravdu nepochopil, proč hodinky přes aplikaci v mobilu mají potřebu mě odposlouchávat. Tato aplikace je mimořádně zaměřená na sledování sportovních výkonů, které ale moc neprovádím, takže její grafy aktivit a podobné fíčury nevyužívám.

V aplikaci se též dá nastavit reakce hodinek při zvonění telefonu a při přijetí zprávy. Dobrá zpráva je, že aplikace podporuje asi 20 nejznámějších komunikátorů (Facebook Messenger atd.). Špatná zpráva je, že nepodporuje ani Hangouts, ani Telegram, takže jsem opět utřel.

Mizerné je, že z telefonátu i zprávy se přenáší do hodinek jen pár znaků - snad 8? Takže když vám někdo volá, tak na displeji hodinek vidíte jen část jeho jména. A když napíše SMS, tak si přečtete jen pozdrav - pro text zprávy pak musíte stejně do mobilu. Hlavně, že 64x64 bodový displej v tu chvíli pokrýva z 60 % animace obálky, jakože přichází zpráva. Raději bych tam viděl ten text zprávy!

Zdaleka nejhorší však je, že Bluetooth spojení mezi aplikací v mobilu a hodinkami se neustále rozpojuje. Nevypozoroval jsem, jestli to nastává jen pokud jsou od sebe hodinky a mobil dále než tři metry (??? mělo to fungovat aspoň na 20 metrů, jinak nemá smysl funkce hledání ztraceného mobilu), nebo jestli se to prostě stane i časem, přestože jsou celou dobu u sebe. Spadlé spojení se nikdy samo neobnoví, takže upozornění na hovory a zprávy se tímto stává zcela nespolehlivým a k ničemu.

Co dál? Určitě je srandovní pozorovat mě, jak zkouším aktivovat displej hodinek pohybem ruky. Ony totiž ty hodinky neustále zhasínají displej, asi aby šetřily energii. Takže když se podíváte na zápěstí, je tam tma. Můžete v tu chvíli vzít druhou ruku a sáhnout na displej - tím se probudí, ale co když v tu chvíli nemáte po ruce volnou ruku? Naštěstí mají hodinky nastavení, ve kterém se displej rozsvítí pouhým správným pohybem ruky. Ani po měsíci cvičení jsem ale ten správný pohyb nenacvičil!

Takže když jdu například po schodech, tak mi hodinky na ruce držící se zábradlí blikají jak cirkus, ale jakmile se potřebuji podívat, tak desetkrát zvedám ruku, zase ji spouštím, různě s ní točím, trhám, škubu, třepu a nakonec rezignovaně použiju druhou ruku (pokud je volná), anebo nově i nos. Ano, nosem ťuknu do displeje a vidím...

Další zábavná historka se pojí se sledováním kvality spánku. První noc jsem nechal hodinky ležet na stole, protože nejsem zvyklý spávat s něčím na ruce. Ráno mi graf kvality spánku ukazoval, že mezi druhou a třetí ranní jsem měl velmi lehký spánek, zatímco zbytek noci byl OK. No, na to, že ležely celou noc nehybně na stole, je to zvláštní výsledek. Druhou noc jsem se překonal a zkusil spát s hodinkami na ruce. Byl to nezvyk, takže jsem se celou noc budil, pořád jsem se otáčel v posteli, házel sebou neklidně, no říkal jsem si, že to bude hrozný graf. Ráno jsem nedočkavě běžel k mobilu podívat se, jak to dopadlo - ovšem aplikace mi tvrdí, že jsem vůbec neusnul. Takže taky fail.

Co ještě zbývá? Upozornění na dlouhé nehybné sezení - ano, dvakrát za měsíc mě to skutečně upozornilo. To je málo, mělo by mě to trknout tak 8x denně. Ale dobré aspoň něco...

Tyto hodinky mají uvnitř čip Nordic NRF51822, což je nějaký ARM, a k němu 32 kB RAM a 256 kB Flash paměti. Ideální by bylo nabourat se do něj a naprogramovat si vlastní systém, který by dělal jen to, co chci. Hodinky umožňují OTA update přes onu čínskou aplikaci, ale jinak není o firmware nic víc známo. Roger Clark se o něco pokouší tady:
http://www.rogerclark.net/nrf51822-based-fitness-trackers/

Dalších pár technických odkazů k možné úpravě systému v hodinkách:
https://github.com/rogerclarkmelbourne/Arduino_nrf51822/tree/master/RBL_nRF51822/libraries/Smartwatch_Examples
https://github.com/rogerclarkmelbourne/Arduino_nrf51822
https://github.com/topics/nrf51822?o=desc&s=forks
https://hackaday.io/project/4510-open-source-sportsmart-watch

Zatím není nic hotového, není znám formát OTA update, není známo vnitřní HW zapojení displeje a dalších periferií, takže tomu moc šancí nedávám. Sám to zkoumat nemám čas.

Závěrem bych řekl, že je to kruté zklamání a nepoužitelný bazmek, především kvůli neustálému rozpojování Bluetooth spojení a nutnosti ručního znovupřipojení. Nevím, jestli tohle není částečně vinou systému Android 7, který zabíjí všechny aplikace, co se snaží něco dělat, ale pokud se to nevyřeší, jsou to zkrátka jen vodotěsné hodinky, nic víc.

Moje touha postavit si vlastní hodinky tak koupí těchto nijak neutrpěla - naopak jsem dostal další impuls co nejdříve se ke stavbě dostat a postavit si něco normálně fungujícího. Přitom mi v hlavě hlodá otázka, dokázal-li bych vykuchat vnitřnosti těchto hodinek a umístit tam vlastní, protože ten magnetický konektor pro nabíjení a vodotěsnost by se mi u mých vlastních hodinek velmi hodily.

pátek 17. listopadu 2017

Panelizace plošných spojů v KiCadu

Už je to déle než tři roky, co jsem psal o výrobě plošných spojů v zahraničí. Za tu dobu borci  v Seeed Studiu v Číně zvětšili nejmenší rozměry desky z 5x5 cm na 10x10 cm, a navíc srazili cenu z $10 na $5 (za deset kusů) - tedy vlastně osmkrát zlevnili výrobu plošných spojů! No, spíše jen teoreticky, protože když si u nich dělám destičky o rozměrech 4 x 4 cm, tak za ně platím $5, stejně jako bych si nechal dělat desky 10 x 10 cm.

Není to škoda? Nešlo by nějak využít toho, že mi vyrobí 5x větší desku za stejné peníze? Třeba nějak naskládat víc mých malých destiček do jedné větší? Ano, přesně to by šlo - a říká se tomu panelizace.

Výrobci umějí panelizovat na požádání, ale za peníze. Proto je lepší udělat si to sám. Používám KiCad, tak ukážu, jak to ručně udělat v něm. Prosím vězte, že pro KiCad existuje krásný skript, který celou panelizaci provede za vás - je na http://projects.borg.ch/electronics/kicad/panelize.html. Ovšem já jsem jaksi líný naučit se psát pro něj ty konfigurační soubory, takže panelizuju ručně, takto:


Vím, je to ostuda dělat ručně práci, která patří strojům, no ale třeba se to i tak bude někomu hodit vidět.

Zkoušel jsem svou úplně první panelizaci teprve v září 2017 a musím s radostí oznámit, že ji v Seeed Studiu zvládli na jedničku s hvězdičkou:


Výsledná deska se dá podél naříznutí rozlomit v ruce a případně zabrousit ta zlomená hrana, ale není to asi ani nutné. Parádní úspora výrobních nákladů!

Ještě pozor: z nějakého důvodu Seeed Studio udělá panelizované plošné spoje za cenu jednoduchých jen v případě, že je výsledek složen z jednoho typu plošného spoje - tedy stejně jak to mám já na fotce výše, 4x ten samý kus. Kdybych nakombinoval různé desky, tak si za to naúčtují tak tučný příplatek, že panelizovat to okamžitě ztratí smysl.

Další zajímavost (alespoň pro mě) je, že právě v tuto chvíli zkouším nechat vyrobit desku jinde než obvykle, a sice na ALLPCB.com. Nemám nejmenší tušení, jak to dopadne, protože jsem jim tam poslal poměrně komplikovaný tvar, navíc rovnou napanelizovaný a ještě ke všemu jsou horní dvě desky otočené hlavou dolů, takže netuším, jestli to budou považovat za jednotný design. Uvidíme.


Proč to sem vkládám? No protože v ALLPCB se museli nějak zbláznit nebo co, když nabízejí poštovné skrz DHL zdarma! Příplatek za DHL je jinde minimálně 30 USD, takže vůbec nechápu, co to mají za chybu ve formuláři nebo jak to dokázali, že poštovné je Free.


Díky DHL bych nemusel na výsledek čekat obvyklý měsíc až dva měsíce (kdy balíček trčí někde v poště či na celnici), ale měl bych znát pravdu už za 9 dní! To se tedy budu těšit a pak sem hned dopíšu, jak to dopadlo.

EDIT: po 8 hodinách už mám odezvu z ALLPCB: cenu za původních $5 zvedli na $20 s tím, že prý jsem špatně vyplnil v objednávce, že se jedná o single board. Hmmm, takže asi mají panelizované boardy za extra peníze, ne jako Seeed Studio, které je udělá v ceně normálních desek. Tak to prrr, objednávku jsem zrušil, za $20 se to vůbec nevyplatí.

úterý 7. listopadu 2017

Arduino elektroměr, plynoměr a vodoměr

V sobotu 4. listopadu jsem měl na konferenci OpenAlt přednášku na téma odečítání elektroměru a vodoměru. Dlouho jsem se na tuto přednášku těšil, protože jsem ty odečty energií doma řešil déle než čtyři roky, nasbíral jsem při tom hromadu zkušeností a měl jsem velkou chuť se o ně podělit, abych dalším lidem ušetřil procházení slepých uliček a ještě přitom všechny pobavil mými pracovními postupy.

Bohužel jsem na to dostal jen 25 minut, což na tak velké téma nestačilo. Snažil jsem se říct všechno, ale po přednášce jsem měl pocit, že jsem řadu věcí jen nakousl a nedokončil, a některé důležité jsem dokonce zapomněl říct úplně.

Proto teď přistupuji k novému experimentu, kdy zkouším tutéž přednášku udělat znovu, doma, v klidu, bez časového omezení. Samotná prezentace ve formátu PDF je jako všechny moje předchozí dostupná na webu zde: pstehlik.cz/prezent/

Čerstvě natočené domácí video je tady: https://youtu.be/d-WzQa8GsAU


Ještě pár linků k věcem, které zmiňuju v přednášce:

Náhodně vygooglovaný 1fázový elektroměr.

Můj 3D model násadky odečítače vodoměru v OnShape.

Ebay odkaz na elektricky ovládaný ventil (až link přestane časem fungovat, použijte ta klíčová slova pro vyhledání nového prodejce stejné věci):
"DC 12V DN20 CR01 2 Way Brass Motorized Valve Electrical Ball Valve".

Plynoměr 3D tisk: Elster BK-G4 Gas Meter Sensor Clip

Budu rád, když vás tato moje domácí a OpenAlt přednáška povzbudí k vlastnímu bastlení :-) Určitě se pochlubte v komentářích buď tady na blogu nebo na G+ či na příští konferenci, kde se jistě potkáme :-)

P.S. ve videu nejspíš několikrát spletu kW a kWh (okamžitý odběr a celkovou spotřebu za určitý čas), ale nic si z toho nedělám. Hádám, že si to většina lidí dokáže v hlavě opravit. Komu to nějak víc vadí, ať se na to video raději nedívá.

pondělí 16. října 2017

Přednáška o novinkách u Espressif Systems na LinuxDays 2017

Na letošních LinuxDays jsem měl i přednášku věnovanou výrobci známých a nesmírně populárních WiFi čipů ESP8266 a ESP32 (a jejich dalších variant). Přednášky věnované ESP8266 a ESP32 jsem měl už dříve (jak na LinuxDays a InstallFestu v Praze, tak i na OpenAltu v Brně), takže tentokrát jsem se mohl zaměřit jen na některé konkrétní věci, a samozřejmě zmínit všechno nové, co se u ESP událo od poslední přednášky.

Seznam mých přednášek s prezentacemi v PDF a videi na Youtube najdete zde: pstehlik.cz/prezent


Pozor, ironický sarkasmus!

Po mé minulé naprosto nadšené přednášce o ESP32, kde jsem nešetřil superlativy při popisu všech těch fantastických novinek a hardwarových vychytávek, které Espressif Systems dokázali nacpat do jádra ESP32, jsem dostal krom řady pozitivních i jednu negativní reakci. Spočívala v tom, že když jen takto nekriticky chválím, tak působím nedůvěryhodně, protože skutečný odborník by prý zmínil i negativa. Vzal jsem si to k srdci a rozhodl se tuto přednášku, nebo alespoň její větší část, vést sarkasticky v rádoby velmi kritickém duchu, abych uklidnil skutečné odborníky a spravil si u nich svou "pošramocenou pověst" :-)

Cítil jsem, že je to poměrně riskantní krok, protože mě málokdo zná dost dobře na to, aby věděl, kdy si dělám legraci. Proto jsem rovnou na první slajd celé přednášky v PDF napsal 

Nemilosrdná kritika skutečného odborníka

a jelikož jsem si pořád ještě nebyl jist, jestli to diváci pochopí jako nadsázku, tak jsem ještě výslovně v přednášce vysvětloval, že tento text měl být v uvozovkách - nejdřív ten skutečný odborník, protože jím zdaleka nejsem, no a pak i ta nemilosrdná kritika, neboť to bylo celé míněno velmi ironicky.

Dlužno dodat, že i když jsem se snažil rádoby drsně kritizovat, tak všechno, co jsem říkal, byla neustále fakticky pravda - tj. v ESP32 jsou skutečně hardwarové chyby, v nové revizi se podařilo opravit jen část z nich, jedna chyba se dokonce objevila při opravě předchozí chyby a navíc je tam ten nelineární a poněkud nepřesný ADC převodník, takže měřit analogové veličiny není s ESP32 moc dobrý nápad. 

Při tom jsem se mimochodem spletl - ESP32 má přepínatelnou přesnost ADC, takže není jen 10bitová (jak jsem uváděl), ale i 9, 11 a 12bitová. Navíc umí přepínat "zesílení", takže jakoby mění referenční napětí. A z této komplexnosti asi plyne i nějaká ta chybička v hardware, kterou se inženýři v Espressif Systems snaží prozatím obejít softwarově.

Zároveň je ale i pravda, a to jsem na přednášce také zdůrazňoval, že v reálu se s většinou těchto chyb nepotkáte. Velkou většinu z nich se podařilo obejít v SDK (v knihovnách, které použijete při programování ESP32) a pokud nepřipojíte externí SRAM a nebo nebudete v assembleru šachovat ve vícevláknovém procesu na určitých specifických adresách v paměti, nemělo by vás při programování nic trápit.

A to nepřesné ADC? To by bylo nejjednodušší vyřešit připojením externího ADC komunikujícího přes I2C. Takových broučků za pár korun budou na trhu mraky.

Brno je zlatá loď, za děvčaty z Brna choď...

Na přednášce jsem též s chutí zmínil novinky, kterých je u Espressif Systems hodně. Nejzajímavější je otevření prvního zahraničního vývojářského centra, pro které si Číňani nějakým zázrakem vybrali z celého světa právě Brno. Je neuvěřitelné, že naši čeští (a slovenští) inženýři můžou být přímo u zdroje ESP čipů a svou každodenní pečlivou prací vylepšovat softwarovou podporu pro tento celosvětově úspěšný čínský čip. Přiznejme si, že i když na ESP-IDF (SDK pro ESP32) odvedli v Číně obrovský kus práce, tak pořád je nejméně stejný díl před nimi. Bude naprosto super, jestli k tomu přispějí i kluci a holky v Brně.

ESP32-PICO-D4

Díky Johnu Lee z Espressif Systems jsem i letos mohl přímo na přednášce něco unboxovat, tedy rozbalit a v přímém přenosu předvést celému sálu a světu. Bohužel jsme to technicky nezvládli - i když jsem si původně plánoval připravit pětikorunu jako měřítko, tak jsem zapomněl položit na tu promítací zvětšovací věc, tím pádem jsem neměl vychytané zaostření na tak maličký čip, jakým je ESP32-PICO-D4, a na tom to celé selhalo. Omlouvám se a doufám, že to alespoň pobavilo. Zde je zaostřená fotka, která ukazuje, jak miniaturní ESP32-PICO-D4 doopravdy je:



Je zřejmé, že ESP32-PICO-D4 je opravdu fantasticky integrovaný systém. Stačí fakt jen anténa a zdroj a máme funkční WiFi počítač s několika procesory, na 240 MHz, s velkou pamětí a se spoustou vnitřních senzorů. Jsem tím doslova uchvácen a je mi fuk, že to nekritizuju, takže odborníci z toho budou zase mimo. Doufám, že budu mít chvíli času k tomuto doslova mikročipu připojit miniaturní anténu a pak ho zprovoznit třeba jen na CR2032 :-)

Přednáška o Orange Pi na LinuxDays 2017

Installfest a LinuxDays

Přednášku věnovanou jen Orange Pi jsem měl na jaře na Installfestu. Tudíž na LinuxDays jsem se chtěl zaměřit především na novinky, abych se moc neopakoval. Bohužel na přednášku jsem měl v programu jen 25 minut, takže jsem už předem věděl, že toho moc říct nestihnu. Téma Orange Pi a vůbec těch malých jednodeskových počítačů v čele s Raspberry Pi je nesmírně obsáhlé a dalo by se o něm hovořit a hlavně předvádět různé věci celé hodiny.

Prezentaci z přednášky v PDF najdete tady: https://www.pstehlik.cz/prezent/

Zbytek tohoto článku shrnuje, doplňuje a opravuje informace, které zazní ve videu z letošních LinuxDays:




Raspberry Pi

Kromě Raspberry Pi s jeho novým desktopem Pixel (dostupným i pro Mac a PC) je zajímavé, že máme oficiálního českého distributora, díky čemuž už ceny Raspberry Pi Zero nedosahují takových výšin. Původně Zero nebylo dlouhodobě dostupné, případně se prodávalo v balíčku s tolika nesmyslnými kabely a redukcemi, že to vyšlo dráž, než si ho poslat přímo z UK. Nyní je to za 157 korun myslím velmi dostupný gigahertzový stroj.

ODROID a další

Dále jsem chtěl využít toho, že mám osobní zkušenosti s platformou ODROID a jejich nejvýkonnějším modelem XU4. Přivezl jsem jeden kousek a nechal ho kolovat, aby si návštěvníci LinuxDays mohli osobně zblízka osahat jihokorejskou kvalitu. XU4 má už několik let USB3 port, gigabitový ethernet a hodiny zálohovaného času, takže je velmi vhodný na všechna ta serverová nasazení s externími disky, kde lidé pořád nesmyslně trápí Raspberry Pi. Osobně jsem na ODROID XU4 vyvinul rozpoznávání obrazu v reálném čase, kdy všech 8 jader jede naplno a paralelně rozpoznávají následující snímky z kamery. Na Raspberry Pi by něco podobného bylo 4x pomalejší, tedy mimo reálný čas.

ODROID XU4

Stručně jsem prolétl i ostatní konkurenty na poli SBC, ale nezacházel jsem do detailů, neboť je neznám. Publikovat údaje z marketingových letáků jsem nechtěl, protože se často hodně rozcházejí s realitou v praxi.

Vlastní Orange Pi

Konečně jsem se dostal k Orange Pi, kde jsem stručně prošel všechny čtyři kusy, se kterými mám osobní zkušenost: Orange Pi Plus, Orange Pi One, Orange Pi Zero a Orange Pi PC Plus - ten poslední jsem si koupil speciálně kvůli letošním LinuxDays, neboť jsem doufal v živou ukázku. Měl jsem nainstalovaný systém z www.h3droid.com, který je velmi zajímavý tím, že na začátku nainstaluje něco jako "grub" - jednoduchý, ale mocný systém pro instalaci a konfiguraci dalších věcí, a to nejen Androidu, ale i Armbianu.

Orange Pi Zero

Ve výsledku mám nyní na SD kartě dual boot, tedy při startu možnost vybrat jeden ze dvou různých operačních systémů - Android nebo Debian. Je to velmi pohodlné a mocné - člověk tak rychle porovná například stav hardwarové akcelerace grafického výstupu nebo HDMI CEC, které prý u tohoto konkrétního typu opravdu funguje.

Orange Pi PC Plus

Tři důležité novinky u Orange Pi

Dále jsem chtěl zdůraznit tři velmi důležité novinky z Orange Pi "kuchyně". Za prvé - firma Shenzen Xunlong Software je nesmírně rychlá, neustále rostoucí a má skutečně velké ambice. Brzy bude produkovat takové množství hardware, že snad doroste i Raspberry Pi. To pro uživatele znamená, že se zřejmě nemusejí obávat, že by Orange Pi jakoby "zmizelo z trhu".

Druhá důležitá novinka je, že se firma vyrábějící hardware snaží o lepší softwarovou podporu - ať už partnerstvím s Ubuntu, anebo finanční podporou Armbianu, který je defacto jediným fungujícím operačním systémem pro Orange Pi.

Třetí novinkou, především pro české uživatele, je nově vzniklá skupina na Facebooku, kde se česky/slovensky domlouvají mezi sebou uživatelé (nejen) Raspberry Pi. Běžně se lidé trochu bojí koupit si něco jiného než Raspberry Pi, protože cítí, že by mohli s exotickým čínským hardwarem zůstat osamoceni jako kůl v plotě. U Orange Pi už to myslím nehrozí - kromě obří mezinárodní anglicky hovořící skupiny na Facebooku (8000+ členů) je tu nyní nejméně 200 československých lidí připravených sdílet své zkušenosti. A to je pro rozšiřování Orange Pi zásadní věc.

H5? H5!

Velmi zajímavé je, že jsem chtěl přednášku využít též jako varování uživatelům, kteří by si chtěli koupit některé z novějších Orange Pi s 64bitovým Allwinner H5 procesorem. Podle informací z Armbian fóra i facebookové skupiny jsem věděl, že procesory H5 nemají dobrou SW podporu - nová linuxová jádra na nich neběžela vůbec, takže uživatel byl odsouzen k používání starého děravého jádra od výrobce. Před tímto jsem na přednášce v sobotu 7. října varoval a měl jsem dobrý pocit, že jsem možná někoho uchránil před zklamáním.

Ovšem už o pouhé tři dny později, v úterý 10. října, se všechno změnilo! Igor slavnostně oznámil, že po mnoha měsících tvrdé práce pár dobrovolníků nyní Allwinner H5 běží i s nejnovějším jádrem Linuxu! A aby toho nebylo málo, už následující den oznámil tuším NetBSD taky plnou podporu pro Orange Pi s Allwinner H5! Takže celé měsíce nic, a naráz si člověk může vybrat hned ze dvou kvalitních operačních systémů. To je skvělé!

Závěrem

Jednou bych si chtěl najít 3 hodiny času a udělat přehlednou srovnávací tabulku všech typů Orange Pi, které Xunlong aktuálně chrlí - ovšem už za další měsíc by ta tabulka byla neaktuální, protože tak rychle na trh uvádějí nové modely. Je jich skutečná záplava a je kumšt si vybrat správně. Snad jsem svou přednáškou aspoň trošku pomohl ukázat jak levné modely (Zero, One), tak i "střední" třídu (Plus, PC Plus). Nejvýkonnější 64bitové novinky či specialitky typu GSM IoT nebo dvousíťové routery jsem ještě v ruce neměl, tak jsem o nich zatím mluvit konkrétně nechtěl. Ale jak se znám, u čtyřech pomerančů neskončím a časem nakoupím další, tak třeba za rok budu mít nové zkušenosti či zprávy, o které se budu chtít někde podělit :-)

pátek 22. září 2017

WiFi Teploměry - novinky letošního léta

Od března jsem o WiFi Teploměrech nic nového nenapsal, tak dnes, v den podzimní rovnodennosti, se hodí malé ohlédnutí a nějaké novinky k tomu. Možná bude někoho zajímat, že používám už dvanáctou verzi plošného spoje (tedy že už proběhlo dvanáct cyklů zlepšení návrhu a zapojení), a zrovna v těchto dnech chystám verzi třináctou. Stejně tak verze firmware je nyní na hodnotě 11.0 a s přicházejícím podzimním počasím chystám další zajímavé změny a zlepšení.

Teď už ale pár slov o větších hardwarových změnách u WiFi Teploměrů za poslední půlrok:

Přepětí

Letní bouřky ukázaly, že venkovní vedení k teplotním čidlům funguje jako skvělá anténa na indukované přepětí, které poté chce zabít jak čidla, tak i samotný WiFi Teploměr. Proto všechny WiFi Teploměry, co vyjíždějí z mé "manufaktury", už od června obsahují ochranu proti přepětí na vstupu, kam se připojují čidla (teplotní a další).

Tato přepěťová ochrana by měla zachránit WiFi Teploměr i čidla k němu připojená při bouřce - blízký úder blesku by to sice nejspíš neustálo ani tak, ale na indukovaná přepětí v řádu tisíců voltů by to mělo pomoci výrazně. Samozřejmě ještě lepší je vést vedení k čidlům pod zemí nebo v kovových trubkách, které slouží jako Faradayova klec a stíní kabeláž před indukovaným přepětím...

Bezpotenciálový kontakt

DC verze WiFi Teploměru původně měla na termostatickém výstupu napětí zdroje, tedy nejčastěji 9 V. Bylo to kvůli prapůvodnímu PWM. Čas ale ukázal, že mnohem praktičtější je mít bezpotenciálový kontakt, tedy jen spínač, který se dá připojit třeba na místo tlačítka, co zapíná kotel či jakékoliv jiné zařízení s vlastním napájením. Proto DC verze WiFi Teploměru už někdy od jara obsahuje vestavěné maličké relé, jehož spínací kontakty jsou vyvedeny ven (v případě, že je vestavěn termostatický výstup).



Tímto relé a celým WiFi Teploměrem jsem také zachránil ledničku před jistou smrtí. Obecně je díky tomuto relé a jeho bezpotenciálovým kontaktům DC verze WiFi Teploměru správnou náhradou za typický termostat, ať už je v ledničce, nebo třeba v obývacím pokoji, odkud řídí vytápění celého bytu/domu.

Zatím je toto relé opravdu maličké - zvládne spínat jen 0,5 A, ale chystám se vyvinout další verzi plošného spoje, kde ještě víc přeskládám vnitřnosti a tak se mi tam snad vejde i o něco větší, a hlavně výkonnější relé.

16 A = 3500 W

AC verze WiFi Teploměru dostala většího bratříčka, který dokáže při sepnutí termostatického relé přes sebe propustit až 16A proud nebo 3500 W výkonu.


Kromě silnějšího relé je tu ještě jedna zásadní výhoda: svorky terminálu už umožňují připojit nejen fázi (L) a nulák (N), ale i ochranný vodič (E), takže je možné jednoduše připojit kompletní trojlinku od zástrčky, a pak na výstup směrem k zásuvce či přímo spotřebiči.



Ostatní vlastnosti jsou stejné jako u 10A AC verze WiFi Teploměru - tedy stejný 3,5mm konektor pro teplotní čidla, stejná ochrana proti přepětí, stejný firmware. Tato verze ještě není zmíněná na webu www.teploty.info, ale snad brzy bude.

Co s WiFi Teploměrem/termostatem?

Baví mě, s jakými nápady lidé v e-mailech na info@teploty.info přicházejí - co všechno se dá měřit a řídit. Kromě obligátního vytápění vzdálených místností (nejčastěji na chatách a chalupách), a samozřejmě řízení topení v domech (často extrémně komplexních - s akumulačními nádržemi, soláry, kotli na pevná paliva řízenými dle teplot spalin v komíně!), se na jaře vyskytly udírny, přes léto vinné sklípky a bazény a teď na podzim vířivky a sauny. Po loňských tenisových kurtech (teplota povrchu) a rozvážkových chladírenských vozech jsou to myslím pěkné příklady použití. Málem jsem zapomněl na terária a teď nejnověji pak dokonce nápad měřit teplotu regenerace DPF (filtru pevných částic ve výfuku) za jízdy autem :-)

čtvrtek 21. září 2017

Huawei P10 Lite - zkušenosti

Rád bych navázal na blogpost o kupování telefonu a popsal zkušenosti s Huawei P10 Lite po téměř pěti měsících střídmého používání..

První a nejdůležitější věc - bezpečnost systému: jeden z dvou hlavních důvodů pro koupi nového telefonu byl, že na můj předchozí telefon, skvěle fungující Nexus 5, výrobce přestal poskytovat bezpečnostní záplaty. Proto jsem koupil co možná nejnovější telefon (v podstatě v prvních týdnech distribuce v Česku), abych měl po co nejdelší dobu plnou podporu od výrobce. Od syna s Huawei P8 Lite jsem věděl, že Huawei se o Lite telefony celkem stará a záplaty pravidelně posílá.

U P10 Lite tomu tak však není a mám-li být upřímný, tak na tento model výrobce doslova sere (promiňte expresivní, leč naprosto přesný termín). Ještě začátkem července jsem měl "úroveň záplat 5. února", tedy pětiměsíční skluz! Pak se Huawei "pochlapil" a poslal první update systému, který posunul "úroveň záplat" o pouhé dva měsíce, tedy na začátek dubna. Je 21. září a já mám v telefonu pořád 5. duben!! Přes pět měsíců už je telefon děravý jak řešeto - aktuální útok přes Bluetooth mi dokáže hacknout přístroj do 10 sekund. Za tohle jsem platil 9 tisíc korun? Dopr!!

Nejhorší je, že jsem se nějak po fórech dopídil k tomu, že Huawei ve skutečnosti potichu nějaké updaty systému ubastlil, dokonce nejnovější má snad datum 24. srpna, ale jaksi je zapomíná pouštět mezi lidi přes OTA update. Navíc začátkem září nepochopitelně zrušil stránky, ze kterých si lidé mohli stahovat firmware a aplikovat nové verze svépomocí. Nyní jsou všichni odkázaní na OTA update, které, jak jsem výše uvedl, má nejméně 3-5 měsíční zpoždění, což je u této "vlajkové lodi nižší střední třídy" trestuhodná nedbalost!

Další věc - rychlost: telefon má sice neuvěřitelných 8 jader (4x víc než můj stolní počítač!), ale občas se očividně zamyslí, než dokreslí nějakou pitomou animaci třeba při spouštění či zavírání aplikace. Musím najít, kde se všechny vypínají. Když mi jednou docházela baterka, tak se mi systém sám nabídl, že animace dočasně vypne, a jak to byl potom svižný telefon!

Periferie: foťák celkem fotí, video natáčí (ale ne ve více FPS, pokud se člověk nespokojí se sedmkrát horším rozlišením nahrávky), displej je rozumný, čtečka otisků prstů spolehlivá a rychlá - celkem to jde.

Senzory: ty jsou docela peklo. Kdo by byl býval čekal nepřesnou GPS v roce 2017? Přitom tato čínská sleduje satelity americké, ruské a navíc i čínské. A stejně dokáže určit pozici s NEpřesností +- 13 metrů, zatímco Nexus 5 na stejném místě pracuje s +- 3 metry. Dost zlé! Asi jsem se měl držet Snapdragonu za každou cenu..

Dále elektronický kompas - ukazuje mírně šejdrem a ještě se u toho celou dobu třese jak ratlík. Kompas u Nexu je mnohem klidnější.

Baterie: to je snad jediný klad na celém přístroji. Při mém mírném používání vydrží telefon běžně 4 dny v provozu bez dobití. Pokud za 4-5 dní poklesne pod 20 % kapacity baterie, nabídne se automatické vypnutí animací a podobných nesmyslů, čímž se zbývající životnost protáhne z necelého dne na další třeba tři dny. A to ještě není ta nejagresivnější optimalizace, kterou systém nabízí - to by pak běžel ještě mnohem déle. Nevím, jestli tu tleskat Androidu 7, anebo Huawei/EMUI. Nevím, kdo z nich k tomuto přispěl více.

Navíc pokud už baterie potřebuje dobít, tak se s originální nabíječkou dobije z nuly na 100 % za necelou hodinu (protože nabíječka valí 9 V a 2 A). To je tak dobré, že jsem mu skoro odpustil chybějící indukční dobíjení.

Jinak mě velmi mrzí, že tento čínský telefon nemá probuzení poklepem na obrazovku. To, co má každý drek z Číny i za blbých 1000 korun, tento telefon postrádá. Nejhorší na tom je, že je to zase jen nějaká "vlastnost" konkrétního modelu dováženého do Česka. Modely pro jiné země tuto vlastnost mají dostupnou (sice někde "v tajném menu", ale mají). Přitom má kreslení gesty na obrazovku pro spuštění aplikací, ale probuzení poklepem či zvednutím ze stolu nejde. Ach jo.

To je tak asi vše, co si aktuálně vybavuju, že mě pálí. Podruhé bych si tento telefon nekoupil ani za 4000 Kč, větší cenu opravdu nemá (pro někoho, komu záleží na výše uvedených věcech). Sáhl bych nejspíš po Xiaomi či nějakém jiném Číňanovi (Lenovo / Motorola).

EDIT: zapomněl jsem na nové Nokie, taky výborné čínské telefony s čistým Androidem. A samozřejmě pak další telefony v edici Android One...

EDIT 25.5.2018 - záplaty systému a bezpečnostní aktualizace:
Ještě někdy v březnu 2018 jsem měl pořád poslední záplaty k 1.září předchozího roku, ale pak se to začalo trochu zlepšovat, aktualizace chodily častěji a zpoždění oproti opravám od Google byly už jen dva-tři měsíce. Ovšem dnes Huawei pěkně překvapil: přijela mi záplata systému, která obsahuje opravy od Google až do 1.května 2018. To je vůbec poprvé, kdy mám zcela aktualizovaný systém! Hurá!! Tedy doufám, že Huawei nedělá to, co prý dělají jiní výrobci - že jen zvyšují číslo verze, ale opravy chyb do záplaty nezahrnou...

EDIT 23.7.2018 - Android Oreo!
Huawei se pochlapil až překonal a dnes mi přijel Android 8.0.0. Mám radost - prodloužilo to morální životnost tomuto ďábelskému přístroji nejméně o rok, možná ještě víc.

pondělí 24. července 2017

OctoPrint - instalace na Orange Pi

Jak se vlastně 3D tiskne

Už přes půl roku mám 3D tiskárnu i3 MK2 a tisknu na ní různé roztodivné věci:


Vybraný model k tisku je obvykle ve formátu STL. Ten musím nařezat na plátky (naslicovat) a pak z nich vygenerovat instrukce pro pohyb tiskové hlavy, tiskové podložky a dávkování roztaveného plastu - tzv. G kód (čistě textový soubor s koncovkou .gcode).

Tento soubor s pokyny potom načítá mikrokontrolér v tiskárně a jednotlivé pokyny postupně vykonává. Tiskárna má k tomu vestavěný vlastní maličký mikropočítač se čtečkou SD karet, displejem a jedním otočným ovládacím knoflíkem. Stačí soubor s G kódem nahrát na PC na (mikro)SD kartu, tuto přenést k tiskárně, vložit do její čtečky karet a nechat vytisknout.


Toto funguje spolehlivě, ale brzy začne být přenášení paměťové karty mezi PC a tiskárnou méně a méně zábavné, později dokonce více a více otravné. Displej na tiskárně má malé rozlišení, není jednoduché vybrat mezi vícero soubory připravenými k tisku. Informace během tisku jsou minimální - jen procenta načtení souboru a aktuální výška výtisku. Chtělo by to nějak vylepšit.

Tiskárnový mikrokontrolér jde ovládat i přes USB. Můžeme například připojit tiskárnu přímo k pracovnímu PC a díky programu Pronterface posílat instrukce G kódu přímo z PC po USB kabelu. Během tisku vidíme mnohem víc informací, třeba grafy s teplotami podložky a tiskové hlavy, nebo aktuální pozici hlavy na tiskové vrstvě atd. Vypadá to, že takto je to pohodlnější než neustálé přenášení karty sem a tam.

Ovšem pak zjistíme, že u 12hodinového tisku nemůžeme vypnout PC, protože by se tisk přerušil. Nemůžeme ho ani restartovat (třeba kvůli aktualizacím). A když se rozhodne nejmenovaný systém jedné monopolní firmy restartovat sám (jak to má v oblibě), zničí tím celý mnohahodinový tisk. Program taky nesmí spadnout, USB nesmí nikdo rozpojit, s notebookem nesmíme nikam odejít atd. Ani toto není ideální.

Nejlepší řešení by bylo věnovat jeden počítač jen a pouze tiskárně. Mohl by být přístupný po síti nebo i z Internetu, umožnit tisky pouštět, hlídat a v případě poruchy zastavovat i na dálku, mohl by mít připojenou kamerku, takže bychom mohli tisknout a přitom si třeba odskočit na pár hodin "na jedno" a přitom mít dokonalý vizuální přehled, jako bychom se od tiskárny nevzdálili ani na krok. Nic jiného by na tomto počítači neběželo, žádné aktualizace a další zdroje poruch - prostě specializovaný, dedikovaný počítač jen pro tiskárnu. A mohl by mít pěkné webové rozhraní, které by všechno umožnilo řídit. To by asi bylo ideální.

OctoPrint

No a protože žijeme v úžasném světě svobodného software, tak tento řídicí program s pěkným webovým rozhraním a mnoha dalšími vymoženostmi už existuje - jmenuje se OctoPrint - a je dostupný zdarma a se všemi zdrojovými kódy (vývoj probíhá na GitHubu). Kdybych chtěl být genderově nekorektní, nebo dokonce pozitivně diskriminační, zmínil bych i tu zajímavost, že tento skvělý program vyvíjí žena - Gina Häußge. Ale protože na pohlaví u programátorů nehledíme, tak jen zmíním, že je dobré jí přispět nejen kvalitním bug reportem, pull requestem s nějakým vylepšením, ale i třeba drobnou mincí (Patreon, Paypal), protože OctoPrintu věnuje spoustu času a musí taky z něčeho žít.

Takže software máme (v Pythonu, tedy přenositelný na jakoukoliv platformu) a chybí už jen počítač. Místo PC, které je neskladné, žere elektřinu a točí se v něm součástky, bude mnohem lepší volbou jednodeskový minipočítač. Například něco jako Raspberry Pi za 35 dolarů (plus dražší poštovné plus smrt na poštovní celnici za překročení limitu). Pro Raspberry Pi existuje hotový obraz paměťové karty s předinstalovaným operačním systémem a OctoPrintem - jmenuje se OctoPi a není s ním žádná práce, takže tady by mohl tento návod končit.

Orange Pi

Pokud jste ale fandové levnějšího ovoce než Malin z Anglie, můžete číst dál. Popíšu totiž, jak jsem OctoPrint nainstaloval na Pomeranč z Číny, tedy Orange Pi od Shenzhen Xunlong Software. To ale není moc důležité, protože rozumný operační systém pro tyto malé počítače - Armbian - běží na desítkách různých desek, takže tento postup jde aplikovat i na Banány, Borovice a mnohé další stroje.

Konkrétně jsem použil Orange Pi One za necelých 10 dolarů (plus levné poštovné $3.61). K němu jsem rovnou přikoupil i originální 2Mpix kamerku. Není to žádný zázrak, ale za necelých 6 dolarů paráda. Tím pádem jsem byl hluboko od obávaným celním limitem a za pouhých 400 českých korun získal počítač, který bude jen a pouze sloužit tiskárně.

Pokud bych nechtěl použít originální kamerku k Orange Pi, ale sáhl místo toho po nějaké s USB rozhraním, mohl bych vzít ještě levnější počítač - Orange Pi Zero za neuvěřitelných 6 dolarů. Zero totiž nemá CSI konektor pro kameru, bohužel. Anebo kterýkoliv jiný Orange Pi, jejich výrobce se zbláznil a skoro každý měsíc vychrlí nový typ...

Instalace HW

Instalace "železa" vyžaduje vyrobit či sehnat kryt na počítač, protože nechceme nic zkratovat. Nejlepší je kryt si sám vytisknout. Na Thingiverse jsem našel krásný hotový model.


Dále potřebujeme držák na kameru. Opět nejlépe vytisknout, a zase jde najít hotový model držáčku kamery na Thingiverse.



Teď je potřeba počítač přichytit třeba na rám tiskárny, kde nebude zavazet, zatímco kameru je potřeba postavit tak, aby viděla na tiskovou plochu. Bohužel, originální kamerka připojená přes CSI rozhraní může mít jen kratičký kablík, takže je nutno najít takovou pozici pro počítač, kde bude mít kamerka dobrý výhled. Toto jsem v době psaní tohoto článku ještě nevyřešil...

USB kamerka by zde byla výhodnější, neboť USB kablík může být mnohem delší, takže počítač by mohl být zezadu na rámu tiskárny, a kamerka jen na nějakém měkkém drátku nastavena někde z boku tak, aby pěkně viděla na scénu.

Počítač můžeme napájet originálním zdrojem z další zásuvky, ale do budoucna se chystám spíš udělat rozdvojku na USB vedoucím z mikrokontroléru tiskárny a napájet Orange Pi přímo z tiskárny. Jestli si na to koupím kablík pro napájení z USB, nebo jestli se připojím přímo na piny konektoru v Orange Pi, ještě netuším, ale obě možnosti jsou schůdné.

V neposlední řadě je dobré nezapomenout na osvětlení tiskové plochy. Určitě postačí pár jasně bílých LEDek, nejlépe taky napájených z USB tiskárny, ať je všechno na jednom zdroji. Fajnšmekr by dokonce mohl k počítači připojit senzor úrovně okolního světla a řídit svit LEDek podle toho (přes den vůbec, v noci na max, ale jen při tisku, samozřejmě).

Zajímavé by mohlo být osvětlit pracovní plochu infračervenými LEDkami a snímat kamerkou bez IR filtru. Pak by tisková sestava nepřispívala ke světelnému smogu (zbývá ještě hlukový smog a plastový smrad, což vyřeší jedině separátní tiskařská kobka s odsáváním zplodin).

Instalace SW

Tak za prvé nainstalujeme určitě operační systém, tedy rozhodně Armbian. Stáhnout správnou verzi na PC, zapsat na paměťovou kartu, vložit do Pomeranče a nastartovat. Napoprvé se tam dějí věci (rozšiřují diskové oddíly), tak je potřeba to nechat, případně restartovat, updatovat balíčky atd. Přesný návod najdete u Armbianu.

Dále můžeme instalovat samotný OctoPrint. Postupujeme podle návodu pro Raspberry Pi, protože Debian jako Debian (tj. Raspbian jako Armbian). Jeden důležitý balíček jim tam (kvůli chybě v Debian Wheezy) ale chybí - "virtualenv". Takže do příkazové řádky napište:
sudo apt-get install python-pip python-dev python-setuptools python-virtualenv virtualenv git libyaml-dev build-essential
Zajímavé je (pro lidi jako já, kteří neznají python a jeho virtualenv), že po zkompilování všech těch zbytečných věcí není možné výsledný adresář někam přesunout, protože všechny ty blbosti mají v sobě zakompilovanou absolutní cestu. Takže když jsem to zkompiloval na zkoušku v /tmp/OctoPrint-master/, tak už to tam musím pořát mít, i když nechci (protože /tmp/ se po každém restartu promazává). "Vyřešil" jsem to tak, že jsem ten zkompilovaný adresář přejmenoval a přesunul do /home/, a teď si jen vždy před spuštěním udělám symbolický link - nějak takto:

ln -s /home/OctoPrint /tmp/OctoPrint-master

Tím jsem se nechtěl pochlubit, je to takové škrábání se levou rukou za pravým uchem - spíš jsem chtěl jen upozornit na něco, co jsem původně netušil, a že to jde obejít i bez kompletní rekompilace. Počítám, že v diskusi mě nějaký pythonista upozorní, že to jde vyřešit ještě nějak jinak - to jsem zvědav.

OctoPrint máme spouštět v tom adresáři, kde jsme ho zkompilovali, a navíc s parametrem "serve", takže v mém popleteném případě nějak takto:
cd /tmp/OctoPrint-master && ./venv/bin/octoprint serve

V tu chvíli se spustí web server na portu 5000, takže v dobře nakonfigurované síti je možné hned poté otevřít webový prohlížeč na PC/tabletu/mobilu a napsat do něj http://orangepione:5000/

Trošku oříšek může být zařídit spuštění programu hned po startu operačního systému. Zkušený uživatel Debianu by napsal init skript (do /etc/init.d/), případně systemd službu, a nejspíš by přitom využil parametr "daemon" OctoPrintu. Je ale možné i trošku "podvádět" a spustit program přímo z /etc/rc.local, což je skript, který se pouští při startu systému. Jen je potřeba spustit OctoPrint pod správným uživatelem a navíc mu zprostředkovat terminál, tedy jeho emulaci programem screen:

su - ja -c "/usr/bin/screen -dmS octoprint /X/venv/bin/octoprint"

V předchozím řádku je potřeba nahradit "ja" jménem vybraného uživatele a "X" cestou ke zkompilovanému OctoPrintu.

Video streaming

Na Orange Pi s originální kamerkou je zajímavý fakt, že přestože používá ovladač "gc2035" přítomný v Armbianu, tak přesto nefunguje ŽÁDNÝ program pro práci s videem kromě jediného - "motion". Proto drtivá většina návodů na Internetu popisuje konfiguraci programu "motion" - například na cnx-software.com.

Fór je v tom, že motion na tohle není dělaný, resp. je kanónem na vrabce. Motion má totiž hlavně hlídat změny v obraze, zatímco nám by stačilo obyčejný video streaming, jak to umí například program mjpg-streamer.

Kdysi jsem našel vysvětlení, proč ostatní programy nefungují, a zajímavý návod, jak to obejít: zavede se modul "v4l2loopback", který vytvoří virtuální video zařízení, a pak se spustí jednoduchý prográmek nazvaný "vidcopy", který kopíruje data z reálného video zařízení (z kamery) do toho virtuálního, se kterým už poté umí pracovat běžné video programy. Ta stránka už na Internetu neexistuje, ale popsáno je to třeba i na tomto blogu.

Poté je možné například zkompilovat mjpg-streamer (potřebujeme ale jistý fork s doplněným klíčovým parametrem "-u"), který bude brát obraz z virtuálního zařízení a streamovat přes web.

Výsledný skript (nazvaný třeba streaming.sh) na zavedení modulů do kernelu ve správném pořadí a spuštění nezbytných programů je zde:
sudo modprobe gc2035
sleep 2
sudo modprobe vfe_v4l2
sleep 2
sudo modprobe v4l2loopback
sleep 2
SIRKA=1280
VYSKA=720
FPS=5
ROZLISENI=$SIRKA"x"$VYSKA
cd $HOME/streaming
(cd vidcopy && ./vidcopy -w $SIRKA -h $VYSKA -r $FPS -i /dev/video0 -o /dev/video1 -f UYVY &)
sleep 3
cd mjpg-streamer/mjpg-streamer-experimental && ./mjpg_streamer -i "./input_uvc.so -r $ROZLISENI -f $FPS -n -u -d /dev/video1" -o "./output_http.so -w ./www"
Tento skript opět spustíme při startu systému přidáním následujícího řádku do /etc/rc.local:
su - ja -c "/usr/bin/screen -dmS streaming /cesta/k/streaming.sh"
Tím se spustí další web server, tentokrát na portu 8080: http://orangepione:8080/

Konfigurace OctoPrintu

Ještě bych rád zdokumentoval pár drobností, které jsem objevil při počáteční konfiguraci OctoPrintu. Například určitě chceme, aby se hned po startu serveru připojil k tiskárně, protože to trvá asi 20 sekund a kdo má na to čekat. Úvodní nastavení komunikačního portu je "AUTO" a když klikneme na "Connect", tak se připojí. "Auto-connect" po startu serveru ale nefunguje, dokud nezvolíme konkrétní sériový port ("/dev/ttyACM0").

Dále, názvy souborů na kartě se objevují ve zkráceném tvaru (jen prvních šest znaků, pak vlnka a číslo) - tohle je známá, ale stále nevyřešená chyba OctoPrintu. Vzhledem k tomu, že SD kartu už nebudeme potřebovat, to asi nevadí.

Zajímavá je též chyba "pozor, tištěný objekt se nevejde na tiskovou plochu". Je to kvůli tomu, že Průšův Slic3r přidává před samotný tisk jakési "rozcvičení" tiskové hlavy, kdy na samém předním okraji tiskové plochy vyjede asi 5cm proužek plastu. Tento proužek je na souřadnici -3, což OctoPrint správně prohlásí jako mimo tiskovou plochu. Vidím několik způsobů, jak to vyřešit. Přesunout inicializační G kód ze Slic3ru do OctoPrintu, nahlásit jako chybu a prosit Ginu o "opravu" (ignorováním počáteční sekvence), anebo to prostě rovnou ignorovat selským rozumem (když v náhledu vidím, že se na plochu vejde, tak věřím, že to bude OK).

V nastavení "Webcam & timelapse" zadáme URL video streamu, který je: http://orangepione:8080/?action=stream. Timelapse jsem neřešil, takže URL na fotky si v mjpg-streameru najdete sami.

Propojení se Slic3rem

Když Slic3r vygeneruje G kód, tak jak ho dostaneme do Orange Pi? Jedna z možností je přes sdílenou složku na Orange Pi (to bysme si tam ale museli nainstalovat Sambu, NFS nebo použít sshfs či něco podobného). Druhou možností je použít tlačítko "Upload" ve webovém rozhraní a nahrát G kód přes prohlížeč.

To je pořád ale "ruční práce". Přitom existuje fantastická možnost automatizace - Slic3r umí vygenerovaný kód poslat přímo do OctoPrintu! V záložce "Printer Settings" je sekce "OctoPrint upload", kam stačí zadat adresu a port našeho nového tiskového prohlížeče ("orangepione:5000") a pak "API Key", který zkopírujeme z OctoPrintu z nastavení "API". Tím se v hlavní obrazovce Slic3ru objeví nové tlačítko "Send to printer" a svět začne být zase o notný kus automatizovanější :-)

Printoid

OctoPrint se svým webovým rozhraním je bezva na práci v lokální síti, ale pokud člověk vyrazí ven, tak prý tou pravou bombou je mobilní aplikace Printoid. To jsem ještě nestihl vyzkoušet, takže sem případně doplním osobní zkušenosti posléze.

Credits:
Tomáš Vít, můj strážný anděl 3D tisku, mě krom jiného upozornil, že Cura má stejnou integraci jako Slic3r.
Pavel Novotný mě doslova dotlačil k instalaci OctoPrintu slovy "čas strávený instalací se ti tisíckrát vrátí při tisku". Také neustále pěje ódy na Printoid, že šetří mnoho času při ladění tiskových profilů.