Przejdź do treści
Wszystkie wpisy

29 października 20268 min czytania

ESP32 czy Raspberry Pi Pico 2 W – co wybrać

Porównanie ESP32, ESP32‑S3 i Pico 2 W na podstawie datasheetów: rdzenie, pamięć, radio, ADC, PIO, uśpienie i ekosystem, a na końcu wybór według rodzaju projektu.

ESP32 czy Raspberry Pi Pico 2 W – co wybrać

„ESP32 czy Pico?” to jedno z najczęstszych pytań na forach elektronicznych. Obie platformy mają Wi‑Fi i Bluetooth, obie są tanie i obie da się programować w MicroPythonie. Różnią się jednak w szczegółach, które przy konkretnym projekcie mogą przesądzić o wyborze. W tym porównaniu opieram się wyłącznie na oficjalnych dokumentach: datasheetach Espressif oraz dokumentacji Raspberry Pi. Tam, gdzie dane są niejednoznaczne albo ich brakuje, piszę to wprost.

Najpierw ważne zastrzeżenie: „ESP32” to rodzina

Mówiąc „ESP32”, ludzie mają na myśli różne rzeczy. Espressif sprzedaje całą rodzinę układów:

  • ESP32 (klasyczny): Xtensa LX6, Wi‑Fi 4 i Bluetooth 4.2 (Classic + LE),

  • ESP32‑S3: dwa rdzenie Xtensa LX7, Bluetooth LE 5, natywne USB,

  • ESP32‑C3: jeden rdzeń RISC‑V do 160 MHz, Wi‑Fi 4 i Bluetooth LE 5,

  • ESP32‑C6: rdzeń RISC‑V do 160 MHz plus rdzeń niskiego poboru do 20 MHz, Wi‑Fi 6 (802.11ax) w 2,4 GHz, Bluetooth LE 5 i IEEE 802.15.4 (Zigbee, Thread),

  • i kolejne warianty.

Dodatkowo mało kto kupuje sam układ. Zwykle jest to płytka deweloperska z modułem, więc ilość flash, obecność PSRAM, stabilizator czy liczba wyprowadzonych pinów zależą od konkretnej płytki. Poniżej porównuję układy ESP32 i ESP32‑S3 z płytką Raspberry Pi Pico 2 W, bo tak zwykle wygląda realny wybór.

Pico 2 W w skrócie

Pico 2 W to płytka w formacie 21 × 51 mm z mikrokontrolerem RP2350 i układem radiowym Infineon CYW43439. RP2350 ma nietypową cechę: zawiera dwa rdzenie Arm Cortex‑M33 oraz dwa rdzenie Hazard3 RISC‑V i można wybrać, która para ma pracować. Taktowanie sięga 150 MHz, a pamięć SRAM ma 520 kB. Radio jest jednopasmowe (2,4 GHz, 802.11n) i obsługuje Bluetooth 5.2, a według datasheetu wspiera zarówno BLE (role central i peripheral), jak i Bluetooth Classic.

Tabela porównawcza

Cecha

ESP32 (klasyczny)

ESP32‑S3

Pico 2 W (RP2350 + CYW43439)

Rdzenie

1 lub 2 × Xtensa LX6

2 × Xtensa LX7

2 × Cortex‑M33 lub 2 × Hazard3 RISC‑V

Maks. taktowanie

240 MHz (wariant S0WD: 160 MHz)

240 MHz

150 MHz

SRAM

520 KB (+16 KB RTC)

512 KB (+16 KB RTC)

520 kB

Flash

zewnętrzny, zależy od modułu (wyjątek: U4WDH z 4 MB w obudowie)

zewnętrzny lub w obudowie (np. 8 MB w S3FN8)

4 MB na płytce

PSRAM

opcjonalny, zależy od modułu

opcjonalny, w obudowie w części wariantów (np. S3R8: 8 MB)

brak na płytce

Wi‑Fi

802.11b/g/n, 2,4 GHz

802.11b/g/n, 2,4 GHz

802.11n, 2,4 GHz

Bluetooth

4.2 BR/EDR + BLE

LE 5 (bez Classic)

5.2, LE + Classic

GPIO

34 programowalne (6 tylko wejścia)

45 programowalnych

26 wyprowadzonych na złącze

ADC

12‑bit SAR, do 18 kanałów

2 × 12‑bit SAR, do 20 kanałów

12‑bit, 500 ksps, 3 kanały na złączu

DAC

2 × 8‑bit

brak

brak

Programowalne I/O

RMT, LED PWM, MCPWM

RMT, LED PWM, MCPWM

PIO: 3 bloki, 12 maszyn stanów

USB

brak natywnego (zwykle konwerter na płytce)

USB OTG full‑speed + USB Serial/JTAG

USB 1.1 host/device

Deep‑sleep (układ)

10 µA (RTC timer + pamięć RTC)

7 µA

brak danych dla płytki

