Lolin32 a Lolin32 Lite sú najznámejšie vývojové ESP32 dosky, ktorých dizajn a pôvodná koncepcia je od Wemosu, populárneho čínskeho výrobcu devkitov. Wemos sa preslávil ešte skôr so slávnymi Wemosmi D1 Mini ešte na architektúre ESP8266-12E, či 12F - moduloch od Espressif Systems, aj s koncepciou najrôznejších shieldov, ktoré bolo možné na seba vrstviť a dostať zaujímavý kompakt podľa potreby. Shieldy mali kompatibilný pinout.

Wemos v súčasnosti tieto devkity už nevyrába, no tento koncept je stále vyrábaný a predávaný mnohými čínskymi výrobcami, ktorí častokrát nahrádzajú komponenty za lacnejšie alternatívy, čo môže mať výhody, ale aj nevýhody z pohľadu, že môžete mať X odlišných hardvérových prevedení rovnakého devkitu. Predávané sú najmä prvé verzie týchto kitov a preto je dobré vedieť, aké nevýhody nájdeme na oboch konceptoch dosiek a ako vôbec fungujú a kde sú ich limity.
Poďme na vizuálnu stránku veci a prvotné porovnanie oboch devkitov. Lolin32 naľavo, Lolin32 Lite napravo:


Na devkitoch môžeme vidieť spoločné znaky a to RESET tlačidlo, napájací, zároveň programovací konektor microUSB a batériový konektor PH 2.0 pre Li-Ion batérie, ktorý má zhodnú polaritu s kladným pólom naľavo. Tento konektor je bežný u Li-Pol batérii, má rozteč pinov 2.0 mm tak, ako napovedá označenie. Taktiež je často u Li-pol batérii aj 1.0 mm konektor, ale existujú káble s konverziou 1.0 mm PH konektora na 2.0 mm štandard. Li-Pol batérie s PH 2.0 konektorom a správou orientáciou + a - pólov batérii má v ponuke aj známy "Arduino obchod" Techfun od výrobcu NACOON.
Obe dosky majú LED diódu indikujúcu nabíjanie batérie a tiež signalizačnú LED diódu, ktorú je možné ovládať samostatným pinom ESP32 ( u každej verzie je to iný GPIO a LED môže mať invertovanú logiku). Po stránke pamäte majú obe dosky zhodne 4 MB flash pamäť a aj štandardnú RAM pamäť cez 500 kB.
Ako už názov Lite naznačuje, táto verzia devkitu je lacnejším variantom, ktorý má menší počet GPIO, nepoužíva ESP32 modul, ale samostatný ESP32 čip s flash pamäťou a tiež tam má obsiahnutú aj potrebnú elektroniku ako externý kryštál, či PCB anténu. Takýto dizajn je náchylnejší na RF rušenie v porovnaní s oficiálnym modulom od Espressif Systems, ktorý je certifikovaný a optimalizovaný pre RF vysielanie, prijímanie bude dosahovať zrejme horšie výsledky.

USB-UART prevodníky CP210X na Lolin32 (naľavo) a CH340 na Lolin32 Lite (napravo)
Ďalšie patrné rozdiely na prvý pohľad je USB-UART prevodník. Lolin32 používa CP210X od Silicon Labs, ktorý je u väčšiny ESP32 devkitov štandardom. Verzia Lite používa cenovo dostupnejší CH340 od čínskeho výrobcu WCH (NanjingQinhengMicroelectronics), ktorý je široko používaný najmä pre Arduino klony. Windows operačné systémy nedokážu tento prevodník nainštalovať štýlom plug n play, ale je potrebné manuálne stiahnuť ovládač zo stránok WCH a nainštalovať ho. Operačné systémy ako Linux či MacOS by ho mali podporovať natívne, resp. štýlom plug n play bez ohľadu na verziu operačného systému.
Rovnaký, alebo podobný je aj nabíjací obvod u Lolin32, aj jeho Lite verzie. Nájdeme tu najčastejšie TP4054, v niektorých revíziách je možný až TP4056, prípadne ich klony. Klony od čínskych výrobcov môžu mať najčastejšie označenie CN4054, LP4054, XC4054, LTC4054, prípadne TC4056A, IP4056, FS4056, JW4056, TPN4056. Niektoré klony môžu, ale aj nemusia fungovať lepšie ako pôvodné obvody. Nakoľko je Lolin32 vyrábaný mnohými predajcami, s najväčšou pravdepodobnosťou bude mať jeden z klonov nabíjacieho obvodu, najčastejšie ide o LTC4054 s označením LTH7.
Oproti štandardnému TP4054 je viditeľný rozdiel v správaní LED diódy, ktorá indikuje nabíjanie. Ak nemáte zapojenú batériu a pripojíte microUSB konektor, LED dióda bude blikať v pravidelných intervaloch a pri nabíjaní bude svietiť. U štandardného TP4054 by sa LED dióda rozsvietila až pri nabíjaní a štandardne bez batérie by bola zhasnutá a neblikala by. Odporúča sa mať pripojenú batériu ešte pred pripojením microUSB.

