News OrangePi RV2 und ESP32-C5 im Hands-on


von Tam H. (Firma: Tamoggemon Holding k.s.) (tamhanna)


Angehängte Dateien:

Lesenswert?

Sowohl Espressif als auch Shenzhen Xunlong arbeiten an neuen Produkten, die mittlerweile – wenn auch in beschränkter Stückzahl – allgemein verfügbar werden. Hier zwei kurze Hands-On-Berichte zu ESP32-C5 und OrangePi RV2 samt Kauf- und Mitmachanleitungen und praktischen Hinweisen.

ESP32-C5 – Verfügbarkeit über Wireless-Tag, Programmierung mit ESP_IDF

Sowohl mit dem ESP32-C5 als auch mit dem ESP32-P4 hat man im Hause Espressif seine liebe Not – beide waren als Prototypen einige Zeit über wireless-tag erhältlich. Die Verfügbarkeit des P4 ist derzeit wieder pausiert (Auguren rechnen mit mindestens 120 Tagen Verspätung), während der C5 derzeit über https://www.alibaba.com/product-detail/esp32-esp32-c5-2-4G-5G_1601251918870.html?spm=a2747.product_manager.0.0.594871d2U01ATW zu erwerben ist. Das dort feilgebotene Produkt ist indes ein reines Modul – zu seiner Inbetriebnahme ist erstens eine Trägerplatine und zweitens ein USB-Seriell-Wandler erforderlich. Für zweiteres empfiehlt sich ein FT2232-MiniModule, während der Autor unter https://www.pcbway.com/project/shareproject/ESP32_C5_board_for_wireless_tag_modules_e850606a.html ein primitives Evaluationsboard hochgeladen hat. Im Prinzip handelt es sich dabei um eine Platine, die das Boot-Pin des ESP32 ansprechbar macht und so die Aktivierung des Bootloaders erlaubt. Das genaue Pinout des Moduls präsentiert sich wie in der folgenden Abbildung gezeigt; eigene Trägerdesigns sind natürlich erwünscht. Der Autor hat ein DXF-File mit dem Layout sowie eine T3001-Datei, und stellt diese auf Email-Anfrage zur Verfügung.

Bildquelle: Autor

Die Verbindung mit dem Kommandogerät erfolgt dann wie in der Abbildung gezeigt. Zu beachten ist, dass die 3V3-Quelle des MiniModule nicht zur Versorgung des ESP32 ausreicht, wenn dieser sein Funkmodul aktiviert.

Bildquelle: Autor

ESP32-C5 – Programmierung mit ESP_IDF

Für die Programmierung des resultierenden Boards ist eine brandaktuelle Version von IDF erforderlich – die im Repositorium befindliche Codebasis unterstützt diese in der Variante Master. Im Interesse der Stabilität ist es empfehlenswert, eine weitere Variante von ESP_IDF in einem eigenen Ordner herunterzuladen.

1
tamhan@tamhan-gf65:~$ mkdir esp-master
2
tamhan@tamhan-gf65:~$ cd esp-master/
3
tamhan@tamhan-gf65:~/esp-master$ git clone --recursive https://github.com/espressif/esp-idf.git

Die restliche Installation verläuft dann im Allgemeinen so, wie man es erwarten würde. Wichtig ist lediglich, in install.sh nach folgendem Schema das Herunterladen der Tools für den C5 zu avisieren:

1
./install.sh esp32c5

Im eigentlichen Projekt ist es dann erforderlich, nach folgendem Schema den C5 als Zielsystem zu deklarieren:

Nach dieser Arbeit kann beispielsweise Hello World kompiliert werden, was zur in der Abbildung gezeigten Ausgabe führt.

Bildquelle: Tamoggemon Holding k.s.

ESP32-C5 – zu beachtendes!

Bei Verwendung des weiter oben genannten Moduls ist zu beachten, dass es sich dabei um Prototypenmaterial handelt. Im Rahmen der “Finalisierung” ist – siehe Screenshot – davon auszugehen, dass ESP_IDF diese Halbleiter nicht mehr weiter unterstützt.

Bildquelle: Tamoggemon Holding k.s.

Außerdem gibt es derzeit – wie in der Abbildung gezeigt – ein vergleichsweise umfangreiches Erratasheet zu beachten.

Bildquelle: Tamoggemon Holding k.s.

OrangePi RV2 – RISC/V, zur Zweiten

