News KickPi K7 / Orange Pi Zero – Prozessrechner ganz groß und ganz klein


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


Angehängte Dateien:

Lesenswert?

Seit der Einführung des Raspberry Pi ist viel Wasser die Donau hinuntergeflossen. Im Hause KickPi schickt man eine sehr große Platine ins Rennen, die desktopartige Anschlüsse mitbringt. Shenzhen Xunlong optimiert stattdessen den Formfaktor des Raspberry Pi Zero, um neben deutlich mehr Rechenleistung Hochleistungsschnittstellen zur schnellen Datenerfassung bereitzustellen. In diesem Beitrag beschnuppern wir die Neulinge.

Orange Pi Zero 3W – winziges Steuerungskraftpaket

Beim Design von fliegenden Anwendungen gilt, dass jedes eingesparte Gramm eine massive Verbesserung des gesamten Systemverhaltens darstellt. Aus diesem Grund ist der mit dem Raspberry Pi Zero eingeführte reduzierte Formfaktor sehr beliebt. Die Abbildung stellt einen Orange Pi Zero 3W und das Originalmodell gegenüber.

Bildquelle, alle: Autor

Auf der Präzisionswaage präsentieren sich die Gewichte dann folgendermaßen:

1
ESP32-S3-Devkit-C mit Pins: 11.11g
2
RPi Zero W:  11.38 g
3
RPi Zero 2:  13.28 g
4
OrangePi:  14.69 g mit externer Antenne
5
Kühlkörper:  rund 25 g extra

Zu beachten ist die hohe I/O-Flexibilität. Auf der Unterseite finden sich – wie in der Abbildung gezeigt – freigelassene Lötflächen, auf denen Speicher untergebracht werden können.

Außerdem befindet sich dort einer der vom großen Raspberry Pi bekannten PCIe-Steckplätze, was die Anbindung von Datenquellen mit sehr hohen Geschwindigkeiten – Stichwort externe FPGAs – erleichtert.

OrangePi Zero 3W im Stresstest

Im Lieferumfang findet sich – wie in der Abbildung gezeigt – ein Kühlkörper. Als Hauptprozessor kommt ein Chip vom Typ AllWinner A733 zum Einsatz, dessen interne Struktur sich im Schaubild folgendermaßen präsentiert.

Bildquelle: CNX, via https://www.cnx-software.com/2024/12/06/allwinner-a733-octa-core-cortex-a76-a55-ai-soc-supports-up-to-16gb-ram-for-android-15-tablets-and-laptops/

Für einen ersten Versuch bietet es sich dann an, einfach einen Run mit einem, einen mit zwei und einen mit acht Threads zu befehlen:

1
orangepi@orangepizero3w:~$ sysbench cpu run --threads=1
2
sysbench 1.0.20 (using system LuaJIT 2.1.0-beta3)
3
CPU speed:
4
    events per second:  2210.62
5
6
orangepi@orangepizero3w:~$ sysbench cpu run --threads=2
7
CPU speed:
8
    events per second:  4465.75
9
10
orangepi@orangepizero3w:~$ sysbench cpu run --threads=8
11
CPU speed:
12
    events per second:  9728.07

Ohne Kühlkörper lässt sich die CPU – wie in der folgenden Datenreihe – schnell “heiss kochen”:

1
9736.09
2
7669.17
3
5923.08
4
5689.28
5
5241.30
6
5074.38
7
5305.92
8
4799.29
9
4777.46
10
4780.26
11
4667.13
12
4431.95
13
4351.73
14
4129.08
15
4295.41

Das Aufsetzen des Kühlkörpers – explizit ohne Einschaltung des Ventilators – reicht dann schon aus, um für den Achtkern-Run eine thermische Stabilisierung herbeizuführen:

1
9770.34
2
9864.62
3
9864.28
4
9863.56
5
9864.17
6
9862.85
7
9857.79
8
9863.70
9
9864.94
10
9864.26
11
9832.70
12
9858.19
13
9868.20

I/O am OrangePi Zero 3W mit wiringPi

Shenzhen Xunlong unterstützt auch am Zero 3W die wiringPi-API. gpio readall informiert dann wie im Screenshot gezeigt über das GPIO-Komplement.

Die Verfügbarkeit lässt sich auch nach folgendem Schema prüfen:

1
orangepi@orangepizero3w:~$ gcc oair.c -lwiringPi
2
/usr/bin/ld: /usr/lib/gcc/aarch64-linux-gnu/11/../../../aarch64-linux-gnu/Scrt1.o: in function `_start':
3
(.text+0x1c): undefined reference to `main'
4
/usr/bin/ld: (.text+0x20): undefined reference to `main'
5
collect2: error: ld returned 1 exit status
6
orangepi@orangepizero3w:~$

Auf einem angeschlossenen Oszilloskop und einem MDA präsentieren sich die Ergebnisse eines Beispielprogramms dann wie in der Abbildung gezeigt.

KickPi K7 – sehr großer Prozessrechner mit desktopartigem I/O-Komplement

Der mit 94.87 Gramm vergleichsweise schwere KickPi K7 ist – schon optisch – ein komplett anderes Kaliber.

Sowohl auf der Oberseite als auch auf der Unterseite finden sich vollwertige M.2-Slots, die den Anschluss verschiedenster Kommunikationshardware ermöglichen. Die beiden Ethernet-Ports bieten eine Geschwindigkeit von 1Gbit. Außerdem stehen drei USB-3.0-Ports zur Verfügung. Weniger schön ist die Stromversorgung, die über einen klassischen Barrel-Connector erfolgt. Außerdem gibt es mehrere MIPI-Anschlüsse. Die vom RPi V bekannte PCIe-Verbindung fehlt allerdings ersatzlos. Stattdessen befindet sich auf der Unterseite des für Kommunikationsmodule vorgesehenen M.2-Steckplatzes ein SIM-Karten-Slot.

Lustige Inbetriebnahme

Der KickPi verwendet einen Hauptprozessor vom Typ RK3576. Daraus folgt, dass der gewöhnliche Workflow mit dem Schreiben einer IMG-Datei – beispielsweise mittels Raspberry Pi Imager oder ImageWriter – nachweislich nicht zu einem startfähigen Betriebssystemmedium führt. Stattdessen ist ein vergleichsweise komplexer Tanz unter Nutzung eines Windows-basierten Programms erforderlich. Unter der URL https://www.youtube.com/watch?v=gOI4q4ZNbGo zeigt der Autor die einzelnen Schritte grafisch. Nach der Inbetriebnahme des Debian-basierten Images ist zunächst ein Upgrade empfehlenswert. Das Herunterladen der diversen Debian-Pakete erfolgt dabei von einem chinesischen Server. Nach dem Herunterladen der benötigten Pakete steht anschließend die Ausführung von sysbench bevor. Die Resultate präsentieren sich wie folgt:

1
linaro@linaro-alip:~$ sysbench cpu run --threads=1
2
sysbench 1.0.20 (using system LuaJIT 2.1.0-beta3)
3
CPU speed:
4
    events per second:  2208.35
5
6
linaro@linaro-alip:~$ sysbench cpu run --threads=2
7
CPU speed:
8
    events per second:  4408.34
9
10
linaro@linaro-alip:~$ sysbench cpu run --threads=4
11
CPU speed:
12
    events per second:  8742.76
13
14
linaro@linaro-alip:~$ sysbench cpu run --threads=8
15
CPU speed:
16
    events per second: 12712.53

Interessant ist außerdem die hohe thermische Stabilität. Auf der Oberseite fällt auf, dass das SoC theoretisch auch mit einem externen Kühlkörper kombiniert werden kann.

In der Praxis ist dies allerdings nicht notwendig. Im Labor des Autors war es unmöglich, das SoC durch mehrfache Ausführung von sysbench nennenswert zu erwärmen.

KickPi – Interaktion mit dem GPIO-Port

Die einst von Gordon Henderson entwickelte WiringPi-Bibliothek für den Zugriff auf GPIO-Pins unter Linux-basierten Betriebssystemen befindet sich offensichtlich auf dem Rückzug. Auf dem KickPi steht sie nicht mehr zur Verfügung. Stattdessen ist die Verwendung eines Kernelmoduls vorgesehen. Mit einem kleinen Beispielprogramm präsentieren sich die am GPIO-Port sichtbaren Wellenformen wie in der Abbildung gezeigt.

1
#include <stdio.h>
2
#include <unistd.h>
3
#include <gpiod.h>
4
5
int main() {
6
    const char *chipname = "gpiochip3"; 
7
    unsigned int line_num = 0; // Targets GPIO3_A0
8
9
    struct gpiod_chip *chip;
10
    struct gpiod_line *line;
11
    int ret;
12
13
    // 1. Open the chip
14
    chip = gpiod_chip_open_by_name(chipname);
15
    if (!chip) {
16
        perror("Open chip failed");
17
        return 1;
18
    }
19
20
    // 2. Get the line
21
    line = gpiod_chip_get_line(chip, line_num);
22
    if (!line) {
23
        perror("Get line failed");
24
        gpiod_chip_close(chip);
25
        return 1;
26
    }
27
28
    // 3. Request it as output (Do this ONLY ONCE)
29
    ret = gpiod_line_request_output(line, "oair_app", 0);
30
    if (ret < 0) {
31
        perror("Request line output failed");
32
        gpiod_chip_close(chip);
33
        return 1;
34
    }
35
36
    printf("Successfully claimed GPIO3_A0! Toggling now...\n");
37
38
    // 4. Clean and fast toggle loop
39
    while (1) {
40
        gpiod_line_set_value(line, 1); // HIGH
41
        gpiod_line_set_value(line, 0); // LOW
42
    }
43
44
    // 5. Safe release if the loop ever breaks
45
    gpiod_line_release(line);
46
    gpiod_chip_close(chip);
47
    return 0;
48
}

Preisanalyse der Prozessrechner

Im Fall des KickPi erfolgt der Vertrieb über AliExpress – zum Zeitpunkt der Meldung ist der unter https://s.click.aliexpress.com/e/_c33QotHX bereitstehende Store der preiswerteste. Die 4GB-Variante kostet rund 120GBP, für die 8GB-Variante mit 64GB Remanentspeicher (statt 32GB) sind 150GPB fällig. Beim OrangePi Zero 3W hat sich der unter https://www.aliexpress.com/item/1005012087460563.html? Bereitstehende Store als am preiswertesten erwiesen. Die 4GB-Version kostet mit Kühlkörper rund 55GBP. Die 6GB-Version kostet derzeit 65GBP.

: Bearbeitet durch NewsPoster
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.