Tieto obvody sú veľmi jednoduché a cenovo dostupné. Nájdu sa na mnohých Arduino moduloch, no nie sú 100% bezchybné. Umožňujú nabíjať batériu v režime CC/CV s maximálnym prúdom 500 mA (je možné aj viac s iným rezistorom). Štandardne tieto obvody nabíjajú v režime CC (konštantný prúd), kedy sa batéria nabíja týmto prúdom. Prúd je definovaný rezistorom, ktorý je pripojený na PROG pin obvodu TP4054. Pri dosiahnutí napätia 4,2V sa nabíjací obvod prepne do režimu CV (konštantné napätie) a úmerne sa znižuje prúd v závislosti od dosahovanej maximálnej kapacity. Nabíjanie je ukončené v momente, keď nabíjací prúd klesne pod 1/10 pôvodného nabíjacieho prúdu (v tomto prípade pod 50 mA). Samotnému obvodu TP4054 ale chýbajú určité ochrany v podobe BMS.

Preto je vhodné pripojiť k devkitu batériu, ktorá má túto ochranu vlastnú na PCB doske a nemusíte sa tak báť toho, že by doska v prípade skratu vyhorela, alebo samotná batéria, pretože zasiahne elektronika a batériu v takomto stave bezpečne odpojí. BMS PCB nájdete priamo na Li-pol batériách, ale nie všetkých, musíte sa uistiť, že tam plošák s ochranným obvodom je.
Rovnako tak sa ochranný obvod môže líšiť aj vo funkciách, ktoré zahŕňa nvyše. Častokrát neobsahujú napr. tepelnú ochranu, či ochranu pred vybitím batérie pod určitú úroveň. Testovaná Lipolka z Techfunu s ochranným obvodom nemá ochranu pred vybitím batérie pod bezpečnú úroveň 3.0V. Batéria klesla po 20-dňovej prevádzke v napätí a ESP32 sa už nedokázalo spsutiť, preto sa iba dookola spúšťalo, cyklenie spôsobilo brownout detection. Samotné spúšťanie robilo prúdové nárazy, keďže ESP32 vie potiahnuť až 480 mA rozbehový prúd pri štarte (3.3V).
Vykonal som meranie voltmetrom až po 14-tich hodinách od času, kedy ESP32 prestalo posielať dáta. Výsledok bolo napäte 0.0V na batérii. Teda vyťahalo ju úplne domrtva. Vyskúšal som si tak aj jej plné nabitie skrz Lolin32 a podarilo sa ju nabiť aj z nulového napätia. Nabíjanie trvalo menej ako tri hodiny, pokým LED dióda (indikátor nabíjania) zhasla. Plne nabitá batéria mala napätie 4,18V, teda nebola prebitá, šlo o 1000 mAh variant, aj z toho pohľadu nabíjací obvod funguje správne.
Ochranný obvod štandardne nie je u Li-Ion batérii, (i keď niektorí výrobcovia ako napríklad GeB [Sino-US] ich integruje) a ich použitie bez takéhoto obvodu môže byť naozaj problémové, až nebezpečné v takejto hardvérovej konfigurácii.

Čo je teda u TP4054 problémom a k čomu nemá ochranu? Nemá ochranu pred propólovaním, vybitiu batérie pod bezpečnú úroveň (t.j. pod 3.0V) a tiež ani pred preťažením výstupu (nadprúdom) napr. v dôsledku skratu na výstupe, či veľkej záťaže. Ak by ste prepólovali napájanie, pravdepodobne by okamžite zhorel nabíjací obvod na devkite a možno by došlo k odpáleniu aj ďalších častí dosky a mohla by si to odniesť aj batéria, najmä ak by skrat netrval len chvíľu. Ak necháte ESP napájané z batérie a nebudete ju dobíjať, vyťahá ju do mrtva, hlboko pod povolené 3V, keďže obvod sám o sebe toto neriadi. Obvod je navrhnutý iba pre jednu batériu typu Li-Ion / Li-Pol. Nepoužívajte ho pre dve batérie v paralélnom zapojení!
Poďme ale k hlavným rozdielom, ktoré budú mať vplyv aj na aplikácie a vhodnosť jednotlivých devkitov. U Lolin32 vidíme batériový konektor otočený kolmo vzhľadom na microUSB konektor, čo môže byť výhodné v mnohých aplikáciách, kedy zvonku môžete dosku napájať cez microUSB, či už stálym napájaním, kedy batériu používate iba ako zálohu v prípade výpadku napájania, alebo ju budete dobíjať občasným zdrojom, napr. solárnym panelom s microUSB výstupom a batériu máte bezpečne schovanú v krabičke.
U verzie Lite to môže byť problém, lebo musíte batériu pripájať zvonku, ak by ste mali microUSB na stene krabičky pre externé napájanie, minimálne tak budete potrebovať o dieru viac do krabičky. Je tu potom otázka aj to, kam s batériou, predsa neostane von, ale budete kvôli tomu prevliekať kábel zvonku, alebo posuniete Lolin32 Lite viac dovnútra a kvôli tomu budete musieť zväčšiť otvor na microUSB kábel? Mnoho riešení, každé s nevýhodou.
V tomto ohľade Lolin32 má lepšie riešenie pripojenia batérie. Jedným z najväčších rozdielov je, že Lolin32 má aj 5V pin a verzia Lite ho nemá. Pozor ale nato, ako 5V pin funguje. Ak dosku napájate skrz batériu a nie cez microUSB, tak na pine 5V nie je žiadne napätie, je tzv. pasívny!