Mit dem RV2 schickt man im Hause OrangePi die zweite Variante eines auf RISC/V basierenden Einplatinencomputer ins Rennen. Intention ist nach wie vor das Ermöglichen von Experimentieren mit RISC/V-Linux, ohne dabei große Umkosten zu verursachen. Im Bereich der Hardware findet sich dabei – Stichwort eMMC-Modul und zwei M2-Speicherplätze – so ziemlich alles, was man als Anhänger des Industrial Computing begehrt.

Bildquelle: Tamoggemon Holding k.s.

Als Betriebssystem steht eine Variante von Ubuntu zur Verfügung, die sich wie in den Abbildungen gezeigt identifiziert.

Bildquelle: Tamoggemon Holding k.s.

OrangePi RV2 – der Fluch der fehlenden Pakete

Interessant ist, dass das Herunterladen von Paketen per apt-get eine Verbindung zur Cloud von Huawei herstellt – dies lässt sich beispielsweise anhand von iperf überprüfen:

1
orangepi@orangepirv2:~$ sudo apt-get install iperf
2
[sudo] password for orangepi: 
3
Reading package lists... Done
4
. . .
5
Get:1 http://repo.huaweicloud.com/ubuntu-ports noble/universe riscv64 iperf riscv64 2.1.9+dfsg-1 [141 kB]

Nicht alle von ARMBian und Co bekannten Pakete stehen dabei auch für den RISC/V-Kern zur Verfügung. Ein prominentes “Fehlzeichen” ist Sysbench – wer das System selbst kompiliert, wird nach folgendem Schema abgewiesen:

1
make[3]: Entering directory '/home/orangepi/sysbench/third_party/luajit/luajit/src'
2
lj_arch.h:59:2: error: #error "No support for this architecture (yet)"
3
   59 | #error "No support for this architecture (yet)"
4
      |  ^~~~~

OrangePi RV2 – einige Benchmarks

In Ermangelung von SysBench sind nur einige kleinere Tests möglich. Erstens die Ergebnisse von iperf, die auf gute Ethernet-Performance hinweisen:

1
root@orangepirv2:~# iperf -c 192.168.1.74
2
------------------------------------------------------------
3
Client connecting to 192.168.1.74, TCP port 5001
4
TCP window size: 16.0 KByte (default)
5
------------------------------------------------------------
6
[  1] local 192.168.1.76 port 48812 connected with 192.168.1.74 port 5001 (icwnd/mss/irtt=14/1448/315)
7
[ ID] Interval       Transfer     Bandwidth
8
[  1] 0.0000-10.0321 sec  1.10 GBytes   940 Mbits/sec

Als zweiter Test bietet sich die Verwendung von Stress-Ng an. Das System ist zwar per Se kein Benchmark, zeigt aber, dass die acht Kerne identisch aufgebaut sind:

1
root@orangepirv2:~# stress-ng --cpu 1 --cpu-method matrixprod  --metrics-brief --perf -t 60
2
stress-ng: info:  [7400] setting to a 1 min, 0 secs run per stressor
3
stress-ng: info:  [7400] dispatching hogs: 1 cpu
4
stress-ng: metrc: [7400] stressor       bogo ops real time  usr time  sys time   bogo ops/s     bogo ops/s
5
stress-ng: metrc: [7400]                           (secs)    (secs)    (secs)   (real time) (usr+sys time)
6
stress-ng: metrc: [7400] cpu                 720     62.47     60.34      0.02        11.52          11.93
7
8
9
root@orangepirv2:~# stress-ng --cpu 4 --cpu-method matrixprod  --metrics-brief --perf -t 60
10
stress-ng: info:  [7402] setting to a 1 min, 0 secs run per stressor
11
stress-ng: info:  [7402] dispatching hogs: 4 cpu
12
stress-ng: metrc: [7402] stressor       bogo ops real time  usr time  sys time   bogo ops/s     bogo ops/s
13
stress-ng: metrc: [7402]                           (secs)    (secs)    (secs)   (real time) (usr+sys time)
14
stress-ng: metrc: [7402] cpu                2800     60.90    241.45      0.21        45.97          11.59
15
16
root@orangepirv2:~# stress-ng --cpu 8 --cpu-method matrixprod  --metrics-brief --perf -t 60
17
stress-ng: info:  [7407] setting to a 1 min, 0 secs run per stressor
18
stress-ng: info:  [7407] dispatching hogs: 8 cpu
19
stress-ng: metrc: [7407] stressor       bogo ops real time  usr time  sys time   bogo ops/s     bogo ops/s
20
stress-ng: metrc: [7407]                           (secs)    (secs)    (secs)   (real time) (usr+sys time)
21
stress-ng: metrc: [7407] cpu                5358     60.47    479.94      0.73        88.61          11.15

