Espressif werkt aan wifi-soc op basis van RISC-V

De Chinese fabrikant Espressif werkt aan een variant van de populaire ESP32-wificontroller maar dan met een cpu op basis van RISC-V in plaats van Xtensa. De controller lijkt pin-compatibel te worden met de ESP8266.

Espressif ESP32-C3De ESP32-C3 bevat een enkele 32bit-core op basis van de RISC-V-architectuur en met een kloksnelheid van 160MHz. De controller ondersteunt wifi en Bluetooth LE 5.0. Dat blijkt uit informatie van Espressif, waaronder een datasheet, die door CNX op een rij is gezet. Onduidelijk is of Espressif de informatie in China zelf naar buiten heeft gebracht.

De soc bevat 400KB sram en 384KB rom. Het gaat om een variant van de ESP32, die een of twee LX6-cores op basis van de Xtensa-architectuur van Cadence heeft. De C3-variant van de ESP32 is pin-compatibel met de ESP8266. Dit is een oudere wificontroller van Espressif die het zonder bluetoothondersteuning moet doen en ook minder krachtig is dan de ESP32. Wel heeft ook de ESP8266 een Xtensa-core.

De wificontrollers van Espressif zijn populair voor hobbyprojecten vanwege hun lage prijs. Door voor RISC-V te kiezen hoeft Espressif geen licentiekosten meer aan Cadence af te dragen. RISC-V is een opensource instruction set architecture dat als doel heeft om cpu-ontwerpen vrijelijk onder een BSD-licentie beschikbaar te stellen.

Door Olaf van Miltenburg

Nieuwscoördinator

23-11-2020 • 11:49

52

Reacties (52)

52
52
37
9
1
12
Wijzig sortering
Ik ben hier best wel hype voor!

De oude cores zijn best wel proprietary en hebben erg slechte ondersteuning van de grote open source compilers. Je bent dus overgelaten aan de tools die ze zelf uitbrengen. Ik heb daar nooit mee gewerkt, maar ze schijnen niet al te best te zijn.

Deze socs kan ik dus ook lekker in Rust gaan programmeren (zonder een compiler fork te gebruiken) 😁

(edit: het schijnt wel redelijke support te hebben in GCC, maar clang lijkt wel wat minder te zijn)

[Reactie gewijzigd door diondokter op 22 juli 2024 18:34]

Dat de RISC-V architectuur onder een permissive licentie valt betekent niet dat de chips die er op zijn gebaseerd dat ook zijn. De BSD license komt min of meer neer op "Je doet maar wat je wil", daar valt het veranderen van de licentie of de broncode niet beschikbaar stellen ook onder.

Deze chip zal waarschijnlijk kei proprietary zijn en pot dicht zitten.
Als nuancering: Nee, de chip is niet 'open' in de zin van je kan onze HDL-code en maskers etc gratis downloaden en aanpassen :P maar we houden ons wel gewoon aan de RiscV specs, en onze peripherals gaan netjes gedocumenteerd worden in de TRM. Op de radio-gerelateerde zooi na, maar dat openen is een nogal complex verhaal vrees ik.
Espressif biedt een SDK aan waarmee je je eigen software op de CPU core van de ESP8266 / ESP32 draait. Ze promoten dit als een single-chip oplossing voor IOT toepassingen, en het is een vrij open ecosysteem met zowel commerciële toepassingen als enorm veel hobbyprojecten. Zo is er via externe projecten ondersteuning voor MicroPython en LUA scripting, naast native programma's in C.

Het probleem tot dusver was de rare instructieset, waardoor je vastzit aan bepaalde (versies van) compilers, en het lastig experimenteren is met bijv Rust in plaats van C. Overigens is dit wel mogelijk, door een geforkte versie van de Rust compiler te koppelen aan een in-progress fork van LLVM met xtensa support.

Er zijn ook mensen die zonder de SDK aan de slag willen met deze chips, maar dan is het vrij lastig om de chip meer te laten doen dan een LEDje aan en uit te laten gaan, laat staan de Wifi / Bluetooth hardware iets nuttigs te laten doen. Alleen iets voor de puristen of mensen die een uitdaging zoeken voorlopig.

