HM-MOD-RPI-PCB Firmwareupdate

Guten Tag,

leider ist mir heute Nacht die Speicherkarte meines Raspberrys um die Ohren geflogen. Backup war natürlich nicht vorhanden. Also habe ich mich nach der Arbeit an den Rechner gesetzt und wollte alles neu aufsetzen.

Ich habe das neueste OpenHabian Image geflasht und homegear installiert. Anschließend nach anleitung eingerichtet, allerdings werden meine Geräte nicht gefunden. Ich habe sie auf werkseinstellungen zurückgesetzt.

In diversen Foren habe ich gelesen, dass ich mal ein Firmwareupdate meines Moduls machen soll. Leider klappt das nicht. Ich habe die Anleitung von FHEM zu Hand genommen und sie Schritt für Schritt abgearbeitet

 sudo su
 apt-get update && apt-get -y install libusb-1.0-0-dev build-essential git
 systemctl stop homegear 
 systemctl stop openhab2 
 git clone git://git.zerfleddert.de/hmcfgusb
 cd hmcfgusb/
 make
 # Firmware runterladen
 wget https://raw.githubusercontent.com/eq-3/occu/ee68faf77e42ed5e3641790b43a710a3301cea7e/firmware/HM-MOD-UART/coprocessor_update.eq3
 # eigentliches flashen:
 ./flash-hmmoduart -U /dev/ttyAMA0 coprocessor_update.eq3

Allerdings bleibt er beim letzten Schritt immer bei
"Initializing HM-MOD-UART…" hängen.

Hat eventuell jemand einen tipp woran das liegen könnte?

Das ist natürlich Mist, also das mit dem fehlenden Backup.

Hast du den UART vorher frei geräumt, wie in der Doku beschrieben: https://doc.homegear.eu/data/homegear-homematicbidcos/configuration.html#config-hm-mod-rpi-pcb
Ich weiß leider nicht, ob openhabian das bereits erledigt hat.

Ich habe es wie in der Anleitung auf homegear gemacht.

Hier meine cmdline.txt

dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=PARTUUID=66619fe5-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait

meine config.txt

# For more options and information see
# http://rpf.io/configtxtreadme
# Some settings may impact device functionality. See link above for details

# uncomment if you get no picture on HDMI for a default "safe" mode
#hdmi_safe=1

# uncomment this if your display has a black border of unused pixels visible
# and your display can output without overscan
#disable_overscan=1

# uncomment the following to adjust overscan. Use positive numbers if console
# goes off screen, and negative if there is too much border
#overscan_left=16
#overscan_right=16
#overscan_top=16
#overscan_bottom=16

# uncomment to force a console size. By default it will be display's size minus
# overscan.
#framebuffer_width=1280
#framebuffer_height=720

# uncomment if hdmi display is not detected and composite is being output
#hdmi_force_hotplug=1

# uncomment to force a specific HDMI mode (this will force VGA)
#hdmi_group=1
#hdmi_mode=1

# uncomment to force a HDMI mode rather than DVI. This can make audio work in
# DMT (computer monitor) modes
#hdmi_drive=2

# uncomment to increase signal to HDMI, if you have interference, blanking, or
# no display
#config_hdmi_boost=4

# uncomment for composite PAL
#sdtv_mode=2

#uncomment to overclock the arm. 700 MHz is the default.
#arm_freq=800

# Uncomment some or all of these to enable the optional hardware interfaces
enable_uart=1
#dtparam=i2c_arm=on
#dtparam=i2s=on
#dtparam=spi=on

# Uncomment this to enable the lirc-rpi module
#dtoverlay=lirc-rpi

# Additional overlays and parameters are documented /boot/overlays/README

# Enable audio (loads snd_bcm2835)
dtparam=audio=on
gpu_mem=16

dtoverlay=pi3-miniuart-bt
core_freq=250

Und meine homematicbidcos.conf

___________________________________________________________________________

---------------------------- HomeMatic BidCoS  ----------------------------
___________________________________________________________________________

#######################################
########## General Settings  ##########
#######################################

[General]

