Raspberry Pi Pico et RP2040 : la fondation lance un premier micro-contrôleur à 4 dollars

Raspberry Pi Pico et RP2040 : la fondation lance un premier micro-contrôleur à 4 dollars

La bidouille pour tous

Avatar de l'auteur
David Legrand

Publié dans

Hardware

21/01/2021 3 minutes
21

Raspberry Pi Pico et RP2040 : la fondation lance un premier micro-contrôleur à 4 dollars

Face à la montée en puissance des solutions à petit prix exploitant des micro-contrôleurs plutôt que des SoC complets, la fondation Raspberry Pi dévoile son Pico, vendu pour 4 dollars seulement.

Les Raspberry Pi et ses clônes sont de petits ordinateurs complets vendus quelques dizaines d'euros et sur lesquels on peut installer un système d'exploitation puis développer des applications. Mais une tendance différente s'est développée ces dernières années : les micro-contrôleurs des Arduino, BBC micro:bit et autres ESP32/8266.

RP2040 : passer des SoC aux micro-contrôleurs

Il s'agit de cartes dotées de puces encore plus légères, bien moins gourmandes en énergie, que l'on peut directement programmer pour effectuer des actions précises. Elles sont aussi plus compactes et moins coûteuses. On trouve ainsi les ESP32/8266 pour quelques euros seulement, au point que ces modules soient en général vendus par trois ou plus. 

Tout cela semble avoir donné des idées à la fondation Raspberry Pi qui n'avait pas de solution équivalente à proposer. Il y a certes ses modèles de la gamme Zero, à petit prix et très compacts, mais pas totalement adaptés pour certains usages. Ainsi est né le RP2040 qui équipe le nouveau Raspberry Pi Pico annoncé à 4 dollars. 4,2 euros chez Kubii.

Gravée en 40 nm, la puce prend la forme d'un package QFN-56 de 7 x 7 mm. Elle intègre ou peut gérer :

  • Deux cœurs ARM Cortex-M0+ à 133MHz
  • 264 Ko de mémoire
  • Un contrôleur DMA
  • 30 broches GPIO, 4 pour des entrées analogiques
  • 2 UARTs, 2 contrôleurs SPI controllers et 2 I2C
  • 16 canaux PWM
  • Un contrôleur/PHY USB 1.1 pour hôtes et appareils
  • Un mode de boot USB mass storage avec gestion de l'UF2
  • 8 machines à état Raspberry Pi Programmable I/O (PIO) 

Un Raspberry Pi Pico et de nombreux partenaires

On peut également lui adjoindre jusqu'à 16 Mo de stockage Flash via un bus QSPI dédié. La carte Raspberry Pico en intègre 2 Mo. Elle se présente sous la forme d'un PCB de 21 × 51 mm avec 26 connecteurs GPIO dont 3 pour des entrées analogiques. Elle est dotée d'un port micro USB pour l'alimentation et le transfert de données. Sa documentation technique complète se trouve par ici. Différentes ressources se trouvent par là.

La fondation dit avoir travaillé avec plusieurs partenaires pour qu'ils proposent leurs propres cartes et intégrations du RP2040. Elle liste plusieurs produits déjà annoncés, dont l'Arduino Nano RP2040 Connect avec Bluetooth/Wi-Fi.

Pour les développeurs, un SDK C, des outils basés sur le compilateur GCC et une intégration à Visual Studio Code sont prévus. D'autres outils sont évoqués comme un portage de TensorFlow Lite Micro. Ceux qui veulent un accès à  un niveau moins « profond » pourront se tourner vers MicroPython qui a été adapté pour cette solution, tout comme l'IDE Thonny. Un guide dédié est d'ailleurs déjà édité. Tout comme des ressources pédagogiques.

Écrit par David Legrand

Tiens, en parlant de ça :

Sommaire de l'article

Introduction

RP2040 : passer des SoC aux micro-contrôleurs

Un Raspberry Pi Pico et de nombreux partenaires

Commentaires (21)


Je rêve d’un Pi Zero 2. Le Pi Zero se vends par palette.


Avec un W en option alors. Parce que souvent le souci sur ce modèle (et le Pico d’ailleurs) c’est qu’on se retrouve sans connexion, ce qui empêche pas mal d’usages.


W pour Wireless ?
100% pour ! Le SSH c’est la vie pour gérer ces bidules. :)



Edit : ah oui en effet, je ne connaissais pas le Pi Zéro premier du nom en version W.


