RED Brick

Warnung

Der RED Brick ist leider abgekündigt. Mehrere ICs die auf dem RED Brick verwendet werden sind aktuell nicht mehr verfügbar oder haben extrem lange Lieferzeiten. Daher können wir keine neuen RED Bricks mehr fertigen.

Als möglichen Ersatz empfehlen wir ein Raspberry Pi (Zero) zusammen mit dem HAT (Zero) Brick.

Features

  • Steuert andere Bricks und Bricklets
  • Führt direkt dein geschriebenes Programm auf dem Brick aus
  • Unterstützt nahezu alle Programmiersprachen

Beschreibung

Der Rapid Embedded Development Brick (RED Brick) kann andere Bricks und Bricklets steuern. Die aktuell unterstützten Sprachen: C/C++, C#, Delphi/Lazerus, Java, JavaScript, MATLAB/Octave, Perl, PHP, Python, Ruby, Shell und Visual Basic .NET, können direkt auf dem Brick ausgeführt werden.

Ein Programm, das Bricks und Bricklets steuert, kann auf einem normalen PC oder Mac geschrieben und getestet werden. Anschließend kann es per Knopfdruck auf den RED Brick übertragen und ohne Änderungen auf diesen ausgeführt werden. Es können mehrere Programme gleichzeitig ausgeführt werden. Deren Ausführung kann konfiguriert (direkt nach dem Booten, jede Stunde, etc.) sowie überwacht werden.

Eigene Projekte können somit sehr schnell und einfach realisiert werden. Unseres Wissens nach ist keine, auch nur im Ansatz vergleichbare Lösung, erhältlich.

Für jede unterstützte Programmiersprache sind die Tinkerforge API und häufig genutzte Bibliotheken vorinstalliert. Weitere Bibliotheken können nachinstalliert werden.

Der Brick ist mit einem Micro-HDMI Anschluss ausgestattet, so dass auch Programme mit grafischer Benutzeroberfläche ausgeführt werden können. Eine USB 2.0 Host Schnittstelle kann genutzt werden, um Eingabe- und Zeigegeräte, wie Tastaturen, Mäuse oder Touchscreens, zu nutzen.

Bemerkung

Der RED Brick hat keine Bricklet-Anschlüsse. Um Bricklets anschließen zu können, wird mindestens ein weiterer Brick mit Bricklet-Anschlüssen benötigt, zum Beispiel der Master Brick. Dieser kann wie gewohnt mit dem RED Brick zu einem Stapel verbunden werden.

Mit der Ethernet Master Extension kann der RED Brick um eine Ethernet-Schnittstelle erweitert werden. Die RS485 Master Extension wird ebenfalls unterstützt, so dass auch entfernte Stapel von Bricks und Bricklets vom RED Brick gesteuert werden können.

Fortgeschrittene Nutzer können den Brick mit vollem Zugriff auf dem zugrundeliegenden Debian System nutzen.

Ein Einführungsvideo gibt es auf Youtube:

Technische Spezifikation

Eigenschaft Wert
Prozessor Allwinner A10s, Cortex A8 1GHz, 3D Mali400 GPU, NEON
Speicher 512MB DDR3 SDRAM, Micro-SD-Karte als Flash Speicher
Anschlüsse USB 2.0 Host, Micro-HDMI (Typ D), Mini-USB, Stapelverbinder
   
