De BL808 van Bouffalo Lab (figuur 1) is inmiddels enkele maanden verkrijgbaar in de vorm van de Pine Ox64 van Pine64 (figuur 2) en de Sipeed M1s Dock (figuur 3). Het is een draadloze MCU met WiFi 802.11 b/g/n, BLE 5.0 en ZigBee. Hij lijkt een beetje een kloon van de ESP32 te zijn, maar hij heeft veel meer onder de motorkap dan je op het eerste gezicht zou denken. De andere familieleden zijn al even indrukwekkend. De BL602 (ook verkrijgbaar in de Elektor-shop) is te beschouwen als een alternatief voor de ESP8266 met Bluetooth Low Energy (BLE), en is al jarenlang verkrijgbaar. Naast de BL808 zijn ook de BL702 en BL616 nieuwe familieleden. Ze worden kort beschreven in dit artikel.

De Bouffalo Lab BL808 MCU
Figuur 1. De BL808 MCU van Bouffalo Lab.
De Pine Ox64 van Pine64. De Sipeed M1s Dock.
Figuur 2. De Pine Ox64 van Pine64.  Figuur 3. De Sipeed M1s Dock.

De BL808

De BL808 heeft een asymmetrische dual core-architectuur met een 64bit-kern (RV64IMAFCV) op een klokfrequentie van 480 MHz en een 32bit-kern (RV32IMAFCP) die op 320 MHz draait. Dit soort asymmetrische configuraties zijn niets nieuws: de STM32H747 op de Arduino Portenta H7 heeft ook een asymmetrisch ontwerp. Maar als we ze nader bekijken, blijken deze twee MCU’s sterk van elkaar te verschillen. In figuur 4 zie je het blokschema van de BL808.

