In dieser einfachen Anleitung zeige ich dir, wie du einen CUL flashen und instalieren kannst. Ich hab hier den nach der CUL Bauanleitung selbst gebauten nanoCUL verwendet. Diese Anleitung funktioniert aber auch für einen normalen CUL und sollte auch für Anfänger einfach zu verstehen sein.

Altes Gerät entfernen

Solltest du vorher einen anderen Sender/Empfänger verwendet haben und ihn nun durch den neuen Sender/Empfänger austauschen wollen, dann solltest du den alten Sender/Empfänger zuerst in FHEM löschen.

FHEM - Befehle eingebenDazu gibst du einfach folgenden Befehl in die Befehlszeile der FHEM Benutzeroberfläche ein …


delete Sduino

… und sendest ihn mit drücken der „Enter“ Taste. Dabei solltest du natürlich Sduino durch den Namen ersetzen, den dein altes Gerät hat.

Anschließend musst du FHEM neu starten, damit der USB Port wieder frei gegeben wird. Das geht über den Befehl …


shutdown restart

… den du wieder in die Befehlszeile der FHEM Benutzeroberfläche eingibst. FHEM fährt sich nun herunter und startet selbständig neu, weshalb die Verbindung zur FHEM Benutzeroberfläche kurzzeitig unterbrochen sein kann.

Programm zum Flashen installieren

Damit du deinen CUL flashen kannst, benötigst du das Programm avrdude. Wenn es noch nicht auf deinem Raspberry Pi installiert ist, kannst du das mit folgendem Befehl tun, den du mit der SSH Konsole in der Shell eingibst.


sudo apt-get install make gcc-avr avrdude avr-libc

Dateien zum Flashen installieren

Der CUL lässt sich nicht einfach in FHEM flashen, wie es beim Sduino möglich ist. Wir müssen zunächst die Dateien zum Flashen herunterladen und entpacken, bevor wir sie auf den CUL spielen können.

Dazu wechselst du zuerst in das höchste Verzeichnis …


cd /

… und legst dann einen neuen Ordner für die Dateien an.


mkdir culfw

Solltest du dafür keine Berechtigung haben, musst du dich zuerst auf dem Raspberry Pi als „root“ anmelden. Anschließend wechseln wir in das erstellte Verzeichnis:


cd culfw

Als nächstes kannst du die Dateien herunterladen und direkt entpacken.


wget -q -O - http://culfw.de/culfw-1.66.tar.gz | tar xvzf -

Ersetze einfach den Link durch die entsprechend aktuellen Pakete, wie du sie auf der FHEM Seite für culfw findest. Mit folgendem Befehl kannst du dir den Inhalt des Verzeichnisses anschauen.


dir

Wie du siehst wurde ein Unterverzeichnis mit dem Namen deiner Version erstellt. Nun wechseln wir in dieses Unterverzeichnis. Für die Version 1.66 sieht das wie folgt aus:


cd culfw-1.66

CUL Hardware Einstellungen

Für deine Version musst du den Namen des Ordners natürlich entsprechend anpassen. Im Unterordner Devices befindet sich die Software für verschiedene Hardware-Versionen. Für den selbst gebauten CUL auf Basis eines Arduino nano verwenden wir die nanoCUL Software. Wechsle daher in den Ordner für mit den nanoCUL Dateien:


cd Devices/nanoCUL

Nun müssen wir noch ein paar Einstellungen vornehmen, damit der nanoCUL richtig läuft. Öffne dazu die Datei


nano board.h

Es öffnet sich ein Editor, über die Pfeiltasten kannst du zwischen den Zeilen navigieren. Das grün blinkende Viereck zeigt dir an, wo du gerade bist. Nun nimmst du die passenden Einstellungen vor.

CUL flashen & installieren - Hardware Einstellungen

Manchmal muss die Taktfrequenz auf 8MHz gesenkt werden, dazu änderst du die folgende Zeile …


#define HAS_16MHZ_CLOCK

… in …


/* #define HAS_16MHZ_CLOCK */

… wobei dir Schriftfarbe von rot auf blau wechseln sollte. Für die meisten Arduino nano ist das jedoch nicht notwendig, im Zweifelsfall solltest du schauen ob dein Arduino für 8 oder 16 MHz ausgelegt ist.

Wenn du deinen CUL für 868MHz verwenden möchtest, musst du auch folgende Zeile …


#define HAS_CC1100_433

… in …


/* #define HAS_CC1100_433 */

… ändern und die Schriftfarbe wechselt ebenfalls von rot auf blau.

Mit „Strg+X“ kannst du den Editor beenden. Anschließend wirst du gefragt, ob du die Änderungen speichern möchtest, was du mit „Y“ bzw. „J“ bestätigst. Danach wird der Speicherort abgefragt, was du einfach mit „Enter“ bestätigst.

Dateien für CUL kompilieren

Anschließend kannst du die Dateien für den CUL kompilieren, dabei entsteht eine .hex Datei.


make

CUL flashen