## The BidCoS address of Homegear. It is recommended to change this to a random 3 byte hexadecimal
## value starting with 0xFD (e. g. 0xFD43AB). Only change this, when no HomeMatic BidCoS devices
## are paired to Homegear as existing pairings will not work anymore!
#centralAddress = 0xFD0001

## Specify a 16 byte (32 characters) long AES key here to protect your wireless communication
## !!! IMPORTANT: It is highly recommended to change this key before pairing the first device.
## !!! IMPORTANT: Never ever lose this key. That would render your devices useless.
## To remove the key from your devices, you need to factory reset them using Homegear. The factory
## reset on the device is not possible!!!
#rfKey = 00112233445566778899AABBCCDDEEFF

rfKey =  HomematicFunkKeyVerschluesselung

## With each key change currentRFKeyIndex needs to be
## incremented by 1
currentRfKeyIndex = 1

## When you change rfKey, put the old key here. To change the key Homegear needs to know the
## old and the new one.
## !!! Do not set oldRFKey when you set rfKey for the first time !!!
##oldRFKey = 00112233445566778899AABBCCDDEEFF

## When set to "true" unsigned broadcast packets are processed by Homegear. This could enable an
## attacker to make Homegear do things, you don't want. That means, this option is a security
## risk.
processBroadcastWithAesEnabled = false

#######################################
################# CUL #################
#######################################

## The device family this interface is for
#[CUL]

## Specify an unique id here to identify this device in Homegear
#id = My-CUL

## When default is set to "true" Homegear will assign this device
## to new peers.
#default = true

## Options: cul, cc1100, coc, cunx, hmcfglan, hmlgw, hm-mod-rpi-pcb
#deviceType = cul

#device = /dev/ttyACM0

## Default: responseDelay = 95
## Should be "95" for CUL or COC, "100" for TI CC1101 and "60" for HM-CFG-LAN or HM-LGW
#responseDelay = 95

#######################################
### HomeMatic Wireless LAN Gateway  ###
#######################################

## The device family this interface is for
#[HomeMatic Wireless LAN Gateway]

## Specify an unique id here to identify this device in Homegear
#id = My-HM-LGW

## When default is set to "true" Homegear will assign this device
## to new peers.
#default = true

## Options: cul, cc1100, coc, cunx, hmcfglan, hmlgw, hm-mod-rpi-pcb
#deviceType = hmlgw

## IP address of your HM-LGW
#host = 192.168.178.100

## First Port number your HM-LGW listens on. Normally 2000.
#port = 2000

## Keep alive port number your HM-LGW listens on. Normally 2001.
#portKeepAlive = 2001

## Put the security key printed on your HM-LGW here
#lanKey = SecurityKey

## Default: responseDelay = 95
## Should be "95" for CUL or COC, "100" for TI CC1101 and "60" for HM-CFG-LAN or HM-LGW
#responseDelay = 60

## Default: sendFix = false
## Some LAN-Gateways do not send packets correctly. If sent packets are not received by the
## devices (you get error messages, that packets were not received after 3 retries), set
## sendFix to true.
## Note that the behavior of sendFix changed in version 0.6.13. If you had it set to true,
## set it to false now and the other way around.
#sendFix = false

#######################################
############# HM-CFG-LAN  #############
#######################################

## The device family this interface is for
#[HM-CFG-LAN]

## Specify an unique id here to identify this device in Homegear
#id = My-HM-CFG-LAN

## When default is set to "true" Homegear will assign this device
## to new peers.
#default = true

## Options: cul, cc1100, coc, cunx, hmcfglan, hmlgw, hm-mod-rpi-pcb
#deviceType = hmcfglan

## IP address of your HM-CFG-LAN
#host = 192.168.178.100

## Port number your HM-CFG-LAN listens on. Normally 1000.
#port = 1000

## Put the AES key printed on your HM-CFG-LAN here
#lanKey = 00112233445566778899AABBCCDDEEFF

## Default: responseDelay = 95
## Should be "95" for CUL or COC, "100" for TI CC1101 and "60" for HM-CFG-LAN or HM-LGW
#responseDelay = 60

#######################################
######### COC, SCC, CSM, CCD  #########
#######################################

## The device family this interface is for
#[COC, SCC, CSM, CCD]

