Raspberry Pi und USB-LED blink(1): Installation und Inbetriebnahme

Im Gegensatz zu anderen Hardware-Komponenten ist der blink(1) keine Plug-and-Play-Hardware, wie ein WLAN-Adapter, eine USB-Tastatur oder ein USB-Stick. Der blink(1) hat eine spezifische Funktion, die einzurichten oder zu programmieren ist. Zwar wird der blink(1) von Raspbian Jessie am Raspberry Pi erkannt. Allerdings ist nur mit einer zusätzlichen Software die Steuerung des blink(1) möglich. Die ist nachträglich zu installieren.

Was ist das blink(1)?

Raspberry Pi: USB-LED blink(1) von ThingM

blink(1) von ThingM ist ein USB-Stick mit einer RGB-Leuchtdiode, die man per Software steuern kann. Dabei kann blink(1) jede RGB-Farbe annehmen und benutzerdefiniert blinken, blitzen oder einfach nur dauerhaft leuchten. Interessant ist das für jede Art von Status-Anzeige, ohne Elektronik- oder andere Hardware-Basteleien.

Eine erste Anlaufstelle sollte die offizielle Dokumentation auf Github sein. Denn hier bekommt man auch die Software bzw. den Quellcode zum Compilieren.

Allerdings ist die Dokumentation sehr unübersichtlich und enthält Lücken. Das macht die Installation und Inbetriebnahme am Raspberry Pi sehr umständlich. Deshalb an dieser Stelle eine Alternative zur offiziellen Anleitung.

Schritt-für-Schritt-Anleitung für den blink(1) am Raspberry Pi

  • Einstecken und Hardware-Erkennung prüfen
  • Installation der Steuerungs-Software
  • Steuerungs-Software systemweit verfügbar machen (optional)
  • Berechtigung für normale Benutzer setzen (optional)

Nach diesen vier Schritten ist blink(1) mit seiner Steuerungs-Software vollwertig ins System integriert und kann uneingeschränkt genutzt werden.

0. Schritt: Am Anfang schon an das Ende denken

Einleitend gibt es ein paar Dinge zu beachten. Also bevor man loslegt und am Ende zu scheitern droht.

Bei einer USB-Spannung von 5,16 bis 4,78 Volt schwankt der Stromverbrauch zwischen 0,001 bis 0,05 Ampere.

Beim Einstecken im laufenden Betrieb ist ein Raspberry Pi (1) B reproduzierbar abgestürzt und hat sich dabei neugestartet. Bei PC und Notebooks trat dieses Problem nicht auf. Das deutet auf ein bekanntes Problem mit der Stromversorgung hin. Es ist davon auszugehen, dass der blink(1) beim Einstecken erst mal viel Strom zieht und die üblichen Steckernetzteile, die für den Raspberry Pi verwendet werden, in die Knie zwingt. Allerdings kam es bei einem Raspberry Pi 2 B und 3 B mit dem selben Netzteil zu keinem Absturz.
Einen stabilen Betrieb kann man mit einem Raspberry Pi 2 B und 3 B als bestätigt ansehen. Andere Modelle wurden nicht geprüft.

1. Schritt: Einstecken und Hardware-Erkennung prüfen

Zuerst steckt man den blink(1) in eine freie USB-Buchse. Der blink(1)-USB-Stick wird in der Regel automatisch erkannt. Ob die Hardware vom System erkannt wurde ist zu prüfen.

lsusb

Bei erfolgreicher Hardware-Erkennung meldet sich der blink(1) mit der mit der ID "27b8:01ed" als "ThingM blink(1)" an.
Es kann sein, dass der Beschreibungstext leer ist. Die Hardware wurde trotzdem erkannt. Hier muss nur die Liste der USB-IDs (Vendor-ID : Device-ID) aktualisiert werden.

sudo update-usbids

2. Schritt: Installation der Steuerungs-Software

Zum Steuern des blink(1) braucht man eine Steuerungs-Software. Das so genannte "blink1-tool". Das kann man für verschiedene Betriebssysteme und auch Raspbian direkt herunterladen, entpacken und ausführen. Diese Vorgehensweise ist allerdings NICHT zu empfehlen, weil es sich um eine veraltete Version handeln kann.

wget http://thingm.com/blink1/downloads/blink1-tool-raspi.zip
unzip blink1-tool-raspi.zip
sudo ./blink1-tool --list

Zu empfehlen ist, den aktuellen Quellcode von Github herunterzuladen und selber zu kompilieren.

