Który ESP32 wybrać do projektu – dogłębne porównanie układów C3, S3 i C6
Nazwy są podobne, a płytki deweloperskie z daleka wyglądają niemal tak samo. W środku są jednak trzy różne mikrokontrolery, zaprojektowane pod inne kompromisy. ESP32-C3 ma być tani i wystarczający. ESP32-S3 ma być szybki i bogaty w interfejsy. ESP32-C6 ma być nowoczesny radiowo – z Wi-Fi 6, Thread i Zigbee w jednym kawałku krzemu.
Ten tekst nie jest kartą katalogową przepisaną do tabeli. Chodzi o to, żeby po lekturze dało się świadomie wybrać układ do czujnika, panelu z ekranem, sterownika albo urządzenia domu inteligentnego, i żeby wiedzieć, czego dany układ nie zrobi, nawet jeśli marketing brzmi podobnie.
Po co powstały trzy różne ESP32 i jak je czytać
Rodzina ESP32 firmy Espressif od dawna nie jest jednym układem. Klasyczny ESP32, ten z dwoma rdzeniami Xtensa LX6, łączył Wi-Fi, klasyczny Bluetooth i Bluetooth Low Energy. Potem przyszły wyspecjalizowani następcy. Do tego porównania wchodzą trzy, które dziś najczęściej lądują w nowych projektach.
ESP32-C3 jest myślowym następcą ESP8266 i tanią bramką do świata ESP32. Ma jeden rdzeń RISC-V, Wi-Fi 4 oraz Bluetooth LE. Nie próbuje być komputerem do kamery ani hubem wielu protokołów. Ma być mały, przewidywalny i niedrogi.
ESP32-S3 jest następcą wydajnościowym klasycznego ESP32, ale bez klasycznego Bluetooth audio i bez wbudowanego Ethernetu. Dostaje dwa szybkie rdzenie, dużo wyprowadzeń, interfejs kamery i wyświetlacza, port USB zdolny pracować jako urządzenie albo prosty host, a także możliwość dołożenia zewnętrznej pamięci PSRAM. To układ do interfejsu człowieka, dźwięku, obrazu i lokalnych obliczeń.
ESP32-C6 jest układem łączności nowej generacji. Wydajnością obliczeniową stoi bliżej C3 niż S3, za to radio jest wyraźnie nowsze. Oprócz Wi-Fi 6 w paśmie 2,4 GHz i Bluetooth LE ma radio IEEE 802.15.4, czyli podstawę protokołów Thread i Zigbee. Do tego dochodzi drugi, wolny rdzeń niskiego poboru mocy.
Warto od razu oddzielić układ od modułu. Na płytce zwykle siedzi moduł w rodzaju WROOM albo MINI, a nie goły chip. Moduł dokłada pamięć flash, antenę, czasem PSRAM i ekranowanie. Dwa moduły z tym samym symbolem C3 mogą różnić się pojemnością flash. Dwa moduły S3 mogą różnić się tym, czy mają 8 MB PSRAM, czy nie mają jej wcale – a to zmienia projekt bardziej niż drobna różnica w taktowaniu.
Żaden z tych trzech układów nie jest lepszym ESP32 w każdym znaczeniu. Klasyczny ESP32 wciąż wygrywa, gdy potrzebny jest klasyczny Bluetooth, na przykład profil audio albo stare łącze SPP, albo wbudowany kontroler Ethernet. Nowszy, dwupasmowy ESP32-C5 wychodzi poza ramy tego tekstu, bo jako jedyny z bliskiej rodziny celuje także w Wi-Fi 5 GHz. Jeśli projekt ma żyć kilka lat w mieszkaniu pełnym routerów, ta informacja jest ważna już na starcie. C6 nie otwiera pasma 5 GHz.
Rdzeń, taktowanie i realna moc obliczeniowa
Na papierze różnica wygląda jak trzy liczby. W praktyce to trzy różne charaktery programu.
ESP32-C3 ma jeden 32-bitowy rdzeń RISC-V, taktowany do 160 MHz. Zestaw instrukcji jest wariantem bez sprzętowego koprocesora zmiennoprzecinkowego. Dodawanie i mnożenie liczb całkowitych idzie sprawnie. Operacje na liczbach float są liczone programowo, więc filtry, FFT albo prosta sieć neuronowa zjadają taktowanie szybciej, niż sugeruje sama częstotliwość zegara.
ESP32-C6 w części głównej jest bardzo podobny. Wydajny rdzeń, nazywany HP, to również 32-bitowy RISC-V do 160 MHz, także bez sprzętowego FPU. Do codziennego kodu w C – odczyt czujnika, MQTT, sterowanie przekaźnikiem, mały serwer HTTP – C3 i C6 są tej samej klasy. Różnica pojawia się obok. C6 ma drugi rdzeń, LP, taktowany do około 20 MHz. Nie służy do aplikacji. Służy do tego, żeby coś małego działało, gdy główny rdzeń śpi. Odczyt pinu, prosta pętla, wybudzenie reszty układu.
ESP32-S3 jest w innej lidze. Dwa rdzenie Xtensa LX7, do 240 MHz każdy, ze sprzętowym FPU pojedynczej precyzji i z instrukcjami wektorowymi. Dwa rdzenie oznaczają nie tylko dwa razy więcej. W ESP-IDF stos radiowy i tak konsumuje czas procesora. Na S3 jeden rdzeń może w większym stopniu zająć się Wi-Fi i Bluetooth, a drugi aplikacją, więc pętle sterujące mniej się rwą. Instrukcje wektorowe są natomiast powodem, dla którego biblioteki rozpoznawania mowy, DSP i małych sieci neuronowych Espressifa są pisane przede wszystkim z myślą o S3.
Prosty czujnik temperatury z publikacją do chmury nie odczuje różnicy między C3 a S3, a dopłata do S3 nic nie poprawi. Odtwarzanie dźwięku z kodowaniem, redukcja echa, wake word, kamera i jednocześnie interfejs na ekranie – tu C3 i C6 po prostu nie mają czym oddychać. S3 też nie jest komputerem aplikacyjnym. To wciąż mikrokontroler. Lokalne TinyML oznacza małe modele, krótkie okna audio i niską rozdzielczość obrazu, a nie rozpoznawanie twarzy w jakości z telefonu.
Jest jeszcze kwestia determinizmu. Każdy z tych układów ma system przerwań i watchdog, ale żaden nie jest sterownikiem PLC. Gdy Wi-Fi pracuje, pojawiają się opóźnienia liczone w milisekundach, czasem więcej przy retransmisjach. Do silnika krokowego albo szybkiego protokołu bitowego lepiej wydzielić czas, wyłączyć radio na czas krytyczny albo w ogóle dać osobny mały mikrokontroler. S3 jest tu najwygodniejszy. C6 może część powolnego dozoru zrzucić na rdzeń LP. C3 musi wszystko robić na jednym rdzeniu albo spać.
Pamięć, która kończy się szybciej niż taktowanie
W projektach ESP32 częściej kończy się pamięć RAM niż megaherce. To najważniejszy, a niedoceniany punkt tego porównania.
ESP32-C3 ma około 400 KB wewnętrznej pamięci SRAM oraz pamięć ROM z kodem startowym i częścią funkcji. Do tego dochodzi zewnętrzny flash, w modułach zwykle 4 MB. Nie ma kontrolera zewnętrznej pamięci PSRAM. Z tych 400 KB system, stos Wi-Fi i Bluetooth zabierają zauważalną część. Na aplikację zostaje komfortowo od kilkudziesięciu do stu kilkudziesięciu kilobajtów, zależnie od konfiguracji. To cały budżet na bufory, stosy zadań i JSON.
ESP32-C6 ma 512 KB SRAM przy rdzeniu HP oraz małe 16 KB SRAM przy rdzeniu LP. Flash znowu jest na zewnątrz, typowo 4 MB w module. PSRAM również nie jest obsługiwany. Te dodatkowe ponad 100 KB względem C3 czuć przy większym stosie sieciowym, przy Matter i przy równoległej pracy kilku protokołów. To nie jest przepaść, ale przy C3 często zaczyna się walka o każdy bufor, a przy C6 jest po prostu luźniej.
ESP32-S3 ma 512 KB wewnętrznej SRAM i – to jest jego prawdziwa przewaga pamięciowa – umie adresować zewnętrzny PSRAM. W modułach spotyka się wersje bez tej pamięci, z 2 MB oraz z 8 MB, podłączone interfejsem quad albo szybszym octal. W praktyce kupuje się konkretny moduł i z niego wynika projekt. Bufor klatki dla ekranu, bufor kamery, duży plik audio, stos graficzny LVGL – to wszystko na C3 i C6 albo się nie mieści, albo mieści się kosztem rezygnacji z radia i z czytelnego kodu.
Sam flash też warto policzyć, nie tylko RAM. Prosty program w Arduino zmieści się w 4 MB razem z systemem plików. Stos Matter, duży interfejs graficzny, modele mowy i aktualizacje OTA w schemacie dwóch partycji potrafią zjeść 8 MB i prosić o 16 MB. OTA oznacza, że potrzebna jest wolna kopia partycji na nowy obraz. Moduł 4 MB przy poważnym produkcie z aktualizacjami bywa za mały, nawet jeśli sam program ma tylko 1 MB.
Jest praktyczna pułapka przy S3. Pamięć octal PSRAM i octal flash zajmują dużo wyprowadzeń. Moduł z 8 MB PSRAM nie oddaje projektantowi wszystkich 45 pinów układu. Część GPIO jest na stałe zjedzona przez magistralę pamięci. Zanim wybierze się najbogatszy moduł S3 na zapas, trzeba sprawdzić, ile pinów zostaje na własny sprzęt.
Kod wykonywany z flash idzie przez pamięć podręczną i jest wolniejszy niż kod w wewnętrznej SRAM. Dotyczy to całej trójki. Funkcje krytyczne czasowo oznacza się do umieszczenia w IRAM, a dużych tablic nie trzyma się bez powodu w DRAM, jeśli można je mieć w flash jako stałe. Na C3, gdzie RAM jest najciaśniejszy, ta dyscyplina nie jest optymalizacją. Jest warunkiem, żeby projekt w ogóle wstał.
Osobna uwaga o Matter. Ten stos jest ciężki. C3 potrafi być urządzeniem Matter po Wi-Fi, ale zapas na własną logikę bywa cienki i łatwo dobić do ściany przy równoczesnym Bluetooth używanym do uruchomienia. C6, z 512 KB i z radiem zaprojektowanym pod ten świat, jest naturalnym układem urządzenia końcowego. S3 z PSRAM jest wygodny, gdy Matter ma współistnieć z ekranem albo bogatszą aplikacją. Trzeba tylko pamiętać, że S3 nie mówi Thread własnym radiem.
Radio – Wi-Fi 4, Wi-Fi 6, Bluetooth i 802.15.4
Tu marketing najbardziej miesza. Nowsze Wi-Fi nie znaczy szybszy internet w czujniku.
ESP32-C3 i ESP32-S3 mają Wi-Fi 4, czyli 802.11b/g/n, wyłącznie w paśmie 2,4 GHz. Jeden strumień, typowo kanał 20 MHz. Do MQTT, HTTP, lokalnego API i nawet strumienia mocno skompresowanego dźwięku to wystarcza. Nie wystarcza do myślenia o tych układach jak o karcie sieciowej laptopa.
ESP32-C6 ma Wi-Fi 6, czyli 802.11ax, ale też tylko 2,4 GHz, też jeden strumień i kanał 20 MHz. Szczytowa przepływność łącza fizycznego jest wyższa niż przy 802.11n, lecz nie o rząd wielkości. Zysk jest gdzie indziej. OFDMA pozwala punktowi dostępowemu dzielić kanał między wiele urządzeń zamiast kazać im czekać w kolejce. BSS coloring zmniejsza chaos, gdy sąsiednie sieci siedzą na tym samym kanale. Target Wake Time, w skrócie TWT, pozwala urządzeniu umówić się z routerem, kiedy ma się obudzić. Zamiast nasłuchiwać każdego beaconu, czujnik na baterii może spać dłużej i przewidywalniej.
Te mechanizmy działają tylko wtedy, gdy router też je rozumie. TWT ze starym punktem dostępowym nic nie da. W domu z jednym nowym routerem i pięcioma urządzeniami różnica między C3 a C6 bywa ledwo mierzalna. W bloku, w biurze albo w budynku z dziesiątkami sieci 2,4 GHz C6 jest po prostu grzeczniejszym sąsiadem i stabilniejszym klientem. Zasięg sam w sobie zależy głównie od anteny, mocy nadawania i toru w.cz. na płytce, a nie od cyferki 4 albo 6 w nazwie standardu.
Bluetooth we wszystkich trzech to wyłącznie Bluetooth Low Energy. Nie ma klasycznego Bluetooth z profilami audio A2DP ani ze starym portem szeregowym SPP. Da się zrobić beacon, konfigurację z telefonu, Bluetooth Mesh, czujnik HID albo wymianę danych z aplikacją. Nie da się wprost zbudować głośnika Bluetooth tak, jak na klasycznym ESP32. To częsty powód zwrotu modułu po tygodniu projektu.
Tylko ESP32-C6 ma radio 802.15.4. Na nim stoją Thread i Zigbee. Thread jest siecią kratową niskiego poboru, na której opiera się Matter przez Thread. Zigbee wciąż żyje w żarówkach, czujnikach i bramkach, które już stoją w domach. C3 i S3 mogą uczestniczyć w Matter po Wi-Fi. Nie staną się urządzeniem Thread ani Zigbee bez dokładania drugiego układu, na przykład ESP32-H2 albo właśnie C6 pracującego jako koprocesor radiowy.
Ważne zastrzeżenie o współistnieniu. C6 nie ma trzech niezależnych radiów, które nadają pełną mocą w tej samej milisekundzie. Wi-Fi, Bluetooth i 802.15.4 dzielą pasmo 2,4 GHz i muszą się dogadywać w czasie. Espressif ma do tego mechanizm coexistence, i do urządzenia końcowego – które zwykle używa albo Wi-Fi, albo Thread, a Bluetooth tylko na czas parowania – działa to dobrze. Do bramy, która jednocześnie ostro pompuje wszystkie trzy protokoły, jeden C6 bywa za ciasny. Router graniczny Thread, nazywany border router, w architekturze Espressifa częściej składa się z wydajniejszego układu aplikacyjnego i osobnego radia 802.15.4 w trybie koprocesora. C6 może być tym radiem albo samodzielnym urządzeniem końcowym. Nie trzeba od niego oczekiwać, że zastąpi mały komputer z trzema kartami sieciowymi.
Jest jeszcze praktyka anteny. Moduł z anteną na laminacie jest wygodny i zwykle wystarcza. Metalowa obudowa, płaszczyzna masy pod anteną, bateria przyłożona do narożnika i złącze USB w strefie promieniowania potrafią zepsuć zasięg mocniej niż wybór między C3 a C6. Przy produkcie, a nie przy płytce na biurku, tor w.cz. i certyfikacja modułu są osobnym zadaniem. Gotowy moduł Espressifa zdejmuje z projektanta część tej pracy. Goły układ na własnej płytce tej pracy nie zdejmuje.
Piny, USB, ekran, kamera i reszta peryferiów
Jeśli radio wybiera, z kim urządzenie rozmawia, peryferia wybierają, co da się do niego przylutować.
ESP32-C3 ma do 22 programowalnych GPIO. W module część zajmuje flash i ewentualnie linie startowe, więc na złącze zostaje mniej. Przetwornik analogowo-cyfrowy ma do sześciu kanałów, 12 bitów. Jest zestaw typowych interfejsów – SPI, UART, I2C, I2S – oraz PWM do diod, nadajnik zdalnego sterowania RMT, kontroler TWAI zgodny z CAN 2.0 i wbudowany czujnik temperatury. Ten czujnik nadaje się do zgrubnej diagnostyki układu, a nie do pomiaru pokoju z dokładnością dziesiątej stopnia. USB w C3 to kontroler USB Serial/JTAG. Wystarcza do programowania i konsoli. Nie jest ogólnym portem USB, do którego podepniesz pendrive albo klawiaturę.
ESP32-C6 ma do około 30 GPIO i do siedmiu kanałów ADC 12-bit. Zestaw interfejsów szeregowych jest podobnie wystarczający do czujników i małego sterownika, z PWM, RMT i TWAI. USB znowu jest przede wszystkim portem Serial/JTAG, nie pełnym USB OTG. Nie ma sprzętowego interfejsu kamery DVP ani kontrolera równoległego wyświetlacza. Mały OLED albo TFT na SPI da się podłączyć i będzie działał. Panel RGB 800 na 480, taki jak w obudowach z interfejsem, nie jest zadaniem dla C6.
ESP32-S3 ma do 45 GPIO, do dwudziestu kanałów ADC i czternaście linii dotyku pojemnościowego. Ma więcej kontrolerów SPI, UART, I2C i I2S, interfejs karty SD/MMC, a przede wszystkim blok LCD i kamery. Kamera jest typu DVP, równoległa. To typowe moduły z OV2640, a nie taśmy MIPI znane z mikrokomputerów. Wyświetlacz może iść po SPI, po magistrali równoległej I8080 albo, przy dużym nakładzie pinów i przy PSRAM, jako panel RGB. Do tego dochodzi USB OTG pełnej prędkości. Da się być urządzeniem USB – wirtualny port szeregowy, pamięć masowa, HID – albo ograniczonym hostem dla prostych urządzeń. Obok nadal jest USB Serial/JTAG do programowania.
Z tego wynikają konkretne granice, o które ludzie się potykają.
Ekran. Mała dioda OLED 128 na 64 albo TFT 240 na 240 na SPI działa na wszystkich trzech, byle starczyło RAM na bufor albo dało się rysować fragmentami. Interfejs z płynną grafiką, czcionkami i kilkoma widokami na większym panelu praktycznie oznacza S3 i PSRAM. Biblioteka LVGL na C3 da się uruchomić w skromnej formie. W formie, którą chce się pokazać klientowi na obudowie urządzenia, zwykle nie.
Kamera. Tylko S3 ma do tego sprzęt. I tak potrzebuje PSRAM, bo jedna klatka kolorowa szybko zjada setki kilobajtów. Nie będzie to kamera monitoringu w wysokiej rozdzielczości. Będzie to wizjer, czytnik kodu, prosty czujnik obecności albo źródło klatek do małego modelu.
Dźwięk. I2S jest we wszystkich, więc wzmacniacz I2S albo mikrofon cyfrowy da się podłączyć wszędzie. Różnica jest w tym, co procesor zdąży z tym dźwiękiem zrobić. Odtworzenie pliku WAV albo prostego strumienia jest realne na C3 i C6. Rozpoznawanie słowa wybudzającego, lokalna komenda głosowa i jednoczesne Wi-Fi to teren S3 i bibliotek ESP-SR.
Dotyk. Wbudowane pola pojemnościowe ma S3. Na C3 i C6 dokłada się zewnętrzny kontroler albo zwykłe przyciski. Przycisk jest zresztą często lepszy od wbudowanego dotyku, który lubi się gubić przy wilgoci i długich ścieżkach.
ADC. We wszystkich trzech jest to przetwornik 12-bit do potencjometru, termistora i zgrubnego pomiaru napięcia baterii, po kalibracji. Do wagi, mostka tensometrycznego albo czujnika precyzyjnego i tak bierze się zewnętrzny przetwornik. Więcej kanałów w S3 oznacza wygodę, nie klasę laboratoryjną.
CAN. TWAI, zgodny z CAN 2.0, jest dostępny w tej trójce. Do sieci w pojeździe hobbystycznym albo do maszyn z CAN 2.0 da się tego użyć. CAN FD to już inna historia i inny układ. Sam kontroler w tych mikrokontrolerach FD nie zastąpi.
Ethernetu nie ma w żadnym z trzech. Kto przychodzi z klasycznego ESP32 i liczy na RMII do układu PHY, musi zostać przy tamtym układzie albo dołożyć moduł SPI, na przykład z układem W5500, godząc się na niższą przepustowość i dodatkowy koszt.
Na koniec piny startowe. Każdy ESP32 ma strapping pins, których stan w chwili resetu wybiera tryb uruchomienia. Podłączenie tam diody, przycisku albo urządzenia, które w czasie startu trzyma linię, kończy się płytką, która czasem się nie programuje. To nie różnica między C3, S3 i C6, tylko wspólna zasada, o której przypomina się przy każdym nowym schemacie.
Prąd, sen i bezpieczeństwo, które da się obronić
Układ na biurku, zasilany z USB, wybacza prawie wszystko. Układ w puszce instalacyjnej albo na baterii już nie.
W aktywnej transmisji Wi-Fi wszystkie trzy potrafią na krótko pociągnąć prąd rzędu kilkuset miliamperów. Dokładna wartość zależy od mocy nadawania, anteny, napięcia i tego, czy rdzenie są rozpędzone. Zasilacz 100 mA, bo to tylko czujnik, jest błędem projektowym niezależnie od wybranego symbolu. Ścieżka zasilania, kondensatory przy module i spadek napięcia na długim przewodzie decydują o tym, czy układ będzie się resetował przy każdym połączeniu z routerem.
Różnice wychodzą w śnie i w tym, co potrafi działać, gdy aplikacja śpi.
ESP32-C3 ma klasyczny zestaw trybów. Od pracy z wyłączonym radiem, przez light sleep, po deep sleep z poborem rzędu pojedynczych mikroamperów. Wybudzenie idzie z timera, z pinu albo z kilku innych źródeł. Nie ma osobnego rdzenia, który w głębokim śnie obrabia dane. Albo śpi prawie wszystko, albo budzi się główny rdzeń.
ESP32-S3 też schodzi do głębokiego snu w okolicy kilku do kilkunastu mikroamperów, zależnie od konfiguracji i tego, co zostaje zasilone. Ma koprocesor ULP, mały rdzeń RISC-V, który może wykonywać prosty program, gdy główne rdzenie są uśpione. To realna pomoc przy okresowym pomiarze. Ceną S3 jest apetyt w stanie aktywnym. Dwa rdzenie 240 MHz, ekran, PSRAM i kamera potrafią utrzymać średni prąd, przy którym bateria guzikowa nie jest nawet tematem rozmowy. S3 bywa zasilany z USB, z zasilacza albo z większego akumulatora, nie z CR2032.
ESP32-C6 jest z tej trójki najciekawszy energetycznie, jeśli produkt ma być nowoczesnym czujnikiem, a nie panelem. Rdzeń LP żyje obok głównego i ma własne, oszczędne peryferia. TWT w Wi-Fi 6 daje umowę z routerem na rzadkie wybudzenia. Radio 802.15.4, gdy urządzenie pracuje jako węzeł Thread albo Zigbee, z natury lepiej pasuje do baterii niż ciągłe trzymanie stacji Wi-Fi. Nadal nie ma cudów. Źle napisany program, który co sekundę łączy się z chmurą, zabije baterię także na C6. Dobrze napisany program na C6 ma po prostu więcej uczciwych narzędzi, żeby być oszczędnym.
Bezpieczeństwo w produkcie to osobna oś, niezależna od mocy. Wszystkie trzy układy potrafią zrobić rzeczy, bez których nie powinno się wypuszczać urządzenia z domu. Secure boot, czyli uruchamianie tylko podpisanego oprogramowania, oraz szyfrowanie flash, żeby zrzut pamięci z lutownicy nie oddał od razu firmware’u i kluczy. Są akceleratory AES, SHA i RSA, generator liczb losowych, HMAC i sprzęt do podpisu cyfrowego, z którego da się korzystać tak, by klucz prywatny nie lądował w zwykłym kodzie aplikacji.
C6 idzie o krok dalej. Ma nowszy model uprawnień i sprzętowe wsparcie operacji na krzywych eliptycznych, co przy Matter i przy negocjacji TLS nie jest ozdobnikiem. Espressif udostępnia też środowisko zbliżone do izolowanego wykonania, określane jako TEE. Dla hobbystycznego czujnika w domowej sieci to często nadmiar. Dla produktu, który ma dostać certyfikat i przeżyć kilka lat w sieci klienta, C6 jest najłatwiejszy do obrony w rozmowie o modelu zagrożeń. C3 i S3 nie są niezabezpieczone. Po prostu ich zestaw jest o generację starszy i przy Matter więcej pracy zostaje po stronie oprogramowania.
Wspólna przestroga. Żaden akcelerator nie naprawi hasła w kodzie źródłowym, otwartego interfejsu UART w produkcie ani aktualizacji OTA bez podpisu. Secure boot włączony dopiero w następnej rewizji zwykle zostaje niewłączony. Na wszystkich trzech układach te mechanizmy trzeba włączyć świadomie. Domyślna płytka deweloperska jest otwarta, bo inaczej nie dałoby się wygodnie programować.
Zestawienie, które warto mieć obok schematu
Słowa powyżej pokazują charakter układów. Tabela zbiera fakty, do których wraca się przy wyborze modułu. Wartości GPIO i ADC dotyczą możliwości układu, nie każdego modułu. Moduł zawsze oddaje mniej pinów.
| Cecha | ESP32-C3 | ESP32-S3 | ESP32-C6 |
|---|---|---|---|
| Rdzeń | jeden RISC-V, do 160 MHz, bez FPU | dwa Xtensa LX7, do 240 MHz, FPU i instrukcje wektorowe | HP RISC-V do 160 MHz bez FPU oraz LP RISC-V do 20 MHz |
| SRAM | około 400 KB | 512 KB plus opcjonalny PSRAM | 512 KB HP i 16 KB LP |
| Zewnętrzny PSRAM | nie | tak, w modułach często 2 MB lub 8 MB | nie |
| Typowy flash modułu | 4 MB | 8 MB lub 16 MB, bywają też mniejsze | 4 MB |
| Wi-Fi | 4, 2,4 GHz, 1 strumień | 4, 2,4 GHz, 1 strumień | 6, 2,4 GHz, 1 strumień, OFDMA, TWT |
| Bluetooth | tylko LE 5 | tylko LE 5 | tylko LE 5 |
| Thread / Zigbee | nie | nie | tak, radio 802.15.4 |
| USB | Serial/JTAG | OTG oraz Serial/JTAG | Serial/JTAG |
| GPIO układu | do 22 | do 45 | do 30 |
| ADC | do 6 kanałów, 12 bit | do 20 kanałów, 12 bit | do 7 kanałów, 12 bit |
| Ekran i kamera | SPI, bez kontrolera kamery | SPI, LCD równoległy, kamera DVP | SPI, bez kontrolera kamery |
| Dotyk pojemnościowy | nie | tak, do 14 linii | nie |
| Praca w głębokim śnie | timer i piny, bez rdzenia ULP | koprocesor ULP | rdzeń LP i mechanizm TWT |
| Klasyczny Bluetooth i Ethernet | brak | brak | brak |
| Naturalne miejsce | tani czujnik i prosty sterownik | ekran, dźwięk, kamera, więcej RAM | Matter, Thread, Zigbee, Wi-Fi 6 |
Tabeli nie należy czytać jako rankingu. Brak PSRAM u C6 nie jest wadą układu do żarówki Matter. Brak 802.15.4 u S3 nie jest wadą układu do panelu z ekranem. Wada zaczyna się wtedy, gdy projekt potrzebuje obu rzeczy naraz i ktoś liczy, że jeden symbol z rodziny ESP32 to załatwi.
Jak wybrać i czego świadomie nie wymagać
Najczystsza decyzja zaczyna się od ograniczenia, którego nie da się dokupić w bibliotece.
Jeśli urządzenie ma mieć ekran większy niż mały TFT, kamerę, rozpoznawanie mowy, dużo pamięci na bufory albo port USB z prawdziwego zdarzenia, wybór w tej trójce jest jeden. ESP32-S3, najlepiej w module z PSRAM dobranym do interfejsu. Trzeba zaakceptować Wi-Fi 4, brak Thread i wyższy pobór w pracy. Jeśli do panelu potrzebna jest także sieć Thread, dokłada się drugie radio, a nie wymienia S3 na C6. C6 nie udźwignie tego interfejsu tylko dlatego, że ma nowsze Wi-Fi.
Jeśli urządzenie ma wejść w nowy dom inteligentny – Matter, Thread, Zigbee, gęsta sieć 2,4 GHz, bateria albo zasilanie, przy którym liczy się sen – naturalnym wyborem jest ESP32-C6. Wydajność trzeba trzymać na poziomie solidnego czujnika i sterownika, nie małego tabletu. Stos protokołów warto pisać w ESP-IDF. Wsparcie w Arduino jest, zwłaszcza do Wi-Fi i Bluetooth, ale radio 802.15.4 i rdzeń LP są dziś dużo pewniejsze w środowisku Espressifa niż w najwyższej warstwie prostego szkicu.
Jeśli liczy się cena, prostota i czas, a wymagania kończą się na Wi-Fi, Bluetooth LE, kilku czujnikach i przekaźniku, ESP32-C3 nadal jest bardzo dobrym układem. Nie jest przestarzały tylko dlatego, że powstał wcześniej. Jest niewłaściwy dopiero wtedy, gdy projekt zaczyna potrzebować rzeczy, których mu świadomie nie dano. Zewnętrznej pamięci, trzeciego radia, drugiego szybkiego rdzenia. Do migracji z ESP8266 to zwykle najkrótsza droga, pod warunkiem że pamięta się o przejściu na inne wyprowadzenia i o tym, że Bluetooth jest tu nowym składnikiem, a nie drobnym dodatkiem do starego kodu jeden do jednego.
Są projekty, których ta trójka w pojedynkę nie domyka.
Klasyczne audio Bluetooth albo stary SPP kieruje z powrotem do klasycznego ESP32, ewentualnie do zewnętrznego modułu audio. Ethernet po RMII również. Pasmo 5 GHz każe patrzeć na nowsze układy Espressifa, a nie udawać, że Wi-Fi 6 na C6 obejmuje całe domowe spektrum. Twardy czas rzeczywisty, liczony w mikrosekundach przy włączonym radiu, każe dodać mały mikrokontroler obok albo zmienić architekturę. Brama Thread z ekranem i lokalną automatyką najczęściej oznacza dwa układy, nie jeden najlepszy ESP32.
Przy zakupie modułu, nie samego porównania, warto sprawdzić cztery rzeczy na karcie konkretnej wersji, a nie na ogólnej nazwie rodziny. Pojemność flash i to, czy starczy na dwie partycje OTA. Obecność i typ PSRAM, jeśli to S3. Które GPIO moduł w ogóle wyprowadza. Zakres temperatury modułu, nie tylko gołego krzemu, bo pamięć i antena potrafią mieć węższą specyfikację niż rdzeń.
Środowisko programistyczne nie powinno być niespodzianką na końcu. Wszystkie trzy żyją w ESP-IDF i mają wsparcie społeczności w Arduino, MicroPythonie i w frameworkach wyżej. Im bliżej radia 802.15.4, Matter i rdzenia LP, tym bardziej naturalnym wyborem jest ESP-IDF. Im bliżej szybkiego prototypu z kilkoma czujnikami, tym mniej boli Arduino na C3. S3 z ekranem da się prowadzić w obu światach, byle biblioteka wyświetlacza i alokacja PSRAM były dobrane do tego samego rdzenia programowego, a nie składane z trzech niepasujących przykładów.
Na koniec warto nazwać wybór jednym zdaniem, zanim powstanie schemat. „To ma być tani czujnik Wi-Fi” kończy się na C3. „To ma być panel, który coś pokazuje i słyszy” kończy się na S3. „To ma być urządzenie domu, które za kilka lat nadal da się dodać do sieci Matter” kończy się na C6. Reszta parametrów – liczba pinów, kanały ADC, obecność USB do programowania – jest ważna, ale rzadko odwraca tę pierwszą decyzję. Odwraca ją dopiero próba wciśnięcia w jeden układ dwóch zadań, do których Espressif świadomie zaprojektował dwa różne kawałki krzemu.
www.asgard.krakow.pl
Ważne: Artykuł (w szczególności treści i obrazy) powstał w całości lub w części przy udziale sztucznej inteligencji (AI). Niektóre informacje mogą być niepełne lub nieścisłe oraz zawierać błędy i/lub przekłamania. Publikowane treści mają charakter wyłącznie informacyjny i nie stanowią porady w szczególności porady prawnej, medycznej ani finansowej. Artykuły sponsorowane i gościnne są przygotowywane przez zewnętrznych autorów i partnerów. Redakcja nie ponosi odpowiedzialności za aktualność, poprawność ani skutki zastosowania się do przedstawionych informacji. W przypadku decyzji dotyczących zdrowia, prawa lub finansów należy skonsultować się z odpowiednim specjalistą.
Komputery PC. Hardware. Sprzęt. Podzespoły. Akcesoria.
A bright, solarized, glossy digital painted artwork in a High-Key Solarpunk style with a Mirror’s Edge minimalist aesthetic
and Y2K future-nostalgia, inspired by 1960 retro comic style.
A stylised 22-year-old Asian (Korean) woman, IT specialist, hardware geek.
Woman with messy dark hair in a high bun held in place with a glowing green tweezer pin.
Sharp Korean facial features, bright intelligent eyes, subtle natural lip tint, and a playful, slightly villainous evil smile. No glasses.
The outfit of the woman is: The „Hard-Upgrade” Vest & Utility Shorts.
She wears a futuristic, tech-wear inspired outfit: a short, open-front asymmetric technical vest made of off-white and ice blue material,
over a cropped black top with the stacked text „Hard Upgrade”.
She wears low-waisted, structured deep red shorts with a multi-pouch utility pocket on the right hip (bottom is short, low waist).
The woman is presenting to the audience: A bright, solarized, glossy digital painted artwork in a High-Key Solarpunk style with a Mirror’s Edge minimalist aesthetic
and Y2K future-nostalgia, inspired by 1960 retro comic style.
A stylised 22-year-old Asian (Korean) woman, IT specialist, hardware geek.
Woman with messy dark hair in a high bun held in place with a glowing green tweezer pin.
Sharp Korean facial features, bright intelligent eyes, subtle natural lip tint, and a playful, slightly villainous evil smile. No glasses.
The outfit of the woman is: The „Hard-Upgrade” Vest & Utility Shorts.
She wears a futuristic, tech-wear inspired outfit: a short, open-front asymmetric technical vest made of off-white and ice blue material,
over a cropped black top with the stacked text „Hard Upgrade”.
She wears low-waisted, structured deep red shorts with a multi-pouch utility pocket on the right hip (bottom is short, low waist).
The woman is presenting to the audience: Three similar microcontroller development boards arranged side by side on a workbench, each revealing a different purpose through the hardware attached to it. The left board is small and simple, wired to a temperature sensor, a relay, and a compact battery. The center board is larger and busier, connected to a color display panel with a graphical interface, a small camera module, a microphone, and extra memory chips. The right board sits among smart-home devices — a light bulb, a door sensor, and a battery-powered environmental sensor — with faint wireless signals linking them, suggesting multiple radio connections and low-power operation. The boards look nearly identical at a glance, but their surroundings make their different roles clear. ;Background is a sun-drenched, high-gloss white Solarpunk facility inspired by Mirror’s Edge—sterile,
bright, and futuristic with subtle, minimal green accents integrated into sleek white architecture.
The artwork has a slick, ultra-bright digital color palette dominated by radiant white, ice blue, and reflective silver.
Added some energetic and vivid elements of deep reds, signal yellow, and controlled pops of green.
Smooth gradients, soft bloom light, and a bright, humorous, cyber-optimistic feel.
The overall style mimics neo-classic mid-century advertising with a humorous twist. ;Background is a sun-drenched, high-gloss white Solarpunk facility inspired by Mirror’s Edge—sterile,
bright, and futuristic with subtle, minimal green accents integrated into sleek white architecture.
The artwork has a slick, ultra-bright digital color palette dominated by radiant white, ice blue, and reflective silver.
Added some energetic and vivid elements of deep reds, signal yellow, and controlled pops of green.
Smooth gradients, soft bloom light, and a bright, humorous, cyber-optimistic feel.
The overall style mimics neo-classic mid-century advertising with a humorous twist.

