Controllerboard Carambola

Auch wenn der Trend bei Controllerboards derzeit in Richtung ARM-Prozessoren geht, gibt es dennoch interessante Lösungen, die auf MIPS setzen.

In Pocket speichern vorlesen Druckansicht 32 Kommentare lesen
Lesezeit: 6 Min.
Von
  • Daniel Bachfeld
Inhaltsverzeichnis

Der litauische Hersteller 8devices bietet für 22 Euro das kleine Board Carambola mit einem MIPS-SoC RT3050 (320 MHz) von Ralink an. Die Lösung enthält 8 MByte Flash sowie 32 MByte RAM und hat praktischerweise gleich WLAN (802.11 b/g/n) an Bord. Auf der 35 x 45 Millimeter kleinen Platine ist bereits eine Antenne vorhanden. Wer lieber drahtgebunden netzwerkt, für denen stehen zwei Ethernet-Ports mit 100 MBit/s zur Verfügung. Allerdings fehlen dem kleinen Board die Transceiver und die RJ45-Anschlüsse, die man nachrüsten muss. Gleiches gilt für den USB-2.0-Port (On-the-Go), die serielle Schnittstelle und die Stromversorgung (maximal nur 1,5 Watt).

Das Board führt alle Schnittstellen über Stiftleisten nach Außen. Leider erschwert das Rastermaß von 2.0 mm den Einsatz auf eigenen Platinen.
Da die Anschlüsse auf Stiftleisten im seltenen 2-mm-Rastermaß geführt sind, ist ein Eigenbau solcher Anschlüsse aus handelsüblichen 2,5-mm-Lochrasterplatinen schwierig. 8Devices bietet dafür ein Development Board (75 x 82 mm) für ebenfalls 22 Euro an (im Bundle mit dem Carambola nur 39 Euro), das sämtliche Anschlüsse mitbringt. Einer der LAN-Anschlüsse unterstützt laut Hersteller auch passives Power over Ethernet (PoE).

Die Carambola-Platine wird einfach in das Entwickler-Board gesteckt. Daneben enthält der RT3050 Ausgänge für GPIO mit 3,3 V, die sich als digitale Ein- und Ausgänge oder für den I2C-Bus nutzen lassen. Die Pins werden auf dem Entwicklerboard auf eine separate Stiftleiste geführt, an die eine kleine Prototyping-Fläche für eigene Aufbauten grenzt.

Als Betriebssystem läuft das Linux-Derivat OpenWrt für MIPS, das im Auslieferungszustand bereits mit dem Kernel 3.2.8 installiert war. Apropos Lieferung: Der Hersteller hat seinen Sitz in Litauen, das zur EU gehört. Probleme mit dem Zoll sollte es nach der Bestellung somit nicht geben. Nach unserer Bestellung tat sich aber eine zeitlang nichts, obwohl der Shop "In Stock" angezeigt hatte. Auch auf Nachfrage per Mail, wann denn mit der Lieferung zu rechnen sei, reagierte der Hersteller zunächst nicht. Einen Tag später erhielten wir jedoch die Nachricht, dass das Paket nun unterwegs sei.

Das Developer Board enthält alle Anschlüsse für USB, LAN, RS232 und die Stromversorgung. SPI, I2C und GPIO sind über eine Stifleiste im Rastermaß 2.54 mm zugänglich.
Für erste Konfigurationsarbeiten kann man das Board OpenWRT-typisch per Telnet unter der Adresse 192.168.1.1 erreichen. In unseren Tests haben wir jedoch über die serielle Schnittstelle auf das Board zugegriffen, um die Meldungen beim Bootvorgang und die Kernelmeldungen beim Anschließen von Geräten mitzulesen. Nichtdestotrotz benötigt man eine Netzwerkverbindung, um weitere Softwarepakete aus dem Internet nachzuladen. Das Carambola-Wiki des Herstellers liefert die Infos, um das Board schnell in Betrieb zu nehmen. Allerdings waren die Infos an einigen Stellen veraltet, mehrere Links funktionierten nicht mehr.

Die Konfiguration erldigt man am besten über die serielle Schnittstelle. Dann sieht man, welche Treiber unter Umständen Probleme machen.

