Schlagwort-Archive: RISC-V

M5Stack UNIT-C6L als Meshtastic Node

Die M5Stack UNIT-C6L ist ein LoRa-Kommunikationsgerät, bestehend aus dem Stamp C6LoRa-Modul mit dem RISC-V-Controller ESP32-C6. Integriert sind der LoRa-Transceiver SX1262 und RF-Schalter. Das Modul unterstützt den Frequenzbereich von 868 bis 923 MHz für eine robuste drahtlose Kommunikation.

Das User-Interface besteht aus einem 0,66″-OLED-Monochrom-Display mit einer Auflösung von 64 x 48 Pixeln, einer programmierbaren RGB-LED, einem Buzzer einem Benutzertaster.

Zwei SMA-Antennenanschlüsse für 2,4-GHz-WiFi 6 und LoRa ermöglichen eine hohe Leistung.

Mit der von M5Stack bekannten HY2.0-4P-Erweiterungsschnittstelle (Grove) und den LEGO-kompatiblen Befestigungslöchern können Sensoren oder Module einfach hinzugefügt werden.

M5Stack UNIT-C6L

Die Inbetriebnahme der UNIT-C6L erfolgt in der bei anderen Meshtastic-Modulen üblichen Weise. Eine schrittweise Anleitung ist hier zu finden.

Innerhalb weniger Minuten ist diese Meshtastic Node in Betrieb genommen. Die Firmware war mit v2.7.10 recht aktuell, dennoch habe ich v2.7.11 geflasht.

Die folgenden Abbildungen zeigen das doch recht kleine OLED-Display, was sicher noch einer weiteren Anpassung bedarf. In der ersten Abbildung ist zu sehen, dass für den hier geplanten stationären Einsatz mit festen Ortskoordinaten gearbeitet wird.

In der zweiten Abbildung sind Speicherauslastung und Firmware-Version zu sehen.

Die dritte Abbildung zeigt Messwerte eines am Grove-Anschluss angeschlossenen M5Stack ENV.II Sensors. Der alte Inhalt wird nicht sauber gelöscht.

Die vierte Abbildung zeigt die WiFi-Verbindung. Dass sie in meinem Fall 192.168.1.208 lautete, muss man allerdings auf anderem Weg ermitteln.

Mitteilungen werden erwartungsgemäss empfangen, jedoch kaum oder gar nicht sichtbar ausgegeben, wie die fünfte Abbildung verdeutlicht.

Die sechste Abbildung soll die aktuelle Zeit anzeigen. Hier war es 16:43 😉

Zumindest für die Anzeige der Uhrzeit habe ich eine mögliche Alternative gefunden.

Über die Fronttaste kann man die digitale Anzeige der Uhr durch eine analoge ersetzen. Wie die nebenstehende Abbildung zeigt, ist die Uhr auf diese Weise zumindest les- und damit nutzbar.

Bei zahlreichen Meshtastic Nodes mit OLED-Display wird ein  0,96″-Display mit einer Auflösung von 128 x 64 Pixeln verwendet. Die Firmware scheint auf diese Auflösung zugeschnitten zu sein, wie die folgenden Abbildung eines Heltec V3 zeigen.

Die M5Stack UNIT-C6L erfüllt, mit Ausnahme der Displayanzeigen, alle Erwartungen. Der Grove-Anschluss ist mit der seriellen Schnittstelle für den Anschluss einer GPS-Unit belegt. Sollen I2C-Sensoren da angeschlossen werden, muss die Firmware entsprechend angepasst werden.

Die Anpassung der Anzeigeninhalte an die geringere Auflösung des 0.66″-OLED-Displays war bereits eine Herausforderung und wird wahrscheinlich als Kompromiss so bestehen bleiben. Danke, Thomas Göttgens, für den hilfreichen Gedankenaustausch.

Ich möchte diese Meshtastic Node in einem geschützten Außenbereich zur Erfassung von Umweltdaten einsetzen. Das fehlerfreie Ablesen des Displays ist für diese Anwendung zweitrangig, zur Signalisation des Betriebszustands aber ganz brauchbar.


2025-10-28/CK

M5Stack Stamp-C3U

Heute im Postkasten – M5Stamp-C3U.

Der M5Stamp-C3U basiert auf dem 32-Bit-RISC-V-Mikrocontroller ESP32-C3 – RV32IMC von Espressif und arbeitet mit einer maximalen Taktfrequenz von 160 MHz.

Heute geliefert – – M5Stamp-C3U.