Mnoho vývojárov pri práci s hardvérom na stole si ani neuvedomí, že pri napájaní dosky priamo z batérie nebudú môcť využiť 5V pin, ktorý považujú za samozrejmosť, avšak pri vývoji dosku napájajú aj skrz 5V microUSB port, teda 5V vetva je vždy aktívna a prídu nato až v produkcii, horšie ak už aj s vyrobenou DPS, ktorú musia následne prerábať na 3.3V napájanie periférii, alebo ak periférie nie je možné prevádzkovať s takýmto napätím tak musia použiť úplne iné HW riešenie. Lolin32 má vyvedené až 5x GND a 3x 3.3V pin, pričom u Lite verzie je to iba 1x GND a 1x 3.3V pin, teda v prípade viacerých periférii musíte všetky pripojiť na jeden GND pin, ktorý musí zvládnuť celé prúdové zaťaženie.
Pri napájaní mikrokontroléra skrz batériu máte výhodu z pohľadu spotreby aj v tom, že nie je napájaný USB-UART prevodník. Samotnú konverziu napätia na 3.3V, ktoré budú prítomné na 3V3 pinoch a bude nimi napájaný aj samotný modul ESP32-WROOM-32 na Lolin32 zabezpečuje IC ME6211 lineárny regulátor (LDO), v rámci alternatív nájdete aj AMS1117-3.3, či LD1117-3.3. Nakoľko ide o regulátor, nemá tak vysokú účinnosť ako spínaný zdroj. Tu je to optimalizované z pohľadu cena/výkon.

Keďže Li-Pol batéria má spodnú hranicu napätia na 3.0V, teda klesne pod 3.3V (hodnota výstupu regulátora), toto napätie bude prítomné aj na 3.3V strane regulátora, ten ho nezvýši na 3.3V, nakoľko regulátor má funkciu iba v znižovaní napätia. ESP32 ako také toto napätie zvládne, keďže má napäťovú toleranciu. Horšie to však môžu znášať periférie, ktoré k devkitu pripojíte, ak majú spodnú hranicu napájania na 3.3V.
Pri napájaní z batérie má devkit Lolin32 v režime spánku okamžitú spotrebu 1,98 mA pri ref. napätí 3,7V (emulované napájanie batériou z regulátora ZK-4KX). Pri napájaní z USB (bez pripojenej batérie) je odber v režime spánku devkitu 3,5 mA. Verzia Lolin32 Lite má okamžitú spotrebu 0,87 mA v režime spánku a 4,7 mA pri napájaní z USB (bez pripojenej batérie). Ako vidíme, verzia Lite je o niečo lepšie optimalizovaná pre režim napájania z batérie, ale horšie pre režim napájania z microUSB. Lolin32 to má presne opačne. Tieto spotreby sú len pre devkity samotné a tak každá ďalšia trvalo napájaná periféria túto spotrebu ešte navýši.
V závislosti od použitej batérie nemusí byť ani táto vyššia spotreba problémom. Môže to pomôcť pri správnom cyklovaní batérie nabíjacími cyklami, kedy sa bude efektívne využívať celé napäťové spektrum batérie.
Medzi ďalšie rozdiely by som zaradil, že verzia Lite nemá vyvedené HW UART piny. V prípade, že by sa vám odtrhol microUSB konektor, nebudete schopní už do mikrokontroléra nahrať program touto alternatívnou cestou. V prípade Lolin32 to bude možné. Zároveň sa na tieto piny aj pri štandardnom používaní UART linky môžete pripojiť na tieto piny paralélne logickým analyzátorom, napr. Saleae, to vám umožní debugovať, čo sa na HW UART linke deje.