Seeed Studio je PCB výrobca, avšak do svojho portfólia zahŕňa aj vlastné produkty. Dnes sa pozrieme na vývojovú dosku z rady XIAO, ktorá obsahuje WiFi 6 čip od Espressif Systems, ESP32-C6, ktorá sa predáva už viac ako pol roka. Na úvod treba poznamenať, že vývojové dosky z rady XIAO sa zhodujú predovšetkým v počte vyvedených pinov a to 2x7 s roztečou 2,54 mm (niektoré vývody sú aj zo spodnej strany modulov, napríklad vbat piny, 3V3 pin a iné piny). XIAO rada ponúka aj implementáciu iných modulov od Espressif systems, napríklad Low power ESP32-S3, ale taktiež aj Nordic nRF52840, či SAMD21 od Microchipu, prípadne RP2040 od Raspberry Pi.
Taktiež k týmto doskám existuje ako kompatibilný doplnkový hardvér, napríklad base board s driverom pre ePaper displeje a FPC konektorom, ale nájdeme tu aj rôzne senzory ako mmWave 24 GHz radar, RGB matrix board, okrúhly HMI displej (napríklad pre aplikácie hodiniek, termostatu na štýl Nestua pod.), ale aj CAN modul pre komunikáciu nielen v automotive, ale aj v IoT. Pre ESP32-S3 existuje kamerový modul s podporou AI na rozpoznávanie predmetov a podobne, čo nájde využitie v smart meteringu a odpisovania analógových meradiel napríklad vody, plynu, či elektriny. Všetky tieto boardy majú spoločnú vlastnosť a to, že kopírujú pinout XIAO dosiek (ak ide o univerzálny XIAO board) a tak môžete na seba všetko stavať ako shieldy. Podobne to riešil Wemos s ich populárnym WiFi modulom Wemos D1 Mini, kde existovali rôzne shieldy pre RTC, teplotné a vlhkostné snímače, battery a relay shieldy.
ESP32-C6 je modulom od Espressif Systems s RISC-V architektúrou a aj podporou WiFi 6, podporuje teda štandard IEEE 802.11ax (samozrejme má spätnú kompatibilitu aj na 802.11 b/g/n, teda WiFi 4), má však iba 2,4 GHz radio a nie je dual-band, ako napríklad ESP32-C5, ale to ešte nie je v masovej produkcii a sú dostupné iba vývojárske kity. Taktiež ESP32-C6 prináša aj podporu BLE 5.3 a ďalších IoT protokolov ako Zigbee, Thread, Matter a teda nájde využitie aj v mesh aplikáciách. WiFi 6 tiež poskytuje mnoho funkcií, ktoré môžete vo svojej aplikácii využiť, čo zníži aj energetickú náročnosť aplikácie, napríklad TWT, avšak musíte nato mať aj WiFi 6 router.
Zo spodnej strany XIAO ESP32-C6 sú vyvedené aj plôšky (pady) na low power zbernice LP_UART a LP_I2C, ktoré sa ale dajú využiť aj ako štandardné GPIO, či analógové piny na čítanie napäťovej úrovne a sú tam aj piny pre pripojenie Li-Ion, či Li-pol batérie. Nájdeme tam aj BOOT pin. Modul obsahuje USB-C konektor, ktorý zároveň slúži aj na sériovú linku a nahrávanie firmvéru. Taktiež sa cez USB-C nabíja aj batérie a to maximálnym prúdom 100 mA.
ESP32-C6 má jednojadrový procesor s taktom 160 MHz a tak odpadá, ako v skôr používaných dvoj-jadrových verziách, že jeden procesor (jadro protokolu) obsluhovalo WiFi / BLE komunikáciu a druhé (aplikačné jadro) obsluhovalo aplikáciu používateľa. ESP32-C6 má ale aj low-power procesor, ktorý môže bežať až na 20 MHz. Oba procesory sú na 32-bitovej architektúre RISC-V. Modul ESP32-C6 (verzia MINI) použitá na XIAO devkite má internú anténu, avšak XIAO ponúka aj externú anténu. Prepínanie použitej antény sa realizuje kombináciou logických úrovní pinov GPIO3 a GPIO14.
XIAO nájde využitie predovšetkým na wearable electronics projekty, napríklad smart hodinky, či nástenný termostat. Z dôvodu limitovaného počtu GPIO sa nehodí na veľké aplikácie. ESP32-C6 na XIAO som úspešne integroval aj do môjho projektu hladinomera a funguje výborne. Knižnica NewPingESP8266 fungovala na túto architektúru tiež (je napísaná univerzálne pre ESP MCU. Využiil som pôvodný program, ktorý obsahoval FreeRTOS aplikáciu, pôvodne pre ESP32-WROOM-32, čo bol dvojjadrový modul, pričom jeden task (meranie ultrazvukovým senzorom) bežal na Core 1 a HTTPS request bežal na Core 0 - jadre protokolu.
Musel som teda prepísať jediný znak a to pinovanie tasku ku konkrétnemu jadru, keďže tu je jadro len jedno - Core 0. Program bol tak plne prenosný medzi rôznymi architektúrami ESP32. Dobre vyriešené, rovnako ako v minulom článku, keď som upravoval aplikáciu v ESP-IDF medzi rôznymi verziami ESP-IDF frameworku, čo vyžadovalo len minimálne úpravy. Taktiež som ho integroval aj do vlastnej aplikácie WiFi termostatu + som použil aj funkcie Async webservera s dynamickou zmenou dát, stavov.
ESP32-C6 Xiao od Seeed Studio sa prihlási na COM port ako ESP family device. Môžete ho programovať v rôznych jazykoch a prostrediach. Môžete využiť Arduino Core pre ESP32 v prostredí Arduino IDE, PlatformIO, taktiež podporuje MicroPython, CircuitPython, Rust, Swift, ESP-IDF (podpora od verzie v.5.0) so všetkými Low-power funkciami a väčšinou WiFi 6 funkcií.
ESP32-C6 je dostupné už aj v simulátore Wokwi a to aj ako DevkitC, ale aj ako XIAO od Seeed Studio a taktiež je na Wokwi aj podpora ULP koprocesora u ESP32-C6. U iných ESP32 kontrolérov na Wokwi nie je zatiaľ podpora ULP koprocesora. Prostredie je tak vhodné aj pre vyskúšanie týchto funkcionalít priamo v simulátore.