Ein ESP32-C3-DEVKITM-1 und ein ESP32-C3-DEVKITC02 hatte ich zu je € 9.65 bei Schukat bestellt und im Juli 2021 getestet. Siehe hierzu meinen Blogbeitrag ESP32-C3 – RV32IMC von Espressif. Für $ 5.90 erhalten Sie die M5Stamp-C3U im M5Stack Store.

Interessant sind die verschiedenen Bestückungsvarianten (SMT, DIP, Flywire, Grove Interface), die durch das hoch-temperatur-beständige Plastikgehäuse gegeben sind. Mit diesem Gehäuse können die internen Komponenten einschliesslich der 3D-Antenne sehr gut geschützt werden.


2022-02-03/CK

ESP32-C3 – RV32IMC von Espressif

Ende letzten Jahres kündigte Espressif bereits den ESP32-C3 an – einen kostengünstigen, RISC-V-basierten Mikrocontroller mit Wi-Fi- und Bluetooth 5 (LE)-Konnektivität für sichere IoT-Anwendungen.

Der ESP32-C3 ist eine 32-Bit-Single-Core-MCU auf RISC-V-Basis (RV32IMC) mit 400 KB SRAM, die mit bis zu 160 MHz getaktet werden kann. Neben integriertem 2,4-GHz-WiFi und Bluetooth 5 (LE) mit Long-Range-Unterstützung verfügt der ESP32-C3 über 22 GPIOs mit Unterstützung für ADC, SPI, UART, I2C, I2S, RMT, TWAI und PWM. Das ausführliche ESP32-C3-Datenblatt finden Sie hier.

Nun ist seit November reichlich Zeit vergangen und Module auf Basis des ESP32-C3 sind jetzt bestellbar.

Bei Schukat habe ich ein ESP32-C3-DEVKITM-1 und ein ESP32-C3-DEVKITC02 zu je € 9.65 bestellt. Andere Distributoren hatten wesentlich längere Lieferzeiten.

Beide DevKits unterscheiden sich nur durch das jeweils eingesetzte ESP32-C3-Modul und die resultierende Pinbelegung.

Das im ESP32-C3-DevKitM-1 eingesetzte ESP32-C3-MINI-1 ist ein universelles Wi-Fi- und Bluetooth LE-Kombimodul mit einer PCB-Antenne. Kern des Moduls ist ESP32-C3FN4 mit 4 MB embedded Flash Memory. Da das Flash Memory im ESP32-C3FN4-Chip verpackt ist hat das ESP32-C3-MINI-1 ein kompakteres Gehäuse.

ESP32-C3-DevKitM-1 Pin Mapping

Das im ESP32-C3-DevKitC-02 eingesetzte ESP32-C3-WROOM-02 ist ebenfalls ein universelles Wi-Fi- und Bluetooth LE-Kombimodul mit einer PCB-Antenne. Das Flash Memory ist ein externes 4 MB SPI-Flash.

ESP32-C3-DevKitC-02 Pin Mapping

Sollten Sie noch nicht mit RISC-V konfrontiert worden sein, dann hilft Ihnen vielleicht die in der Zeitschrift Design&Elektronik veröffentlichte Übersicht weiter:

Neustart mit RISC-V Design & Elektronik 1/2020, S. 29-35
https://www.elektroniknet.de/design-elektronik/halbleiter/neustart-mit-risc-v-173910.html

Wenn meiner Bestellung von Schukat eintrifft , werde ich erste Tests und Benchmarks in der mittlerweile ebenfalls vorhandenen Arduino-Umgebung vornehmen und darüber berichten.

In der Zwischenzeit kann ich Ihnen den folgenden Beitrag von Elliot Williams empfehlen: HANDS-ON: THE RISC-V ESP32-C3 WILL BE YOUR NEW ESP8266.

Den dort enthaltenen Benchmark habe ich in meine Benchmark-Übersicht mit aufgenommen.

Aus Sicht des Anwenders möchte ich seinem Schlussgedanken zustimmen:

„Aber es ist schön, RISC-V-Kerne in mehr Geräten zu sehen, nicht zuletzt, weil die standardisierte Befehlssatzarchitektur – die im Wesentlichen einem Standardsatz von maschinensprachlichen Befehlen gleichkommt – das Schreiben von optimierenden Compilern einfacher und schneller macht. Für den Endbenutzer ist das nicht so wichtig, aber wenn es Espressif durch das Einsparen von IP-Lizenzgebühren ermöglicht, ein moderneres Peripherieset zum ESP8266-Preis hinzuzufügen, dann sind wir alle dafür.“

An manchen Stellen wird der ESP32-C3 schon als ESP8266-Killer bezeichnet. Das bleibt abzuwarten, noch muss sich dieser neue Mikrocontroller erst behaupten.

