čtvrtek 23. března 2017

Daně OSVČ za rok 2016


Řešil jsem opět po roce daňové přiznání. Můj před dvěma lety popsaný postup pořád platí beze změn, takže jsem chtěl postupovat podle něj jako podle kuchařky (ostatně proto jsem to kdysi sepsal). Jenže neznám paragrafy a tak jsem hned v úvodu zabloudil v "adisepo" formuláři na několik hodin. Když jsem na to konečně přišel, rychle jsem si to sem poznačil, abych příští rok opět nebloudil.

Takže: správný postup zadání celkových příjmů OSVČ je následující: v 2. oddíle ("Dílčí základ daně") najít položku č. 37, ale nevyplňovat ji - místo toho kliknout vedle ní na tlačítko "Příloha 1". Na nové stránce v záhlaví zaškrtnout "Uplatňuji výdaje procentem z příjmů", srolovat dolů až do oddílu "B. Druh činnosti", vybrat nějakou činnost (osobně jsem zvolil "Programování", ale je to na vkusu každého soudruha), nastavit u ní sazbu výdajů % z příjmů a pak tam konečně vyplnit celkové příjmy. Takto se vše samo vypočítá a nakopíruje do správných políček nejen na této stránce, ale i na původní "2. ODDÍL - Dílčí základ daně", kam se vrátíme tlačítkem Zpět.

Je to vlastně velmi jednoduché, když člověk ví, kam kliknout.

středa 8. března 2017

Představení Orange Pi

Na Installfestu 2017 jsem měl 25 minut na představení počítačů z rodiny Orange Pi. Necelá půlhodina je samozřejmě velmi málo času - dalo by se o nich mluvit několik hodin. Přesto jsem se pokusil o jakýsi letmý přehled a srovnání s etalonem v této třídě - Raspberry Pi.

Zde je videozáznam přednášky:

Zde je odkaz na mou prezentaci v PDF.

Video startu a přehrávání videa

Na přednášce se mi ani v čase určeném původně pro oběd nepodařilo předvést start Orange Pi One, což mě velmi mrzelo. Předpokládám, že si nějak nerozuměl HDMI výstup Orange Pi One s HDMI vstupem tamního video systému. Mít víc času, dva síťové kabely a switch, propojil bych se s Orange Pi a přihlásil se na něj přes SSH. Anebo jsem mohl frajersky použít tu sériovou debug konzoli, kterou má každičký Orange Pi - serial/USB převodník jsem měl po ruce, jen jsem neměl správné piny...
Po připojení by stačilo spustit příkaz/program "h3disp", který je určený k nastavování různých HDMI frekvencí a rozlišení. Bohužel tolik času jsem tam neměl.



Proto jsem teď doma natočil krátký video záznam, který ukazuje nejen start systému Armbian a jeho desktop, ale také jsem zaznamenal průběh přehrávání testovacích videostreamů z jell.yfish.us - od 5Mbps až po 55Mbps, v H.264 i v novém HEVC (H.265). Myslím, že budete překvapeni, jak to na počítači za 250 Kč funguje (jen prosím omluvte kvalitu záznamu - mám Full HD monitor i FullHD videokameru v telefonu, ale není to bohužel správně zaostřené, takže to vypadá děsně):



h3disp

Jak jsem uvedl, "h3disp" dokáže editovat soubor script.bin, který obsahuje informace ke startu systému, krom jiného i nastavení grafického režimu: v této diskusi se poměrně podrobně rozebírá několik monitorů, které původně neběžely, ale pak se rozběhly (s poměrem stran 5:4 a podobně) a zde je zdrojový kód h3disp, kde nejlépe můžete vidět, kolik grafických režimů podporuje. Myslím, že tam najdete i ten svůj. Všimněte si, že je rozdíl mezi HDMI a DVI, je potřeba to v "h3disp" jasně zadat (parametrem -d pro DVI). Toto bude nejspíš ten důvod, proč mi to na Installfestu nenaběhlo - jejich HDMI vstup jistě fungoval jako DVI monitor.

GPIO

Pro bastlíře je skvělé, že všechny Orange Pi mají na 40pinovou (Zero 26pinovou) lištu vyvedenu celou řadu pinů procesoru, se kterými si můžete hrát jako na Arduinu, tj. rozsvěcet světýlka, číst hodnoty všemožných senzorů nebo třeba připojit celý displej. Na Raspberry Pi slouží pro pohodlný Arduino-like přístup k těmto pinům knihovna WiringPi. Je dostupná i pro Orange Pi: www.orangepi.org/Docs/WiringPi.html
A pokud jste orientovaní spíš na Python, tak potom zkuste tuto knihovnu: github.com/duxingkei33/orangepi_PC_gpio_pyH3

Pokud vám chybí ještě nějaká informace k Orange Pi, která na mé přednášce nezazněla, dejte vědět, doplním ji sem.

neděle 5. března 2017

Arduino - vzdálené programování

Před pár hodinami jsem měl přednášku na Installfestu, kde jsem se snažil shrnout své několikaleté zkušenosti se vzdáleným programování Arduin přes Bluetooth, WiFi a Ethernet. Cílem tohoto článku je doplnit onu přednášku o konkrétní čísla, útržky programů a další drobnosti, které se do přednášky z časových, technických či jiných důvodů nedostaly:


Zde je odkaz na mou prezentaci v PDF.

Bootloader a pojistky

Jádrem přednášky byla "teorie" o bootloaderech - krátkých prográmcích, které jsou uložené ve vyhrazené části Arduino flash paměti a které se podle nastavení fuses ("pojistek") spouštějí po zapnutí či resetu Arduina, resp. mikrokontroléru ATmega328p.

Pojďme se proto podívat, co všechno fuses umějí u ATmegy328p nastavit. Na kalkulačce vybereme "AVR part name" ATmega328P a už to vidíme:

Toto nastavení platí pro "standardní" hodnoty pojistek u Arduina s bootloaderem Optiboot - tyto hodnoty jsou Low=FF a High=D6 (což se dá předvyplnit dole na stránce, pokud známe hexadecimální hodnoty pojistek a chceme se podívat, co ty hodnoty znamenají v lidské řeči).