## Specify an unique id here to identify this device in Homegear
#id = My-COC

## When default is set to "true" Homegear will assign this device
## to new peers.
#default = true

## Options: cul, cc1100, coc, cunx, hmcfglan, hmlgw, hm-mod-rpi-pcb
## Also use "coc" for SCC, CCD and CSM
#deviceType = coc

#device = /dev/ttyAMA0

## Default: responseDelay = 95
## Should be "95" for CUL or COC, "100" for TI CC1101 and "60" for HM-CFG-LAN or HM-LGW
#responseDelay = 95

## Default: gpio1 = 0
## "17" for COC, SCC and CCD. Empty for CSM.
#gpio1 = 17

## Default: gpio2 = 0
## "18" for COC and SCC. "22" for CCD. Empty for CSM.
#gpio2 = 18

## Default: stackPosition = 0 (= no stacking)
## Set stackPosition if you use the SCC and stacked multiple devices.
## Set stackPosition to "1" for the lowest device, to "2" for the device
## above that and so on.
# stackPosition = 0

#######################################
########### HM-MOD-RPI-PCB  ###########
#######################################

## The device family this interface is for
[HomeMatic Wireless Module for Raspberry Pi]

## Specify an unique id here to identify this device in Homegear
id = My-HM-MOD-RPI-PCB

## When default is set to "true" Homegear will assign this device
## to new peers.
default = true

## Options: cul, cc1100, coc, cunx, hmcfglan, hmlgw, hm-mod-rpi-pcb
deviceType = hm-mod-rpi-pcb

device = /dev/ttyAMA0

## Default: responseDelay = 95
## Should be "95" for CUL or COC, "100" for TI CC1101 and "60" for HM-CFG-LAN or HM-LGW
responseDelay = 95

## Default: gpio1 = 0
## "18" for HM-MOD-RPI-PCB
gpio1 = 18

#######################################
################ CUNX  ################
#######################################

## The device family this interface is for
#[CUNX]

## Specify an unique id here to identify this device in Homegear
#id = My-CUNX

## When default is set to "true" Homegear will assign this device
## to new peers.
#default = true

## Options: cul, cc1100, coc, cunx, hmcfglan, hmlgw, hm-mod-rpi-pcb
#deviceType = cunx

## IP address of your CUNO
#host = 192.168.178.100

## Port number your CUNX listens on. Normally 2323.
#port = 2323

## Default: responseDelay = 95
## Should be "93" for CUNX
#responseDelay = 93

#######################################
########## TI CC1101 Module  ##########
#######################################

## The device family this interface is for
#[TI CC1101 Module]

## Specify an unique id here to identify this device in Homegear
#id = My-CC1101

## When default is set to "true" Homegear will assign this device
## to new peers.
#default = true

## Options: cul, cc1100, coc, cunx, hmcfglan, hmlgw, hm-mod-rpi-pcb
#deviceType = cc1100

#device = /dev/spidev0.0

## Default: responseDelay = 95
## Should be "95" for CUL or COC, "100" for TI CC1101 and "60" for HM-CFG-LAN or HM-LGW
#responseDelay = 100

## The interrupt pin to use. "0" for GDO0 or "2" for GDO2.
## You only need to connect one of them. Specify the GPIO
## you connected the interrupt pin to below.
#interruptPin = 2

## The GPIO GDO0 or GDO2 is connected to. Specify which GDO to use above.
#gpio1 = 23

### Additional TI CC1190 Config ###

## The GPIO high gain mode of the CC1190 is connected to.
## Default: -1 (disabled)
#gpio2 = 5

## The hexadecimal value for the PATABLE of the TI CC1101.
## Default:
## - Without high gain mode: 0xC2
## - With high gain mode: 0x27 (maximum legally allowed setting)
#txPowerSetting = 0x27

# vim: filetype=cfg

PS: Habe einen RPI3 mit dem neusten openhab image und der neusten version von homegear

Hi @fanavity,

bis zum konfigurieren von homegear kommst du ja noch gar nicht - in deiner homematicbidcos.conf ist auch noch nicht “eingestellt”. Im ersten Schritt willst du ja erst mal die Firmware des HM-MOD-RPI-PCB updaten, oder?

