ESP32 – jak opravit chybu v návrhu rozhraní na SD kartu (a troška nářků na ESP32)

Jak mi postupně roste velikost kódu pro EasyTherm do ESP8266, tak jsem usoudil, že je na čase se poohlédnout po lepší variantě. Protože jsem chtěl udržet kódovou základnu EasyThermu pokud možno stejnou pro všechny platformy z důvodu snadnějšího vývoje, padla volba na ESP32, se kterým jsem už jednu konstrukci navrhoval… Pokračování textu ESP32 – jak opravit chybu v návrhu rozhraní na SD kartu (a troška nářků na ESP32)

Z notýsku vývojáře – Jak zachytit občasný pád aplikace v ESP8266

Dříve, nebo později se s tím setká každý, kdo tvoří aplikace na mikrokontroléry – skvělá, téměř hotová aplikace občas spadne. Ne tak často, aby se pád dal zachytit debuggerem (pokud se dá k hardware vůbec připojit), ale příliš často na to, aby bylo možné pády ignorovat. Stává se to i při programování ESP8266 a to častěji, než by se mohlo zdát (ti, kdo používají intenzívně komunikující sériový port pomocí knihovny SoftwareSerial o tom zcela nepochybně ví své). Ladění těchto situací bývá velmi obtížné a zdlouhavé, ale naštěstí pro nás existuje v případě ESP8266 cesta, jak si práci usnadnit. SDK, poskytované přímo od Espressif obsahuje možnost, jak při pádu aplikace zavolat uživatelskou funkci, která se jmenuje custom_crash_callback(…). Funkce je volaná z postmortem stavu přímo z jádra (weak alias je definovaný v core_esp8266_postmortem.c ). Její použití ale má nějaká úskalí – nesmí se použít dynamická alokace, blokovací funkce (serial, network, delay, …) a vykonání funkce nesmí trvat příliš dlouho, protože HW watchdog stále běží. Nápad tedy spočívá v tom, že se do EEPROM uloží informace o pádu, které se dají použít pro následnou analýzu. Tento nápad mělo přede mnou už více vývojářů, takže vznikla knihovna EspSaveCrash, která ale bohužel ignoruje zapovězení dynamické alokace, takže pokud vznikl pád aplikace z důvodu problému na heapu, EspSaveCrash nebude fungovat správně. Napsal jsem tedy vlastní variantu, která vychází z uvedené knihovny, ale netrpí tímto neduhem a kterou používám již řadu měsíců.

Pokračování textu Z notýsku vývojáře – Jak zachytit občasný pád aplikace v ESP8266

KSGER STM32 pájecí stanice pod stromeček

Po více než 20-ti letech používání začala moje historická Weller WECP-20 zlobit. Není se čemu divit – opravdu už toho má za sebou hodně, ale jsem na ni zvyklý, takže jsem nejdříve začal hledat na internetu náhradní díly. Tahle stanice se už roky nevyrábí a tomu také odpovídají ceny příslušenství. Rozhodl jsem se tedy, že než platit za náhradní díly více, než je cena nové stanice, nebo kupovat staré, použité zboží v kdovíjakém stavu, že se raději poohlédnu po novém pájedle… Pokračování textu KSGER STM32 pájecí stanice pod stromeček

PCBA – Jak jsem vyráběl a osazoval malou sérii PCB v Číně

Po dobrých zkušenostech s výrobou PCB v Seeed studiu jsem se rozhodl vyzkoušet také možnost osazení desek, tedy službu PCBA. Ve skutečnosti jsem také chtěl vyzkoušet použití SMD součástek velikosti 0402, což je vysoko nad osazovací schopnosti mých rukou a očí, ale nakonec to dopadlo trošku jinak…

Pokračování textu PCBA – Jak jsem vyráběl a osazoval malou sérii PCB v Číně

Měření výšky hladiny ve studni – „ghetto style“

Jeden z dlouholetých kolegů v práci za mnou před prázdninami přišel s prosbou o konstrukci měřiče výšky hladiny ve studni pro jeho švagra, přičemž byl velký tlak na cenu a poměrně jasná představa o měřícím principu. Původně jednoduchá konstrukce, která měla být hotová přes víkend a nainstalovaná během prázdnin se nakonec zvrtla v mnohem sofistikovanější systém (ovšem se stále zachovaným tlakem na cenu 🙂 )…