Čteno shora dolů tam máme: externí krystal s frekvencí 8 nebo více MHz (což je OK, Arduino má standardně 16 MHz krystal). Dále je zapnutý Boot Reset vector, což je důležité, pokud chceme, aby se po resetu skočilo do bootloaderu. A v rozbalovacím menu je vybrána velikost Boot Flash sekce "256 slov". Jak jsem na přednášce stihl říct, 256 slov se rovná 512 bajtům.

Zároveň vidíme, kam bude mířít ten Boot Reset vector - na adresu $3F00, což je decimálně  16128, ale i toto číslo je v 16bitových slovech, takže v bajtech se jedná o adresu 32256. Na tuto adresu budeme chtít nahrát náš bootloader, protože sem po zapnutí či resetu skočí mikrokontrolér pomocí onoho Boot Reset vectoru. Mimochodem, adresa 32256 je právě 512 bajtů od konce 32kB (32768bajtové) flash paměti, což odpovídá tomu, že bootloader je vždy uložen na nejvyšších adresách flash paměti.

Z dalších nastavení "pojistek" vidíme, že při "Chip Erase" (mazání čipu) nedojde ke smazání paměti EEPROM (což je dobře, pokud v ní máme uložené nějaké vlastní hodnoty), a poslední zapnutou volbou je SPI programování, což je naprosto klíčové. Pokud byste si vypnuli toto SPI programování, anebo o dvě volby níže si zapnuli vypnutí resetu (Reset Disabled), tak už standardně daný mikrokontrolér  nebudete schopni naprogramovat a pak je poslední záchranou na přednášce zmíněné paralelní vysokonapěťové ("parallel high-voltage") programování.

Jinými slovy: pokud chcete zachovat běžnou funkčnost Arduina, neměňte nic než nastavení velikosti Boot Flash sekce.

Při každé změně kteréhokoliv nastavení se ihned přepočítají všechny odpovídající hodnoty na celé stránce, takže dole neustále vidíte výsledné správné hodnoty pojistek a dokonce i parametry příkazu avrdude, kterými dané pojistky zapíšete do ATmegy. Takže si zkusíme třeba změnit velikost Boot Flash sekce z 256 slov na 512 slov (což je nutné, pokud potřebujeme zapsat bootloader delší než 512 bajtů, a kratší než 1024 bajtů, jako je případ Optibootu upraveného pro Ethernet). Vidíme, že adresa Boot startu se změnila na $3E00, což je decimálně a v bajtech 31744. Hodnoty pojistek se změnily (dole na stránce kalkulačky) následovně:


Čili Low zůstává FF, ale High se změnila z D6 na D4. Vedle v "AVRDUDE arguments" jsou vidět i všechny parametry pro avrdude, které dané hodnoty zapíší.

To znamená, že pokud použijete jiné Arduino jako programátor ("Arduino as ISP"), jak jsem na přednášce pro začátek doporučoval, celý avrdude příkaz (nastavení pojistek + vypálení bootloaderu Optiboot s úpravou pro Ethernet) bude vypadat následovně:

avrdude -p m328p -c avrisp -P /dev/ttyUSB0 -b 19200 \
 -U lfuse:w:0xff:m -U hfuse:w:0xd4:m \
 -U flash:w:./optiboot_atmega328.hex

Tak. Pokud použijete Arduino UNO jako programátor, tak je možná vašemu systému známé jako zařízení /dev/ttyACM0 místo /dev/ttyUSB0, ale to je kosmetický detail, se kterým si poradíte (protože tuto hodnotu vidíte krom jiného i v Arduino IDE, když si vybíráte sériový port v menu Nastavení).

Programátor "Arduino as ISP"

Jak z Arduina udělat ISP programátor pro jiná Arduina či Atmel AVR čipy je popsáno na mnoha stránkách - např. přímo od Arduina tady. Princip je jednoduchý: nejdřív do Arduina nahrajeme z Arduino příkladů program zvaný "ArduinoISP" a teprve poté zapojíme 10uF kondenzátor mezi RESET tohoto Arduina a zem. Díky kondenzátoru při příštím nahrávání programu z Arduino IDE nedojde k obvyklému resetu programovacího Arduina, což je moc dobře, protože my nechceme nahrávat nový program do něj, ale jen ho poslat skrz něj do dalšího Arduina, zapojeného za ním přes SPI port.

Sám jsem si postavil vlastní ISP programátor z jednoho nepoužívaného Arduino Nano. Na fotce je vidět i ten 10uF kondenzátor. Jak tak studuju to zapojení na té univerzální destičce, zdá se mi, že mám ten kondenzátor celou dobu zapojený špatně! Mám ho mezi RESET a VCC místo GND. Zajímavá chyba, musím to předělat:


Softwarový reset

Jak jsem na přednášce zmínil, bootloader se dostane ke slovu vždy po zapnutí či resetu Arduina/ATmegy328p. Proto pokud chceme nahrávat nový program, potřebujeme Arduino resetovat. Normálně se toto děje pomocí signálu sériového portu DTR (Data Terminal Ready - z doby, kdy k sálovým počítačům byly připojené terminály), kterýžto je přes kondenzátor připojen přímo na RESET signál Arduina.

Při programování přes WiFi jsem doporučil připojit pin GPIO0 od ESP8266 přímo na RESET pin Arduina - potom firmware esp-link automaticky resetne před programováním a vše funguje transparentně, jak jsme z Arduino IDE zvyklí. Pokud ale programujeme Arduino vzdáleně přes Bluetooth nebo přes Ethernet, nemáme jaksi po ruce signál DTR, takže si musíme pomoci jinak a Arduino resetovat softwarově.

K softwarovému resetu zneužijeme HW watchdog - nezávislého hlídače vestavěného do každého procesoru ATmega. Nejkratší kód, který zajistí reset celého mikrokontroléru, vypadá takto:

    wdt_enable(WDTO_250MS);
    while(1);

