COC am Raspberry Pi flashen

Aus FHEMWiki

Um (die aktuelle) CUL Firmware auf einen COC zu bringen, kann/muss man den COC am Raspberry Pi flashen.

Vorausetzung

Erforderliche Hardware:

Aktuelle Firmware kontrollieren

Ob ein Flashen überhaupt notwendig ist, lässt sich feststellen, indem man das Changelog (http://sourceforge.net/p/culfw/code/HEAD/tree/trunk/culfw/CHANGED) und die momentan installierte Firmware kontrolliert.

An die aktuelle Firmware vom COC kommt man wie folgt:

  1. Anmelden am Fhem
  2. Öffnen der Fhem Konfiguration
  3. Suchen nach dem COC Namen. In meinem Falle sieht der benötigte Eintrag wie folgt aus:
    define COC CUL /dev/ttyAMA0@38400 4624
  4. In das Textfeld im FHEM nun folgendes eingeben
    get COC raw V

Wenn die angezeigte Firmware älter als im Changelog ist, kann man sie updaten.

Firmware updaten/flashen

Zum flashen der Firmware müssen die folgenden Schritte ausgeführt werden:

  1. Fhem Server stoppen
    /etc/init.d/fhem stop
  2. Flashtool installieren
    sudo apt-get install -y avrdude
  3. Eine Sudo session öffnen
    sudo -s
  4. Aktuelle Firmware herunterladen. Bei Geräten mit "nur Funk" muss folgendes ausgeführt werden
    sudo wget http://sourceforge.net/p/culfw/code/HEAD/tree/trunk/culfw/Devices/COC/COC.radio_only.hex?format=raw -O /tmp/COC.hex
    bei dem anderen COC folgendes:
    sudo wget http://sourceforge.net/p/culfw/code/HEAD/tree/trunk/culfw/Devices/COC/COC.hex?format=raw -O /tmp/COC.hex
    Dies läd die aktuelle Flashdatei herunter und speichert sie im Verzeichnis tmp
  5. Den COC zurücksetzen und folgendes (Zeile für Zeile!) ausführen:
    if test ! -d /sys/class/gpio/gpio17; then echo 17 > /sys/class/gpio/export; fi
    if test ! -d /sys/class/gpio/gpio18; then echo 18 > /sys/class/gpio/export; fi
    echo out > /sys/class/gpio/gpio17/direction
    echo out > /sys/class/gpio/gpio18/direction
    echo 0 > /sys/class/gpio/gpio18/value
    echo 0 > /sys/class/gpio/gpio17/value
    sleep 1
    echo 1 > /sys/class/gpio/gpio17/value
    sleep 1
    echo 1 > /sys/class/gpio/gpio18/value
  6. Anschließend kann der COC geflasht werden mit:
    avrdude -p atmega1284p -P /dev/ttyAMA0 -b 38400 -c avr109 -U flash:w:/tmp/COC.hex