In januari 2021 werd de makerscene verrast toen Raspberry Pi hun Pico Board en hun gloednieuwe RP2040-microcontroller lanceerde. Een paar maanden later kondigde ook Arduino een op RP2040 gebaseerd board aan: de Arduino Nano RP2040 Connect.

De Arduino Nano RP2040 Connect gaat verder waar Raspberry Pi was gebleven toen ze besloten om geen draadloze connectiviteit op het Pico Board te plaatsen. Begrijpelijk, want het zou de prijs hebben doen stijgen, maar dit voelde door velen als een gemiste kans. Daarom is de "Connect" uitgerust met een u-blox NINA-W102 wifi- en Bluetooth-radiomodule. Dit is een module van dezelfde fabrikant als op de Arduino Nano 33 BLE.

Naast draadloze connectiviteit heeft de Connect een microfoon en een zes-assige slimme bewegingssensor met AI-mogelijkheden. Er is een RGB-led beschikbaar, maar ook 22 GPIO-poorten, 20 met PWM-ondersteuning en zes analoge ingangen (acht als je de I2C-bus meetelt). Deze laten de gebruiker bijvoorbeeld relais, motoren en LED's bedienen en schakelaars en andere sensoren uitlezen.

Programmageheugen is er in overvloed met 16 MB flashgeheugen, meer dan genoeg voor het opslaan van veel webpagina's of andere gegevens.

De Arduino Nano RP2040 Connect is "Raspberry Pi-compatibel", wat betekent dat hij niet alleen ondersteuning biedt voor het volledige RP2040-software-ecosysteem, maar ook volledige ondersteuning voor MicroPython. Tegelijkertijd ondersteunt het board de programmeertaal van Arduino, de IDE's v1 en v2 en alle bibliotheken die daarbij horen. Ten slotte is de Connect volledig compatibel met Arduino Cloud en de Arduino IoT Remote smartphone-app.

WiFi en Bluetooth

Draadloze connectiviteit wordt geleverd door een NINA-W102-module van u-blox (Afbeelding 1). Volgens het datasheet is deze module een stand-alone multi-radio MCU-module die een krachtige microcontroller en een radio voor draadloze communicatie integreert. Het heeft wat ze bij u-blox een open CPU-architectuur noemen. Dit betekent dat het aan de gebruiker is om alle software ervoor te schrijven. Out of the box doet hij niets. Kortom, de NINA-W102 is een variant van de ESP32-module in een blikje met een antenne.

Afbeelding 1: De u-blox NINA-W102 stand-alone multi-radio MCU-module
heeft een Espressif ESP32 onder de motorkap (bron: u-blox).
De firmware voor de NINA-module is gemaakt door het Arduino-team en de broncode is te vinden op GitHub.

Nu we dit weten, realiseren we ons plotseling dat de Arduino Nano RP2040 Connect veel krachtiger is dan we aanvankelijk dachten, omdat hij niet alleen een RP2040 heeft met twee Cortex-M0+ cores, maar ook een dual-core ESP32 en Wi-Fi en Bluetooth. Alle Wi-Fi- of Bluetooth-dingen die je normaal op een ESP32-module zou doen, werken ook op de NINA-module en dus kan de RP2040 voor andere taken worden gebruikt.

Arduino Nano RP2040 Connect Boardoverzicht

Als we naar het blokschema van de Connect (Afbeelding 2) kijken, zien we dat de twee MCU's een I2C-bus delen waarop de accelerometer (de IMU) en de authenticatie chip (ook wel bekend als secure element) zijn aangesloten, zodat beide MCU's deze kunnen gebruiken . De twee MCU's zijn ook onderling verbonden door middel van een gedeelde SPI/UART-bus.

 

Afbeelding 2: Overzicht van de Arduino Nano RP2040 Connect.

De RGB-led van het board is aangesloten op de ESP32, ik bedoel de NINA-module, terwijl de microfoon is aangesloten op de RP2040. De verlengconnectoren (Afbeelding 3) zijn ook aangesloten op de RP2040, behalve de pinnen A6 en A7 die zijn aangesloten op de ESP32. Merk op dat de analoge pinnen A4 en A5 zijn gereserveerd voor de I2C-bus, ze hebben 4k7 pull-up-weerstanden en zijn aangesloten op beide MCU's. Dit is ook het geval voor de QSPI_CSn-pin die op het board is gelabeld met REC, maar Reset op het pin-out-diagram.