[Reactie gewijzigd door enzozus op 22 juli 2024 18:34]

Er zijn ook mensen die zonder de SDK aan de slag willen met deze chips, maar dan is het vrij lastig om de chip meer te laten doen dan een LEDje aan en uit te laten gaan, laat staan de Wifi / Bluetooth hardware iets nuttigs te laten doen.
Dat valt echt reuze mee hoor! Met de Arduino IDE kun je het bordje goed programmeren, en is me niet direct opgevallen dat er afwijkingen zijn ten opzichte van een standaard Arduino. Je zal daarmee misschien niet het onderste uit de kan halen, maar er een webserver op laten draaien, die toegankelijk maken via WiFi en een pagina presenteren met knoppen om de thermostaat te bedienen: best te doen.
Je kunt er best wel veel meer mee doen dan wat je nu noemt.
<shameless plug> kijk maar naar ESPEasy ;) </>

Wat mij vooral aan staat aan dit nieuwe ontwerp is de 400 k geheugen.
De hoeveelheid geheugen is bij de ESP8266 toch echt wel een beperkende factor om zaken als HTTPS enzo te ondersteunen.

Wat ik wel een beetje "eng" vind is dat ze 384k ROM hebben.
Dat klinkt een beetje alsof er heel erg veel bordjes en Sonoff-achtige units op de markt gaan komen zonder externe flash en 384k is wel heel weinig om fatsoenlijk iets leuks mee te doen. Zeker als je ook nog OTA updates wilt doen.
Espressif heeft met de ESP8285 ook een versie van de ESP8266 op de markt met embedded flash, waardoor je die erg veel terug ziet, zonder externe flash.
De initiele grootte van de flash in de ESP8285 is 1 MB. Er schijnt ook een versie met 2 MB te zijn, al heb ik die nog niet gezien.
Maar gegeven de populariteit van de "een fractie goedkopere" versies, vrees ik het ergste voor deze versie als deze nu ook al intern flash heeft.
Nadeel van pin-compatible zijn met ESP8266 is dat je ook niet echt veel meer GPIO pinnen erbij krijgt.
De 16 stuks van de ESP82xx (waarvan je er een stuk of wat niet eens kunt gebruiken omdat er flash aan zit, ook voor de ESP8285) is namelijk niet echt veel.
Wat dat betreft was de ESP32 toch echt wel een hele sprong voorwaards met veel RAM, veel GPIO pinnen, hardware timers, vrijwel elke pin te gebruiken voor vrijwel elke toepassing, 3 HW serial poorten, 2 HW I2C poorten, etc, etc....

We zullen zien of dit voor de hobbyist een leuke SoC gaat worden of niet.
Vooralsnog zie ik als enige voordeel het grotere geheugen.en bluetooth (en mogelijk minder kritische timing voor bepaalde protocollen).
Maar het zal wel een tijdje wachten zijn op goede libraries.
ESPEasy gebruikt gewoon de SDK van Espressif. De discussie ging over gesloten WiFi chips en mijn punt was dat het aan de ene kant een heel open ecosysteem is, maar dat de code die de WiFi aanstuurt enzo wel gewoon een "blob" is waar het niet de bedoeling van is dat je er iets aan verandert. En er niet echt een "open" alternatief is voor die blob. Wat niet bedoelt is als kritiek, ik wilde gewoon de situatie uitleggen.

[Reactie gewijzigd door enzozus op 22 juli 2024 18:34]

Met Arduino IDE download je "gewoon" de SDK om te kunnen compileren voor het bordje dat gebeurt terwijl je de vereisten installeert om ermee te werken.

Waar @enzozus aan refereert is echt helemaal zelf van 0 je software gaan bouwen.
Deze chip zal waarschijnlijk kei proprietary zijn en pot dicht zitten.
Het eerste deel van je relaas is terecht en gebaseerd op feiten. Waar baseer je deze aanname op?
Dit is standaard voor alle WiFi devices die released zijn in de afgelopen 20 jaar. Zover ik weet zijn er bijvoorbeeld nog geen 802.11ac WiFi adapters die blob-vrij kunnen draaien. De recentste WiFi chips die volledige vrij draaien zijn 802.11n chips van 10 jaar geleden.
Zouden ze dan niet alleen de WiFi-module dicht kunnen zetten? Of blijft er dan weinig over?
Heeft dat niet meer te maken met wetgeving, wat per land anders is? En de blob, eigenlijk de enigste manier voor een fabrikant is, om zich aan de wet te houden.
Nah, een blob is niet controleerbaar, hetgeen conflicterend is en per definitie privacy problemen opleveren voor de overhed.

