Srovnání Arduino Nano RP2040 Connect s ESP32
Arduino NANO RP2040 Connect s čipem RP2040 od Raspberry Pi Foundation v kombinaci s WiFi připojením a Bluetooth už dobře známe. Co ale nabízí oproti zařízením se zavedeným čipem ESP32 dostupným z čínských e-shopů?
Obsah článku:
Stručný popis
DOIT ESP32 DEVKITV1 (30 pin)
Pro srovnání v testu jsme si vybrali nejběžnější desku s ESP32 navazující na úspěch předchůdce s procesorem ESP8266 (Node MCU V3), která kombinuje základní modul ESP-WROOM-32 s USB-UART převodníkem SILABS CP2102. Existují i varianty desek, jako například ESP32-CAM, které nemají USB převodník vestavěný a je nutné jej připojit externě.
Podobně jako u desek s ESP8266, i u ESP32 použitý modul určuje, jak velkou pamětí celá deska disponuje. To ovlivňuje, jak velký program lze do desky nahrát. Toto je důležitý faktor například při OTA updatu přes Wi-Fi.
Tuto desku vyrábí mnoho různých malých výrobců v Číně a kvalita může kolísat prodejce od prodejce.
Existuje mnoho alternativních variant. Například ESP32-CAM s vestavěnou kamerou, WT32-ETH01 s ethernetem, případně různé verze s displejem (LilyGO TTGO) nebo vývojové kity M5Stack kombinující displej, senzory a vestavěnou lithiovou baterii s nabíjecím obvodem.
Arduino NANO RP2040 Connect
Nedávný přírůstek do rodiny oficiálních Arduino desek řeší jeden z nedostatků desky Raspberry Pi Pico s procesorem RP2040 vyvinutým v Raspberry Pi Foundation, a to je absence internetové konektivity. RP2040 Connect obsahuje na své desce Wi-Fi modul u-blox NINA-W102 založený na čipu ESP32. V tomto případě se čip ESP32 stará čistě jen o WiFi a Bluetooth, hlavní program vykonává procesor RP2040. Dále na desce nalezneme ještě mikrofon a akcelerometr/gyroskop.
NANO RP2040 je vyrobené v Itálii a lze se tedy spolehnout na jistou úroveň kvality.
Prodejní balení
Zatímco DOIT ESP32 DEVKITV1 (dále jen ESP32) vám dorazí z čínského internetového tržiště v antistatickém sáčku bez jakéhokoliv popisu, Arduino NANO RP2040 Connect (dále jen NANO RP2040) dorazí v kvalitně zpracované krabičce s čárovým kódem a veškerými náležitostmi pro legální prodej zařízení v EU. Příjemným bonusem jsou nálepky.
Desky s ESP32 jsou zpravidla dodávány s předinstalovanými headery, k NANO RP2040 jsou headery přibalené a uživatel si sám rozhodne, zda je připájí.
Rozměry
Při srovnání rozměrů je evidentní, že ESP32 je mnohem širší. Toto je dáno rozměry modulu ESP-WROOM-32. Také popisky pinů modulu ESP32 se nacházejí na horní straně desky. Bohužel tato zvětšená šířka způsobuje, že po zapojení do běžného nepájivého pole zůstává prostor pro propojky jen na jedné straně desky. Větší rozměry alespoň umožnily použití větších děr pro upevnění desky (lze použít šrouby se závitem M3).
Nano RP2040 zachovává form-factor všech desek rodiny NANO (Nano, Nano Every, Nano 33 IoT) a to včetně miniaturních děr na šrouby (závit M1). Vzhledem k malé šířce kolem něj na obou stranách zbývá na nepájivém poli dostatek místa pro propojky.
Ani jedna z desek neobsahuje komponenty na spodní straně. NANO RP2040 navíc obsahuje po stranách zářezy a lze jej tedy použít pro povrchovou instalaci přímo na desku plošného spoje (podobně jako je na DOIT ESP32 DEVKITV1 uchycen modul ESP32-WROOM-32).
HW Parametry
Nevýhodou ESP32 je, že se procesor stará o běh hlavního kódu a zároveň o síťová připojení. Toto může vést k různým problémům s časováním hlavního kódu při současných operacích s WiFi, jako například aktualizace stránky webového serveru.
| ARDUINO NANO RP2040 CONNECT | DOIT ESP32 DEVKITV1 (30 pin) |
---|---|---|
Procesor | Raspberry Pi RP2040 | ESP32-S1 (ESP32-D0WDQ6) V modulu ESP32-WROOM-32 |
Typ procesorových jader | ARM Cortex-M0+ @ 133MHz | Xtensa® 32-bit LX6 |
Počet jader | 2 | 2 |
Frekvence procesoru | 133 MHz | 80 MHz až 240 MHz (lze zvolit před kompilováním programu) |
Vestavěná paměť v procesoru | 264 kB SRAM | 520 KB SRAM |
SPI flash | 16 MB | 4 MB |
Poznámka: paměť v procesoru v tomto případě není parametr, který by bylo možné porovnávat 1 : 1, vzhledem k odlišným způsobům, jakým jednotlivé procesory pracují s pamětí (Von Neumann vs Harvard uspořádání paměti).
https://docs.arduino.cc/learn/programming/memory-guide
Napájení
Výhodou Nano RP2040 je velký rozsah vstupního napětí při zachování rozumných teplot. Obsahuje totiž DC-DC měnič (buck converter).
Oproti tomu deska s ESP32 obsahuje lineární regulátor AMS1117, který se zahřívá přímo úměrně velikosti vstupního napětí. AMS1117 bohužel není nejspolehlivější, protože v něm není ochrana proti ESD a vstupní napětí má max 15 V.
Obě desky lze napájet jak z USB (5 V, konektor microUSB), tak ze vstupního VIN pinu. Bohužel ani jedna z desek nedisponuje obvodem pro nabíjení lithiových akumulátorů, nicméně existují varianty desek s ESP32, které nabíjecími obvody disponují (Wemos Lolin ESP32, Adafruit HUZZAH32).
ARDUINO NANORP2040 CONNECT | DOIT ESP32DEVKITV1 (30 pin) | |
---|---|---|
Napájecí rozsah externího zdroje (VIN) | StepDown převodník MP2322 5-21V | AMS1117, 12 V (max. 15 V) |
Max. proud na jeden I/O pin | 4 mA | 28 mA |
Nabíjecí obvod pro Li-Pol | Ne | Ne |
Piny
ARDUINO NANORP2040 CONNECT | DOIT ESP32DEVKITV1 (30 pin) | |
---|---|---|
Počet 5V tolerantních pinů | 0 | dle datasheetu 0 (neoficiálně všechny vstupní piny) https://hackaday.com/2022/05/12/is-esp8266-5-v-tolerant-this-curve-tracer-says-yes/ |
Počet PWM pinů | 20 | 25 |
Digitální vstupy/výstupy | 20 | 25 |
Analogové vstupy | 8 | 15 |
Interrupts | 20 | 25 |
Vestavěná LED | Pin 13 RGB LED na WiFi modulu | GPIO2 |
Capacitive touch | ne | 9 pinů |
Přehrávání zvuku | emulace I2S sběrnice pomocí PIO | I2S sběrnice |
Počet úrovní ADC převodníku | 4kanálový ADC s vnitřním senzorem teploty, 0,5 MS/s, rozlišení 12 bitů | rozlišení až 12 bitů, tj. 4096 odlišných hodnot možnost nastavit více rozsahů: 0–1 V 0–1.34 V 0–2 V 0–3,6 V |
Specialitou na ESP32 desce jsou piny, které fungují jako kapacitní senzory dotyku (na plánku označené jako TouchX).
Obě desky používají na svých pinech logické úrovně 0–3,3 V. Jejich piny nejsou 5 V tolerantní. U NANO RP2040 Connect je dokonce odpojen 5 V pin jako ochrana před nechtěným vypálením desky. Při potřebě využití tohoto pinu je nutné propájet jumper na spodní straně desky.
U všech periferií, jako jsou senzory, je tedy nutné zkontrolovat, jestli dokáží fungovat na těch napěťových úrovních a pokud ne, je třeba použít převodník úrovní (level shifter) z 5V logiky, kterou používá např. Arduino Uno, Mega, atd.
Nepoužitelné piny ESP32
Přesto, že na označení pinů není nic poznat, některé GPIO piny vyžadují zvláštní zacházení a jsou to piny, které slouží k nastavení bootovacího režimu/nahrávání desky. To znamená, že při startování musí mít konkrétní napěťové úrovně, aby nedocházelo k opakovanému resetu/přepnutí do nahrávacího režimu.
Tyto piny jsou GPIO0, GPIO2 a GPIO5.
Sběrnice
ARDUINO NANORP2040 CONNECT | DOIT ESP32DEVKITV1 (30 pin) | |
---|---|---|
Počet I2C sběrnic | Čip umí 2 | 2 |
Počet I2S sběrnic | až 6 lze emulovat přes PIO | Ano |
Počet SPI sběrnic | Čip umí 2 | 1 |
Počet sériových portů (UART) | Čip 2 | Serial(programování, debugging); Serial2 |
PIO (statemachine) | 8 | ne |
CAN bus(TWAI) | ne | ano |
Bezdrátové technologie
ARDUINO NANORP2040 CONNECT | DOIT ESP32DEVKITV1 (30 pin) | |
---|---|---|
WiFi frekvence/standardy | 2,4 GHz WiFi802.11b/g/n | 2,4 GHz 802.11 b/g/n (802.11n až 150 Mbps) |
WiFi čip | Modul u-blox NINA-W102 (založený na ESP32) | Nativní v procesoru |
Bluetooth | Bluetooth 4.2 | Bluetooth v. 4.2 BR/EDR and BLE specification |
Secure element Podporované šifrování: | ATECC608A-MAHDA-TCrypto IC SHA-256 AES-128 | Podpora hardwarového AES šifrování |
Externí anténa | Ne | Existují varianty s konektorem |
USB připojení
ARDUINO NANORP2040 CONNECT | DOIT ESP32DEVKITV1 (30 pin) | |
---|---|---|
USB konektor | Micro USB | Micro USB |
USB drag&drop bootloader | Ano | Ne |
Čip pro komunikaci s PC | Nativní v procesoru, USB 1.1 | CP2102 |
Podpora USB HID (klávesnice, joystick) | Ano | Nelze přes vestavěný microUSB konektor |
Integrované sensory
ARDUINO NANORP2040 CONNECT | Node MCU 32 ESP32DEVKITV1 (30 pin) | |
---|---|---|
Integrované senzory | Mikrofon MP34DT05 Gyroskop/akcelerometr LSM6DSOXTR(6 os) | Hallův senzor Teploměr v procesoru |
Programování
Obě desky mají podporu pro programování v ArduinoIDE v jazyce Wiring (C++). Bohužel to automaticky neznamená, že budou fungovat veškeré knihovny pro klasická Arduina na platformě AVR, jako je UNO, MEGA atd., a je třeba hledat knihovny specifické pro konkrétní procesor.
Druhou možností programování je Python ve variantách CircuitPython a MicroPython. Je celkem logické, že Arduino neposkytuje podporu pro instalaci Pythonu a je třeba návody hledat přímo na stránkách jednotlivých projektů, např. https://circuitpython.org/board/arduino_nano_rp2040_connect/
Pro instalaci Pythonu na RP2040 je třeba malý trik, vzhledem k absenci jednoho tlačítka oproti Raspberry Pi Pico. To je vybavené BOOT tlačítkem, které je nutné držet při připojení PC, a pak se Pico navenek prezentuje jako USB disk a je možné na něj nahrát UF2 soubor s interpretem Pythonu. Arduino RP2040 Connect má jen RESET tlačítko a pro připojení jako disk je třeba držet tlačítko při připojování a ještě jednou jej zmáčknout, což vyžaduje cvik.
Obě desky jsou podporované v CircuitPython od Adafruit.
ARDUINO NANO RP2040 CONNECT | DOIT ESP32DEVKITV1 (30 pin) | |
---|---|---|
Operační systém mikrokontroléru | MbedOS | freeRTOS with LwIP; TLS 1.2 |
Podporovaná prostředí | Arduino IDE, MicroPython | Arduino IDE, MicroPython, CircuitPython, LUA |
Podpora v PlatformIO | Ano | Ano |
OTA update po WiFi | Ano (přes Arduino Cloud, odkudkoliv) | Ano (v lokální síti) |
Podpora Arduino Cloud | Ano | Ano |
Možnosti programování
Arduino IDE
Rychlá instalace knihoven, nových desek
PlatformIO
- Zmínka o Visual Studio Code
- Atom
Arduino Cloud
Cena a dostupnost
Přes prvotní problémy s nedostatkem součástek pro RP2040 je nyní dostupnost dobrá a stabilní. To platí pro obě srovnávané desky.
ARDUINO NANORP2040 CONNECT | DOIT ESP32DEVKITV1 (30 pin) | |
---|---|---|
Cena | 25,2 € oficiální obchod 610 Kč HWKITCHEN | 4.4 $ (cena na AliExpress) |
Závěr
Vzhledem k nízké ceně lze varianty ESP32 doporučit tam, kde je potřeba experimentovat a existuje riziko zničení desky. Pro low cost aplikace je ESP32 těžko překonatelné. Naopak Arduino NANO RP2040 Connect lze využít tam, kde je požadována vysoká spolehlivost a funkčnost, oficiální podpora Arduino a případně menší velikost. K desce jsou také k dispozici různé certifikáty CE, WEE, FCC, RoHS atd. Výhodou je také plná konektivita přes Arduino Cloud.
Věřím, že obě desky mají své cílové skupiny a doufám, že vám článek pomůže s výběrem.
- Srovnání Arduino Nano RP2040 Connect s ESP32 - 1.3.2023