Afbeelding 3: Legenda van de uitbreidingsconnectoren van de Arduino Nano RP2040 Connect (bron: arduino.cc).

De Arduino Nano-familie

Eigenlijk lijkt de Connect een soort opgewaardeerde of verbeterde versie van het Arduino Nano 33 IoT-board te zijn. Ook dit board combineert een ARM Cortex-M0+ processor met een u-blox NINA W102 draadloze module. De processor, een SAMD21, is echter een single-core chip in plaats van een dual-core en het board heeft geen RGB-LED en microfoon. Het heeft ook minder geheugen en is langzamer.

Wat de software betreft, wordt de Connect echter op één hoop gegooid met de Arduino Nano 33 BLE. Dit board heeft ook een u-blox NINA-module, maar dan op basis van een nRF52840 MCU van Nordic Semiconductor en er is geen tweede MCU. Het heeft ook geen wifi, alleen Bluetooth.

Samen met de Nano 33 BLE Sense vormen de Connect en de "BLE" de Mbed OS Nano-familie (Afbeelding 4). Het is mij niet duidelijk waarom de Nano 33 IoT geen deel uitmaakt van deze familie. (Niet genoeg geheugen?) Eigenlijk vind ik dat de Arduino Nano RP2040 Connect de Nano 33 Connect had moeten heten, maar het vervangen van de '33' door 'RP2040' kan de verkoop stimuleren.

 

Afbeelding 4: De Arduino Nano-familie bestaat momenteel uit vier boards. Ze meten slechts 45 × 18 mm (bron: arduino.cc).

Software-ondersteuning

Omdat het een Arduino-board is, integreert de Connect naadloos in de Arduino IDE. Op het moment van schrijven van dit artikel lijkt er echter geen ondersteuning te zijn voor het gebruik van de twee kernen van de RP2040 en er is niets RP2040-specifiek, zoals ondersteuning voor de PIO-blokken of de interpolator. De voorbeelden zijn allemaal generieke Arduino-voorbeelden die op veel boards draaien. Er zijn een paar tutorials die uitleggen hoe je de microfoon of de IMU moet gebruiken, maar niets dat alleen op een RP2040 draait, wat ik een beetje teleurstellend vind.

Ik bedoel, waarom zou je een RP2040 op het board zetten als je er geen ondersteuning voor geeft? Zonder dit zou het board gewoon een Nano Connect zijn met vergelijkbare specificaties en mogelijkheden. De RP2040 lijkt vooral een I/O-extender voor de ESP32 te zijn om te voldoen aan de Nano-vormfactor. Het maakt het ook mogelijk dat het board Mbed OS-compatibel is omdat de ESP32 dat niet is, omdat het geen ARM-processor is (alleen ARM-gebaseerde boards kunnen Mbed OS-compatibel zijn). Maar die doelen hadden ook kunnen worden bereikt door bijvoorbeeld een Cortex-M7 MCU te gebruiken in plaats van een RP2040. En noem het dan zoiets als Arduino Portenta.

De grote vier

De Arduino Nano RP2040 Connect combineert vier grote namen uit de embedded maker-scene - Arduino, Raspberry Pi, ESP32 en Mbed OS - in een enkele module, wat best interessant is. Het toont de wil om het beste van open source te combineren in plaats van te proberen alles propriëtair te houden, zoals grote halfgeleiderfabrikanten geneigd zijn te doen.

Samenvatting: Arduino Nano RP2040 Connect

Samenvattend is de Connect dus een kleine maar zeer krachtige microcontrollermodule met veel mogelijkheden voor de prijs van een (officiële) Arduino Uno. Als je op zoek bent naar een niet al te duur board met Wi-Fi en/of Bluetooth en in staat is om Mbed OS te draaien voor een of andere IoT-toepassing, dan is de Connect een prima optie. Als je daarentegen op zoek bent naar een manier om met de RP2040 binnen de Arduino IDE te spelen, dan ben je waarschijnlijk beter af met het veel goedkopere maar iets grotere Raspberry Pi Pico-board, dat trouwens ook Mbed OS kan draaien. Voor dual-core en alle andere RP2040-specifieke dingen, installeer het Earle Philhower III's Arduino IDE-boards pakket, het ondersteunt ook de Connect.

Bekijk deze recensie als video

 
Vertaling: Hans Adams