Funkcí wdt_enable() nastavíme čas, do kterého musíme watchdog counter resetnout, jinak resetne on nás (250 milisekund), a pak neděláme nic (while(1); se zacyklí na místě), takže watchdog za 250 milisekund skutečně resetne celý mikrokontrolér, což jsme přesně chtěli.

Pozor na starší bootloadery (dnes už jen z Číny na klonech Arduin), které zapomínaly watchdog vypnout. V takovém případě se pak vlastně Arduino donekonečna samo restartuje každou čtvrtsekundu. Pokud ale nejdříve nahrajete Optiboot (tj. ten krásný nový krátký bootloader), tak s ním problém při SW resetu watchdogem nenastává, protože má jako jednu z prvních instrukcí vypnutí watchdogu.

V případě, že programujeme Arduino přes Ethernet, musíme ještě nastavit příznak v EEPROM, aby bootloader věděl, že chceme začít nahrávat novou verzi firmware a počkal na data proudící po síti. Pak celý kód (zapsání příznaku a resetnutí Arduina) vypadá takto:

    EEPROM.update(0x22, 0x55);
    wdt_enable(WDTO_250MS);
    while(1);

Nastavení IP adres v EEPROM

Při programování Arduina přes Ethernet, jak vymyslel a popsal Will Soberbutts, je potřeba do paměti EEPROM připravit sadu IP adres tak, aby bootloader po startu věděl, jak má nastavit Ethernet shield. Osobně pro to používám následující kód:

void setup_ethernet_bootloader_address()
{
    byte addr[] = {
        192, 168, 1, 1,     // gateway
        255, 255, 255, 0,   // netmask
        0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED, // MAC
        192, 168, 1, 102    // address
    };
    for(byte i = 0; i < sizeof(addr); i++)
        EEPROM.update(i + 0x10, addr[i]);
}

Tuto funkci je dobré zavolat hned ze setup(void) funkce. Samozřejmě je nutné nastavit ty adresy podle situace ve vaší síti. MAC adresa je vymyšlená ("DeadBeefFeed") a funguje dobře. Jen pokud máte doma víc Arduin s Ethernetem, je nutné každému přiřadit jinou MAC adresu - stačí měnit jen poslední číslici,  začátek (0xDE) neměňte.

Bezpečnost

Přednáška pominula otázku bezpečnosti celého konceptu vzdáleného nahrávání nového firmware do Arduina. Pravda je, že na Ethernetu na to trošku hřeším - spoléhám se na to, že se mi doma nikdo zlý do sítě nepřipojí, že k ní prostě fyzicky nebude mít přístup. Bezdrátová připojení (Bluetooth/WiFi) jsou zřejmě zranitelnější ("tati, proč na naší ulici už týden parkuje ta černá dodávka se zatmavenými skly?"), takže by to něco chtělo. Nejjednodušší by zřejmě bylo firmware zašifrovat na PC, odeslat šifrované a rozšifrovat bootloaderem předtím, než dojde k uložení do flash paměti Arduina, ale do toho jsem se zatím nepouštěl. Vyžadovalo by to větší zásahy do bootloaderu, hodně času na ladění atd. Možná se k tomu dostanu někdy časem.

Závěr

Programovat Arduino vzdáleně je největší pohoda. Mimochodem, je to vlastně důvod, proč jsem z Arduin nepřešel na STM32 - tam jsem totiž možnost vzdáleného programování přes Ethernet vůbec nenašel. Proto všem doporučuji zkusit si to doma - jakmile to rozjedete, už nebudete chtít jinak :-)

EDIT: 5.3. v 19:30 doplněno pár drobností.

pondělí 2. ledna 2017

WiFi Teploměr s termostatem v roce 2017

Ohlédnutí za uplynulým rokem 2016


Můj WiFi Teploměr, popsaný v několika předchozích blog postech, si za půl roku od svého uveřejnění našel své příznivce. Jeho jednoduchost nastavení a použití, rozšiřitelnost sítě teplotních čidel, spolehlivá funkčnost v lokální síti i bez připojení k internetu, volitelná možnost odesílání naměřených teplot na různé webové služby i vlastní servery, neučesané avšak funkční teplotní grafy na mém serveru Teploty.info spolu s možností exportu dat do tabulkového procesoru (Calc, Excel) a e-mailovým varováním při překročení nastavených teplotních hranic pro každé čidlo jsou evidentně zajímavé vlastnosti.

V průběhu léta jsem původně jediný model WiFi Teploměru doplnil o možnost termostatu, tedy spínání výstupu podle nastavených teplot. Tento výstup disponoval napájecím napětím, tedy obvykle 9 či 12 V. Ideální na malý větráček, LED světlo a podobně (i proto byl původně s PWM). Ovšem pro spínání velkých spotřebičů bylo potřeba přidávat externí relé, což jsem na podzim vyřešil novým modelem WiFi Teploměru, kterému jsem začal říkat "AC", protože je na střídavé síťové napětí, které zároveň umí spínat svým vestavěným 10A relé. Představte si to jednoduše jako takovou WiFi ovládanou zásuvku, která buďto sepne/vypne podle nastavených teplotních pravidel (= termostat), anebo jde ovládat i ručně přes webové rozhraní.

Co lidem chybí


Přesto se však našli zájemci, kterým chyběly některé další vlastnosti. Pojďme si je vypsat po bodech:

  • měření teplot vyšších než 125 ℃ (např. teplota spalin v komíně)
  • bezdrátové teplotní čidlo
  • měření vlhkosti (to se opakuje poměrně často)
  • měření dalších věcí (např. světla, hladiny vody, elektrického proudu atp.)
  • možnost ručně ovládat spínání relé termostatu z internetu přes nějakou cloudovou službu
  • spínat ne jeden, ale dva výstupy (někteří chtěli i tři, čtyři nebo dokonce pět spínačů)
  • možnost naprogramovat termostat pro vzájemné porovnávání teploty dvou čidel
  • možnost řídit termostat i podle času, ne jen podle teploty
  • možnost programovat termostat i na dálku z internetu přes nějakou cloudovou službu
  • připojení k síti přes Ethernet