Pokračování textu Měření výšky hladiny ve studni – „ghetto style“

EasyTherm Connect+, náhled na firmware

Přesto, že firmware pro EasyTherm ještě zdaleka není dokončený, musím na základě četných žádostí trošku poodkrýt vzhled a filozofii. V prvním článku o ETCP jsem uveřejnil informace o tom, že aplikace je kompletně servírovaná ze souborového systému SPIFFS uvnitř ESP8266 – i přes značný nárůst velikosti kódu toto řešení zůstalo stále zachované. Nastavování a programování ETCP nevyžaduje připojení k internetu a celý systém dokáže pracovat v tzv. ostrovním režimu. Pokračování textu EasyTherm Connect+, náhled na firmware

Malá domácí automatizace s ESP8266, část I. – EasyTherm Connect+, HW

Počátek tohoto projektu se datuje těsně před Vánocemi roku 2016. V mailech, které dostávám se objevil jeden, který se dost vymykal normálu – čtenář Dalibor v něm vykreslil zařízení, které by potřeboval navrhnout. Naprosto jasně definoval požadované vstupy a výstupy, na rovinu napsal, k čemu to potřebuje a jaké jsou jeho záměry. Vyměnili jsme si několik mailů, ze kterých vyplynulo, že si udělal i předběžné rešerše co se týče mechanické konstrukce a použitých komponent, takže komunikace s ním byla opravdu velmi konstruktivní a rychle vedla k dohodě – Dalibor vytvořil zadání, na základě kterého jsem začátkem ledna navrhl hardware prvního dílu stavebnice…

Pokračování textu Malá domácí automatizace s ESP8266, část I. – EasyTherm Connect+, HW

TOLoRa – LoRa komunikace pro Turris Omnia

Tento projekt vznikl trošku netradičně – začátek tohoto roku jsem trávil upoutaný na lůžku, ale – asi to většina z vás zná – přes to, že je tělu mizerně, tak mozek se zastavit nedá. Obklopený články z internetu o long range bezdrátových komunikacích a neslavném konci projektu Turris Gadgets jsem dostal nápad, přispět také svojí troškou do mlýna. Stanovil jsem si následující cíle:

  1. NEdělat zařízení ve formě USB donglu – jednak to zabírá cenný USB port a druhak to na mě působí jako nouzové řešení, když jsou zde jiné možnosti připojení
  2. Naučit se (čti „pohrát si s“) nějaký zajímavý mikrokontrolér, se kterým jsem ještě nepracoval
  3. Rozšířit svoje znalosti o Embedded Linuxu

Jakmile se mi tedy udělalo natolik dobře, že jsem mohl zasednout k počítači, dal jsem dohromady zařízení, které vám předkládám…

Pokračování textu TOLoRa – LoRa komunikace pro Turris Omnia

SiPy, aneb jak snadno na IoT pomocí SigFox a Pythonu

Shodou šťastných okolností jsem dostal příležitost k otestování univerzálního vývojového kitu (nejen) pro IoT, obsahujícího jak WiFi a Bluetooth bezdrátová rozhraní, tak i rozhraní pro nově se rozšiřující síť SigFox, v České republice zastřešené firmou SimpleCell. Výsledek testu mě tak nadchl, že už mám vymyšlený reálný projekt, kde modul použiji, ale protože realizace bude vyžadovat návrh a výrobu plošného spoje, což zabere nějaký čas, dovolím si vás nejdříve seznámit s vývojovým kitem a mými prvotními poznatky…

Pokračování textu SiPy, aneb jak snadno na IoT pomocí SigFox a Pythonu

LowPowerLab – Laboratoř nízkého odběru

Tento projekt vznikl na podzim roku 2016. Jeho úkolem bylo umožnit mi ověření a pokusy s bateriovým napájením (a tudíž velmi malou spotřebou) modulu ESP8266. Také měl sloužit jako základ pro konstrukci nové elektroniky meteostanice, nahrazující starý projekt LyMet. Vzhledem k povaze čidel meteostanice (nutnost stálého odečtu například srážkoměru), požadavku na bateriové napájení a nutnosti solárního dobíjení nakonec vzniklo experimentální zařízení, které bych zde rád představil… Pokračování textu LowPowerLab – Laboratoř nízkého odběru

o všem možném…