Open-Source-Prozessoren – Für wen RISC-V eine Alternative ist

In der fünften Generation sorgt RISC für Aufsehen – auf Grund des Open-Source-Ansatzes. In kurzer Zeit wuchs mit RISC-V eine Community, die auf Basis des neuen Befehlssatzes Prozessorkerne entwickelt hat.

Einen Blick auf RISC-V und die ersten RISC-V SoCs finden Sie in ELEKTRONIK 18/2020 auf den Seiten 40 bis 44.

2020-10-03: Nun auch zitiert @ https://riscv.org/2020/09/for-whom-risc-v-is-an-alternative-dr-claus-kuhnel-elektronik-german/

Neustart mit RISC-V

Damit sich eine neue Befehlssatzarchitektur für Controller oder Prozessoren durchsetzt, ist viel Aufwand erforderlich. Hardware-Hersteller müssen überzeugt, Entwicklungswerkzeuge müssen angepasst und Entwickler eingearbeitet werden. Entsprechend selten kommt ein neuer Befehlssatz auf den Markt. Aber RISC-V hat die Anfangshürden genommen und ist auf dem Weg zum Erfolg.

Unter dem Titel „Neustart mit RISC-V“ ist eine Beitrag zu RISC-V in der Zeitschrift Design & Elektronik Heft 1/2020 angekündigt.

Um die Performance des Maixduino, einem Arduino-kompatiblen Kendryte K210 Dual-Core 64-bit RISC-V Prozessor (RV64IMAFDC), gegenüber anderen Arduinos resp. Arduino-kompatiblen Mikrocontrollern zu vergleichen, habe ich zwei Benchmarks laufen lassen:

  • Sieve of Eratosthenes
  • CoreMark

Den ersten Benchmark habe ich zu Vergleichszwecken verwendet, da ich in der Vergangenheit damit bereits zahlreiche Tests vorgenommen habe.

Erweiterung der Arduino-Familie: ESP32 – wie gut ist es?
https://www.elektroniknet.de/design-elektronik/embedded/erweiterung-der-arduino-familie-esp32-wie-gut-ist-es-160294.html

Arduino32: Die jungen Wilden.
http://www.elektroniknet.de/embedded/arduino32-die-jungen-wilden-131502.html