Zie stemfiasco's.

De wet gaat over gebruikersresultaat, niet het werkproces dat daaraan ten grondslag ligt; da's nou juist het bedrijfsgeheim, de meerwaarde.
Je kan bv. meerdere talen gebruiken.

[Reactie gewijzigd door Bulkzooi op 22 juli 2024 18:34]

Er zit wel degelijk ook een wettelijke component in: Radioverkeer is op punten behootlijk strak geregeld en als je daar niet aan voldoet mag je je product niet in bv de EU verkopen.

Als er in die blob zaken worden geregeld om aan die richtlijnen te voldoen en je zorgt dat je device alleen die blob kan draaien heb je een redelijke case bij de certificeringsinstituten, zonder dat je verschillende hardware versies hoeft te maken.
Da's het probleem, de trade secrets en het certificeringsproces. Maar omdat die code obfuscated is, kan je dat niet controleren.

Idd, dat geldt ook voor wifi drivers. Ik geloof dat het zendvermogen valt onder wat jij bedoeld.
Ik herken dit nog wel van OpenWrt waarmee je vroeger heel simpel het aantal mW om te zenden omhoog kon zetten.

[Reactie gewijzigd door Bulkzooi op 22 juli 2024 18:34]

Het gaat puur om het hebben van een technologisch voordeel op de concurrent. Er word een enorme hoeveelheid werk in de firmware gestopt zodat deze apparaten zo snel en energiezuinig mogelijk functioneren. En daarnaast zou het ook een beetje "security through obscurity" zijn.
Precies dit! Ik kijk er al naar uit om $5 microcontrollers met WiFi en Rust/Golang support te krijgen!
Nu moet ik voor die hobbyprojecten nog terugvallen naar een taal die ik liever niet uit vrije wil gebruikt.

(Er is sinds kort wel meer leven in de ESP32 ondersteuning van LLVM/Clang/Rust, maar out of the box werkt het dus niet).
Denk ik nu als noob te ver en te simpel door of kan dit ook helpen bij het omzeilen van het handelsverbod als de Chinese bedrijven geen amerikaanse producten meer mogen gebruiken?

Kunnen ze dan overstappen op RISC-V architectuur of moet alle software dan worden herschreven?
Je zult het minimaal opnieuw moeten compileren en testen.
Er wordt al op grote schaal gebruik gemaakt van RISC-V in China, onder andere door Alibaba en Huami. Iedereen kan overstappen op RISC-V, hoewel nog niet alle software in een gemiddelde Linuxdistributie werkt. De software hoeft niet herschreven te worden, maar er dienen wel enige aanpassingen gedaan te worden, net zoals dat voor andere instructiesets ook het geval is.
Klopt. En omdat ARM in Amerikaanse handen is/komt, nog meer reden voor China (en hopelijk EU) om een open-source CPU te ontwikkelen en verbeteren. Instappen in low-end, en dan stapsgewijs beter maken.

Hercompileren nodig, met waarschijnlijk enig herschrijfwerk. Op https://wiki.debian.org/RISC-V kan je zien hoe ver Debian daarmee is.
Dit is erg vet nieuws; ben benieuwd of bestaande ESP-IDF projecten eenvoudig te porten zijn naar deze nieuwe architectuur. Er is inmiddels ook een datasheet te vinden: klik
Da's wel de bedoeling; we zijn achter de schermen hard aan ESP-IDF support aan het timmeren en het doel is dat (zolang je peripherals/features gebruikt die in beide chips bestaan) zonder enige aanpassingen je project kan re-targetten naare de C3.
Bedankt voor je reactie, dat is erg nice! Is er al enige indicatie van performance en verbruik t.o.v. de bestaande modellen?
Een ESP8266 kost nu inclusief antenne al rond de €1.00 op Ali: https://nl.aliexpress.com...b201602_,searchweb201603_