Myslím, že to nejsou malá přání, ale přesto jsem ani jedno z nich šmahem nezavrhl. Jakmile jsem měl chvilku času, zamyslel jsem se nad nimi a dobrá zpráva je, že přinejmenším některé z nich mám v plánu skutečně zrealizovat.

Výhled na právě začínající rok 2017


Měření teplot vyšších než co zvládnou digitální čidla DS18B20 mám už nějakou dobu rozmyšleno a začínám pracovat na prototypu. Měření vlhkosti a dalších věcí mám též vymyšleno. Bude to docela revoluční, pokud se to povede udělat tak jak mám v plánu. Nakonec půjde měřit prakticky cokoliv, a to na více místech, se sběrem dat, grafy a vyhodnocováním stejným, jako dnes probíhá u teplot -55 až +125 ℃.

A z dalších přání jsem se zaměřil na rozšíření cloudových služeb. Jako takovou první vlaštovku bych rád ukázal návrh budoucí konfigurační stránky WiFi Teploměru, kterou jsem naprogramoval na Silvestra a která kromě vyčištění od zbytků PWM především ukazuje možnost zapnout si vzdálené ovládání přes internet. 


Zatím bude vzdálené ovládání možné pouze přes můj server Teploty.info (kde má každý zájemce svůj účet pro přístup), ale do budoucna plánuju i tuto novou vlastnost naučit spolupracovat i s jinými servery, takže WiFi Teploměr zůstane nezávislým a plně funkčním, i kdyby můj server odnesla voda. Tím se tento projekt a výrobek významně liší od komerčních produktů na trhu, které jsou obvykle závislé na svém dodavateli a stanou se nepoužitelnými těžítky, když se jejich cloudové služby odmlčí.

Přeji všem hodně zdraví a štěstí nejen na Nový rok, ale i po celý rok a zbytek tohoto století.

EDIT 9.1.2017:
Za prvé, spínač (relé) ve WiFi Teploměru už je ovladatelné na dálku, a to přes můj nebo jiný server, takže WiFi Teploměr je na mém serveru stále nezávislý, což je pro všechny jen dobře.

Za druhé, velmi se zkomplikovala možnost stavby WiFi Teploměru se dvěma nezávislými termostaty. Měl jsem nějaký plán, který ale nevyšel, takže tento projekt dávám prozatím k ledu a soustředím se spíš na čidla všech možných veličin.

čtvrtek 10. listopadu 2016

Zkušenosti ze stavby 3D tiskárny i3 MK2

Trable s výběrem tiskárny jsem překonal, 12. října tiskárnu objednal, počkal 24 dní na pošťáka a konečně obdržel relativně malou krabici obsahující stavebnici 3D tiskárny i3 MK2. Když jsem z ní vyndal jednu cívku filamentu (tiskové struny), kterou Prusa Research přidává zdarma (výběr ze tří barev, které nikdo nechce), byla krabice dokonce poloprázdná! To je známka dokonalého rozložení tiskárny až téměř na atomy a příslib velké zábavy při jejím skládání do finální podoby.


Stavebnice přichází se dvěma knihami: tenčí 50stránkovou Příručkou 3D tiskaře a odhadem tak 120stránkovým velmi podrobným Návodem ke stavbě, který jsem se rozhodl slepě a do puntíku následovat (abych pana Průšu trošku zbavil toho pocitu zmaru, který musel prožívat, když viděl Thomase Sanladerera z YT videostreamu stavět celou stavebnici bez návodu). Návod je přehledně rozdělen do 9 kapitol, všechny součástky jsou pečlivě rozděleny do sáčků podle kapitol, obrázky v manuálu na webu (který kniha doporučuje používat jako aktuálnější zdroj informací) jsou ještě větší a barevnější. Je to opravdu výborně udělaný návod a celá stavebnice je díky němu řekl bych perfektní.

Komu ego či zbrklost nebrání postupovat podle instrukcí, nemůže tiskárnu sestavit špatně. I když třeba nedodrží avizovanou 6-8hodinovou dobu stavby - mně osobně trvalo sestavit tiskárnu kolem 22 hodin. Ale nevadí mi to ani za mák - mohl jsem si aspoň v klidu zanadávat při sestavování úvodního rámu ze šesti závitových tyčí a 24 matek (tohle je jistojistě nejslabší část celé stavebnice a trvala mi nejdéle) a později, jakmile jsem získal nejvyšší důvěru k tvůrcům návodu i celé tiskárny, obdivovat, jaké další úžasné triky v konstrukci vymyslí a co všechno se dá k čemu přichytit stahovacími pásky.

Když jsem se párkrát dostal do slepé uličky a musel vycouvat, bylo to jen kvůli tomu, že jsem přesně nedodržel sloveso v návodu: když třeba X. krok návodu říká, že se máme připravit, že budeme omotávat kabel, tak to neznamená, že ten kabel máme začít omotávat! K tomu dostaneme pokyn až v kroku X+2, zatímco v kroku X+1 máme ke svazku kabelů přidat další dva kabely. Tudíž jsem hned po omotání a přečtení kroku X+1 musel drobně vycouvat a začít znovu. Zmiňuji to proto, abych dokumentoval, jak přesně je návod napsán a že se opravdu vyplatí ho pečlivě následovat - a zároveň jedním okem číst tak jeden-dva kroky dopředu, aby člověk věděl, co ho čeká a že nemá nějakou operaci uspěchat.


Při stavbě jsem narazil jen asi na dva problémy: za prvé, otvory ve všech plastových dílech, do kterých se zasunují tyče (ať už hlazené nebo závitové), je nezbytné hned na začátku mírně probrousit, aby ty tyče šly zasunout hladce. Nejdůležitější je to u držáků řemenu a motoru Y osy a úplně kritické u držáků Z motorů. To jsem nevěděl předem, neudělal, pak se mi už nechtělo rozdělávat 4 kroky pozpátku a tak jsem tam ty hladké tyče rval a rval, až plast skučel. To bylo zbytečné a vy se tomu při stavbě vaší i3 MK2 vyhněte.

