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.
Dazu 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.
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.
Notiz: Mein nanoCUL hat eine 16mHz Taktfrequenz und sendet über 433mHz, daher musste ich keine Einstellungen anpassen.
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.
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“.
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.
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.
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.
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.
Anschließend natürlich nicht vergessen mit einem Klick auf „Save config“ alle Änderungen zu speichern.
Eine Antwort zu “CUL flashen & installieren”
Super Anleitung, Danke