Je m’attendais à une compatibilité arduino, vu que c’est pour du prototypage ils y auraient gagné une foule de librairies toutes faites.



Un acteur de plus c’est une bonne et une mauvaise nouvelle, c’est cool pour la concurrence mais ça fragmente le marché et donc la communauté.



MoonRa a dit:


Je rêve d’un Pi Zero 2.




Avec deux ports USB data dont un en OTG, c’est juste ça qu’il me manque. Pour pouvoir faire un boitier de chiffrement/déchiffrement de disque/clef USB, et y accéder en USB depuis un PC, sans rien avoir à installer sur le PC… Un proxy de chiffrement, en somme.


Pas sûr qu’ils auraient pu réutiliser les librairies pour Arduino, étant donné que le Pico est basé sur leur propre microcontrôleur


En fait, si ça n’est pas encore le cas, Arduino à l’air d’y travailler (voir fin de cet article : https://blog.arduino.cc/2021/01/20/welcome-raspberry-pi-to-the-world-of-microcontrollers/)


Comme dit dans le papier, un Arduino basé sur le RP2040 arrive, et donc l’adaptation de la couche logicielle qui va avec (voir le billet de blog cité dans l’article ou en #7)


on peut utiliser l’ide arduino pour jouer avec des ESP8266, faut “juste” adapter le compilateur au microcontroleur utilisé (un esp8266 @100+ mhz (160 il me semble) c’est pas pareil que l’atmega d’un arduino uno)
c’est vrai que ça ferait une base conséquente, par contre y’aurait probablement du taff pour optimiser les lib



on ressort le xkcd sur les standards ? XD
mais je suis du même avis, “cool un nouvel acteur avec (peut-être) de nouvelles idées”, mais “zut encore un nouveau truc qui va réinventer la roue”



ErGo_404 a dit:


Je m’attendais à une compatibilité arduino, vu que c’est pour du prototypage ils y auraient gagné une foule de librairies toutes faites.




Quand on parle des “micro contrôlleurs” de ce type, on est souvent sur du micro python/C pour permettre d’utiliser les outils de prise de vue caméra/traitement de signal/vision, qui ne sont pas super sur Arduino.



Par contre c’est quoi les PIO?


Je me posais la question aussi et apparemment, ce sont des blocs dédiés au I/O entièrement programmables. L’idée, si on en croit la datasheet, c’est de permettre de programmer n’importe quelle interface, mais avec d’aussi bonne performances qu’un circuit dédié à une interface spécifique. Enfin je me comprends… Voir p.323 de la datasheet : https://datasheets.raspberrypi.org/rp2040/rp2040_datasheet.pdf


J’avoue qu’un Pico W serait très alléchant ! (avec le wifi donc)


Voir le lien Arduino Nano RP2040 Connect dans l’article, Arduino a fait une carte et ils sont entrain de faire un portage Arduino pour le RP2040.



Mais bon je suis assez dubitatif sur cette carte, j’ai du mal à voir ce qu’on y gagne concrètement par rapport à un ESP32, 4$ sans wifi c’est pas compétitif par rapport à un ESP32 toujours moins cher qui a une énorme communauté, qui semble un peu plus puissant, a une connectivité wifi/BT intégrée, a de base plus de mémoire et un nombre équivalent de GPIO.



Il reste le support USB natif, la consommation pour les applications sur batteries et surtout les “PIO” qui sont un concept assez intéressant, des sortes de coeurs hyper basiques pour gérer les entrées/sorties avec quelques instructions, la description est ici:
https://hackspace.raspberrypi.org/articles/what-is-programmable-i-o-on-raspberry-pi-pico



Mais en version Arduino avec module wifi séparé ça va coûter un bras (et plus qu’un pi zero W) donc tout l’avantage de la carte à 4$ s’envole.


Pi Zero W 2, pour booster le GPI Case.


C’est clair que l’ESP32 beaucoup d’avantages et je me disais la même chose…



On trouve même des montres connectées à base d’ESP32…



PreviouslNpact a dit:


Voir le lien Arduino Nano RP2040 Connect dans l’article, Arduino a fait une carte et ils sont entrain de faire un portage Arduino pour le RP2040.



Mais bon je suis assez dubitatif sur cette carte, j’ai du mal à voir ce qu’on y gagne concrètement par rapport à un ESP32, 4$ sans wifi c’est pas compétitif par rapport à un ESP32 toujours moins cher qui a une énorme communauté, qui semble un peu plus puissant, a une connectivité wifi/BT intégrée, a de base plus de mémoire et un nombre équivalent de GPIO.



Il reste le support USB natif, la consommation pour les applications sur batteries et surtout les “PIO” qui sont un concept assez intéressant, des sortes de coeurs hyper basiques pour gérer les entrées/sorties avec quelques instructions, la description est ici: https://hackspace.raspberrypi.org/articles/what-is-programmable-i-o-on-raspberry-pi-pico



Mais en version Arduino avec module wifi séparé ça va coûter un bras (et plus qu’un pi zero W) donc tout l’avantage de la carte à 4$ s’envole.




4$ le µC c’est gratuit pour la débauche de puissance qu’il à.
à ce prix j’ai meme pas un hyper classique pic 16f877


Clairement ce µC a quelques avantages.
Il a quelques gros concurents en face de lui : les STM32 “blue pill” et “black pill” (avec STM32F4) et l’ESP32



Mais il a quand même des fonctions très sympa :




  • son alimentation buck/boost très souple (on l’alimente aussi bien en USB qu’avec deux piles AA)

  • Ses fameux PIO, qui sont des ports programmables, qu’il faut voir comme des “mini FPGA” .

  • Son support USB host natif

  • La possibilité native de flasher le programme en mode USB sans avoir à gérer un logiciel spécialisé

  • un environnement de développement qui semble très accessible même pour ceux qui viennent du monde “arduino”

  • une faible consommation



Ceux qui cherchent à avoir du wifi et bluetooth pour le même prix se tourneront certainement vers l’ESP32. Et ceux qui veulent avoir du pas cher et en quantité prendront le STM32. Mais ce petit Pi a quand même du potentiel.
A voir ce que ça va devenir !


Effectivement, la programmation est hyper simple :




  • J’alimente le rasp en maintenant son bouton appuyé

  • Il est vu comme une clé usb (!)

  • Je copie le fichier au format uf2
    et… c’est tout ! Par défaut (démarrage normal) le port usb émuleun port série : tout est exploitable sur n’importe quelle bécane sans outil ou soft complémentaire. Idéal pour faire découvrir le monte des uC aux gamins sans se prendre la tête.



Rowin a dit:


Je me posais la question aussi et apparemment, ce sont des blocs dédiés au I/O entièrement programmables.




Merci, je ne savais pas qu’il y avait cette doc (bible).



Les PIO sont exactement ce que je cherche depuis … 20 ans… (pilotage VGA et autres). C’est franchement génial sur la papier. Vraiment envie d’essayer pour piloter des écrans de cadre photo!



Les PIO sont exactement ce que je cherche depuis … 20 ans… (pilotage VGA et autres). C’est franchement génial sur la papier. Vraiment envie d’essayer pour piloter des écrans de cadre photo!




Oui espérons que si le Pi Pico ne fait pas son trou l’idée sera reprise par d’autres, ce serait bien le genre de choses qu’on pourrait retrouver chez Espressif, c’est un peu le même esprit que le coprocesseur ULP présent dans l’ESP32 qui permet de lire des capteurs en I2C ou SPI, un thermistor etc etc Plus versatile mais plus compliqué à mettre en place et limité en perfs.




Jungledede a dit:


4$ le µC c’est gratuit pour la débauche de puissance qu’il à. à ce prix j’ai meme pas un hyper classique pic 16f877




Mais à ce prix là (et surtout au prix réel de vente) moi j’ai des devboard ESP32. Et bientôt ESP32-C basé sur l’architecture RISC-V et qui peut-être corrigera le gros défaut de l’ESP32: la consommation.
Pour ce prix là j’ai aussi des modules NRF52833/52840, single core, 64MHz et 2x moins de mémoire mais Cortex M4 donc 30% des perfs brutes d’un double M0+ à 133MHz mais avec beaucoup, beaucoup plus de fonctionalités hardware inclues (dont de la cryptographie), une radio BLE 5, du NFC, …



Donc ça se discute sur le rapport coût/puissance puisque seul sans module radio externe les applications risquent de rester un peu limitées, et avec un module externe le coût ne sera plus compétitif et la conso possiblement plus si avantageuse.



Jungledede a dit:


4$ le µC c’est gratuit pour la débauche de puissance qu’il à. à ce prix j’ai meme pas un hyper classique pic 16f877




Pour 5$ j’ai acheté des longan nano. Convaincant aussi.