Abmessungen (B x T x H) 40 x 40 x 16mm (1,57 x 1,57 x 0,63")
Gewicht 14g
Stromverbrauch 0,75W (5V/150mA, Leerlauf); 1,1W (5V/220mA, 100% Last)

Ressourcen

Erste Schritte / Teste den RED Brick

Mit den folgenden Schritten kann der RED Brick getestet werden. Ein Schritt für Schritt Tutorial zum RED Brick steht ebenfalls bereit: RED Brick Tutorial.

Als erstes müssen Brick Daemon und Brick Viewer Software auf einem PC oder Mac installiert werden. Anschließend sollte die vorbereitet Micro-SD-Karte in den Micro-SD-Kartenslot des RED Bricks gesteckt werden. Die Position des Kartenslot und eine Übersicht aller Schnittstellen des Bricks gibt es in der Hardware Beschreibung. SD Karten mit vorinstalliertem Image können in unserem Shop bestellt werden. Ansonsten kann ein passenden SD Karte aber auch selber vorbereitet werden, siehe den Image auf SD Karte kopiert Abschnitt.

Danach ist der RED Brick einsatzbereit und kann mit dem PC oder Mac mit einem Mini-USB Kabel verbunden werden.

RED Brick mit Mini-USB Kabel

Nachdem die Brick Viewer Software gestartet wurde muss auf "Connect" geklickt werden. Ein Tab (Reiter), beschriftet mit "RED Brick", sollte auftauchen. Diesen Tab anklicken.

Auf der linken Seite des Tabs sind weitere Tabs vorhanden. Der "Overview" Tab gibt eine Übersicht über die Auslastung der CPU, die Speicherbelegung und andere Statusinformationen. Erscheinen diese Anzeigen, so bedeute dies, dass der RED Brick wie erwartet funktioniert und Programme hochgeladen werden können. Im Brick Viewer Abschnitt wird beschrieben, wie der RED Brick konfiguriert werden kann und wie Programme hochgeladen werden.

Zusätzlich kann die grafische Nutzerschnittstelle (HDMI) getestet werden. Dazu muss ein Monitor an den HDMI Anschluss und ein USB Hub mit Tastatur und Maus an dem USB Anschluss des RED Bricks angeschlossen werden. Während des Bootvorgangs kann das Starten des LXDE Desktop Environments beobachtet werden, das anschließend wie ein ganz normaler Desktop PC verwendet werden kann.

Auf dem Linux kann man sich mittels Nutzer tf und Passwort tf anmelden. Der tf Nutzer ist sudoer.

Bemerkung

Aus Sicherheitsgründen kann es sinnvoll sein das Passwort zu ändern. Die Prozedur ist hier beschrieben.

Brick Viewer

Dieser Abschnitt beschreibt die Konfiguration des RED Bricks mit der Brick Viewer Software. Der RED Brick kann ebenfalls über die RED Brick API konfiguriert werden (nur für Power User gedacht).

Screenshot der Tabauswahl und Labels.

Die RED Brick Darstellung im Brick Viewer besteht aus verschiedenen Tabs. Jeder wird nachfolgend im Detail beschrieben. Die UID des RED Bricks, die Position im Stapel, der Name des benutzten Images, Anzahl der Timeouts und das Wort System werden als erstes aufgeführt. Über System kann der Brick Daemon auf dem RED Brick neugestartet werden, oder aber der RED Brick selber neugestartet oder heruntergefahren werden.

Update Tinkerforge Software

Seit Brick Viewer Version 2.3.9 ist es möglich die Tinkerforge Software (Brick Viewer und die Tinkerforge Bindings) auf dem RED Brick upzudaten. Der Updateprozess kann im System Menü gestartet werden.

Screenshot des Tinkerforge Software Update Menüs.

Falls Updates vorhanden sind werden diese gemeldet.

Screenshot des Tinkerforge Software Update Reports.

Nach der Bestätigung vom Nutzer startet das Update.

Screenshot des Tinkerforge Software Update Prozesses.

Einzige Bedingung für das Updaten ist eine funktionierende Internetverbindung auf dem System auf dem der Brick Viewer läuft. Der RED Brick benötigt keine aktive Internetverbindung dafür.

Overview Tab (Statusinformation)

Dieser Tab ist standardmäßig selektiert. Er zeigt die Zeit, die der RED Brick bereits läuft (Uptime), sowie die CPU- und Speicher- Nutzung an. Weiter unten werden die Top-Prozesse nach CPU oder Speichernutzung angezeigt, die aktuell auf dem RED Brick laufen. Die Tabelle Network Interfaces zeigt den Status der aktuell konfigurierten Netzwerkschnittstellen.

Screenshot der Overview Tabs.

Die Liste kann folgende Netzwerkschnittstellen enthalten (X steht für eine Zahl, typischerweise 0):

  • lo: Dies ist die sogenannte Loopback-Schnittstelle. Sie ist rein lokal und dient unter anderem der Kommunikation zwischen Anwenderprogrammen und dem lokalen Brick Daemon.
  • wlanX: Dies ist die WLAN-Schnittstelle. Sie wird erzeugt wenn ein WLAN USB Stick an die USB Host Buchse angeschlossen wird.
  • ethX: Dies ist eine Ethernet-Schnittstelle. Sie wird erzeugt wenn ein Ethernet USB Stick an die USB Host Buchse angeschlossen wird.
  • tfX: Ist die Ethernet-Schnittstelle, die erzeugt wird, wenn eine Ethernet Extension auf den RED Brick gesteckt wird.

Die Statusanzeigen werden alle 3 Sekunden automatisch aktualisiert.

Settings Tab

Der Settings Tab ist in verschiedene Unterbereiche aufgeteilt.

Netzwerk

Im Network Abschnitt dieses Tabs können alle Einstellungen zu Netzwerken vorgenommen werden.

Screenshot des Settings Tabs: Netzwerk Konfiguration.

Der Current Network Status Abschnitt zeigt den Status der konfigurierten und aktuell genutzten Netzwerkschnittstelle an. Der angezeigte Status wird automatisch alle 3 Sekunden aktualisiert.

Initial ist der RED Brick für keine Schnittstelle konfiguriert. Er wird initial von sich aus keine Schnittstelle nutzen, selbst wenn eine vorhanden ist. Es muss erst eine Schnittstelle im Configuration Abschnitt konfiguriert werden. Als erstes muss die Schnittstelle gewählt werden. Ein Ethernet USB Stick wird als ethX, eine Ethernet Extension als tfX und ein WLAN USB Stick als wlanX angezeigt (X ist eine Zahl). Abhängig von der gewählten Schnittstelle gibt es verschiedenen Einstellungsoptionen:

  • Konfiguration einer Ethernet-Schnittstelle:

    Nachdem eine Ethernet-Schnittstelle gewählt wurde kann zwischen DHCP oder statischer IP gewählt werden. Klicke anschließend Connect.

  • Konfiguration einer WLAN-Schnittstelle:

    Nachdem eine WLAN-Schnittstelle gewählt wurde, können WLAN-Netze durch Klicken auf den Scan Button gesucht werden. Dies dauert ein paar Sekunden.

    Wähle den gewünschten Access Point und gebe den dazugehörigen Key ein. Anschließend muss nur noch zwischen DHCP oder statischer IP Adresse gewählt werden. Durch Klicken auf Connect wird die Verbindung zum Netzwerk hergestellt. Unterstützte WLAN USB Sticks finden sich in unserem Shop.

Ab jetzt verbindet sich der RED Brick nach einem Neustart automatisch über die konfigurierte Schnittstelle.

WLAN Access Point

Im WLAN Access Point Abschnitt (benötigt Image >= 1.4 und Brick Viewer >= 2.2.2) kann der RED Brick in einen WLAN Access Point verwandelt werden. Dieser Abschnitt ist erst verfügbar, wenn der Access Point Service aktiviert ist und ein WLAN USB Stick eingesteckt ist.

Screenshot des Settings Tab mit Konfiguration des Access Point

Im Access Point Modus stellt der RED Brick einen DHCP und DNS Server zur Verfügung. Diese geben Geräten, die sich mit dem RED Brick verbinden eine IP Adresse und stellt eine Domain zur Verfügung. Die IP Adresse, SSID, WPA Passwort, DHCP Pool, DNS Domain und andere Optionen die von einem Access Point erwartet werden, können konfiguriert werden.

Die aktuellen DHCP Leases werden angezeigt, so dass verbundene Geräte einfach identifiziert werden können.

Im Access Point Modus ist keine externe Netzwerkinfrastruktur notwendig. Smartphone, Tablet oder Laptop können direkt mit dem RED Brick verbunden werden.

Mobile Internet

Im Mobile Internet Abschnitt (benötigt Image >= 1.7 und Brick Viewer >= 2.2.6) kann eine mobile Internet-Verbindung konfiguriert werden. Dieser Abschnitt ist erst verfügbar, wenn der Mobile Internet Service aktiviert ist und ein 3G USB Stick eingesteckt ist.

Screenshot des Settings Tab mit Konfiguration der mobilen Internet-Verbindung

Voreinstellungen für verschiedene Mobilfunkbetreiber können über denn "Provider Presets" Knopf ausgewählt werden.

Screenshot des Mobile Internet Provider Presets Dialogs.

Nach einem Klick auf den "Connect" Knopf wird die Verbindung hergestellt, dies kann einige Minuten dauern. Es muss immer ein SIM Karten PIN eingegeben werden. Ist die PIN auf der SIM Karte deaktiviert worden, so kann eine beliebige PIN angegeben werden.

Wenn WLAN Access Point und Mobile Internet gleichzeitig aktive sind, dann teilt der RED Brick als WLAN Router seine Internet-Verbindung automatisch mit den verbundenen WLAN Teilnehmern.

Serverüberwachung

Screenshot des Settings Tabs: Server Monitoring Konfiguration.

Die Serverüberwachungs-Funktion (benötigt Image >= 1.6 und Brick Viewer >= 2.2.3) ist für die Zusammenarbeit mit dem Starterkit: Serverraum-Überwachung entworfen worden. Für weitere Details siehe die Dokumentation des Kits.

openHAB

Screenshot des Settings Tabs: openHAB Konfiguration.

Im openHAB Abschnitt (benötigt Image >= 1.6 und Brick Viewer >= 2.2.3) kann der openHAB Service auf dem RED Brick konfiguriert werden. Ab Image >= 1.10 und Brick Viewer >= 2.3.11 wird openHAB2 verwendet.

Dieser Abschnitt ist erst verfügbar, wenn der openHAB Service aktiviert ist.

Über die New und Delete Knöpfe können neue .items, .rules und .sitemap Dateien angelegt und bestehende Dateien wieder gelöscht werden. Abhängig von der Endung der Datei speichert Brick Viewer sie automatisch im richtigen openHAB Konfigurationsverzeichnis.

Nachdem Änderungen einer Konfigurationsdatei vorgenommen wurden können diese über den Apply Changes Knopf gespeichert oder über den Discard Changes Knopf verworfen werden. Dateien mit ungespeicherten Änderungen werden als (modified) angezeigt.

Ein openHAB Konfigurationsbeispiel ist in der Dokumentation des Starterkit: Wetterstation beschrieben.

Brick Daemon

Im Brick Daemon Abschnitt des Tabs können Einstellungen zum lokalen Brick Daemon vorgenommen werden.

Screenshot des Settings Tabs: Brickd Konfiguration.

Zu den Konfigurationsmöglichkeiten gehören die Adresse auf dem der Brick Daemon lauscht, der dazugehörige Port, der Port für die Nutzung von WebSockets, das Authentifizierungsgeheimnis und weitere Einstellungen u.a. die Funktion der roten und grünen LED.

WebSockets werden von der Browser-Version der JavaScript Bindings verwendet um Bricks und Bricklets zu steuern.

Datum/Uhrzeit

Im Date/Time Abschnitt kann die Uhr des RED Bricks, mit der Uhr des angeschlossenen PCs, synchronisiert werden. Es gibt keine Batterie auf dem RED Brick, so dass die Uhr nicht weiterläuft, wenn der RED Brick nicht aktiv ist.

Screenshot des Settings Tabs: Datum und Uhrzeit Konfiguration.

Wenn eine Verbindung zum Internet besteht (Ethernet Extension oder WLAN USB Stick), werden Datum und Uhrzeit automatisch mittels NTP gesetzt. Dazu muss nur die Zeitzone gesetzt werden. Diese wird gespeichert und wieder hergestellt, wenn der RED Brick das nächste mal hochfährt.

Falls die Zeit nach dem Booten immer vorhanden sein muss, ein Verbindung zum Internet aber nicht garantiert werden kann, dann kann auch das GPS Bricklet 2.0 oder das Real-Time Clock Bricklet 2.0 benutzt werden. Dazu muss nur ein entsprechendes kleines Programm von GitHub heruntergeladen und auf den RED Brick geladen werden, um die Uhrzeit mittels GPS Uhrzeit (gps_time Programm) oder Real-Time Clock Uhrzeit (rtc_time Programm) zu synchronisieren.

Dateisystem

Im File System Abschnitt (benötigt Brick Viewer >= 2.2.1) kann das Dateisystem auf der Micro-SD-Karte vergrößert werden.

Screenshot des Settings Tabs: Dateisystem Vergrößerung.

Abhängig von der Image Größe und der Kapazität der Micro-SD-Karte wird möglicherweise nicht die volle Kapazität der Micro-SD-Karte genutzt. In diesem Fall kann durch eine Vergrößerung des Dateisystems mehr Speicherplatz nutzbar gemacht werden. Wenn das Dateisystem weniger als 95% der Micro-SD-Karte einnimmt dann kann es vergrößert werden. Um dies zu tun einfach den Anweisungen in Brick Viewer folgen.

Services

Screenshot des Settings Tabs: Services.

Im Services Abschnitt (benötigt Image >= 1.4 und Brick Viewer >= 2.2.2) können verschiedene Services des RED Brick ein- und ausgeschaltet werden. Wenn Webserver oder Desktop Umgebung nicht benötigt werden können diese abgeschaltet werden, wodurch der RED Brick schneller bootet. Ebenfalls kann hier der WLAN Access Point Modus eingeschaltet werden, wodurch sich Smartphones und Notebooks direkt mit dem RED Brick verbinden können.

  • GPU: Aktiviert die Hardwarebeschleunigung für die Grafikausgabe. Wird diese aktiviert, wird ein Teil des RAMs von der GPU genutzt. Wird HDMI nicht genutzt empfehlen wir die GPU zu deaktivieren.
  • Desktop Environment: Der Start der Desktopumgebung (LXDE) benötigt Zeit, wird diese nicht benutzt kann sie deaktiviert werden um Bootzeit zu sparen.
  • Web Server: Der Webserver ist notwendig wenn Webservices genutzt werden sollen. Diese Option fügt ungefähr 10 Sekunden Bootzeit hinzu.
  • Splash Screen: Falls aktiviert, wird ein Splash Screen beim Bootvorgang angezeigt. Ist dieser deaktiviert, so werden Kernelmeldungen angezeigt.
  • Access Point: Ist der Access Point Modus aktiviert, kann der RED Brick als Access Point genutzt werden (siehe Access Point im Settings Tab).
  • Server Monitoring: Aktiviert das Nagios Monitoring System (siehe Serverüberwachung im Settings Tab).
  • openHAB: Aktiviert die openHAB Runtime (siehe openHAB im Settings Tab).
  • Mobile Internet: Wenn Mobile Internet aktiviert ist, dann kann eine mobile Internet-Verbindung im Settings Tab konfiguriert werden.

Werden Services geändert und gespeichert, so startet der RED Brick neu. Nach dem Neustart stehen die Änderungen zur Verfügung.

Program Tab (Programme hochladen und ausführen)

Die Beschreibung des Tabs befindet auf einer separaten Seite.

Screenshot des RED Brick Program Tabs.

Console Tab (Konsole, Fernsteuerung)

Wenn der RED Brick mittels Mini-USB Anschluss mit einem PC verbunden ist, registriert er eine serielle Schnittstelle. Diese Schnittstelle kann dazu genutzt werden um auf die Linux Shell des RED Bricks zuzugreifen. Dazu muss nur die entsprechende Schnittstelle gewählt werden und Connect geklickt werden. Die Schnittstelle ist typischerweise unter Linux /dev/ttyACMX (X ist eine Zahl), unter Windows Serial Port X (X ist Zahl) mit dem Gerätenamen RED Brick Serial Console und unter OS X /dev/tty.usbmodemXYZ, wobei XYZ ein Teil der UID des RED Bricks ist. Mit dem Nutzer tf und Passwort tf kann man sich einloggen. Falls unbekannt ist welche Schnittstelle die richtig ist, kann diese durch Ausprobieren bestimmt werden. Es kann notwendig sein die ENTER Taste zu drücken um die Kommandozeile zu sehen.

Nachfolgend ein Screenshot, das die Konsole bei der Ausführung des Befehls htop zeigt.

Screenshot des Console Tab.

Ein gutes Shell Tutorial steht auf linuxcommand.org zur Verfügung.

Versions Tab (Daemon, Bindings und Bibliotheken)

Der Version Tab gibt Informationen über den installierten Brick Daemon, RED Brick API Daemon sowie die installierten Bindings und deren Bibliotheken.

Screenshot des Versions Tab.

Wenn andere Bibliotheken, wie die Installierten genutzt werden sollen, dann können diese entweder mit dem eigenen Programm hochgeladen werden oder aber mittels apt-get, pip, pear, npm oder ähnlichen Paketmanagern installiert werden. Die genannten Paketmanager sind in allen RED Brick Images vorinstalliert.

Extensions Tab (Konfiguration, Verwaltung)

Zwei Master Extensions werden vom RED Brick unterstützt: Ethernet Extension und RS485 Extension.

Eine Änderung der Einstellungen einer Extension führt zu einem Neustart des Brick Daemons, d.h. der RED Brick Tab verschwindet kurz aus dem Brick Viewer und taucht kurze Zeit später wieder auf.

Ethernet Extension

Screenshot des Extension Tabs: Ethernet Extension Konfiguration.

Nur die MAC Adresse der Ethernet Extension kann hier geändert werden. Da diese als normale Netzwerkschnittstelle auftaucht, können die Netzwerkeinstellungen im Settings Tab verändert werden.

RS485 Extension

Screenshot des Extension Tabs: RS485 Extension Konfiguration.

Die Konfiguration der RS485 Extension ist identisch zu der mit einem Master Brick. Siehe RS485 Extension Dokumentation.

Folgende Baudraten werden bei der Nutzung eines RED Bricks unterstützt: 500000, 250000, 166666, 125000, 100000, 83333, 71428, 62500, 55555, 50000, 45454 und 41666 Baud.

Import/Export

Der Import/Export Tab (benötigt Brick Viewer >= 2.2.2) erlaubt es System Logs und Programme zu importieren und exportieren.

System Logs

Screenshot des Import/Export Tabs: System Logs.

Wähle eine Logdatei und klicke auf Refresh. Die Logdatei wird vom RED Brick heruntergeladen und im Brick Viewer angezeigt. Mit Save kann die Datei gespeichert werden.

Import

Screenshot des Import/Export Tabs: Import.

Wähle ein Datei mit zuvor exportierten Programmen (siehe unten) und wähle die Programme, die importiert werden sollen. Drücke Import um diese hochzuladen.

Export

Screenshot des Import/Export Tabs: Export

Im Export Tab können Programme exportiert werden. Drücke Export um diese auf der Festplatte zu speichern.

Die Exportdatei enthält die Konfiguration des Programms, alle Dateien und die Logs die sich über die Zeit angesammelt haben. Wenn das zu exportierende Programm läuft und dauerhaft Dateien schreibt bietet es sich an dieses vor dem Export zu beenden, um teilweise geschriebene Dateien zu verhindern.

Mit dieser Option können Programme exportiert werden und auf anderen RED Bricks importiert (siehe oben) werden.

RED Brick Web Interface

Wenn der RED Brick mit einem WLAN USB Stick, einer Ethernet Extension oder einer anderen Netzwerkverbindung ausgestattet ist, kann auf das Web Interface zugegriffen werden. Das Web Interface ist unter der IP Adresse des RED Bricks oder unter dessen Hostnamen (Voreinstellung: red-brick) erreichbar.

Das RED Brick Web Interface zeigt die installierten Programme, deren Logs und Konfiguration, als auch die hochgeladenen Dateien. Seit Image Version 1.6 werden auch die verfügbaren openHAB Sitemaps und ein Link zur Serverüberwachungs Webseite mit aufgeführt.

Screenshot des RED Brick Web Interfaces.

Neben dem vorinstallierten Web Interface können auch eigene installiert werden. Es werden Webanwendungen, die in HTML/JavaScript, Python oder PHP geschrieben sind, unterstützt. Wenn eine index.py, index.php oder index.html Datei hochgeladen wird, so wird diese als Index Datei des binary Ordners genutzt.

Beispiel zur Erklärung: Es soll eine PHP Webseite entwickelt werden, die Bricks/Bricklets steuert. Dazu wird das PHP Programm EXAMPLE mit der ID EXAMPLE-ID hochgeladen, das eine index.php als Startpunkt enthält. Wird anschließend das RED Brick Web Interface aufgerufen und der "Bin" Button der EXAMPLE Anwendung geklickt, so wird der Link zu /programs/EXAMPLE-ID/bin geöffnet. Dieser Link führt direkt die index.php aus, da diese als Index Datei des Verzeichnisses fungiert.

Webseiten, die Umwelt-Messungen von einem Temperature/Barometer/Humidity Bricklets anzeigt können somit sehr einfach erstellt werden. Es können aber auch Aktoren, zum Beispiel ein Relay Bricklet, über Buttons gesteuert werden.

Mit dem RED Brick ist es also sehr einfach Web-Anwendungen zu entwickeln, die Hardware steuern.

HTML/JavaScript

Wenn eine HTML Datei mit eingebettetem JavaScript hochgeladen wird, können die JavaScript Bindings genutzt werden. Diese sind direkt im Root Verzeichnis verfügbar.

<script src="/Tinkerforge.js" type='text/javascript'></script>

Das JavaScript wird im Browser des Benutzers ausgeführt und nicht auf dem RED Brick. Aus diesem Grund muss sich mit der IP Adresse des RED Bricks verbunden werden und nicht mit localhost!

Python

Auf dem Webserver (Apache) des RED Bricks wird WSGI (mod_wsgi) von Python genutzt um Webseiten darzustellen. Dieser ist konfiguriert um eine index.py als Startpunkt für ein WSGI Skript zu nutzen. Alle verbreiteten Python Web Frameworks unterstützen WSGI. Das Flask framework ist auf dem RED Brick vorinstalliert (beinhaltet Werkzeug und Jinja).

Ein minimales Flask Web Interface, das auf den RED Brick hochgeladen werden kann, ist eine index.py mit folgenden Inhalt:

from flask import Flask       # Use Flask framework
application = Flask(__name__) # Function "application" is used by Apache/wsgi
app = application             # Use shortcut for routing

@app.route('/')
def index():
    return '<html><body>Hello World!</body></html>'

Soll ein Programm Bricks/Bricklets steuern, so müssen nur die Tinkerforge Bindings, wie bei jedem Python Programm, eingebunden werden:

from tinkerforge.ip_connection import IPConnection
from tinkerforge.bricklet_temperature import Temperature

# ...

Das standardmäßig installierte Web Interface auf dem RED Brick nutzt Python/Flask. Der Code steht auf GitHub zur Verfügung.

Es können natürlich auch Templates, statische Dateien und so weiter benutzt werden. Diese können genauso benutzt werden wie in den meisten Flask Tutorials gezeigt.

PHP

Der Webserver auf dem RED Brick ist dazu eingerichtet eine index.php zu erkennen.

Eine minimale Hallo Welt index.php könnte wie folgt aussehen:

<?php $greeting = 'Hello World!'; ?>

<html>
 <head>
  <title>PHP Example</title>
 </head>
 <body>
  <p><?php echo $greeting; ?><p>
  <p><?php phpinfo(); ?><p>
 </body>
</html>

Um Bricks/Bricklets zu steuern müssen die Tinkerforge Bindings eingebunden werden:

require_once('Tinkerforge/IPConnection.php');
require_once('Tinkerforge/BrickletTemperature.php');

// ...

RED Brick Software Image

Das RED Brick Software Image basiert auf Debian und ist auf einer Micro-SD-Karte gespeichert. Zu Anfang gab es das Image in zwei Varianten: Das "Full" und das "Fast" Image. Seit Image Version 1.4 gibt es nur noch ein Image (ehemals das "Full" Image) mit einstellbaren Services (Desktop-Umgebung, Web Server, WLAN Access Point, usw.), die es erlauben das Image an verschiedenen Anforderungen anzupassen.

Das Image verfügt über GPU Treiber und besitzt alle notwendigen Bibliotheken für die Nutzung von grafischen Nutzerschnittstellen (GUIs). Falls aktiviert, startet ein X Server während des Bootvorgangs und das LXDE Desktop Environment wird mit Autologin gestartet. Wenn das eigene Programm eine grafische Nutzerschnittstelle nutzt, so wird diese auf dem Desktop angezeigt. Die Bildschirmauflösung passt sich der Voreinstellung des angeschlossenen HDMI Monitors an. Über LXDE kann diese aber auch konfiguriert werden. Die HDMI-Schnittstelle muss aber nicht benutzt werden und es können auch Programme ohne grafische Nutzerschnittstelle ausgeführt werden.

Neue Software kann installiert werden. Siehe die Beschreibung des Versions Tab, wie neue Software installiert wird.

Eine Liste der vorinstallierten Bibliotheken steht zur Verfügung: Installierte Bibliotheken.

Der Nutzer tf ist der Standardnutzer auf den Images. Beim Einloggen über die Konsole oder in LXDE kann dieser Nutzer mit dem Standardpasswort tf benutzt werden. Der Nutzer ist ein sudoer, so dass Root-Zugriff mittels:

sudo -s

erhalten werden kann. Die Images können von der Download Seite herunter geladen werden.

Baue dein eigenes Image

Bei dieser Anleitung nehmen wir an, dass ein Debian Linux als Host Plattform genutzt wird.

  1. RED Brick Repository von GitHub clonen
  2. In den Ordner image wechseln, die Datei README.rst öffnen und die dokumentierten Schritte durchführen.

Das Bauen eines Images kann 4-6 Stunden dauern, abhängig von der Leistungsfähigkeit des genutzten Rechners kann es auch deutlich länger dauern.

Image auf SD Karte kopieren

Zuerst das Image von der Download Seite herunterladen, entpacken und eine geeignete Micro-SD-Karte samt Kartenleser zur Hand haben. Wir empfehlen eine schnelle Karte (z.B. Class 10, > 30MB/s Lesen) mit genügend Speicherplatz (mindestens 8GB).

Wir empfehlen Etcher, um das Image auf die Micro-SD-Karte zu schreiben

  1. Etcher starten
  2. Entpacktes Image auswählen
  3. Micro-SD-Karte auswählen
  4. Auf "Flash!" klicken, um das Image zu schreiben

Standard Passwort ändern

Das Standard-Passwort des Benutzers tf lautet tf. Um dieses zu ändern öffnet man den Console Tab. Anschließend wählt man die korrekte serielle Schnittstelle und klickt auf den Connect Button. Man wird als Nutzer tf eingeloggt (die Enter-Taste drücken falls die Konsole nichts anzeigt). Als nächstes gibt man den Befehl passwd ein und es wird nach dem aktuellen Passwort gefragt. Man gibt tf ein. Anschließend kann man das neue Passwort eingeben und bestätigen.

HDMI Monitor Auflösung ändern

Der RED Brick stellt automatisch die richtige Monitor Auflösung für einen angeschlossenen Monitor ein. Dazu wird die Extended Display Identification Data (EDID) Schnittstelle des Monitor verwendet. Allerdings funktioniert EDID nur dann zuverlässig, wenn der Monitor bereits per HDMI anschlossen und eingeschaltet ist bevor der RED Brick bootet.

Wenn der Monitor erst an HDMI angeschlossen wird oder erst eingeschaltet wird, wenn der RED Brick schon läuft, dann kann es passieren, dass EDID nicht richtig funktioniert und eine falsche Auflösung eingestellt wird. Die einfachste Möglichkeit dies zu beheben ist es den RED Brick neuzustarten, sodass der Monitor bereits angeschlossen und eingeschaltet, wenn der RED Brick bootet.

Wenn dies nicht möglich ist und der Monitor erst angeschlossen oder eingeschaltet werden kann, wenn der RED Brick bereits läuft oder die automatisch eingestellt Auflösung aus anderen Gründen falsch ist, dann kann die Auflösung auch manuell mit dem tf-set-resolution Tool eingestellt werden.

Mit tf-set-resolution

Bemerkung

In Image version 1.10 ist tf-set-resolution nicht mehr verfügbar. Weitere Informationen befinden sich hier.

Um die Monitor Auflösung zu ändern öffnet man den Console Tab. Anschließend wählt man die korrekte serielle Schnittstelle und klickt auf den Connect Button. Man wird als Nutzer tf eingeloggt (die Enter-Taste drücken falls die Konsole nichts anzeigt). Als nächstes gibt man den folgenden Befehl ein (möglicherweise wird nach dem Passwort für tf gefragt, das Standard-Passwort lautet tf):

sudo tf-set-resolution hdmi mode <mode-number>

Anstatt <mode-number> muss die Nummer des Modus angegeben werden, der aktiviert werden soll. Folgenden manuell setzbare Modi werden derzeit unterstützt:

  • 0 = 480i
  • 1 = 576i
  • 2 = 480p
  • 3 = 576p
  • 4 = 720p @ 50Hz
  • 5 = 720p @ 60Hz
  • 6 = 1080i @ 50Hz
  • 7 = 1080i @ 60Hz
  • 8 = 1080p @ 24Hz
  • 9 = 1080p @ 50Hz
  • 10 = 1080p @ 60Hz
  • 11 = PAL
  • 12 = PAL (S-Video)
  • 14 = NTSC
  • 15 = NTSC (S-Video)
  • 17 = PAL-M
  • 18 = PAL-M (S-Video)
  • 20 = PAL-NC
  • 21 = PAL-NC (S-Video)
  • 23 = 1080p @ 24Hz (3D)
  • 24 = 720p @ 50Hz (3D)
  • 25 = 720p @ 60Hz (3D)
  • 26 = 1360 x 768 @ 60Hz
  • 27 = 1280 x 1024 @ 60Hz
  • 28 = 800 x 480 @ 60Hz (benötigt Image Version >= 1.6)

Wenn die gewünschte Auflösung nicht in der Liste der setzbaren Modi enthalten ist, dann können wir die Kernel Tabellen um einen neuen Modus erweitern. Dafür müssen wir die relevanten Informationen für den entsprechenden Monitor kennen. Als erstes muss sichergestellt werden, dass beim Booten die Auflösung des Monitors automatisch richtig eingestellt wurde. Dann den folgenden Befehl eingeben:

dmesg | egrep "(PCLK=|disp clks:)"

und uns eine E-Mail (info@tinkerforge.com) mit der Ausgabe des Befehls schicken.

Beispielprogramme

Auf GitHub stehen verschiedene Beispielprogramme zur Verfügung:

  • GPS Uhrzeit als Systemzeit verwenden: Wenn NTP nicht verwendet werden kann, um die Systemzeit zu synchronisieren, z.B. wegen fehlender Internetanbindung, dann kann alternativ dieses Programm verwendet werden, um die Systemzeit mit dem GPS Bricklet zu synchronisieren.
  • Real-Time Clock Bricklets Uhrzeit als Systemzeit verwenden: Wenn NTP nicht verwendet werden kann, um die Systemzeit zu synchronisieren, z.B. wegen fehlender Internetanbindung, dann kann alternativ dieses Programm verwendet werden, um die Systemzeit mit dem Real-Time Clock Bricklet zu synchronisieren.
  • Systemzeit über Webbrowser synchronisieren: Wenn weder NTP noch GPS, noch Real-Time Clock Bricklet zur Synchronisierung der Systemzeit genutzt werden kann, dann kann über dieses Programm die Systemzeit vom Webbrowser aus synchronisiert werden.
  • Humidity Callback per SMS erhalten: Dieses Beispiel zeigt, wie Bricklet Callback-Werte per SMS weiter geleitet werden können, wenn am RED Brick ein GSM Modem angeschlossen ist.
  • GPS Position per SMS abfragen: Dieses Beispiel zeigt, wie die GPS Position per SMS abgefragt werden kann, wenn am RED Brick ein GPS Bricklet und ein GSM Modem angeschlossen sind.

Hardwarebeschreibung

RED Brick Beschreibung Oberseite RED Brick Beschreibung Unterseite

Power Button

Der Taster auf dem RED Brick ist ein Power Button. Wenn dieser länger wie 5 Sekunden gedrückt wird, so schaltet sich der RED Brick ab. Wenn der Brick aus ist, kann dieser über den Button auch wieder eingeschaltet werden. Dazu muss der Button solange gedrückt werden (ca. 3 Sekunden) bis die blaue LED an geht. Der Brick bootet anschließend.

LEDs

Der RED Brick besitzt drei verschiedene LEDs auf der Oberseite. Eine blaue, eine rote und eine grüne LED.

  • Die blaue LED ist direkt mit der internen Stromversorgung des Prozessors verbunden und leuchtet also immer, wenn der Prozessor mit Strom versorgt ist.
  • Die rote LED zeigt an wenn ein Fehler vorliegt. Wenn die rote LED während des Bootvorgangs dauerhaft leuchtet, so konnte kein Image gefunden werden. Es ist entweder keine SD Karte vorhanden oder auf dieser ist kein gültiges Image.
  • Die grüne LED zeigt den aktuellen Status. Wenn beim Starten die rote LED aus geht und die grüne nicht an, dann konnte Linux nicht korrekt booten. Während des Bootvorgangs geht die grüne LED an, nachdem alle Services gestartet sind und der Brick bereit ist blinkt diese (Heartbeat).

Ein normaler Bootvorgang verläuft wie folgt:

  1. Blaue und rote LED sind an, grüne LED ist aus.
  2. Rote LED geht aus (U-Boot geladen).
  3. Grüne LED geht an (Linux bootet).
  4. Grüne LED blinkt (Heartbeat: Linux erfolgreich gestartet, alle Services laufen).

Die Funktion der grünen und der roten LED kann geändert werden. Diese können zum Beispiel die Ausnutzung der CPU oder der SD Karte anzeigen, anstatt des Heartbeats.

Micro-SD-Kartenslot

Das Linux System und alle Daten sind auf einer Micro-SD-Karte gespeichert. Der Kartenslot ist auf der Unterseite des Bricks. Micro-SD (1.0), Micro-SDHC (2.0) und Micro-SDXC (3.0) Karten werden unterstützt. Wir empfehlen als Minimum eine Class 10 Micro-SD-Karte mit einer Leserate von mindestens 30MB/s um schnelle Lese- und Schreibvorgänge zu ermöglichen.

Eine Beschreibung der Images befindet sich im Image Abschnitt.

USB 2.0 Host

Der RED Brick ist mit einer Standard USB 2.0 (480Mb/s) Typ A Buchse ausgestattet. Mit ihr können USB Geräte mit bis zu 7,5W (5V/1,5A) betrieben werden. Ein Kurzschluss-Schutz schützt den RED Brick und das angeschlossene Gerät. Typische USB Geräte, wie zum Beispiel WLAN oder Ethernet USB Stick, Webcams, Drucker, Tastaturen, Mäuse und USB Touchscreens werden unterstützt, sofern die nötigen Treiber auf dem RED Brick vorhanden sind.

Manche Ethernet oder WLAN Sticks können direkt über den Brick Viewer konfiguriert werden. Unterstützte Sticks bieten wir in unserem Shop an. Andere Geräte müssen ggf. direkt im Linux System konfiguriert werden und können nicht vom Brick Viewer konfiguriert werden.

Mini-USB

Über den Mini-USB Anschluss wird der RED Brick vom Brick Viewer gesteuert und konfiguriert. Der RED Brick kann auch über diesen mit Strom versorgt werden.

Micro-HDMI

Mit dem Micro-HDMI Anschluss (auch Typ D genannt), können alle Standard HDMI Monitore und Fernseher mit dem RED Brick verbunden werden. HDMI Ethernet Channel (HEC) wird nicht unterstützt.

Brick Stapel Stecker

Der RED Brick kann bis zu acht andere Bricks über den Stapelstecker steuern. Zusätzlich können bis zu zwei Master Extensions genutzt werden. Aktuell werden nur die RS485 Extension und alle Versionen der Ethernet Extension unterstützt. Jede Extension kann maximal einmal im Stapel verbaut werden. Zwei RS485 oder zwei Ethernet Extensions sind also nicht möglich.

Die WIFI Extension wird zur Zeit nicht unterstützt. Wir empfehlen die Nutzung eines WLAN USB Sticks um den RED Brick ins WLAN zu bringen.

Die Ethernet Extension taucht als normale Ethernet-Schnittstelle des Linux Systems auf. Über eine Step-Down Power Supply kann der RED Brick und die anderen Module des Stapels mit Strom versorgt werden. Dazu muss dieser nur unter den RED Brick gesteckt werden.

Stromversorgung

Der RED Brick muss mit 5V versorgt werden. Er kann über den Mini-USB Anschluss oder eine Step-Down Power Supply versorgt werden. Ein einzelner RED Brick benötigt bis zu 1,1 Watt, so dass ein typisches 5W (5V/1A) USB Netzteil ausreicht um diesen und zum Beispiel ein Master Brick mit ein paar Bricklets zu versorgen. Bei größeren Aufbauten sollte der Strombedarf berechnet werden und eine geeignete Stromversorgung genutzt werden. Dabei dürfen zusätzlich angeschlossene USB Geräte, die ebenfalls versorgt werden, nicht außer acht gelassen werden.

FAQ

  • Q: Ich habe mein RED Brick mit einem Linux PC verbunden. Ich sehe aber kein /dev/ttyACM0 Gerät um mich mit der seriellen Konsole zu verbinden.

    A: Der cdc_acm Treiber muss geladen werden.

  • Q: Die rote und blaue LED sind an, aber nichts passiert.

    A: Der RED Brick bootet nicht. Überprüfe die Micro-SD-Karte.

Bekannte Probleme

Zweite Master Extension funktioniert nicht immer (gelöst)

Die Kernel Konfiguration in Image Version 1.0 ist fehlerhaft. Dadurch kann es bei gleichzeitiger Verwendung zweier Master Extension auf dem RED Brick dazu kommen, dass die zweite Extension nicht immer richtig funktioniert.

Seit Image Version 1.1 ist die Kernel Konfiguration korrigiert, so dass dort dieses Problem nicht mehr auftritt.

C# Programm stürzt beim Starten ab (gelöst)

Image Version 1.0 beinhalten C# Bindings, die versehentlich für CLR Version 4 kompiliert wurde. Mit diesen C# Bindings stürzt Mono ab, wenn das C# Programm für CLR Version 2 kompiliert wurde:

Missing method .ctor in assembly /usr/lib/Tinkerforge.dll, type System.Runtime.Versioning.TargetFrameworkAttribute

Um dieses Problem zu beheben, kann entweder das C# Programm für CLR Version 4 kompiliert, oder in der C# Konfiguration des Programms folgende Zeile:

--runtime=v4.0

als Mono Option hinzugefügt werden.

Dieses Problem betrifft nur Image Version 1.0. Seit Image Version 1.1 sind C# Bindings wieder für CLR Version 2 kompiliert, so dass dort dieses Problem nicht mehr auftritt.

Stapel mit NFC/RFID Bricklet auf RED Brick taucht im Brick Viewer nicht auf (gelöst)

Problematischer Aufbau: Master Brick mit NFC/RFID Bricklet und irgendeinem weiteren Bricklet steckt auf einem RED Brick. Dann taucht nur der RED Brick im Brick Viewer auf, aber sonst kein weitere Brick oder Bricklet aus dem Stapel.

Das Problem wird durch eine Inkompatibilität im NFC/RFID Bricklet Plugin Version 2.0.0 verursacht. Diese Inkompatibilität ist in Plugin Version 2.0.1 behoben.

FPC (Delphi/Lazarus) Library ist nicht Verfügbar auf dem RED Brick (gelöst)

Leider hat sich durch eine Laste-Minute-Änderung ein Bug in die Delphi/Lazarus Bindings eingeschlichen. Aufgrund dieses Bugs sind keine FPC Libraries auf dem RED Brick Image (Version 1.0 und 1.1) vorhanden. Dies wird in Version 1.2 behoben. In der Zwischenzeit kann das Problem über die Konsole gelöst werden:

sudo su
# password = tf

cd /usr/tinkerforge/bindings/delphi/source/
sed -i -e 's/BrickRED//g' Makefile.fpc
export FPCDIR=/usr/lib/fpc/`ls /usr/lib/fpc/ | grep -E [0-9].[0-9].[0-9] | head -n1`
fpcmake
make
make install

Jetzt sollte die FPC Library ordnungsgemäß installiert sein und alles sollte wie erwartet funktionieren!

Dieses Problem tritt nur in Image Version 1.0 und 1.1 auf, es ist seit Image Version 1.2 beseitigt.

Keine Namensauflösung (gelöst)

In Image Version 1.2 steht Standardmäßig keine Namensauflösung (DNS) zur Verfügung. Das Problem kann über die Konsole gelöst werden:

sudo su
# enter password tf

echo "nameserver 8.8.8.8" > /etc/resolv.conf

Dieses Problem tritt nur in Image Version 1.2 auf, es ist seit Image Version 1.3 beseitigt.

Ethernet Extension wird im Extension-Tab angezeigt, aber nicht in den Netzwerkeinstellungen (gelöst)

In Image Version 1.4 kann der RED Brick Probleme haben den Treiber für die Ethernet Extension zu finden. Das Problem kann über die Console gelöst werden:

sudo su
# enter password tf

ln -s /lib/modules/3.4.103+/kernel/drivers/net/ethernet/wiznet/w5x00.ko /lib/modules/3.4.90+/kernel/drivers/net/ethernet/wiznet/

Dieses Problem tritt nur in Image Version 1.4 auf, es ist seit Image Version 1.5 beseitigt.

Display Auflösung kann nicht geändert werden (offen)

In Image Version 1.10 steht durch das Kernel Update von 3.4 auf 4.13 das tf-set-resolution Tool nicht mehr zur Verfügung. Die Auflösung eines angeschlossenen Display kann daher derzeit nicht geändert werden.

openHAB2 meldet fehlende OSGi Pakete (offen)

In Image Version 1.10 wird openHAB2 verwendet, dass nach der ersten Aktivierung selbst noch OSGi Pakete nachinstalliert. Wenn diese Nachinstallation durch einen Neustart des RED Bricks unterbrochen wird oder keine Internet-Verbindung am RED Brick vorhanden ist, dann kommt openHAB2 in diesen Zustand.

Diese Problem kann vermieden werden indem sichergestellt wird, dass bei der ersten Aktivierung des openHAB Services Internet-Verbindung am RED Brick vorhanden ist und der RED Brick dann nicht während der Nachinstallation neugestartet wird. Der Zustand der Nachinstallation kann auf dem openHAB Webinterface verfolgt werden.

Programmierschnittstelle

Die RED Brick API ist dazu gedacht um für den Brick Viewer die angebotene Funktionalität zu implementieren (Statusinformationen bekommen, Programme managen, etc.). Diese API ist ggf. für Power User interessant, normale Nutzer benötigen diese nicht.

Siehe Programmierschnittstelle für eine detaillierte Beschreibung.

Sprache API Beispiele Installation
C/C++ API   Installation
C# API   Installation
Delphi/Lazarus API Beispiele Installation
Go API   Installation
Java API Beispiele Installation
JavaScript API   Installation
LabVIEW API Beispiele Installation
Mathematica API   Installation
MATLAB/Octave API   Installation
MQTT API   Installation
openHAB API Beispiele Installation
Perl API   Installation
PHP API   Installation
Python API Beispiele Installation
Ruby API   Installation
Rust API   Installation
Shell API   Installation
Visual Basic .NET API   Installation
TCP/IP API    
Modbus API