Een opvolger hiervan had wel wat meer Rom mee mogen krijgen: 384KB rom is wel erg mager, een ESP32 heeft 4mb, 1mb was een mooi compromis geweest.

Overigens een ESP32 kost op dit moment €1,60: https://nl.aliexpress.com...b201602_,searchweb201603_

Een ESP32 -S2 was al gelanceerd als goedkoper alternatief; dat zou dus onder de €1,60 uit komen. Dan moet deze kleinere minder capabele ESP32-C3 uiteindelijk onder de €1,00 uit komen.
Let wel: de 384K is het ingebouwde bootROM, de ESP32 had ook zoiets aan boord (448K in dat geval). Dat ROM is niet herschrijfbaar; het bevat de logica om de ESP32 te laten booten en wat libraries. Je eigen programmacode zit in een (vaak externe, maar ingebouwd in de module) flashchip en die kan gewoon 4MB of 16MB of whatever zijn.
Dank; dat klinkt goed.
Ligt de performance van de 160mhz Risc-V in de buurt van een 160mhz ESP32 bij gebruik van 1 core? Of is de clock voor clock snelheid van de Risc-V core beduidend lager dan de LX6 core van de ESP32?
Krijgt de chip, vanwege pin-compatibiliteit met de ESP8266, 17 GPIO pinnen of krijgt het er een aantal extra, buiten de pin-compatible pinnen om?

[Reactie gewijzigd door Database freak op 22 juli 2024 18:34]

Minder licentiekosten -> nog goedkopere chips... of begrijp ik dat verkeerd? }>
* Sprite_tm stuurt dit berichtje naar z'n baas
If the information is correct that means ESP32-C3 based RISC-V WiFi and Bluetooth modules similar to ESP-01 should soon be available for sale for around $1.
Een ESP32 voor een dollartje, kom maar door :)
Zou een SoC als deze bijvoorbeeld ook gebruikt kunnen worden als basis voor een een DSL/Wifi router ?
Nee, te weinig rekenkracht en geheugen zoals het er nu op lijkt.
Deze zijn bedoeld voor low power IOT toepassingen. Niet echt een snelheidsmonster. Denk aan WiFi-enabled stopcontacten, speakers, en weerstations, en devices met een super basic display en een paar knopjes.
Wat ik vooral interessant vind, is dat RISC-V toch wat bekender is, waar het Xtensa platform wat exotisch blijft. Het gebruik van een wat gangbaardere architectuur is wellicht zo gek nog niet.
Ik heb er volgens mij wel eens naar gekeken toen ik voor NXP werkte lang geleden. Tensilica is niet zo heel exotisch. Het zat als Audio DSP in de AMD SoCs en in de PS4 SoC ook. Werd ook in de Holo Lens van Microsoft gebruikt.

Chinese and Taiwanese fabrikanten doen er alles aan om royalties te voorkomen, dus niet zo gek dat ze naar RISC V of Andes Technology kijken. Andes is trouwens ook een van founding members van RISC V.
Huidige setup is vrij toegankelijk onder arduino, wat waarschijnlijk de grootste use case is
Dat is zo, maar Arduino code heeft wel veel abstractie. Dat is niet altijd even wenselijk. Bij Atmega controllers programmeer ik vaak in een mix van Arduino stijl C++ en AVR stijl C.
Is idd altijd een afweging. Dat zou ik een moeten proberen.
Vast wel weer een leuke toepassing mee te maken...
Hoewel ik met de ESP-12D tot nu toe eigenlijk altijd wel uit de voeten kom en zelfs de ESP-01S vaak al voldoende is. Maar soms is het best leuk als je meer kunt doen ;)
RISC-V gebaseerde WiFi/Bluetooth SoCs beginnen langzaam beschikbaar te komen. De Linux/hacker community is momenteel bezig met het openbreken van de BL602 om deze draaiend te krijgen onder vrije drivers en firmware.

Op dit item kan niet meer gereageerd worden.