Als kleines Projekt wollten wir einen WLAN-Access-Point mit drahtloser Webcam umsetzen. Die erforderlichen Treiber für das Wi-Fi-Modul waren in dem installierten OpenWrt-Build bereits enthalten, ebenso das für den Betrieb als AP erforderliche Paket wapd (mini) sowie die wireless-tools. Ein DHCP-Server läuft ebenfalls bereits (dnsmasq) und erwartet nur noch eine sinnvolle Konfiguration. Für eine Erstkonfiguration des Carambola als AP liefert das Wiki des Boards nützliche Hinweise, für weitergehende Konfigurationen sollte man allerdings besser das offizielle OpenWrt-Wiki zu Rate ziehen.

Für die Videounterstützung fehlten die notwendigen Kernelmodule sowie Kameratreiber. Auch über das Paketmanagement und das Carambola-Repository ließ sich die Software nicht nachinstallieren, da sie schlicht nicht vorhanden waren. Das offizielle OpenWrt-Repository (für Ralink MIPS, ramips) ließ sich in diesem Fall nicht für Kernel-Module nutzen, da sich die jeweiligen Kernelversionen unterscheiden – die Module lassen sich zwar installieren, aber nicht vom Kernel laden.

In der Kernelkonfiguration muss man die Treiber für diverse Webcams aktivieren und anschließend den Kernel neu übersetzen.
Gezwungenermaßen mussten wir uns aus den Quellen die Module selbst übersetzen. Das Wiki gab jedoch Hilfestellung, um die Quellen herunterzuladen, in der Kernel-Konfiguration die richtigen Treiber zu aktivieren und alles zu kompilieren. Anschließend musste das neue Image (per scp) auf das Controller-Board übertragen und installiert werden. Sämtliche Einstellungen unter /etc wie Netzwerk, WLAN und DHCP bleiben erhalten. Nach dem Neustart ludt der Kernel nach dem Anschluss einer Webcam (Logitech) den richtigen Treiber und erzeugte das Gerät /dev/video0.

Um die Bilder der Webcam ins Netzwerk zu streamen, bieten sich Tools wie mjpeg-streamer an. Leider fehlte auch dieses Paket in den Repos von Carambola. Bei den Anwendungen lässt sich jedoch in der Regel zwischen verschiedenen Quellen mischen, sofern die Versionen der Bibliotheken stimmen. Kurzerhand fügten wir das OpenWRT-Repository als Paketquelle in /etc/opkg.conf hinzu und konnten das Paket über opkg update und opkg install mjpg-streamer nachinstallieren.

Auf dem Board ist auch ein wenig Platz für eigene Aufbauten.
Über das LAN funktionierte das Streamen recht flott, über das WLAN gab es eine spürbare Latenz. Beim Betrieb "Webcam über WLAN" zeigten sich zudem Unstimmigkeiten: Eine per UVC-Treiber betriebene Kamera meldete sich am USB-Bus immer mal wieder an und ab. Offenbar hat der Treiber (dwc_otg) Probleme mit der Unterstützung der USB-Implementierung des RT3050-SoC, der durch den On-the-Go-Mode sowohl als Host als auch als Slave agieren kann. Das Problem trat jedoch nicht immer und nicht reproduzierbar auf. Interessanterweise gab es die Probleme beim Betrieb über das LAN nicht. Eine mit dem Webcam-Treiber gspca betriebene Kamera lief bei der Bildübertragung übers WLAN ohne Probleme. Allerdings meldete dann das Tool mjpg-streamer eine zu geringe Bandbreite.

Nichtsdestotrotz funkionierte die Lösung leidlich – mit selten Abstürzen und Kernel Panics ist jedoch zu rechnen. Nutzt man die GPIOs in Verbindung mit Kameras, ließen sich etwa Fahrzeuge aus der Ferne lenken. Denkbar sind auch Robotersteuerungen oder Telemetriesender. So hat etwa ein Quadrokopter-Bastler Carambola bereits erfolgreich zur Übertragung von Flugdaten zum Laptop eingesetzt.

Den Stream der Webcam kann man sich am besten über VLC oder Firefox anschauen.
Der Carambola erfüllt für viele Bastler genau die Wünsche, um pfiffige Projekte umzusetzen: Funk, Linux, GPIO und USB. Insbesondere für Fernsteuerprojekte und Heimautomasierungslösungen bietet sich das Board an. Die im Vergleich zu vielen ARM-Boards geringe Rechenkraft dürfte bei vielen Anwendungen nicht ins Gewicht fallen. Und selbst mit dem optionalen Developer-Board ist der Preis immer noch etwa unter dem eines Arduino mit Ethernet-Shield. Allerdings bedarf es fortgeschrittener Linux-Kenntnisse, um seine Ideen implementieren zu können. (dab)