Wenn du den CUL noch nicht angeschlossen hast, solltest du dies jetzt tun. Anschließend können wir den CUL flashen. Dabei wird die Software auf den Chip des CUL gespielt.


make program

Auf dem Bildschirm kannst du nun mitverfolgen, wie der CUL geflasht wird. Dabei sollte die LED am Arduino wie wild blinken. Sobald das Flashen des CUL erfolgreich beendet wurde erscheint die Meldung  „avrdude done. Thank you.“.

LED am CUL

In manchen Anleitungen wird beschreiben, das die zweite LED am Arduino einmal pro Sekunde aufblitzen soll. Das ist aber Unsinn, denn die LED blinkt nach dem Flashen häufig wie wild und das ist kein Grund zur Sorge. Nach dem nächsten Neustart des Raspberrry Pi blinkt die zweite LED am CUL nicht mehr, es sei denn man stellt es entsprechend in FHEM ein.

USB Einstellungen für den CUL

Nun wollen wir die Kommunikation mit dem CUL testen und alle USB Einstellungen vornehmen. Dazu kannst du Minicom verwenden, was wir wie folgt installieren, wenn es noch nicht auf dem Raspberry Pi vorhanden ist.


sudo apt-get install minicom

Bevor wir Einstellungen vornehmen können, müssen wir den richigen USB Port suchen. Dazu kannst du den CUL kurz abziehen, dann wieder einstecken und kurz warten. Wenn du nun …


dmesg | grep tty

… in die SSH Konsole eingibst, zeigt er ganz unten die kürzlich angeschlossenen Geräte. Da wir den CUL eben abgezogen und wieder angeschlossen haben, sollte er als letztes in der Liste auftauchen.


[ 992.074305] usb 1-1.4: ch341-uart converter now attached to ttyUSB0

Dabei sind die USB Ports durchnummeriert und wie du an „ttyUSB0“ erkennen kannst, hängt der CUL bei mir an USB Port „0“. Nun können wir die Einstellungen anpassen, indem wir minicom aufrufen …


sudo minicom -s

… und uns mit den Pfeiltasten zu „Serial Port Setup“ bzw. „Einstellungen zum seriellen Anschluss“ navigieren und mit „Enter“ öffnen.

CUL flashen & installieren - minicom - USB Einstellungen

Drücke nun „A“ und ändere den Eintrag „ttyUSB“ in „ttyUSB0“. Dabei steht die „0“ für die Nummer des USB Ports, an dem dein CUL angeschlossen ist. Bestätige anschließend die Eingabe mit „Enter“.

CUL flashen & installieren - minicom USB Einstellungen - USB Port

Anschließend drückst du „E“ und änderst die Parameter in 38400 8N1 indem du „D“ und „V“ drückst und die Eingabe mit „Enter“ bestätigst.

CUL flashen & installieren - minicom USB Einstellungen - Baudrate

Anschließend kannst du die Engabe mit „Enter“ bestätigen und „Save Setup as dlf“ bzw. „Speichern als dlf“ auswählen und ebenfalls mit „Enter“ bestätigen. Es erscheint eine kleine Rückmeldung, das die Konfiguration gespeichert wurde.

CUL flashen & installieren - minicom - USB Einstellungen - speichern

Wenn du minicom erneut aufrufst, sollte dein angelegter ttyUSB0 erscheinen.


minicom

Mit „Strg+A“ und dann „Shift+X“ erscheint die Aufforderung zum Verlassen und du kannst minicom mit „Enter“ beenden.

CUL flashen & installieren - minicom - USB Devices

USB Anschluss ermitteln

Nun müssen wir herausfinden an welcher USB Schnittstelle dein CUL hängt. Dazu meldest du dich mit der SSH Konsole in der Shell an und gibst folgenden Befehl ein:


ls -l /dev/serial/by-id

Es erscheinen alle USB Anschlüsse und die daran angeschlossenen Geräte. Hier suchst du den CUL heraus und kopierst dir den Namen der USB Schnittstelle, damit wir ihn später in FHEM eindeutig ansprechen können. Bei mir wäre das:


usb-1a86_USB2.0-Serial-if00-port0

CUL in FHEM anlegen

Jetzt können wir den CUL in FHEM anlegen, indem wir folgenden Befehl in der FHEM Benutzeroberfläche in die Befehlszeile eingeben:


define Name CUL /dev/serial/by-id/USB@38400 1234

Anstelle von „Name“ kannst du einen beliebigen Namen für deinen CUL verwenden. Außerdem wird „USB“ durch den eben kopierten Dateinamen (siehe oben) ersetzen. Am Ende findest du noch die Baudrate von 38400, die wir auch in den USB Einstellungen gewählt hatten. Bei mir sieht das dann wie folgt aus:


define nanoCUL433 CUL /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0@38400 1234

Damitwurde der CUL erfolgreich in FHEM angelegt, was am „initalisiert“ Status zu erkennen ist.

CUL flashen & installieren - FHEM - nanoCUL initialized

FHEM - Save Config - Änderungen SpeichernAnschließend natürlich nicht vergessen mit einem Klick auf „Save config“ alle Änderungen zu speichern.