Le BL808 de Bouffalo Lab (figure 1) est disponible depuis plusieurs mois sur les cartes Pine Ox64 de Pine64 (figure 2) et Sipeed M1s Dock (figure 3). Il s’agit d’un MCU sans fil avec wifi 802.11 b/g/n, BLE 5.0 et Zigbee. On dirait un peu un clone de l’ESP32, mais il a beaucoup plus sous le capot que ce que l’on pourrait croire à première vue. Les autres membres de sa famille sont tout aussi impressionnants. Le BL602 (qu’on trouve aussi dans la boutique Elektor) peut être considéré comme une alternative à l’ESP8266 avec Bluetooth Low Energy (BLE), et il est disponible depuis déjà plusieurs années. Avec le BL808, les BL702 et BL616 sont de nouveaux venus dans la famille et nous allons les décrire brièvement dans cet article. 

Le Bouffalo Lab BL808 MCU
Figure 1. Le MCU BL808 de Bouffalo Lab.
Le Pine Ox64 de Pine64. Le Sipeed M1s Dock.
Figure 2. La Pine Ox64 de Pine64. Figure 3. La Sipeed M1s Dock.

Le BL808

Le BL808 possède une architecture double cœur asymétrique avec un cœur 64 bits (RV64IMAFCV) cadencé à 480 MHz et un cœur 32 bits (RV32IMAFCP) cadencé à 320 MHz. Les configurations asymétriques de ce type ne sont pas nouvelles – le STM32H747 déployé sur l’Arduino Portenta H7 a une conception asymétrique. Cependant, en y regardant de plus près, on constate que ces deux MCU sont radicalement différents. La figure 4 présente le schéma fonctionnel du BL808.

