En janvier 2021, la scène des fabricants a été prise par surprise lorsque Raspberry Pi a lancé sa carte Pico et son tout nouveau microcontrôleur RP2040. Quelques mois plus tard, Arduino a également annoncé une carte basée sur le RP2040 : l'Arduino Nano RP2040 Connect.

L'Arduino Nano RP2040 Connect reprend là où Raspberry Pi s'est arrêté en décidant de ne pas intégrer la connectivité sans fil sur la Pico Board. C'est compréhensible, car cela aurait fait grimper le prix, mais c'est ressenti comme une occasion manquée par beaucoup. Par conséquent, la "Connect" est équipée d'un module radio Wi-Fi et Bluetooth u-blox NINA-W102. Il s'agit d'un module du même fabricant que celui qui équipe l'Arduino Nano 33 BLE.

Outre la connectivité sans fil, le Connect dispose d'un microphone et d'un capteur de mouvement intelligent à six axes avec des capacités d'intelligence artificielle. Une LED RVB est également disponible. 22 ports GPIO, dont 20 avec support MLI et six entrées analogiques (huit si l'on compte le bus I2C), permettent à l'utilisateur de contrôler par exemple des relais, des moteurs et des LED et de lire des interrupteurs et autres capteurs.

La mémoire de programme est abondante avec 16 Mo de mémoire flash, plus que suffisante pour stocker de nombreuses pages Web ou d'autres données.

L'Arduino Nano RP2040 Connect est "Raspberry Pi Compatible", ce qui signifie qu'elle prend en charge non seulement l'ensemble de l'écosystème logiciel RP2040, mais aussi MicroPython. En même temps, la carte supporte le langage de programmation Arduino, les IDEs v1 et v2 et toutes les bibliothèques qui vont avec. Enfin, la Connect est entièrement compatible avec Arduino Cloud et l'application smartphone Arduino IoT Remote.

Wi-Fi et Bluetooth

La connectivité sans fil est assurée par un module NINA-W102 de u-blox (figure 1). Selon sa fiche technique, c'est un module MCU multi-radio autonome qui intègre un microcontrôleur puissant et une radio pour la communication sans fil. Il possède ce qu'ils appellent chez u-blox une architecture CPU ouverte. Cela signifie que c'est à l'utilisateur d'écrire tous les logiciels pour lui. En l'état, il ne fait rien. En fait, le NINA-W102 est encore un autre module ESP32 dans une boîte de conserve avec une antenne.

u-blox NINA-W102
Figure 1 : Le module MCU multi-radio autonome u-blox NINA-W102
a un ESP32 d'Espressif sous le capot (source : u-blox).
Le firmware du module NINA a été créé par l'équipe Arduino et le code source peut être trouvé sur GitHub.

Maintenant que nous savons cela, nous réalisons soudainement que l'Arduino Nano RP2040 Connect est beaucoup plus puissant que nous le pensions initialement, car il ne dispose pas seulement d'un RP2040 avec deux cœurs Cortex-M0+, mais aussi d'un ESP32 à double cœur et de fonctions Wi-Fi et Bluetooth. Tout ce que l'on utilise normalement sur un module ESP32 fonctionne également sur le module NINA et le RP2040 peut donc être utilisé pour d'autres tâches.

Aperçu de la carte

En examinant le schéma fonctionnel du Connect (Figure 2), nous constatons que les deux MCU partagent un bus I2C auquel sont connectés l'unité de mesure inertielle et le dispositif d'authentification, de sorte que les deux peuvent les utiliser. Ils sont également interconnectés au moyen d'un bus SPI/UART partagé.

Arduino Nano RP2040 Connect block diagram
Figure 2 : Synoptique de l'Arduino Nano RP2040 Connect.

La LED RVB de la carte est connectée à l'ESP32, euh, je veux dire au module NINA, tandis que le microphone est connecté au RP2040. Les connecteurs d'extension (Figure 3) sont également connectés a celui-ci, à l'exception des broches A6 et A7 qui sont connectées à l'ESP32. Notez que les broches analogiques A4 et A5 sont réservées au bus I2C, elles ont des résistances pull-up de 4k7, et elles sont câblées aux deux MCU. C'est également le cas pour la broche QSPI_CSn qui est étiquetée REC sur la carte mais Reset sur le schéma de brochage.