OrangePi RV2 – GPIO-Experimente

Der GPIO-Header des RV2 ist nur 26 Pins groß, wird allerdings schon jetzt vollständig von WiringOPI unterstützt. Die Abbildung zeigt das GPIO-Komplement.

Bildquelle: Tamoggemon Holding k.s.

Für einen kleinen Rauchtest bietet sich dann folgendes Programm an:

1
#include <stdio.h>
2
#include <wiringPi.h>
3
4
5
int main (void)
6
{
7
        int i = 0;
8
        unsigned char gpio_num = 0;
9
10
        wiringPiSetup();
11
        pinMode (5, OUTPUT) ;
12
13
        for ( ;; )
14
        {
15
16
                digitalWrite (5, HIGH); // On
17
                digitalWrite (5, LOW);  // Off
18
                digitalWrite (5, HIGH); // On
19
                digitalWrite (5, LOW);  // Off
20
        }
21
}

Lohn der Mühen ist das in der Abbildung gezeigte Schirmbild.

Bildquelle: Tamoggemon Holding k.s.


: Bearbeitet durch NewsPoster
von Thomas F. (tf1973)


Lesenswert?

2x PCIe2.0 mit 2 lanes für die M.2, also theoretisch 500MB/s. Würde mir 
eigentlich schon als Backup NAS reichen. Mehr können die Ethernet Ports 
ohnehin nicht.

Welche OS kann man da verwenden? Gibt es für RISC/V mittlerweile alles 
an Paketen?

: Bearbeitet durch User
von Harald K. (kirnbichler)


Lesenswert?

Thomas F. schrieb:
> Welche OS kann man da verwenden?

Sehr theoretisch: https://wiki.freebsd.org/riscv

Aber dazu müsste dieses Board sehr, sehr gut dokumentiert sein.

Daran aber scheitert vieles; auch in der viel, viel gründlicher 
dokumentierten Raspberry-Pi-Welt gibt es etlichen Ärger.

Das SoC des Raspberry Pi 5 wurde überarbeitet, die neuere Version findet 
man auf der mit 16 GB RAM bestückten Variante des Pi 5 und auf jedem 
"Compute Module 5".

Und diese Überarbeitung hat wohl sehr tiefgreifende Änderungen der 
internen Firmware zur Folge, so daß auch die Macher des 
UEFI-on-RPi5-Projektes wutentbrannt Anfang Februar das Handtuch geworfen 
haben:

https://github.com/worproject/rpi5-uefi

Damit kann man mit dem Pi5 momentan nur die "offiziellen", von der 
Raspberry Foundation veröffentlichen Betriebssysteme einsetzen, aber 
nichts anderes.

So, und nun stellen wir uns das ganze mal mit einer chinesischen Firma 
wie den "orange pi"-Leuten vor, bei denen Dokumentation etc. sowieso 
etwas dünner ausfällt ...

von Tam H. (Firma: Tamoggemon Holding k.s.) (tamhanna)


Lesenswert?

Thomas F. schrieb:
> 2x PCIe2.0 mit 2 lanes für die M.2, also theoretisch 500MB/s. Würde mir
> eigentlich schon als Backup NAS reichen. Mehr können die Ethernet Ports
> ohnehin nicht.
>
> Welche OS kann man da verwenden? Gibt es für RISC/V mittlerweile alles
> an Paketen?

Hallo,
du verwendest Ubuntu. Die meisten Pakete gibt es, aber halt auch einiges 
wie SysBench nicht.

Sende mir doch eine Liste und ich checke dir.

Tam

von Thomas F. (tf1973)


Lesenswert?

Meine Frage dürfte sich nach meinem Check auf der OrangePi Webseite und 
deinem Post zur offiziellen Unterstützung von Ubuntu selbst beantwortet 
haben :) Das reicht mir so vollkommen

Danke!

von Tam H. (Firma: Tamoggemon Holding k.s.) (tamhanna)


Lesenswert?

Thomas F. schrieb:
> Meine Frage dürfte sich nach meinem Check auf der OrangePi Webseite und
> deinem Post zur offiziellen Unterstützung von Ubuntu selbst beantwortet
> haben :) Das reicht mir so vollkommen
>
> Danke!

Hallo,
danke dir.

Unter https://www.youtube.com/watch?v=lCgpn_SE22o habe ich ein kleines 
Video dazu...aber noch mit dem Shenzhen Xunlong-Image...

Tam

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.