Dane ESP32 pochodzą z datasheetu ESP32 v5.3, dane S3 z datasheetu ESP32‑S3 v2.2, a dane Pico 2 W z datasheetów Pico 2 W i RP2350.

Rdzenie i wydajność

Na papierze ESP32 i S3 mają przewagę taktowania: 240 MHz wobec 150 MHz. Espressif podaje w datasheetach wyniki CoreMark swoich układów, ale dla RP2350 oficjalnego wyniku w dokumentacji Raspberry Pi nie ma, więc nie porównuję wydajności liczbowo. S3 ma dodatkowo instrukcje SIMD, przydatne przy obróbce sygnałów. Sama różnica MHz między różnymi architekturami (Xtensa i Cortex‑M33) nie przekłada się wprost na wydajność.

W praktyce hobbystycznej moc obliczeniowa rzadko jest wąskim gardłem. Częściej decydują peryferia, pamięć i radio.

Pamięć

SRAM jest bardzo podobna (512–520 KB). Różnica leży gdzie indziej: ESP32 i S3 mogą korzystać z PSRAM, czyli dodatkowych megabajtów RAM. Przy S3 jest ona w obudowie niektórych wariantów, np. ESP32‑S3R8 ma 8 MB PSRAM. To ważne przy wyświetlaczach z buforem ramki, kamerze czy obróbce audio. Na płytce Pico 2 W nie ma PSRAM.

Flash w Pico 2 W to 4 MB na płytce, tak podaje strona produktu i lista cech w datasheecie. Przy ESP32 pojemność flash zależy od wybranego modułu lub płytki.

Radio

To najważniejsza część porównania dla wielu projektów:

  • Klasyczny ESP32 ma Wi‑Fi 802.11b/g/n do 150 Mb/s oraz Bluetooth 4.2 w trybie dual‑mode (Classic BR/EDR + BLE).

  • ESP32‑S3 ma to samo Wi‑Fi (kanały 20/40 MHz), ale Bluetooth tylko LE 5 (plus Mesh), bez Classic.

  • Pico 2 W ma radio CYW43439: 802.11n w 2,4 GHz i Bluetooth 5.2 z obsługą LE i Classic według datasheetu.

  • Jeśli potrzebujesz Wi‑Fi 6, Zigbee albo Thread, żadna z trzech powyższych opcji tego nie da. Spójrz na ESP32‑C6.

Wszystkie opisane tu układy działają wyłącznie w paśmie 2,4 GHz.

GPIO i analog

ESP32 i S3 mają więcej pinów, ale nie wszystkie są w pełni swobodne. W klasycznym ESP32 6 z 34 GPIO to wyłącznie wejścia, a 5 to piny „strapping”, które wpływają na tryb startu. Piny połączone z pamięcią flash/PSRAM datasheet odradza do innych celów, więc zawsze sprawdzaj pinout konkretnej płytki.

ADC a Wi‑Fi w ESP32. Dokumentacja ESP‑IDF wprost zaznacza, że ADC2 jest współdzielony z Wi‑Fi. Sterownik co prawda pilnuje dostępu, ale odczyt może się nie udać (błąd timeout), gdy ADC2 jest zajęty. W praktyce przy włączonym Wi‑Fi planuj pomiary analogowe na ADC1.

Pico 2 W ma trzy wejścia ADC na złączu (GP26–GP28). ADC ma 12 bitów i 500 ksps. Piny cyfrowe RP2350 są według datasheetu tolerancyjne na 5 V, gdy układ jest zasilony, ale nie dotyczy to pinów ADC: ich napięcie nie może przekroczyć IOVDD o więcej niż ok. 300 mV. Klasyczny ESP32 ma dodatkowo dwa 8‑bitowe przetworniki DAC i 10 sensorów dotyku (S3 ma 14 pinów dotykowych, ale nie ma DAC).

PIO: największy atut RP2350

PIO (Programmable I/O) to małe, niezależne maszyny stanów z własnym zestawem instrukcji, które sterują pinami niezależnie od rdzeni. Na RP2350 są trzy bloki PIO, razem 12 maszyn. Pozwalają zaimplementować własne protokoły i nietypowe interfejsy „sprzętowo”, bez obciążania procesora i bez zakłóceń czasowych od przerwań.

ESP32 i S3 nie mają bezpośredniego odpowiednika. Mają za to wyspecjalizowane peryferia: RMT (generowanie i odbiór przebiegów impulsowych, np. dla podczerwieni czy adresowalnych diod LED), LED PWM i MCPWM (sterowanie silnikami). Część zadań, do których na Pico używa się PIO, da się zrobić tymi blokami. PIO jest jednak bardziej uniwersalne, więc nie traktowałbym ich jako równoważnych.

kod
 Pico 2 W:  rdzenie ──► PIO (3 bloki × 4 maszyny) ──► dowolny protokół na pinach
 ESP32:     rdzenie ──► RMT / LED PWM / MCPWM     ──► przebiegi impulsowe, PWM, silniki