Druhý problém nastává při umisťování matiček do děr v plastových kusech. V jednom případě (někde u extruderu) je vytištěný šestiúhelník prostě příliš malý, takže se tam matička nijak vtlačit nedá. Horší situace je (opět okolo extruderu) v hlubokých kónických dírách, kam má matička spadnout až na dno a zůstat držet. Nic takového nejde. A to ani podle návodu, který radí tam matičku zatlouct klíčem! Kdo to podcení, zle se potrápí při kompletování celého extruderu, což je nejsložitější skládanka celé stavebnice.

Tady jsem vymyslel zásadní zlepšení, které bych doporučil zapracovat do originálního návodu: místo zatloukání matičky do hluboké či příliš malé díry stačí prostrčit dírou šroub, matičku umístit jen přibližně na místo, kam nepasuje, a pak v klidu šroub z druhé strany utahovat tak dlouho, dokud si nevtáhne matičku přesně na to místo, kde ji návod chce mít. Matička se do plastu zaboří takovým způsobem, že se pak dá šroub pohodlně vyšroubovat a matička už tam zůstane. Jakmile jsem objevil tento postup (na konci celé stavby), nastala procházka růžovým sadem.

Další zádrhely vypíšu už jen heslovitě: plastové krytky motorů osy Z nemají dost místa na kabely od motoru a pokud si nedáte pozor, přiskřípnete si je. Je potřeba je srovnat do úzkého pramínku a vést je přesně středem, kam nevidíte, když tam motor cpete.

Dále je chyba, že až po namontování motorů osy Z je vidět, že jejich plastové držáky třeba nejsou přesně ve směru svislého rámu. Rozdělávat dva kroky zpět a rovnat se to nikomu nechce, zároveň jsou šroubky v plastu pod motory nepřístupné. Tohle nevím, jak vylepšit - možná si tam orientačně přidržet motor ještě před finálním přitažením?

Další problém je v míře napnutí gumových řemeniček. Návod praví, že řemen má být napnutý tak, až při brnknutí vydává zvuk jako struna. Návod sice nezmiňuje, jako která struna by měla guma znít, ale odhadem jsem to na ose Y napnul tak, až to málem vylomilo podvyživený plastový držáček celého motoru. Tohle je konstrukčně též docela slabé místo. Až úplně na samotném konci, při montáži podložky MK42, se člověk diví, jak má přitáhnout šrouby pod řemenem osy Y - a při podrobném zkoumání fotek v návodu zjistí, že autor tam v klidu imbusovým klíčem napnutý řemen odsune do strany. Z toho jsem vyvodil, že autor nemyslel napnout řemen doopravdy (v takovém případě totiž nejde odhrnout na stranu klíčem) a řemen jsem trochu povolil. Značně to ulevilo tomu plastovému dílečku, který drží motor Y a už byl z toho trochu nakřivo. Tipuji, že se v budoucnu ten držák motoru Y přepracuje, nebo alespoň se motor podepře na opačném konci, ať se tak tahem gumy nekřiví.

To je myslím vše, na co může člověk i při následování dokonalého návodu ke stavbě narazit a co musí vyřešit. Posledním problémem u mě byla PINDA, ale to až při samotném tisku, resp. při úvodní kalibraci:


Návod praví, abychom ji umístili na začátku přibližně nějak takto vysoko (podle fotografie, kdy horní konec sondy PINDA má být pod okrajem plastu pro vedení kabelů). To jsem přesně udělal, a pak se při autokonfiguraci se zlou potázal. Při prvotním zaměřování autokalibračních bodů se tryska opřela vší silou do rohu podložky a celou ji prohnula. Pak začaly motory Z přeskakovat a já jsem v panice vypl celou tiskárnu. Přesně takto blbě to dělá spoustě lidí na Youtube, a někteří to dokonce považují za OK stav a nechávají si takto proďobat podložku na všech devíti místech. Děs běs!

Oslovil jsem online podporu fy Prusa Research, ale u klávesnice byla zrovna Mona, a než mi stihla sehnat nějakou fundovanou odpověď, tak jsem na to za pět minut přišel sám: je potřeba dát PINDU co nejníže, tedy samozřejmě o půl milimetru výš než je konec trysky, ale prostě co nejníž! Jinak nevidí ty autokalibrační body a při úvodním testu tryska poničí podložku a ostatní věci. Tady bych se přimlouval za nějakou jednoduchou pomůcku, třeba kousek plastu, na kterém by byly dva schůdečky, kdy o ten nižší by se ručně při stavbě porolovala dolů osa Z tak, aby se hrot trysky o plast opřel, a pak by se PINDA posunula tak, aby seděla na vyšším schodečku plastové pomůcky (a ten schodeček by měl max. 1 mm, aby lidi nedali PINDU příliš vysoko).


Po vyřešení výšky PINDY proběhla úvodní kalibrace a pak jsem už začal ladit výšku hlavy podle V2calibration.gcode souboru. To proběhlo v cuku letu a pak už jsem normálně začal tisknout! Když si vzpomenu na všechny ty rituální tance, které jsme museli absolvovat při tisku z ABS na naší staré  tiskárně, tak jsem úplně šťastný, že teď mohu prostě jen přijít, stisknout tlako a začít tisknout. Bez rituálů, bez přípravy MK42 podložky, bez ničeho. Tisk z PLA zatím vypadá jako ta největší pohoda na světě. Hle, i 120mm vysoké úzké objekty jdou vytisknout bez trhání po vrstvách:


Ze samé radosti jsem si vytiskl nový držák cívek s filamentem, který navrhl +Tomáš Vít  a publikoval na Thingiverse. Ten původní Průšův totiž vypadá velmi nespolehlivě a nešikovně při častější výměně cívek.


Celý tisk trval asi 9 hodin - ta špulka, ač tištěna podle FAST profilu (vrstva 0,35 mm) trvala pět hodin, ty držáky níže na NORMAL profil (vrstva 0,2 mm) pak další čtyři a půl hodiny. Výsledek je ovšem dokonalý.