BL808 functioneel blokschema
Figuur 4. Functioneel blokschema van de BL808 (bron: Bouffalo Lab, https://elektor.link/GHBL808FBD).

Twee processorkernen

De RISC-V -processorkernen zijn niet in-huis ontwikkeld, maar het betreft de C906 en E907 van T-Head, een dochtermaatschappij van de Alibaba Group. De kernen beschikken over 728 kB SRAM en 64 MB pSRAM (een royale hoeveelheid voor een MCU). Dankzij de geheugenmanagement-unit (MMU) kan de BL808 zelfs een mainline Linux-kernel draaien, en dat is tegenwoordig toch nog tamelijk uniek voor een MCU. Er is ook een accelerator voor neurale netwerken beschikbaar (BLAI-100, met een capaciteit van 0,1 TOPS) voor de twee rekenkernen. Wie zich het artikel “Start Playfully with RISC-V: How to Run Quake 1 on a Microcontroller” nog kan herinneren, kent misschien ook nog de Canaan Kendryte K210, een 64 bit dual core-MCU met RISC-V-processorkernen op 400 MHz, een AI-accelerator en 8 MB RAM, ideaal voor objectherkenning.

Het idee achter het asymmetrische ontwerp van de BL808 is om een (64bit-)Linux-kernel voor multimedia te koppelen aan een microcontroller voor real time-toepassingen. We moeten dus even kijken naar de periferie; zie voor een complete lijst van alle functionaliteit het kader De BL808-periferie.

Overzicht van BL808 randapparatuur

Tussen multimedia en bussystemen

De schets van de systeemarchitectuur in figuur 5 onthult de functionele layout van de BL808. De multimedia-kant bevat enkele voor een MCU nogal ongebruikelijke elementen, zoals een scaler, een MJPEG-decoder/encoder, een H264-encoder, een audiocodec, een MIPI CSI en een MIPI DSI. Samen met de 10/100 Mb/s Ethernet-controller en de USB 2.0-HS OTG-interface (480 Mb/s) heeft de MCU alle hardware die nodig is om als videocamera dienst te doen.

BL808 systeemarchitectuur
Figuur 5. Systeemarchitectuur van de BL808 (bron: Bouffalo Lab, https://elektor.link/GHBL808SA).

Aan de andere kant is de MCU ondermeer uitgerust met vier I2C-controllers, twee SPI-controllers, vier UART’s en een CAN 2.0b-interface (aangemerkt als ISO 11898). Verder heeft hij een ADC, DAC, touch-controller, PWM-eenheden en de gebruikelijke GPIO-pinnen, dus de MCU is zeker niet beperkt tot multimediatoepassingen.

De draadloze interfaces bieden ook veel hardware voor het bouwen van projecten. Toch leert de ervaring dat een datasheet maar een deel van het totale plaatje laat zien. Hardwaredocumentatie, een SDK, voorbeelden, een toolchain en praktische ervaring zijn onontbeerlijk om de chip en zijn mogelijkheden goed te kunnen inschatten. Bouffalo Lab is niet de eerste fabrikant die deze weg inslaat, maar soms waren het de SDK en de documentatie (of het ontbreken daarvan), eerder dan de hardware zelf, die een succesvolle toepassing van het product in de weg stonden.
 

Inschrijven
Schrijf u in voor tag alert e-mails over RISC-V!

Tussen twee werelden

De BL808 zweeft eigenlijk tussen twee werelden: hij is meer dan een MCU, maar toch minder dan een singleboard-computer zoals de eerste Raspberry Pi. De hardware is interessant, zeker omdat er RISC-V-processorkernen zijn gebruikt. Hij biedt een rijke collectie on-chip-hardware, waardoor hij niet alleen een Linux-kernel kan draaien maar ook kan werken met een ander soort RTOS. Met 64 MB RAM heeft hij meer aan boord dan de meeste andere MCU’s en met 128 Mb (16 MB) extern flash-geheugen, een SD-interface en de USB 2.0-HS-controller zul je niet snel zonder geheugenruimte zitten. Als je een BL808 in de vorm van de Pine Ox64 of een Sipeed M1s Dock hebt, kun je een Linux-kernel draaien met rudimentaire tools. Maar de BL808 is nog tamelijk jong en zal, net als de ESP32, waarschijnlijk ondersteuning van de community nodig hebben om door te breken.

Sipeed M1s Dock
Figuur 6. De Sipeed M1s Dock.
De geveegde MAix BiT
Figuur 7. De Sipeed MAix BiT.

De Pine Ox64 in Raspberry Pi Pico-vormfactor

Aan de buitenkant lijkt de Sipeed M1s Dock (figuur 6) een beetje op een ESP32 DevKitC, maar met optionele camera en display is hij meer een alternatief voor de Sipeed Maixduino Kit voor RISC-V AI + IoT (figuur 7). Maar de Pine64 heeft een andere aanpak.

De pinning en de vormfactor van de Pine Ox64 komen overeen met die van de Raspberry Pi Pico en Raspberry Pi Pico W. In figuur 8 en figuur 9 zie je een vergelijking van dit board met de Raspberry Pi Pico. Bij de Pine Ox64 is de microUSB-poort alleen bedoeld voor de voeding. De USB 2.0-HS OTG-functie is beschikbaar op een USB-C-poort, die ook de datalijnen bevat voor een CSI-camera-accessoire die voor later op de planning staat.

BL808 en Raspberry Pi Pico W (boven en onder)
Figuur 8. en Figuur 9. BL808 en Raspberry Pi Pico W (bovenaanzicht en onderaanzicht). 

De gekozen vormfactor maakt het mogelijk om sommige periferie voor de Raspberry Pi Pico ook hier te gebruiken; makers kunnen dan gemakkelijker experimenteren met het board en toegang krijgen tot een bestaand hardware-ecosysteem.

BL616 functioneel blokschema.
Figuur 10. Functioneel blokschema van de BL616 (bron: bouffalolab op GitHub, https://elektor.link/GHBL616FBD).

BL616

De BL616 is het kleine broertje van de BL808. Hij heeft slechts én 32bit RISC-V kern (RV32IMAFCP) en minder periferie, zoals te zien in het blokschema van figuur 10. Hij heeft 480 KB RAM en 4 MB intern flash-geheugen. Sipeed levert voor de BL616 de M0S (figuur 11) en de M0S Dock als kleine modules. Met zijn USB 2.0-HS OTG-poort op 480 Mb/s is hij zeker geschikt voor een aantal interessante toepassingen.
 

Geïsoleerde M0S-module
Figuur 11. De Sipeed M0S-module (bron: Sipeed M0S DataSheet V1.0 [PDF], https://elektor.link/SpdM0SDS).

BL702 en BL602

De BL602 en BL702 zijn niet nieuw, maar misschien kent nog niet iedereen ze. De BL602 is de oudste van de hier beschreven chips. De hoeveelheid RAM- en flash-geheugen is vergelijkbaar met die van een ESP8266 en de BL602 ondersteunt naast WiFi ook BLE 5.0. De BL602 was de eerste chip van Bouffalo Lab. Hij was breed geadopteerd in de community, maar werd later overschaduwd door de ESP32. De BL602 heeft een 32bit RISC-V-kern met een klokfrequentie van 192 MHz en 276 KB RAM. Er is voor de BL602 (die ook verkrijgbaar is in de Elektor-shop op de Pine BL602 EVB) documentatie van LEE Lup Yuen, beschikbaar, om de instap te vergemakkelijken. De periferie van de BL602 (zie het blokschema in figuur 12) is, in vergelijking met de rest van de familie, tot een minimum beperkt.

De BL702 heeft ook een 32bit RISC-V-kern, maar ondersteunt alleen BLE en Zigbee 3.0. Zoals te zien in het blokschema van figuur 13 heeft hij aanzienlijk meer periferie dan de BL602. Vanwege zijn USB 2.0 FS-interface (12 MB/s) wordt de BL702 ook vaak ingebouwd in goedkope debuggers, ondanks het ontbreken van WiFi-functionaliteit.
 

Schema's BL602 en BL702
Figuur 12. Functioneel blokschema van de BL612 (bron: Bouffalo Lab BL602/604 datasheet op GitHub [PDF], https://elektor.link/GHBL602FBD).
Figuur 13. Functioneel blokschema van de BL702 (bron: bouffalolab op GitHub, https://elektor.link/GHBL702FBD).

Documentatie en SDK

Er is documentatie voor de BL808, BL702, BL616, en BL602 beschikbaar in het Engels en in het Chinees. Net als bij andere bedrijven kan die niet gewoon van de website worden gedownload, maar is die beschikbaar in een GitHub-repository. Het voordeel daarvan is dat gebruikers kunnen wijzen op fouten en mogelijke verbeteringen, maar het wekt ook de indruk dat de documentatie nog niet af is. De documenten zijn bruikbaar, maar ze zijn zeker niet vergelijkbaar met de datasheet van de Raspberry Pi Pico.

Toch kun je met de datasheet en de referentiehandleiding voor deze chips toepassingen ontwikkelen. Als je op zoek bent naar een geschikt Arduino-framework, zul je nog even moeten wachten. Voor de BL602, wordt daar al wel aan gewerkt, maar de andere typen worden nog niet ondersteund.

Om met die chips toepassingen te ontwikkelen, kun je bl_m cu_sdk, gebruiken. Deze ondersteunt code in C/C++. Ook hier is er nog zichtbaar ruimte voor verbetering.
 

Inschrijven
Schrijf u in voor tag alert e-mails over Microcontrollers!

Een eerste conclusie

Onze eerste indruk van de BL808 en BL616 is dat ze een veelbelovende toekomst kunnen hebben. Het is wel de vraag waarom dit soort chips in Azië zo snel ontwikkeld kan worden, terwijl de grote fabrikanten in Europa en Amerika op het ogenblik een veel conservatievere benadering lijken te hebben bij het ontwikkelen van nieuwe hardware. De laatste echte verrassing in dat opzicht was (en is nog steeds) de RP2040 van Raspberry Pi.

Als je een stabiel platform met een robuuste SDK zoekt, moet je voorlopig niet bij de hier besproken chips zijn. Maar documentatie en een SDK zijn beschikbaar op GitHub, dus je kunt niet alleen de voorgang in de gaten houden, maar je kunt ook (net als bij andere fabrikanten) een actieve bijdrage leveren. Bovendien lijken de prijzen en de functionaliteit van deze chips heel aantrekkelijk. Maar met de huidige SDK en de huidige toestand van de drivers zijn ze meer geschikt voor mensen die graag willen experimenteren en de mogelijkheden willen verkennen. Voor mij persoonlijk is de vraag niet alleen “kan hij Doom draaien?” maar ook “kan hij Quake draaien?”

Als je aan de slag wilt met de BL808, is de Pine Ox64 van Pine64 ongetwijfeld een interessante mogelijkheid. Helaas is dit board nog niet verkrijgbaar in de Elektor-shop en als je het rechtstreeks bestelt bij de fabrikant, moet je er rekening mee houden dat je invoerrechten moet betalen. Daarom vragen we je om ons te laten weten of je geïnteresseerd in dit board; dan laten we je weten wanneer het in de Elektor-Shop beschikbaar komt.
 


Vragen of opmerkingen over de BL808?

Hebt u vragen of opmerkingen naar aanleiding van dit artikel? Stuur een e-mail naar de redactie van Elektor via redactie@elektor.com.