Takže klasická otázka a bolest těchto destiček: na jakou nejmenší spotřebu se to umí suspendnout?
Na druhou stranu když to dělá Pine(Phone) - ten vydrží nějak na baterku snad, ne?
První pohled do schématu a už špatný, 1.1 mA z 5V USB jen kvůli příliš tvrdé odporové děličce, Iq regulátoru a always-on LEDce. Pod tohle číslo to nepůjde ani kdyby čip a ostatní věci na desce vůbec nebyly.
19. 10. 2022, 00:04 editováno autorem komentáře
Což o to, schéma je jednoduché a čip je v QFN, takže bych si klidně mohl udělat vlastní desku, nebo tu LEDku a měnič sundat, nebo někdo určitě za chvíli udělá klon desky co to mít nebude.
Koukal jsem do dokumentace a umí to HBN režim a Power-down sleep mode při kterých to ale smaže RAM, takže pro Linux nepoužitelné. A pak už jsem tam nic dalšího nenašel, takže smůla jako obvykle. Je to fakt hloupé, protože komerční mobily s Androidem se dokážou uspat na milliwatty, případně s wifi a LTE na nízké desítky mW.
No je to tak, ale i kdyby deska byla OK tak dalsi problem je software, tohle neni arduino s atmega nebo STM32 kde si to clovek je schopny nastudovat z datasheetu a ponastavovat tech par registru sam. treba v linuxu napsat kernel driver ktery funguje a driver ktery krome toho se umi uspat a vzbudit pripadne setrit za behu je rozdil. Krasne vyladene to mela Nokia v Maemo, treba android nasilne uspava vsechny procesy (=suspend to ram) pokud nekdo nedrzi wakelock ale Maemo nechalo vsechno bezet, zadny suspend, a stejne to vydrzelo az mesic v idle rezimu (pripadne 14 dni se zapnutym wifi) protoze s tickless kernelem a vyladenyma driverama i aplikacema proste vsechno spalo samo od sebe. mohls jsi mit na pozadi pusteny bash skript se 'sleep x' a on bezel celou dobu a vsecho spalo. Ae to je dnes spis utopie.
I to ESP32 na kterem postupne udelali spoustu prace v SDK to porad neni ani zdaleka idealni pokud clovek chce mit BLE nebo wifi zapnute a spat pripojeny k AP pripadne cekat na bluetooth spojeni nebo byt v advertising modu. pritom opet, kdyz je vsechno vyladene muze to zrat desitky uA i bez nejakeho nasilneho sleep/suspend volani. Treba u ESP32 dost pomuze externi 32kHz krystal (https://github.com/espressif/esp-idf/issues/947), nevidel jsem desku kde by ho meli protoze to skoro nikoho nezajima.
Treba i raspberry ktere je oproti cinskym vecem dost vyladene tohle tema (naprosto vedome) ignoruje protoze to je prilis mnoho prace s malym prinosem => nizka priorita. I ten RP2040 je z tohohle pohledu krok zpet oproti jiny cipum, sleep mod toho cipu je vylozene k smichu.
To je přesně ono... Chtěl jsem na ESP32 postavit pár věcí na baterku, ale zjistil jsem, že to nemá cenu. Jediný možný režim je deepsleep, který znamená "reboot" s bootovacím příznakem. To znamená WiFi, BT, čítače se restartují, takže pokud chci vysílat nějaká data, tak musím projít energeticky náročným přihlášením k síti nebo poměrně složitou a špatně zdokumentovanou inicializací BT (používání BT jako protokolu, ne jen na ESP32). Takže jsem se na to vykašlal.
u ESP32 nrevim co je presne vlastost chipu a vylepseni SDK ale minimalne ty novejsi cipy ESP32-C3,S2,S3 jsou mozna trosku lepsi viz ten bug report, s externim 32kHz krystalem pisou ke konci prumer 600 nebo 300 uA, nevim jestli i klasicky ESP32 to umi, pro ten tam driv psali jednotky mA. S BLE takovy problem neni, tam platforma kde to berou vazne je prumer v desitkach uA vcelku bez problemu, treba nRF52 platforma je krasne zdokumentovana a podporovana ( microbit 2, hromadka levnych cinskych hodinek/fitness trackeru nebo i moduly z aliexpress + sw arduino nebo espruino) nebo Telink cipy/moduly jsou relativne pouzitelne, napr TLSR8251 - xiaomi teplomer za $3-$4 https://github.com/pvvx/ATC_MiThermometer , je k tomu SDK v C, ma to par volnych gpio, na soucasny firmware to bezi cca rok na jednu CR2032 baterku. Takze pro vyvoj v C je hodne moznosti, ale treba pro uplneho zacatecnika to espruino na nrf52 je o napsani par radku v JS a je hotovo a spotreba minimalni.
Pro wifi neco podobneho momentalne nevim ale snad ty novejsi ESP se tam dostanou. Momentalni reseni je samozrejme mit neco co ma wifi i BLE na napajeni a vec s baterkou pak uz jen BLE.
Ohledne wifi mam jeste tip RTL8720DN - modul BW16 a Ameba Arduino, je k tomu i kompletni SDK a zdrojaky vseho na githubu - zajimavost je ze tenhle cip umi i 5Ghz ale tam jsem jeste nemel cas neco napsat a zmerit kolik to ma spotrebu. Datasheety treba i dole pod https://www.seeedstudio.com/Realtek8720DN-2-4G-5G-Dual-Bands-Wireless-and-BLE5-0-Combo-Module-p-4442.html ale jinak https://github.com/ambiot/ambd_sdk Na druhou stranu tohle asi nebude nikdy proslapany mainstream takze ESP32 je asi jednodussi cesta.
S tim BW16/RTL8720DN , ja si chtel buildit vlastni firmware ale ted jsem pogooglil arduino a neni to bohuzel zadna hitparada, je to srovnatelne s ESP32 viz treba https://forum.arduino.cc/t/using-wifi-in-sleep-mode-power-saving-ameba-arduino/659813 cca 14mA. pritom je to divny, wifi ma ve standardu power saving, na routeru se nastavi DTIM/beacon interval a zarizeni presne vi jak dlouho muze spat (i stovky milisekund) nez mu muze prijit dalsi packet tak nevim v cem je problem zustat asociovany s AP a vetsinu casu spat s temer nulovou spotrebou.