K 9.listopadu 2016 tedy přechází moje nová 3D tiskárna i3 MK2 ze stavby skokem rovnou do plného provozu. Začnu ji sledovat bedlivým okem, jestli i za měsíc či za půl roku bude pořád fungovat takto perfektně "na první ťuk", jestli se nic nerozladí či nerozbije - a určitě sem či na mém G+ napíšu. Mé původní obavy ze stability konstrukce jsem rozehnal tím, že jsem všechny šroubové spoje už při stavbě opravdu důkladně utáhl. A co se týče pevnosti a robustnosti spoje rámu a vodorovné části, tak ta je lepší, než jsem předpokládal - asi hodně podrží to trafo, a zbytek je opět na pořádném dotažení šroubů na tom závitovém spodním rámu.

P.S. držák displeje na závitové tyče nejde nasadit ani za použití nelidské či dokonce nadlidské síly. Opravdu ne (podle fotek jsem měl nějakou novou konstrukci, tak bych se u Prusa Research přimlouval za trošinku větší otvory pro ty tyče). Pomohlo opět mírně probrousit ta očka.

EDIT 11.11.2016: doplnění dvou drobností

Ještě jsem si vybavil dvě věci: jak jsem tu tiskárnu stavěl, tak jsem se sice celou dobu pevně držel návodu, ale na samotném konci, při kompletaci krabičky elektroniky, jsem si už tak věřil, že jsem si přecejen dovolil odchýlit se od oficiálního manuálu, a to v kapitole 8, Step 3, druhá/třetí fotka: tady se má do vytištěné štěrbiny zasunout matička M3n, ale ta mi tam ani za boha nešla nacpat, protože otvor byl mnohem nižší. Proto jsem kreativně sáhl po pytlíčku se SPARE součástkami a vzal jednu čtyřhranou matičku, která je mnohem tenčí a do otvoru přesně pasovala. Skoro jsem se divil, jestli tam opravdu patřila M3n, nebo jestli se jedná o chybičku v návodu.



A jedna drobnost při úvodní kalibraci tiskárny, na kterou byste určitě přišli sami, ale stejně ji pro zajímavost zmíním. Když se hledá end-stop osy Y, jede vozík až úplně dozadu. Mně však na konci začal hrčet a přeskakovat, až jsem se lekl, že end-stop není správně zapojen. Při podrobnějším zkoumání jsem zjistil, že volný konec řemínku pohonu osy Y je tak dlouhý (asi 1,5 cm), že když se vozík dostal až skoro nakonec, tak se přečnívající konec řemínku zapletl do ozubeného kolečka pohonu a zablokoval ho - proto to přeskakování. K end-stopu v tu chvíli chyběly tak 2-3 mm. Vyřešil jsem to, navzdory radám v manuálu, jednoduše ustřižením přečnívajícího konce řemínku. Potom hned vozík dojel až na konec k end-stopu a tiskárna mohla pokračovat k problému s PINDOU, zmíněným výše.

sobota 29. října 2016

Jak vybrat 3D tiskárnu

Jak si domů vybrat 3D tiskárnu? Normální člověk to má docela jednoduché: buďto mu poradí někdo z rodiny či známý (kdo už ji má), nebo podlehne reklamě - třeba v e-shopu, na webu, na výstavě. Koupí si ji a je hotovo. Super hacker se může rozhodnout si ji postavit sám, ale na principu výběru to moc nemění - opět buďto poradí známý, anebo podlehne nějaké informaci, kterou někde náhodně pochytí.

Bohužel já jsem si tento proces výběru 3D tiskárny udělal mnohem složitější. Hlavním důvodem nejspíš bylo, že jsem už jednu tiskárnu měl. Díky tomu znám velmi dobře mnoho problémů, které při stavbě i samotném tisku nastávají a křečovitě jsem se jim všem chtěl při koupi druhé tiskárny vyhnout. I samotné pořízení druhé tiskárny je vlastně útěkem od problémů s první tiskárnou, které možné vůbec nebyly způsobené jí, ale jen nekvalitním filamentem (kolísající průměr -> zasekávání v trysce, také chybějící chlazení -> prokluzování v extruderu, atd.).

Stanovil jsem si proto podmínky: nic nestavět, koupit si hotový (kvůli záruce) osvědčený český výrobek (kvůli servisu). I když jsem měl občas nutkání koupit si něco z Číny za 8 až 15 tisíc korun v Alze či jiném českém e-shopu, vždycky jsem nakonec ucukl. Zkušenosti lidí s těmito zázraky jsou totiž veskrze negativní - většina majitelů musela postupně vyměnit na takových tiskárnách všechny díly, aby to začalo fungovat spolehlivě. A to je opět práce, které jsem se chtěl za každou cen vyhnout.

Na jaře vyšly na Lupě články o českých 3D tiskárnách: Průšovy i3, Poseidonu a KRYAL Cube. O Průšovi jsem samozřejmě věděl už celé dlouhé roky, ale ignoroval jsem ho, protože jeho tiskárna i3 stojí skoro 19 tisíc korun a to se mi zdálo nedosažitelně mnoho. Poseidon Duo za necelých 16 tisíc korun se mi zdál mnohem lepší - na první pohled pevnější konstrukce, tisk ze dvou hlav zároveň, a ještě tři tisíce ušetřené.

No a Kryal Cube - to je úplná pohádka: když si člověk čte ta hesla na stránce "Proč KRYAL Cube", srdce jen plesá! "Robustní konstrukce", "stabilní stolek", "možnost zakrytování" - ano! Možnost zakrytování je pro mě velmi důležitá, protože ze zkušeností s první tiskárnou vím, jak je nemožné tisknout z ABS na nezakrytované tiskárně, když v místnosti není celou dobu stálá a vysoká teplota. Tohle všechno KRYAL má, a ještě mnohem víc! Možnost dvou hlav, odladěnost atd. Jediné mínus - cena. Téměř 23 tisíc korun mi přišlo jako strašně moc peněz.