Dafür musst du sicher stellen, dass du Zugang zum seriellen Anschluss, wo das Modul aufgesteckt ist, hast. Passe doch bitte die /boot/config.txt und /boot/cmdline.txt an und deaktiviere die deaktivere das seriellen Interface von Raspian, wie in der Dokumentation beschrieben.

Entweder übersehe ich etwas oder ich bin zu doof…

hier nochmal die beiden Dateien:

config.txt

# For more options and information see
# http://rpf.io/configtxtreadme
# Some settings may impact device functionality. See link above for details

# uncomment if you get no picture on HDMI for a default "safe" mode
#hdmi_safe=1

# uncomment this if your display has a black border of unused pixels visible
# and your display can output without overscan
#disable_overscan=1

# uncomment the following to adjust overscan. Use positive numbers if console
# goes off screen, and negative if there is too much border
#overscan_left=16
#overscan_right=16
#overscan_top=16
#overscan_bottom=16

# uncomment to force a console size. By default it will be display's size minus
# overscan.
#framebuffer_width=1280
#framebuffer_height=720

# uncomment if hdmi display is not detected and composite is being output
#hdmi_force_hotplug=1

# uncomment to force a specific HDMI mode (this will force VGA)
#hdmi_group=1
#hdmi_mode=1

# uncomment to force a HDMI mode rather than DVI. This can make audio work in
# DMT (computer monitor) modes
#hdmi_drive=2

# uncomment to increase signal to HDMI, if you have interference, blanking, or
# no display
#config_hdmi_boost=4

# uncomment for composite PAL
#sdtv_mode=2

#uncomment to overclock the arm. 700 MHz is the default.
#arm_freq=800

# Uncomment some or all of these to enable the optional hardware interfaces
#enable_uart=1
#dtparam=i2c_arm=on
#dtparam=i2s=on
#dtparam=spi=on

# Uncomment this to enable the lirc-rpi module
#dtoverlay=lirc-rpi

# Additional overlays and parameters are documented /boot/overlays/README

# Enable audio (loads snd_bcm2835)
dtparam=audio=on
gpu_mem=16

dtoverlay=pi3-miniuart-bt
enable_uart=1
dtparam=spi=on
dtparam=i2c_arm=on

hier meine cmdline.txt

dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

anschließend habe ich den RPI neugestartet und den homegear service beendet. Dann wie oben beschrieben versucht die neue Firmware zu flaschen. Gleiches Ergebnis wie gestern abend.

Die beiden files sehen für mich gut aus - vorrausgesetzt, ich habe nichts übersehen.

systemctl disable serial-getty@ttyAMA0.service
systemctl disable serial-getty@serial0.service
systemctl disable serial-getty@ttyS0.service

Hattest du gemacht?

If you’re using the official Raspbian, you need to delete the file /etc/udev/rules.d/99-com.rules for Homegear to be able to access the GPIOs.

Das hier auch?

Weiß wie gesagt nicht, was openhabian davon schon alles tut…

Die Datei habe ich gelöscht und die services habe ich disabeled. Davon hat openhabian nichts gemacht :wink:

[10:57:20] root@openHABianPi:/# systemctl status serial-getty@ttyAMA0.service
● serial-getty@ttyAMA0.service - Serial Getty on ttyAMA0
   Loaded: loaded (/lib/systemd/system/serial-getty@.service; disabled)
   Active: inactive (dead)
     Docs: man:agetty(8)
           man:systemd-getty-generator(8)
           http://0pointer.de/blog/projects/serial-console.html

[10:57:57] root@openHABianPi:/# systemctl status serial-getty@serial0.service
● serial-getty@serial0.service - Serial Getty on serial0
   Loaded: loaded (/lib/systemd/system/serial-getty@.service; disabled)
   Active: inactive (dead)
     Docs: man:agetty(8)
           man:systemd-getty-generator(8)
           http://0pointer.de/blog/projects/serial-console.html