Die Installation und Compilierung der Steuerungs-Software und alle weiteren Installationsschritte sollte man als Root vornehmen. Das macht weniger Probleme.

sudo -i

Zuerst sind einige Pakete nachträglich zu installieren, um die Software von Github erfolgreich zu laden compilieren zu können.

apt-get update
apt-get install git build-essential pkg-config libusb-1.0.0

Dann lädt man den Quellcode von Github herunter und compiliert anschließend die Software.

git clone https://github.com/todbot/blink1.git
cd blink1/commandline
make

In jedem Fall werden jetzt einige Meldungen über den Bildschirm laufen. Das müssen aber keine Fehlermeldungen sein. In der Regel sollte alles klappen. Wenn nicht, dann fehlen in der Regel Pakete zum Compilieren.

Nach erfolgreicher Compilierung kann man das Tool testen.

./blink1-tool --list

Wenn ein blink(1)-Stick erkannt wurde, dann sollte hier einer angezeigt werden. Sind mehrere dieser Sticks eingesteckt, dann werden die an ihrer ID unterschieden.

Prinzipiell kann man jetzt schon mit dem blink(1) arbeiten. Allerdings nicht besonders komfortabel. Es empfiehlt sich die weiteren Installationsschritte ebenfalls abzuarbeiten.

3. Schritt: Steuerungs-Software systemweit verfügbar machen

Aktuell muss man sich im aktuellen Pfad befinden oder jedes mal den vollständigen Pfad des blink1-tool-Kommandos angeben. Wenn man es systemweit ausführbar machen will, dann muss man es noch verschieben.

cp blink1-tool /usr/local/bin
ls /usr/local/bin
which blink1-tool

Wenn sich die Datei in diesem Verzeichnis befindet, dann kann man es von jedem Verzeichnis aus aufrufen.

cd /
blink1-tool

4. Schritt: Berechtigung für normale Benutzer setzen

Nun darf man die Steuerungs-Software aber nur als Benutzer "root" oder als normaler Benutzer mit dem Kommandozeilenzusatz "sudo" ausführen. Wenn man die Ausführung als normaler Benutzer erlauben möchte, dann ist noch eine UDEV-Regel zu ergänzen.

Dazu ist eine neue UDEV-Rules-Datei zu öffnen:

nano /etc/udev/rules.d/51-blink1.rules

Hier sind folgende Zeilen einzutragen:

SUBSYSTEM=="input", GROUP="input", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="27b8", ATTRS{idProduct}=="01ed", MODE:="666", GROUP="plugdev"

Anschließend die Datei speichern, schließen und die UDEV-Rules neu laden.

udevadm control --reload-rules

blink(1) ausstecken und erneut einstecken. Danach den Benutzer "root" verlassen und die Steuerungs-Software als normaler Benutzer ausführen.

exit
blink1-tool --list

Weitere verwandte Themen:

Hardware-nahes Programmieren mit dem Raspberry Pi, Python und GPIO Zero

Elektronik-Set Raspberry Pi Edition

Das "Elektronik-Set Raspberry Pi Edition" ist ein Bauteile-Sortiment mit Anleitung zum Experimentieren und Programmieren mit Python und GPIO Zero.

  • LED: Einschalten, ausschalten, blinken und Helligkeit steuern
  • Taster: Verschiedene Zustände auswerten und anzeigen lassen
  • LED mit Taster einschalten und ausschalten
  • Relais-Board steuern
  • LED, Relais-Board und Motor über ULN2003A steuern
  • Ampel- und Lauflicht-Steuerung
  • Herunterfahren per Taster
  • Reaktionsspiel mit Tastern und LEDs
  • Eigene Steuerungen programmieren

Elektronik-Set jetzt bestellen

Frag Elektronik-Kompendium.de

Elektronik-Set Raspberry Pi Edition
Elektronik-Set Raspberry Pi Edition

Elektronik erleben mit dem Raspberry Pi mit Python und GPIO Zero

  • Leichter Einstieg ins Hardware-nahe Programmieren mit Python und GPIO Zero
  • Experimentieren und Programmieren ohne Vorkenntnisse
  • Sofort Loslegen mit All-in-one-Set

Elektronik-Set jetzt bestellen

Elektronik-Fibel

Elektronik einfach und leicht verständlich

Die Elektronik-Fibel ist ein Buch über die Grundlagen der Elektronik, Bauelemente, Schaltungstechnik und Digitaltechnik.

Das will ich haben!