Mimochodem, všechny tři ceny (16, 19 a 23 tisíc) jsou za stavebnice. Ceny sestavených tiskáren jsou o vražedných 7 tisíc korun vyšší. Tedy ony ty ceny nejsou nijak přemrštěné, protože postavit tu tiskárnu trvá zřejmě minimálně 8 hodin čistého času, a navíc se to nemusí vždy povést, takže by bylo rozumnější koupit tiskárnu složenou a odladěnou, ale třicet tisíc? To je cena ojetého auta! To si asi domů nemůže dovolit koupit každý, proto bude nutné vzít stavebnici a 7 tisíc ušetřit na úkor vlastního času. Koneckonců, dneska si umí postavit takovou konstrukci každý ňouma za stovku (příklad ve videu níže).



Takže jsem se zaměřil na Poseidon Duo. Naštěstí je jeho výrobce poměrně sdílný a na YouTube má hned jedenáct videí. Z nich je vidět, jak je Poseidon úžasná tiskárna a jak božsky tiskne. Místy se mi zdálo, že je to až moc dokonalé - třeba jsem při tisku krychličky viděl, že se jeden její roh bortí teplem (jak to moc dobře znám ze svých tisků) a pak po dotisknutí naráz byla kostička perfektní, ale snažil jsem se to autorovi videí prominout.

Někdy začátkem srpna jsem měl za sebou už pět měsíců váhání, přemýšlení a rozhodování a pomalu jsem se klonil k tomu Poseidonu. Když jsem se s tím svěřil různým lidem od fochu, byl jsem naráz varován, že není všechno zlato co se třpytí. Dokonce jsem měl možnost prohlédnout si fotky ze stavby tiskárny, ze kterých bylo vidět, že díly nejsou úplně OK (jemně řečeno) a ne úplně všechno do sebe pasuje jak má. Nechci tím nijak hanit samotný Poseidon Duo či jeho výrobce, je možné, že jsem viděl fotky ze stavby nějaké starší či nepovedené tiskárny a že letošní verze už jsou o dva řády lepší, ale mou důvěrou to zacloumalo natolik, že jsem se od Poseidonu odklonil a zaměřil se na zbývající dvě tiskárny.

i3 jsem viděl lidi stavět na LinuxDays v říjnu 2013 a její konstrukce je skutečně opakem slova "robustní". Dokonce bych řekl, že se to chvěje už při pouhém pohledu, co potom teprve při tisku! Oproti KRYALu je to úplná třasořitka. Navíc jsem si plánoval, že si ten KRYAL zakrytuju, jeho tvar pravidelné kostky tomu naprosto nahrává. Už jsem začínal být i smířený s cenou, která je sice nejvyšší z mých tří favoritů, ale je jasné, že platím za mnohem lepší mechanickou část, když v tom jsem narazil na informaci o i3 MK2.

Průšova i3 MK2 je evolucí verze i3. Seznam novinek má asi deset položek, mě však zaujala jen jedna: vyhřívaná podložka MK42! Nejen, že je navržena a vyrobena tak, že (dle tvrzení výrobce Prusa Research) je na celé ploše stejnoměrná teplota, ale navíc má na sobě speciální povrch z PEI, na který se dá tisknout běžným materiály bez jakékoliv mezivrstvy! Potírání skleněné destičky džusíkem z rozpuštěného ABS byla jedna z věcí, kterou jsem na naší staré 3D tiskárně trošku nesnášel. Představa, že se tomu dá vyhnout, mi způsobila naprostá rozhodovací muka... KRYAL s pevnou konstrukcí nebo i3 MK2 se super podložkou?

Následující 4 týdny (srpen/září) jsem se doslova trápil. Pročítal jsem všechny možné zdroje informací, všechny recenze, otrocky sledoval všechna videa a snažil se z toho nějak logicky vydedukovat správnou volbu. Dlužno dodat, že na webu nejsou prakticky žádné informace o KRYALu, proto jsem navázal přímé spojení s Petrem Šmerákem z týmu KRYAL Cube a vyměnil si s ním desítky mailů, ve kterých jsme probírali každičký detail tiskárny i samotného tisku. Petrovy informace byly dokonalé, ale potřeboval jsem je ověřit od někoho nezávislého, od někoho zvenčí, kdo už KRYAL doma má a tiskne. A tu se ukázalo, že KRYAL doma nikdo nemá... A já jsem zase nevěděl, jestli vsadit na masovost Průšovy i3 (aktuálně nejpoužívanější 3D tiskárna na celém světě!), anebo jít do technicky dokonalého řešení KRYAL Cube, které "nikdo" nezná ("nikdo" = někdo z běžných lidí na sociálních sítích, kdo by se nechal slyšet, jak to tiskne).

Příklad 12+2 = 14 hodin dlouhého videa, které jsem taky pečlivě pozoroval (a celou dobu trpěl z té německé angličtiny!):



V tu dobu jsem otravoval všechny kamarády, známé i neznámé lidi a na jejich běžný dotaz "jak se máš" jsem jim vysypal všechny výše uvedené informace a snažil se s z nich vymámit nějaký další, rozhodující důvod, který by mi ukázal správnou volbu české 3D tiskárny. Například +Tomáš Vít pravil, že pro něj je rozhodující možnost vytisknout si náhradní díl k tiskárně - tedy že tiskárna musí být Open Source. To je dobrý důvod - a jazýček na vahách to přechyluje k i3 MK2, protože KRYAL Cube není open source, nemá své díly ke stažení někde na webu. Zároveň se mi ale na mou zoufalou výzvu ozval jeden člověk, který řekl, že KRYAL má a že normálně tiskne. Hmmm. Takže zase nevím.

Líbí se mi, že KRYAL má možnost dvou hlav, takže může tisknout třeba podpory zároveň při tisku... No ale Průša má zase tým 60 lidí a stíhá makat i na firmware a dalším vývoji (například teď urychlili tisk přepsáním části rutin do celočíselných výpočtů - to se mi líbí, že to pořád táhne kupředu). Takže kterou?!