[10:58:29] root@openHABianPi:/# systemctl status serial-getty@ttyS0.service
● serial-getty@ttyS0.service - Serial Getty on ttyS0
   Loaded: loaded (/lib/systemd/system/serial-getty@.service; disabled)
   Active: inactive (dead)
     Docs: man:agetty(8)
           man:systemd-getty-generator(8)
           http://0pointer.de/blog/projects/serial-console.html

Hmm,

ok. Dann muss ich leider passen - hab selbst kein HM-MOD-RPI-PCB…

Du könntest aber trotzdem probieren, es in Betrieb zu nehmen.
centralAdress musst du in der Config noch setzen.
Vielleich gehts ja dann auch schon ohne Firmware-Update…

In den anderen Threads hier im Forum hattest du geschaut?

Schade - trotzdem vielen Dank für deine Hilfe.

Ich hatte das ganze länger mit der Firmware in Betrieb, alleridngs hatte ich häufig verbindungsabbrüche etc. Daher wollte ich es mal mit einem update probieren. Das muss ja irgendwie funktionieren :stuck_out_tongue:

Im Forum habe ich leider nichts weiter gefunden… Ich habe schon überlegt auf einer zweiten Speicherkarte ein FHEM zu installieren, dort das update zu machen und dann wieder das openhab image rein zu packen…

Einen Tipp habe ich eventuell noch: Hast Du das Modul auch mal stromlos gemacht (also den gesamten RPI vom Strom trennen)? Wenn sich das Modul aufhängt, ist es wohl anders nicht mehr zur Zusammenarbeit zu bewegen.
Ich weiß, dass ich mich damals auch ziemlich schwer getan habe, die Firmware zu aktualisieren. Irgendwie hat es aber dann doch funktioniert …

Gruß,
Frank

Ich habe ihn gerade nochmal komplett vom Strom getrennt und das Modul abgemacht und neu aufgesetzt. Dann neu gestartet, homegear beendet und ins homeverzeichnis navigiert…

Dort habe ich dann nochmal den hmcfgusb geladen, erstellt und die firmware geladen… anschließend wie oben versucht zu flashen…

nun erhalte ich folgende meldung:

[12:05:41] root@openHABianPi:/home/hmcfgusb# ./flash-hmmoduart -U /dev/ttyAMA0 coprocessor_update.eq3
HM-MOD-UART flasher version 0.103-git

Reading firmware from coprocessor_update.eq3...
Firmware with 43 blocks successfully read.

Initializing HM-MOD-UART...
open(hmuartlgw): No such file or directory
Can't initialize HM-MOD-UART

Das verzeichnis schaut so aus:

