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. Falls Xcode nicht installiert ist, ggf lieber nach der Methode wie unter CUNO unter OSX flashen beschreiben vorgehen, da diese Methode dank CrossPackAVR ohne Xcode auskommt.

USB Treiber installieren

Damit das USB Gerät (CUNO2) unter OSX erkannt wird, USB Treiber herunterladen und installieren

http://www.silabs.com/Support%20Documents/Software/Mac_OSX_VCP_Driver.zip

Geht nur mit Administratorrechten und einem Neustart. Der Neustart ist wichtig.

DFU-Programmer

Aktuelle version des DFU Programmers herunterladen. Zum Zeitpunkt des Verfassens dieser Zeilen (2018) ist 0.7.2 die aktuelle Version. Die jeweils neuste Version bekommt man hier. 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 (Datei README) 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, denn der Microschalter ist auf der Unterseite. Erfolgreich war man, wenn nach dem Einstecken des CULs die LED nicht blinkt. Tipp: Wenn der Mac ein MacBook ist, dieses hochkant hinstellen, dann lässt sich der CUL mit gedrückter Taste (Büroklammer) relativ leicht einstecken.

Nun im Terminal per "cd" in das entpackte culfw Verzeichnis hangeln und dort in "Devices/CUL". Alternativ im Finder das Verzeichnis culfw und darin /Devices öffnen, im Terminal

"cd " 

(cd plus Leerzeichen) eingeben und dann das CUL Verzeichnis per Drag und Drop in das Terminalfenster ziehen, dann im Terminal ENTER drücken.

 Im Verzeichnis /Devices/CUL befinden sich mehrer Versionen der culfw, dies ist vor allem nötig, da das CULv2 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_V2_MAX.hex (MAX! Support)
  • CUL_V3.hex (komplett für CULv3)
  • CUL_V3_ZWAVE.hex (ZWAVE Support 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_v3" etc. eingeben (und entern) (Achtung, das v muss klein sein, auch wenn die Featuresets "CUL_V3.hex" heissen)

Es ergibt sich in etwa folgende Ausgabe:

username:CUL username$ make usbprogram_v3            <ENTER>
dfu-programmer atmega32u4 erase || true
dfu-programmer atmega32u4 flash CUL_V3.hex
Validating...
28452 bytes used (99.23%)
dfu-programmer atmega32u4 start

Der Flashvorgang dauert insgesamt nur wenige Sekunden, maximal ca. 10 Sekunden. Wenn er erfolgreich war, beginnt die LED des CUL zu blinken und am Mac ist idR. ein neues Gerät an der USB Schnittstelle zu erkennen (in Systemeinstellungen unter Netzwerk nachsehen, dort sollte eine neue Schnittstelle zu sehen sein). 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.

Wenn es auch nach mehrfachen Versuchen nicht geht, ist vermutlich Xcode oder DFÜprogrammer nicht oder nicht korrekt installiert, dann alternativ Methode wie bei CUNO unter OSX flashen beschrieben sinngemäss anwenden.