Schéma fonctionnel du BL808
Figure 4. Schéma fonctionnel du BL808. (Source : Bouffalo Lab, https://elektor.link/GHBL808FBD)

Deux cœurs de processeur

Les cœurs du processeur RISC-V ne sont pas le résultat d’un développement interne, mais sont constitués des C906 et E907 de T-Head, une filiale du groupe Alibaba. Les cœurs sont assistés par 728 KB de SRAM et 64 MB de pSRAM (une quantité généreuse pour un MCU). Grâce à l’unité de gestion de la mémoire (MMU), le BL808 peut même faire tourner un noyau Linux complet – une capacité relativement unique aujourd’hui pour un MCU. Un accélérateur pour réseaux neuronaux (BLAI-100, 0,1 TOPS) est également disponible pour les deux cœurs. Ceux d’entre vous qui se rappellent de l’article “Découvrez le RISC-V en jouant: comment faire tourner Quake 1 sur un microcontrôlleur” se souviendront peut-être du Canaan Kendryte K210, un MCU 64 bits à double cœur avec des cœurs RISC-V cadencés à 400 MHz, un accélérateur d’IA et 8 Mo de RAM – idéal pour les tâches de reconnaissance d’objets. 

La conception asymétrique du BL808 vise à relier un noyau compatible Linux (64 bits) pour le multimédia à un microcontrôleur pour les applications en temps réel. C’est pourquoi nous devons examiner brièvement les périphériques ; pour une liste complète de toutes les caractéristiques du dispositif, voir l’encadré « Aperçu des périphériques du BL808 »
 

Présentation des périphériques du BL808

Entre le multimédia et les systèmes de bus

Le diagramme d’architecture du système de la figure 5 révèle la disposition fonctionnelle du BL808. La partie multimédia contient des éléments plutôt inhabituels pour un MCU, tels qu’un convertisseur vidéo (scaler), un décodeur/encodeur MJPEG, un encodeur H264, un codec audio, un MIPI CSI et un MIPI DSI. Avec le contrôleur Ethernet 10/100 Mb/s et l’interface USB 2.0 HS OTG (480 Mb/s), le MCU dispose de tout le matériel nécessaire pour faire office de caméra vidéo. 

Architecture du système BL808
Figure 5. Architecture du système BL808. (Source : Bouffalo Lab, https://elektor.link/GHBL808SA)

De plus, le MCU est équipé parmi d’autres de quatre contrôleurs I²C, de deux contrôleurs SPI, de quatre UART et d’une interface CAN 2.0b (désignée comme ISO 11898). Les autres composants matériels comprennent un CA/N, un CN/A, un contrôleur tactile, des unités MLI et les broches GPIO habituelles, si bien que le MCU n’est certainement pas limité aux applications multimédias.

En outre, les interfaces sans fil permettent de disposer de beaucoup de matériel pour créer des projets. Néanmoins, l’expérience montre qu’une fiche technique ne peut présenter qu’une partie de l’image globale. Une documentation sur le matériel, un kit de développement logiciel, des exemples, une chaîne d’outils et une expérience pratique sont indispensables pour évaluer correctement le dispositif et son utilisation future. Bouffalo Lab n’est pas le premier fabricant à s’engager dans cette voie et, dans certains cas, c’est le SDK et la documentation (ou leur absence), plutôt que le matériel lui-même, qui ont fait obstacle à la réussite du déploiement du produit. 
 

Je m'abonne
Abonnez-vous à la balise thématique RISC-V pour être averti dès qu'une information relative à ce sujet sera publiée par Elektor !

Entre deux mondes

Le BL808 se situe entre deux mondes : plus qu’un simple MCU, mais toujours moins qu’un ordinateur monocarte tel que le premier RPi. Ce dispositif est intéressant sur le plan matériel, notamment parce qu’il incorpore des cœurs RISC-V. Il intègre une sélection diversifiée de matériel sur la puce, ce qui lui permet non seulement d’exécuter un noyau Linux, mais aussi de fonctionner avec un autre RTOS. En termes de RAM, 64 Mo est plus que ce que la plupart des autres MCUs peuvent offrir, et, avec 128 Mb (16 Mo) de flash externe, une interface de carte SD et le contrôleur USB 2.0 HS, vous ne craignez pas de manquer de mémoire. Si vous disposez d’un BL808 sur une carte Pine Ox64 ou Sipeed M1s Dock, vous pouvez déjà faire tourner un noyau Linux avec des outils rudimentaires. Mais le BL808 est encore assez jeune et, comme l’ESP32, il aura probablement besoin du soutien de la communauté pour trouver sa voie. 

Sipeed M1s Dock
Figure 6. La Sipeed M1s Dock.
Le Sipeed MAix BiT
Figure 7. La Sipeed MAix BiT.

La carte Pine Ox64 au format RPi Pico

De l’extérieur, la Sipeed M1s Dock (figure 6) ressemble un peu à une ESP32 DevKitC, mais, avec la caméra et l’écran en option, il se positionne plutôt comme une alternative au Sipeed Maixduino Kit for RISC-V AI + IoT (figure 7). Pine64, cependant, adopte une approche différente. 

Le brochage de la Pine Ox64, ainsi que son format, correspondent à ceux du RPi Pico et du RPi Pico W. Les figures 8 et 9 montrent la carte en comparaison avec le RPi Pico. Dans le cas du Pine Ox64, le port micro USB ne sert qu’à l’alimentation, tandis que sa fonction USB 2.0 HS OTG est disponible sur un port USB-C, qui contient également les lignes de données pour une caméra CSI en accessoire, prévue pour une date ultérieure. 
 

BL808 et Raspberry Pi Pico W (haut et bas)
Figure 8. BL808 et RPi Pico W (dessus). Figure 9. BL808 et RPi Pico W (dessous).

Le choix du facteur de forme permet d’utiliser également certains des périphériques du RPi Pico, ce qui, pour certains makers, simplifiera les expérimentations avec la carte et permettra d’accéder à un écosystème matériel existant. 

Schéma fonctionnel du BL616.
Figure 10. Schéma fonctionnel du BL616.  (Source : bouffalolab sur GitHub, https://elektor.link/GHBL616FBD)

BL616

Le BL616 est le petit frère du BL808. Il ne possède qu’un noyau RISC-V 32 bits (RV32IMAFCP) et un nombre réduit de périphériques, comme le montre le schéma fonctionnel de la figure 10. Le dispositif dispose de 480 Ko de RAM et de 4 Mo de mémoire flash interne. Pour ce dispositif, Sipeed propose le M0S (figure 11) et le M0S Dock sous forme de petits modules. Avec un port USB 2.0 HS OTG fonctionnant à 480 Mb/s, ce dispositif est assurément adapté à de nombreuses applications intéressantes.

 

Sipeed M0S module
Figure 11. Le module Sipeed M0S. (Source : Sipeed M0S DataSheet V1.0 [PDF], https://elektor.link/SpdM0SDS)

BL702 et BL602

Les BL702 et BL602 ne sont pas nouveaux, mais ils restent peu connus. Le BL602 est le plus ancien des dispositifs décrits ici. Sa dotation en RAM et flash est similaire à celle d’un ESP8266, et le BL602 prend en charge le BLE 5.0 en plus du wifi. Le BL602 a été le premier dispositif de Bouffalo Lab. Malgré un bon accueil de la communauté, il a ensuite été éclipsé par l’ESP32. Le BL602 possède un cœur RISC-V 32 bits cadencé à 192 MHz, ainsi que 276 Ko de RAM. Pour le BL602, également disponible dans l’Elektor Store avec la Pine BL602 EVB, il existe une documentation de LEE Lup Yuen, destinée à faciliter la prise en main. Par rapport au reste de la famille, les périphériques du BL602 (voir le schéma de principe de la figure 12) ont été réduits au minimum. 


Le BL702 possède également un cœur RISC-V 32 bits, mais ne prend en charge que BLE et Zigbee 3.0. Comme le montre le schéma fonctionnel de la figure 13, il dispose d’une dotation de périphériques nettement plus importante que le BL602. Grâce à son interface USB 2.0 FS (12 Mb/s), le dispositif a également été intégré dans des débogueurs bon marché malgré l’absence de wifi. 
 

Diagrammes BL602 et BL702
Figure 12. Schéma fonctionnel du BL602. (Source : Fiche technique BL602/604 de Bouffalo Lab sur GitHub [PDF], https://elektor.link/GHBL602FBD)
Figure 13. Schéma fonctionnel du BL702. (Source : bouffalolab sur GitHub, https://elektor.link/GHBL702FBD)

Documentation et SDK

On trouve la documentation en anglais et en chinois pour les BL808, BL702, BL616 et BL602. Comme pour d’autres entreprises, on ne la trouve pas simplement à télécharger sur un site web, mais plutôt depuis un dépôt GitHub. Même si cela permet aux utilisateurs de signaler les erreurs et les améliorations potentielles, il semble que la documentation soit encore en cours d’élaboration. Les documents sont utilisables, mais certainement pas comparables à la fiche technique du RPi Pico. 


Vous pouvez néanmoins développer des applications grâce à la fiche technique et au manuel de référence de ces dispositifs. Si vous êtes à la recherche d’un environnement Arduino convenable, vous devrez attendre un peu. Le travail a déjà commencé pour le BL602 , mais aucune prise en charge n’existe pour les autres dispositifs. 

Pour développer des applications avec ces dispositifs, on peut utiliser bl_mcu_sdk, qui permet le codage en C/C++. Ici aussi, vous constaterez qu’il y a encore de la place pour l’amélioration. 
 

Je m'abonne
Abonnez-vous à la balise thématique Microcontrôleurs pour être averti dès qu'une information relative à ce sujet sera publiée par Elektor !

Une première conclusion

La première impression donnée par les BL808 et BL616 est très prometteuse pour l’avenir. On peut toutefois se demander pourquoi de tels dispositifs peuvent être conçus aussi rapidement en Asie, alors qu’il semble que les derniers grands fabricants en Europe et en Amérique adoptent actuellement une approche très conservatrice en matière de développement. La dernière véritable surprise à cet égard a été (et est toujours) le RP2040 de Raspberry Pi. 


Si vous recherchez une plateforme stable avec un SDK robuste, il vaut mieux pour l’instant vous tourner vers d’autres dispositifs. Toutefois, la documentation et le SDK sont disponibles sur GitHub, ce qui vous permet non seulement de suivre les progrès, mais aussi (comme avec d’autres fabricants) de contribuer activement à l’amélioration. De plus, les prix et l’étendue fonctionnelle des dispositifs semblent très attrayants. En revanche, avec le SDK actuel et l’état actuel des pilotes, les dispositifs conviennent davantage aux utilisateurs passionnés par l’expérimentation et qui veulent découvrir ce qu’ils peuvent faire avec. En ce qui me concerne, la question n’est pas seulement « Peut-il faire tourner Doom ? » mais aussi « Peut-il faire tourner Quake ? ». 


Si vous voulez commencer avec le BL808, la Pine Ox64 de Pine64 est sans doute une option intéressante. Malheureusement, cette carte n’est pas encore disponible dans l’Elektor Store, et si vous la commandez directement auprès du fabricant, sachez que vous devrez payer des droits d’importation. Faites-nous savoir si vous êtes intéressé par cette carte, nous vous informerons lorsqu’elle sera disponible dans l’Elektor Store.

 


Questions ou Commentaires à propos du BL808?

Contactez l'équipe éditoriale d'Elektor à l'adresse suivante: redaction@elektor.fr si vous avez des questions ou des commentaires sur cet article.