[12:05:57] root@openHABianPi:/home/hmcfgusb# ls -l
total 1136
-rw-r--r-- 1 root root  42361 Jul 21 12:05 aes.c
-rw-r--r-- 1 root root     19 Jul 21 12:05 aes.d
-rw-r--r-- 1 root root   7589 Jul 21 12:05 aes.h
-rw-r--r-- 1 root root  56676 Jul 21 12:05 aes.o
-rw-r--r-- 1 root root  88408 Jul 21 12:05 coprocessor_update.eq3
-rw-r--r-- 1 root root   4071 Jul 21 12:05 culfw.c
-rw-r--r-- 1 root root     25 Jul 21 12:05 culfw.d
-rw-r--r-- 1 root root   1610 Jul 21 12:05 culfw.h
-rw-r--r-- 1 root root  10648 Jul 21 12:05 culfw.o
drwxr-xr-x 3 root root   4096 Jul 21 12:05 debian
-rw-r--r-- 1 root root   4460 Jul 21 12:05 firmware.c
-rw-r--r-- 1 root root     41 Jul 21 12:05 firmware.d
-rw-r--r-- 1 root root   1352 Jul 21 12:05 firmware.h
-rw-r--r-- 1 root root  12024 Jul 21 12:05 firmware.o
-rwxr-xr-x 1 root root  52424 Jul 21 12:05 flash-hmcfgusb
-rw-r--r-- 1 root root   4801 Jul 21 12:05 flash-hmcfgusb.c
-rw-r--r-- 1 root root     80 Jul 21 12:05 flash-hmcfgusb.d
-rw-r--r-- 1 root root  14608 Jul 21 12:05 flash-hmcfgusb.o
-rwxr-xr-x 1 root root  43728 Jul 21 12:05 flash-hmmoduart
-rw-r--r-- 1 root root   4743 Jul 21 12:05 flash-hmmoduart.c
-rw-r--r-- 1 root root     83 Jul 21 12:05 flash-hmmoduart.d
-rw-r--r-- 1 root root  13168 Jul 21 12:05 flash-hmmoduart.o
-rwxr-xr-x 1 root root 160788 Jul 21 12:05 flash-ota
-rw-r--r-- 1 root root  34472 Jul 21 12:05 flash-ota.c
-rw-r--r-- 1 root root    102 Jul 21 12:05 flash-ota.d
-rw-r--r-- 1 root root  58964 Jul 21 12:05 flash-ota.o
-rw-r--r-- 1 root root   1871 Jul 21 12:05 hexdump.h
-rw-r--r-- 1 root root   2987 Jul 21 12:05 hm.c
-rw-r--r-- 1 root root  14107 Jul 21 12:05 hmcfgusb.c
-rw-r--r-- 1 root root     44 Jul 21 12:05 hmcfgusb.d
-rw-r--r-- 1 root root   2018 Jul 21 12:05 hmcfgusb.h
-rw-r--r-- 1 root root  35252 Jul 21 12:05 hmcfgusb.o
-rw-r--r-- 1 root root    160 Jul 21 12:05 hmcfgusb.rules
-rw-r--r-- 1 root root     32 Jul 21 12:05 hm.d
-rw-r--r-- 1 root root   2131 Jul 21 12:05 hm.h
-rwxr-xr-x 1 root root  74828 Jul 21 12:05 hmland
-rw-r--r-- 1 root root  23764 Jul 21 12:05 hmland.c
-rw-r--r-- 1 root root     57 Jul 21 12:05 hmland.d
-rw-r--r-- 1 root root  55284 Jul 21 12:05 hmland.o
-rw-r--r-- 1 root root   8564 Jul 21 12:05 hm.o
-rwxr-xr-x 1 root root  73664 Jul 21 12:05 hmsniff
-rw-r--r-- 1 root root   9516 Jul 21 12:05 hmsniff.c
-rw-r--r-- 1 root root     69 Jul 21 12:05 hmsniff.d
-rw-r--r-- 1 root root  32696 Jul 21 12:05 hmsniff.o
-rw-r--r-- 1 root root  13040 Jul 21 12:05 hmuartlgw.c
-rw-r--r-- 1 root root     47 Jul 21 12:05 hmuartlgw.d
-rw-r--r-- 1 root root   3251 Jul 21 12:05 hmuartlgw.h
-rw-r--r-- 1 root root  25836 Jul 21 12:05 hmuartlgw.o
-rw-r--r-- 1 root root    272 Jul 21 12:05 init.hmland.OpenWRT
-rw-r--r-- 1 root root   1086 Jul 21 12:05 LICENSE
-rw-r--r-- 1 root root   2417 Jul 21 12:05 Makefile
-rw-r--r-- 1 root root   6764 Jul 21 12:05 README.md
-rwxr-xr-x 1 root root    280 Jul 21 12:05 reset-hmmoduart.sh
-rw-r--r-- 1 root root   1773 Jul 21 12:05 util.c
-rw-r--r-- 1 root root     15 Jul 21 12:05 util.d
-rw-r--r-- 1 root root   1268 Jul 21 12:05 util.h
-rw-r--r-- 1 root root   3248 Jul 21 12:05 util.o
-rw-r--r-- 1 root root     28 Jul 21 12:05 version.h

Habe nun das Image nochmal runtergeschmissen und ein rasbian Noob image geflasht. Dort konnte ich problemlos das Firmwareupdate machen. Nun installiere ich gerade nochmal sauber ein neues OpenHab Image. Ich hoffe, dass dann alles läuft.

Ich hoffe das ist vorerst meine Letzte Meldung :wink:

Nun hat alles auf anhieb geklappt :slight_smile: Keine Probleme, alle Geräte erfolgreich angelernt und keine Prints im error log :)!

Vielen Dank für eure Unterstützung!!

1 Like