Pobór prądu i uśpienie

Tu uczciwe porównanie jest trudne, bo dokumenty podają różne rzeczy:

  • ESP32 (tabela z datasheetu): modem‑sleep przy 240 MHz na dwóch rdzeniach 30–68 mA, light‑sleep 0,8 mA, deep‑sleep 10 µA (z timerem RTC i pamięcią RTC; ok. 150 µA z pracującym koprocesorem ULP), hibernacja 5 µA.

  • ESP32‑S3: light‑sleep typowo 240 µA, deep‑sleep 7 µA.

  • RP2350: datasheet opisuje tryby SLEEP i DORMANT oraz stany niskiego poboru. Podane tam wartości to jednak liczby dla samego mikrokontrolera. Datasheet płytki Pico 2 W nie podaje tabeli poboru prądu, a na płytce pracują też przetwornica i układ radiowy.

Ważne: to są wartości dla układów, nie dla płytek deweloperskich. Dioda zasilania, stabilizator czy konwerter USB‑UART na płytce też pobierają prąd, a datasheet układu tego nie obejmuje. Przy projekcie na baterię mierz pobór na docelowym sprzęcie. W zastosowaniach „budzi się co kwadrans, wysyła pomiar i śpi” rodzina ESP32 ma dobrze udokumentowane tryby uśpienia z koprocesorem ULP, co jest jej mocną stroną.

Ekosystem i języki

Środowisko

ESP32 / S3

Pico 2 W

Oficjalne SDK

ESP‑IDF (Espressif)

Pico SDK (C/C++, także RISC‑V)

Arduino

arduino‑esp32 (Espressif)

arduino‑pico (projekt społecznościowy, obsługuje Pico 2 W)

MicroPython

oficjalne firmware ESP32_GENERIC i ESP32_GENERIC_S3

oficjalne firmware RPI_PICO2_W

Rust

esp‑hal (esp‑rs)

rp235x‑hal (rp‑rs)

Obie platformy mają dojrzałe wsparcie w najpopularniejszych środowiskach. Różnica jest taka, że Arduino dla ESP32 rozwija sam producent, a dla RP2350 najpopularniejszy rdzeń to projekt społecznościowy. Na Pico firmware wgrywa się przez przeciągnięcie pliku UF2 na dysk USB.

Cena

Raspberry Pi ogłosiło Pico 2 W w listopadzie 2024 w cenie 7 USD (Pico 2 bez radia: od 5 USD). To cena startowa z oficjalnego ogłoszenia. Ceny w polskich sklepach, z VAT i wysyłką, będą inne. Dla ESP32 nie podaję cen, bo nie znalazłem oficjalnego cennika płytek, a rozrzut między producentami płytek jest ogromny.

Co wybrać? Rekomendacje według zastosowań

  • Pierwszy projekt, nauka MicroPythona, prosta strona WWW lub czujnik w domu: obie opcje są dobre. Pico 2 W wygrywa prostotą (jedna oficjalna płytka, jedna dokumentacja, UF2), ESP32 wyborem gotowych płytek.

  • Nietypowe protokoły, precyzyjne sterowanie czasowe, emulacja interfejsów: Pico 2 W, dzięki PIO.

  • Urządzenie na baterię, które głównie śpi: raczej ESP32/S3, z dobrze udokumentowanym deep‑sleep i koprocesorem ULP. Pamiętaj, żeby zmierzyć pobór całej płytki.

  • Kamera, wyświetlacz z buforem ramki, dużo danych w RAM: ESP32‑S3 z PSRAM (interfejs kamery i LCD, SIMD, więcej pamięci).

  • Bluetooth Classic: klasyczny ESP32 (dual‑mode w datasheecie) albo Pico 2 W, który według datasheetu też obsługuje Classic. Nie sprawdzałem, jak dojrzałe są biblioteki Classic na obu platformach w konkretnych zastosowaniach, więc zweryfikuj to dla swojego projektu. ESP32‑S3 odpada.

  • Pomiary analogowe przy włączonym Wi‑Fi: na ESP32 używaj ADC1. Pico 2 W ma tylko trzy wejścia ADC na złączu.

  • Wi‑Fi 6, Zigbee, Thread: żadna z porównywanych opcji. Wybierz ESP32‑C6.

  • Natywne USB (np. klawiatura HID): ESP32‑S3 albo Pico 2 W. Klasyczny ESP32 nie ma natywnego USB.

A jeśli nie wiesz, co wybrać, kup po jednej sztuce każdej. Obie są na tyle tanie, że najlepszym testem będzie własny projekt. Na Pico 2 W można zacząć od pierwszego projektu w MicroPythonie. Wnioski i pytania można wrzucać na forum wirelab, a jeśli potrzebujesz urządzenia na jednej z tych platform, zajrzyj na stronę elektronika.

Źródła

Napisz