Arduino Nano RP2040 Connect pinout
Figure 3 : Légende des connecteurs d'extension de l'Arduino Nano RP2040 Connect (source : arduino.cc).

La famille Arduino Nano

En fait, la Connect semble être une sorte de version améliorée de la carte Arduino Nano 33 IoT qui combine également un processeur ARM Cortex-M0+ avec un module sans fil u-blox NINA W102. Toutefois, son processeur, un SAMD21, est un dispositif à un seul cœur au lieu d'un double cœur et la carte ne dispose pas de la LED RVB et du microphone. Elle dispose également de moins de mémoire, et elle est plus lente.

Du côté logiciel, en revanche, le Connect est regroupé avec l'Arduino Nano 33 BLE. Elle possède également un module u-blox NINA, mais celui-ci est basé sur un MCU nRF52840 de Nordic Semiconductor et il n'y a pas de second MCU. De même, elle ne dispose pas de Wi-Fi, mais uniquement de Bluetooth.

Avec le Nano 33 BLE Sense, le Connect et le "BLE", ils forment la famille Mbed OS Nano (Figure 4). Je ne comprends pas bien pourquoi le Nano 33 IoT ne fait pas partie de cette famille (pas assez de mémoire ?). En fait, je pense que l'Arduino Nano RP2040 Connect aurait dû s'appeler le Nano 33 Connect, mais le remplacement du '33' par 'RP2040' peut aider à stimuler les ventes.

Arduino Nano family
Figure 4 : La famille Arduino Nano comprend actuellement quatre cartes. Elles ne mesurent que 45 × 18 mm (source : arduino.cc).

Support logiciel

Etant une carte Arduino, la Connect s'intègre parfaitement dans l'EDI Arduino. Cependant, au moment de la rédaction de cet article, il ne semble pas y avoir de support pour l'utilisation des deux cœurs de la RP2040 et il n'y a rien d'autre de spécifique à la RP2040, comme le support de ses blocs PIO ou de l'interpolateur. Les exemples sont tous des exemples génériques Arduino qui fonctionnent sur de nombreuses cartes. Il y a quelques tutoriels qui expliquent comment utiliser le microphone ou l'IMU, mais rien qui ne fonctionne que sur une RP2040, ce que je trouve un peu décevant.

Je veux dire, pourquoi mettre une RP2040 sur la carte si vous ne fournissez aucun support pour elle ? Sans cela, la carte serait simplement une Nano Connect avec des spécifications et des capacités similaires. La RP2040 semble être principalement une extension d'E/S pour l'ESP32 afin de respecter le facteur de forme Nano. Il permet également à la carte d'être compatible avec le système d'exploitation Mbed, ce qui n'est pas le cas de l'ESP32, qui n'est pas un processeur ARM (seules les cartes basées sur ARM peuvent être compatibles avec le système d'exploitation Mbed). Mais ces objectifs auraient également pu être atteints en utilisant, disons, un MCU Cortex-M7 au lieu d'un RP2040. Et puis l'appeler quelque chose comme Arduino Portenta.

Les quatre grands

L'Arduino Nano RP2040 Connect combine quatre grands noms de la scène des makers - Arduino, Raspberry Pi, ESP32 et Mbed OS - en un seul module, ce qui est assez intéressant. Il témoigne d'une volonté de combiner le meilleur de l'open source au lieu d'essayer de tout garder propriétaire comme les grands fabricants de semi-conducteurs ont tendance à le faire.

Résumons

Donc, en résumé, la Connect est un petit module microcontrôleur très puissant avec beaucoup de possibilités pour le prix d'une Arduino Uno (officielle). Si vous recherchez une carte pas trop chère avec Wi-Fi et/ou Bluetooth et capable d'exécuter Mbed OS pour une application IoT, alors le Connect est une option valable. Si, d'autre part, vous cherchez un moyen de jouer avec la RP2040 dans l'EDI Arduino, alors vous êtes probablement mieux loti avec la carte Raspberry Pi Pico, beaucoup moins chère mais légèrement plus grande, qui, d'ailleurs, peut également exécuter Mbed OS. Pour le dual-core et toutes les autres choses spécifiques à la RP2040, installez le paquet Arduino IDE Boards de Earle Philhower III, il supporte aussi la Connect.

Voir cette critique en vidéo

 
Traduction: Maxime Valens