CoreMark 1.0 hingegen ist ein vom EEMBC empfohlener Test und zudem an die Arduino-Umgebung angepasst (https://www.eembc.org/coremark/). Beide Benchmarks stehen unter https://github.com/ckuehnel/newArduino/tree/master/Maixduino zum Download zur Verfügung.

Die Resultate der beiden Benchmarks zeigen die folgenden Abbildungen. Verglichen wurden ein Arduino Due (AT91SAM3X8E@84 MHz), ein ESPduino-32 (ESP-Wroom-32@80 MHz) und ein Maixduino (Kendryte K210 RISC-V@400 MHz).

Maixduino – Arduino-kompatibel auf Basis RISC-V

Das ganze $23.90 kostende Sipeed Maixduino Kit for RISC-V AI + IoT ist seit geraume Zeit im Haus und hat auf die Inbetriebnahme gewartet. Ziel für mich war, das Board in der Arduino-Umgebung in Betrieb zu nehmen, um einen direkten Vergleich zu anderen Arduinos zu bekommen.

Zum Lieferumfang des Maixduino Kits gehören die folgenden Komponenten:

  • Maixduino Board (rechts)
  • 2.4 inch TFT Display (Mitte)
  • OV2640 camera module (links)
Komponenten des Maixduino Kits

Die Frontseite des Maixduino Boards zeigt an Hand der Buchsenleisten Kompatibilität zum Arduino-Formfaktor und die Rückseite zeigt in einem Blockdiagramm die zur Verfügung stehenden Ressourcen.

Neben der eigentlichen Inbetriebnahme in der Arduino IDE hat mich vor allem die zu erwartende Performance interessiert.

Um das Maixduino Board der Arduino IDE bekannt zu machen ist der folgende Eintrag in den Preferences vorzunehmen.

File -> Preferences: Eintrag der URL http://dl.sipeed.com/MAIX/Maixduino/package_Maixduino_k210_index.json unter Additional Boards Manager URLs. Einträge durch Komma separieren.

Im Boards Manager dann Maixduino (K210) selektieren und die folgenden Board Settings einstellen:

  • Board: Maixduino
  • Burn Tool Firmware: open-ec
  • Burn Baudrate: 1.5 M
  • Port: Serial port
  • Programmer: k-flash

Die Programmer Software k-flash wird vom Norton SONAR entfernt. Norton muss hier entsprechend eingerichtet resp. „entschärft“ werden. Die komplette Installation ist unter https://maixduino.sipeed.com/en/get_started/install.html beschrieben.

Um die Performance des Maixduino gegenüber anderen Arduinos resp. Arduino-kompatiblen Mikrocontrollern zu vergleichen, habe ich zwei Benchmarks laufen lassen:

  • Sieve of Eratosthenes
  • CoreMark

Den ersten Benchmark habe ich zu Vergleichszwecken verwendet, da ich in der Vergangenheit damit bereits zahlreiche Tests vorgenommen habe:

CoreMark 1.0 ist ein vom EEMBC empfohlener Test und zudem an die Arduino-Umgebung angepasst ( https://www.eembc.org/coremark/ ). Beide Benchmarks stehen unter https://github.com/ckuehnel/newArduino/tree/master/Maixduino zum Download zur Verfügung.

Hier nun die Resultate der beiden Benchmarks. Verglichen wurden eine Arduino Due (AT91SAM3X8E@ 84 MHz), eine ESPduino-32 (ESP-Wroom-32@80 MHz) und ein Maixduino (Kendryte K210 RISC-V@400 MHz):

Benchmarkergebnisse Sieve of Erastothenes
Benchmarkergebnisse Coremark 1.0

Gegenüber dem Arduino Due hatte der ESP-32 bereits eine deutliche Verbesserung der Performance gezeigt, die aber vom Maixduino noch wesentlich überboten wird. Damit dürfte der Maixduino derzeit der leistungsfähigste Arduino-kompatible Mikrocontroller sein.

HiFive1 Rev. B

Vor wenigen Tagen war nun das über Mouser bestellte und von CrowdSupply gelieferte HiFive1 Rev. B Board im Postkasten.

HiFive1 Rev. B

Das HiFive1 Rev, B Board weist die folgenden Features auf:

  • MCU – SiFive Freedom E310-G0002 32-Bit RV32IMAC processor @ bis zu 320+ MHz (1.61 DMIPS/MHz)
  • Storage – 32 MBit SPI Flash
  • Connectivity – ESP32-SOLO-1 WiFi & Bluetooth module
  • I/Os (19 x Digital I/O Pins, 19 x external Interrupt Pins, 1 x external Wakeup Pin, 9 x PWM Pins, 1/3 SPI Controllers/HW CS Pins)
  • I/O Voltages –  3.3 V
  • USB – 1 x micro USB Port für Power, Programming und Debugging (via Segger J-Link)
  • Power Supply – 5 V via USB oder 7 – 12V via DC Jack; Operating Voltage: 3.3 V und 1.8 V
  • Dimensions – 68 mm x 51 mm
  • Gewicht– 22 g

Zur Programmierung kann das Freedom-E SDK herangezogen werden, was allerdings einen Linux-Rechner erfordert. ‌Alle Informationen hierzu sind unter https://github.com/sifive/freedom-e-sdk​ zu finden.

Die beim HiFive1 vorhanden Unterstützung der Arduino IDE wurde nicht weitergeführt.

Das Eclipse-basierte, wesentlich komplexere Freedom Studio läuft auch auf Windows.

Eine erste Idee von der Performance des HiFive1 Rev. B bekommt man über den Dhrystone Benchmark.

Resultat Dhrystone Benchmark (Out of the Box) (Das Ergebnis ist noch falsch – Bild wird ersetzt)

Mit diesem Ergebnis liegt der HiFive1 Rev. B in der Nähe von Cortex-M3/M4/A5.

MCUDIPS/MHz
HiFive1 Rev. B1.6
Cortex-M31.24
Cortex-M41.25
Cortex-A51.6

Quelle: https://brtchip.com/wp-content/uploads/Support/Documentation/Application_Notes/ICs/MCU/AN_304-FT900-Microcontroller-Benchmark.pdf

Angekündigt: MAIXDUINO

Maixduino, Sipeed’s neues MAiX-Board, führt die Arduino IDE und -Bibliotheken mit den MAiX RISC-V Boards (Kendryte K210-Chips) zusammen, wodurch eine großen Anzahl vorhandener Open-Source Arduino-Bibliotheken für die schnelle Entwicklung und das Prototyping mit Sipeed’s RISC-V Boards eingesetzt werden kann.

On-board sind K210 und ESP32. Auch die KPU des K210 wird unterstützt.

Ich verfolge Sipeed auf Twitter, um die Verfügbarkeit nicht zu verpassen. Sipeed’s Development Boards sind unter https://www.seeedstudio.com/sipeed zu finden.

Maixduino