CUL unter OS X flashen

Aus FHEMWiki

Kurzanleitung zum Flashen eines CUL unter OS X

Vorausetzung

  • Xcode
  • libusb
  • DFU-Programmer
  • culfw
  • wenigstens rudimentäre Kenntnisse, sich mittels Terminal zurecht zu finden (cd / ls)

Xcode

Zunächst muss Xcode installiert sein. Es gibt freie Downloads bei Apple. Ab Lion kann Xcode 4.x (oder höher) im AppleStore kostenlos heruntergeladen werden. Für ältere OS X Varianten, z.b. Snow Leopard muss Xcode 3.x geladen werden, dieses ist auf der Apple Webseite als Download verfügbar, allerdings nur für registrierte Entwickler. Die Registration ist kostenlos und in 5 Minuten erledigt. Xcode belegt ca. 2 GB Festplattenplatz, der Download ist 800 MB gross und dauert daher ggf. ein bisschen.

libusb

Damit alles funktioniert, muss auserdem libusb installiert sein, was nicht immer der Fall ist. Dankenswerterweise hat jemand ein Package mit Installerscript gemacht, das eigentlich eine ältere Version des DFU-Programmers installiert und die nötigen usblibs gleich mit.

Hier herunterladen: http://www.uriahbaalke.com/?p=106

Installationsanleitung (aus beiligendem ReadMe File) befolgen.

Auf der Webseite und im ReadMe File wird (wie auch anderer Stelle) empfohlen, CrossPack zu installieren. Das ist nicht nötig, wenn man nur flashen, aber nicht entwickeln will. Installkommando (./install_dfu_programmer) bitte vorzugsweise selber eintippen, copy/paste von Webseiten ins Terminal führt nicht immer zum Erfolg.

DFU-Programmer

Das Script von oben genannter Webseite installiert eine ältere Version des DFU-Programmers, leider ist nicht ersichtlich welche. Hier könnte man sicherheitshalber eine aktuelle Version nachinstallieren. Zum Zeitpunkt des Verfassens dieses Artikels ist dfu-programmer-0.7.2 die neuste Version. CUL V4 setzt z.b. zwingend dfu-programmer >= 0.5.4 voraus. Es gibt jedoch mehrere Hinweise, dass Version 0.5.4 selbst u.U. problembehaftet ist. Für Nutzer von CUL V2 und V3 kann es daher empfehlenswert sein, anstelle dessen die Version 0.5.2 oder deutlich neuere zu verwenden. Version 0.5.2 kann z.b. hier heruntergeladen werden: https://sourceforge.net/projects/dfu-programmer/files/dfu-programmer/

Dort die .tar.gz Version herunterladen und mit geeignetem Programm entpacken (z.b. BetterZIP).

Beiliegende Anleitung zur Installation befolgen.

Nach Installation Terminal neu starten.

culfw

Aktuelle culfw von http://culfw.de/culfw.html herunterladen, ebenfalls entpacken.

Flashen

CUL mit gedrückter Taste (Microtaster auf der Unterseite, bei CULs mit Gehäuse mit aufgebogener Büroklammer drücken) in den USB Port des Rechners stecken. Das ist bei CULs mit Gehäuse leider eine elende Fummelei, weil man dazu 3 Hände braucht. Erfolgreich war man, wenn nach dem Einstecken des CULs die LED nicht blinkt. Nun im Terminal per "cd" in das entpackte culfw Verzeichnis hangeln und dort in "Devices/CUL". Dort befinden sich mehrer Versionen der culfw, dies ist vor allem nötig, da das CUL V2 mangels genug Onboardspeicher nicht SlowRF (FS20/FHT etc) und HM Firmware zugleich halten kann.

  • CUL_V2_HM.hex (mit HomeMatic Support, aber ohne SlowRF und ohne IT)
  • CUL_V2.hex (mit SlowRF Support, aber ohne HM und ohne IT)
  • CUL_V3.hex (komplett für CULv3)
  • CUL_V4.hex (komplett für CULv4)

Je nach eingestecktem CUL und ggf. gewünschtem Featureset dann im Terminal z.b. "make usbprogram_v2_hm" oder "make usbprogram_v2" etc. eingeben (und entern)

Der Flashvorgang dauert insgesamt nur wenige Sekunden, maximal ca. 15 Sekunden. Wenn er erfolgreich war, ist am Mac idR. ein neues Gerät an der USB Schnittstelle zu erkennen, meist schlägt er vor, es als Netzwerkschnitstelle einzurichten. Je nach Konfiguration von OS X kann es jedoch auch sein, dass der Stick von OS X nicht angezeigt wird. Dies heisst nicht zwingend, dass das Flashen erfolglos war. Wenn make usbprogram_v3 (etc.) ohne weitere Fehlermeldung im Terminal beendet wurde, lohnt es sich, den Stick mit FHEM auszuprobieren, auch wenn OS X den Stick nicht anzeigt.

Bei Misserfolg CUL ziehen und mit gedrückter Taste nochmals einstecken, Vorgang wiederholen.