Pak ovšem zasadil rozhodující úder Petr Šmerák: pravděpodobně se mi podařilo ho přesvědčit, že o jejich tiskárně "nikdo" neví, takže ho nenapadlo nic lepšího než mi půjčit sestavený a vyladěný KRYAL Cube! Nejspíš dobře věděl, že když tu tiskárnu budu mít, že napíšu všude, jak tiskne. Ono se to nezdá, ale tento můj blogísek je docela dobře indexovaný Googlem, takže co sem napíšu, to se lidem na dotaz objevuje v odpovědích. To byla neodolatelná nabídka. Teda byla by nedolatelná, kdybychom neměli mezi sebou 300 km rozkopané dálnice. To by při vracení tiskárny představovalo 1200 km a 15 hodin čistého času jen v autě. Hmmm, to asi ne, svého času si náramně cením a tohle půjčení by se mi tak příliš prodražilo (cca 18 tisíc Kč jen za naftu a čas).

Zkoušeli jsme to ještě nějakou dobu domlouvat lépe - například jsem chtěl spojit cestu pro půjčení s cestou na letošní LinuxDays, a předem jsem se smiřoval s tím, že tiskárnu nikdy vracet nebudu, ale nechám si ji a koupím, protože vrácení by mě přišlo příliš draho). Už už to vypadalo, že to klapne, ale pak se stala další nečekaná věc: Průša na samém konci září, pouhý týden před termínem LinuxDays, ukázal čtyřbarevný tisk! A to mě teda úplně dorazilo...


Ne, že by mi šlo o samotný tisk čtyřmi barvami, ale průvodní video o chybách při tisku dvěma hlavami bylo tak sugestivní, že jsem si řekl, že už KRYAL kvůli dvěma hlavám nepotřebuju. On mi sice Petr Šmerák obratem vyhotovil dokument obracející informace z Průšova videa na hlavu, ale přiznám se, že už jsem byl tím vybíráním tak zedřený, že už jsem se v podstatě vzdal a vybral si tu JEDNODUŠŠÍ variantu, tedy objednat si na webu i3 MK2 a prostě počkat, až mi domů sama přijde krabice, pro kterou nemusím nikam jezdit.

Těsně po tomto mém "3D vyhoření" jsem v Praze osobně KRYAL Cube poprvé naživo viděl a mohu tak potvrdit, že konstrukce je skutečná nádhera a na první pohled tiskárna tiskne dobře. Zároveň mě +Miro Hrončok vzal do FIT Laboratoře 3D tisku a ukázal mi tam hromadu dalších tiskáren a věcí, ze kterých mi šla hlava kolem (například jsem v ruce držel MK42 s PEI a zdálo se mi, že ta podložka není rovná, ale že je různě křivá a uprostřed vyboulená!). Že mi potom Miro nabídl ještě další tiskárnu, kterou bych mohl mít, už ani raději nezmiňuju.

Vím, že je to smutný závěr tak dlouhého článku, který celou dobu pracoval s fakty a porovnával vlastnosti tiskáren jen proto, abych na konci v podstatě na všechno rezignoval. Ale ono je to právě o tom - tak nesmyslně dlouho vybírat a promarnit na tom tolik energie a času (a tedy peněz) byla velká chyba. Za tu dobu jsem mohl mít vyděláno na obě dvě tiskárny a ještě mít na hlavě o pár šedivých vlasů méně. Proto jsem rád, že jsem se nakonec rozhodl postupovat vlastně docela systematicky:
  1. koupit i3 MK2 (cesta nejmenšího odporu)
  2. napsat, jak doopravdy tiskne (ne jen první den, ale i po měsíci, po půl roce atd.)
  3. pokud bude tisknout blbě, sehnat KRYAL Cube a konečně ty dvě tiskárny objektivně porovnat
Takže se můžete těšit na další informace ze světa 3D tisku, bez cenzury a přikrášlování :-) Jako první začneme popisem stavby tiskárny.

pondělí 12. září 2016

WiFi Teploměr a termostat v nové verzi

Před čtyřmi měsíci jsem tu představil první verzi WiFi Teploměru (přičemž nultou verzi, prototyp, jsem právě před rokem předal +Kamil Zmeškal ).

Od té doby jsem několikrát mírně vylepšil plošný spoj, značně jsem zapracoval na firmware, pohnul jsem trochu s cloudovou službou, ujistil se, že 11 čidel připojených naráz není problém, ale s jednou věcí jsem přece jen trochu narazil: když někdo potřeboval spínat programovatelným termostatem ve WiFi Teploměru spotřebič na síťové napětí (tj. 230 V střídavých), musel použít externí relé. K němu pak potřeboval krabičku, musel to propojit kablíkem s WiFi Teploměrem a v tu chvíli to přestalo být elegantní řešení.


Proto přicházím se zbrusu novou verzí WiFi Teploměru/termostatu, která je zaměřena právě na spínání síťového napětí, tedy spotřebičů s příkonem až 2 kW (přesněji 2300 W). Relé je v této verzi napevno vestavěno. Na obrázku níže má WiFi Teploměr pod krytkou vlevo svorkovnici pro vstup síťového napětí a pod pravou krytkou pak spínaný výstup téhož napětí. Zároveň se ze síťového napětí i sám WiFi Teploměr napájí.


Tato nová verze (říkejme jí verze AC) WiFi Teploměru bude existovat souběžně s původní verzí (verze DC), protože má sice výhodu jednoduššího napájení a spínání síťového napětí, ale zase třeba chybí možnost externí antény, což pro někoho může být zásadní nedostatek. A taky neumí běžet na nízké stejnosměrné napětí, takže například v mobilních či od sítě vzdálených aplikacích zůstává verze DC favoritem.


Rozdíly mezi oběma verzemi přehledně shrnuje následující tabulka:
VerzeDCAC
Napájení3 - 16 V stejnosměrných90 - 250 V střídavých
Termostatický výstupvolitelný (+ 300 Kč), 5 AAno, 10 A
Vnitřní WiFi anténaAnoAno
Možnost vnější antényAnoNe
Cena1890 Kč1490 Kč
Vhodné příslušenstvízdroj či USB kabel, anténapřívodní kabel, odvodní kabel

Ostatní vlastnosti, tedy způsob připojení čidel (stereo jack 3,5 mm), firmware a způsob úvodního nastavení, LEDková indikace a ovládání jedním tlačítkem, a také péče a láska, s jakou to vymýšlím, dávám dohromady a testuji, zůstávají stejné.

V případě zájmu pište na petr@pstehlik.cz