Pine64 Ox64 SBC

Der Pine64 Ox64 ist ein Einplatinencomputer mit einem Bouffalo Lab BL808 Dual-Core 64-Bit RISC-V-Prozessor mit bis zu 64 MB integriertem RAM, drahtlosen Schnittstellen für WiFi 4, Bluetooth 5.0 und 802.15.4 (Zigbee), sowie einem KI-Beschleuniger.

Pine64 Ox64 SBC

Spezifikationen

Kern 64-bit 480MHz RV64 C906 (RISC-V) (basierend auf Bouffalo Lab BL808)
Unterstützt das offizielle RISC-V Linux
Speicher
  • SRAM: 728kB (intern)
  • PSRAM: 64MB (intern)
  • Flash: 128Mb XSPI
  • microSD-Slot (SDHC/SDXC nur 128MB)
Schnittstellen
  • UART
  • I²C
  • SPI
  • I2S
Network
  • 802.11 b/g/n 2.4GHz Wifi
  • BLE 5.0
  • Zigbee
  • USB
  • 10/100Mbps Ethernet (optional, on expansion board)
Expansion Ports
  • USB 2.0 OTG port
  • 26 GPIO-Pins (inkl. SPI, I²C und UART)
  • MIPI CSI-Anschluss via USB-C für ein optionales Kameramodul

Anschlüsse

Anschlüsse des Ox64 Board
Abb.: Anschlüsse des Ox64 Board

Flashen des Ox64

UART-Verbindung zum PC

Auf der Dokumentation von Pine64 werden einige Alternativen angeboten, wie man den Ox64 per UART an den PC verbindet. Ich habe mich für die Lösung mit einem Raspberry Pi Pico entschieden. Dafür müssen zunächste die folgenden Anschlüsse gemacht werden:

Serielle Verbindung zwischen Raspberry Pi Pico und dem Ox64
Abb.: Serielle Verbindung zwischen Raspberry Pi Pico und dem Ox64

Firmware für Raspberry Pi Pico

Zunächst muss der Pico in den Boot-Modus versetzt werden, d.h. er wird zunächst von der Spannungsversorgung getrennt. Dann hält man den Knopf BOOTSEL gedrückt und verbindet den Pico über ein Micro-USB-Kabel mit dem PC. Nun sollte der Pico als eigenständiges Laufwerk im Dateisystem auftauchen.

Aus dem Repository Kris-Sekula/Pine64_Ox64_SBC wird nun die Datei picoprobe.uf2 auf das Laufwerk des Pico gezogen. Nach kurzer Zeit startet der Pico neu und ist nun mit der neuen Firmware geflasht. (Pico ist auch nicht mehr als Laufwerk sichtbar)

Nun sollten im Gerätemanager zwei neue Geräte auftauchen (in meinem Fall COM12 und COM13). Für die folgenden Anweisungen ist es wichtig zu wissen, dass der niedrigere Port der Linux-Port darstellt und der höhere Port dient der Programmierung der Firmware.

Gerätemanager mit zwei neuen seriellen Geräten
Abb.: Gerätemanager mit zwei neuen seriellen Geräten

Firmware für Ox64 flashen

Zunächst müssen zwei verschiedene Software-Paket heruntergeladen werden: Das Programm DevCube zum flashen der Firmware und die eigentliche Firmware selbst.
Die Firmware bekommt man im Repository vonhttps://github.com/openbouffalo/buildroot_bouffalo in Releases. Hier lädt man sich die Datei bl808-linux-pine64_ox64_full_defconfig.tar.gz herunter und entpackt diese auf dem PC.

Release für U-Boot-Support

Das Programm DevCube muss laut den Anweisungen von openbouffalo die Version 1.8.3 haben, neuere Versionen scheinen nicht zu funktionieren. (BouffaloLabDevCube-v1.8.3.zip) Normalerweise lädt man aber neuere Versionen von der Seite http://dev.bouffalolab.com/download.

Als nächster Schritt versetzt man den Ox64 in Boot-Modus, indem man den Knopf BOOT gedrückt hält, während man die Verbindung VBUS zum Pico herstellt. (sollte vorher getrennt werden)

Jetzt startet man DevCube, wählt als Chip den BL808 aus und wechselt zum Tab MCU. Dort werden die folgenden Einstellungen vorgenommen:

Einstellungen in DevCube für MCU
Abb.: Einstellungen in DevCube für MCU (Ports und Pfade entsprechend anpassen)

Für den zweiten Schritt wechselt man zum Tab IOT und nimmt folgende Einstellungen vor:

Einstellungen in DevCube für IOT
Abb.: Einstellungen in DevCube für IOT (Pfad entsprechend anpassen)

Nun kann man DevCube wieder schließen und man trennt nun zunächt den Ox64 von der Spanungsversorgung (VBUS).

Linux vorbereiten

Man benötigt nun eine leere SD-Karte (hier 16GB), um das Linux darauf zu laden. Dafür kann man die Software Etcher verwenden.
Vorsicht: Alle Daten auf der SD-Karte werden dabei überschrieben!
Man öffnet nun Etcher und wählt das Image sdcard-pine64_ox64_full_defconfig.img.xz aus dem Ordner der vorher heruntergeladenen Firmware aus. Nach dem Auswählen des Laufwerks, kann Linux auf die SD-Karte geflasht werden.
Vorsicht: Immer sicherstellen, dass das richtige Lauftwerk mit der SD-Karte ausgewählt wurde!

Einstellungen in Etcher
Abb.: Image sdcard-pine64_ox64_full_defconfig.img.xz in Etcher auswählen
Einstellungen in Etcher
Abb.: Richtiges Laufwerk in Etcher auswählen

Nach dem Drücke auf Flash! kann es einige Zeit dauern (~10min), bis das Linux-Image auf die SD-Karte erfolgreich geschrieben wurde. Etcher kann beendet und die so vorbereitete SD-Karte nun in den Slot des Ox64 eingelegt werden.

Linux booten

Man verbindet sich zunächst mit einem Terminal-Programm (hier: PuTTY) auf den niedrigeren der beiden Ports (hier: COM12) mit einer Baurate von 2000000:

Verbindung zum Ox64 in PuTTY herstellen
Abb.: Verbindung zum Ox64 in PuTTY herstellen

Nun verbindet man den Ox64 wieder mit dem VBUS und es sollte sofort in der seriellen Konsole angezeigt werden, dass U-Boot hochfährt.

Booten des Ox64
Abb.: Booten des Ox64

Es gibt eine künstliche Verzögerung von 5s, damit man u.U. noch in den Boot-Vorgang eingreifen kann. Dann wird das eigentliche Linux gestartet und es erscheint der Login-Screen. (Zungang mit root ohne Passwort)

Starten von Linux auf dem Ox64 mit zum Login-Screen
Abb.: Starten von Linux auf dem Ox64 mit zum Login-Screen

Nun können einige Befehlen zum Testen des System ausprobiert werden:

Linux

Hinweise

Leider sind momentan meines Wissens noch keine Treiber für WLAN, USB etc. vorhanden, die hoffentlich in Zukunft nachgereicht werden. Auch habe ich noch keine Libraries o.ä. für den Zugang der GPIOs gefunden. Wenn dies erreicht ist, dann sehe ich großes Potential in diesem kleinen Board. 😎

Weiterführende Links

zurück