Updates Raspi / Kernel / CCD

Begonnen von effemmess, 19 April 2015, 19:15:19

Vorheriges Thema - Nächstes Thema

effemmess

Hallo,

ich besitze seit geraumer Zeit ein Raspi B mit Busware CCD http://www.busware.de/tiki-index.php?page=CCD. Das Gerät  hatte bisher mit dem Busware-Raspbian-Image http://files.busware.de/RPi/CCD/2013-05-25-wheezy-raspbian-busware-ccd.zip und der gelieferten CCD-Firmware 1.57 soweit bestens funktioniert. Die Funkfähigkeiten hatte ich aber bisher nie getestet, da ich (bisher) keine 868 MHz-Teile besitze. Die 433 MHz-Komponenten betreibe ich über einen RFXtrx433e.

Nun kam ich auf die glorreiche Idee, das gesamte System mal upzudaten. Das lief natürlich komplett schief...
Ich habe es nun in mühevoller Fitzelarbeit hinbekommen, ausgehend vom Original-Raspbian-Image, das System upzudaten und die meisten CCD-Komponenten wieder einzubinden.
Ich hab aber noch einige Fragen:
1. CUL-CCD-Start in FHEM
define CCD CUL /dev/ttyAMA0@38400 1234
bringt Fehler, wenn nicht vorab lt. Busware-Anleitung http://www.busware.de/tiki-index.php?page=CCD_Installation dieses erledigt wurde:
Radio interface
The module is shipped with "culfw" installed and tested!
You need to free-up the serial line used by CCD. Remove any references to ttyAMA0 in:

    /etc/inittab - comment or delete: T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100
    /boot/cmdline.txt - and reboot!

By default the radio is held in RESET which is connected to GPIO17. You need explicitly pull GPIO17 HIGH to un-reset the radio:
if test ! -d /sys/class/gpio/gpio17; then echo 17 > /sys/class/gpio/export; fi
echo out > /sys/class/gpio/gpio17/direction
echo 1 > /sys/class/gpio/gpio17/value

By doing this the LED@CCD should start blinking.

LOW level at GPIO22 is used to call the (avr109) bootloader.

Soweit okay..., aber warum muss dies nach jedem Raspi-Neustart gemacht werden? Wo muss ich die 3 Zeilen denn eintragen? Irgendein init-script?

2. Wie bekomme ich das CCD generell auf die aktuellste Version geflasht? Welche Version ist eigentlich aktuell? Ich finde hier http://sourceforge.net/p/culfw/code/HEAD/tree/trunk/culfw/Devices/CCD/ keine Versionsnummern...

Alle Flash-Varianten, die ich mir irgendwo erlesen habe, funktionieren bei mir nicht.
Ich gehe inzwischen davon aus, dass dies die einzige Variante zum flashen ist - bei mir mit folgendem Ergebnis:

root@pi:~/culfw-code-506-trunk/culfw/Devices/CCD# /etc/init.d/fhem stop
Stopping fhem...

hey, das funktioniert! :-)

root@pi:~/culfw-code-506-trunk/culfw/Devices/CCD# apt-get install make avrdude
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
avrdude ist schon die neueste Version.
make ist schon die neueste Version.
0 aktualisiert, 0 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.

...hatte ich schon vorher installiert...

root@pi:~/culfw-code-506-trunk/culfw/Devices/CCD# make
Cleaning project:
Compiling C: CCD.c
/bin/sh: 1: avr-gcc: not found
makefile:170: recipe for target 'CCD.o' failed
make: *** [CCD.o] Error 127

...und hier der Fehler.
Irgendwas zu "avr-gcc: not found" hatte ich schon irgendwo gelesen, aber damit bin ich nicht klargekommen.

Ich versuchs trotzdem mal:

root@pi:~/culfw-code-506-trunk/culfw/Devices/CCD# make program

calling CCD bootloader ...

if test ! -d /sys/class/gpio/gpio17; then echo 17 > /sys/class/gpio/export; fi
echo out > /sys/class/gpio/gpio17/direction
echo 0 > /sys/class/gpio/gpio17/value
if test ! -d /sys/class/gpio/gpio22; then echo 22 > /sys/class/gpio/export; fi
echo out > /sys/class/gpio/gpio22/direction
echo 0 > /sys/class/gpio/gpio22/value
echo 1 > /sys/class/gpio/gpio17/value
sleep 1
echo 1 > /sys/class/gpio/gpio22/value
echo in > /sys/class/gpio/gpio22/direction
echo 22 > /sys/class/gpio/unexport
avrdude -p atmega1284p -P /dev/ttyAMA0 -b 38400 -c avr109    -U flash:w:CCD.hex

Connecting to programmer: .
Found programmer: Id = "AVRBOOT"; type = S
    Software Version = 0.8; No Hardware Version given.
Programmer supports auto addr increment.
Programmer supports buffered memory access with buffersize=128 bytes.

Programmer supports the following devices:
    Device code: 0x46

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e9705
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
         To disable this feature, specify the -D option.
avrdude: current erase-rewrite cycle count is 1426130522 (if being tracked)
avrdude: erasing chip
avrdude: reading input file "CCD.hex"
avrdude: error opening CCD.hex: No such file or directory
avrdude: input file CCD.hex auto detected as invalid format
avrdude: can't open input file CCD.hex: No such file or directory
avrdude: read from file 'CCD.hex' failed

avrdude done.  Thank you.

makefile:124: recipe for target 'program' failed
make: *** [program] Error 1

Ohh, irgendwas hat er gemacht..., das ging bisher so nicht. Aber irgendwas ist trotzdem nicht i.O.!

...mhh, wo ist die CCD.hex hin? Vorhin war sie noch da... Hat der "make"-Fehler die gelöscht?
Egal, ich kopier sie wieder hin...
Und nochmal:

root@pi:~/culfw-code-506-trunk/culfw/Devices/CCD# make program

calling CCD bootloader ...

if test ! -d /sys/class/gpio/gpio17; then echo 17 > /sys/class/gpio/export; fi
echo out > /sys/class/gpio/gpio17/direction
echo 0 > /sys/class/gpio/gpio17/value
if test ! -d /sys/class/gpio/gpio22; then echo 22 > /sys/class/gpio/export; fi
echo out > /sys/class/gpio/gpio22/direction
echo 0 > /sys/class/gpio/gpio22/value
echo 1 > /sys/class/gpio/gpio17/value
sleep 1
echo 1 > /sys/class/gpio/gpio22/value
echo in > /sys/class/gpio/gpio22/direction
echo 22 > /sys/class/gpio/unexport
avrdude -p atmega1284p -P /dev/ttyAMA0 -b 38400 -c avr109    -U flash:w:CCD.hex

Connecting to programmer: .
Found programmer: Id = "AVRBOOT"; type = S
    Software Version = 0.8; No Hardware Version given.
Programmer supports auto addr increment.
Programmer supports buffered memory access with buffersize=128 bytes.

Programmer supports the following devices:
    Device code: 0x46

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e9705
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
         To disable this feature, specify the -D option.
avrdude: current erase-rewrite cycle count is 1426130522 (if being tracked)
avrdude: erasing chip
avrdude: reading input file "CCD.hex"
avrdude: input file CCD.hex auto detected as raw binary
avrdude: writing flash (78346 bytes):

Writing | ################################################## | 100% 24.79s



avrdude: 78346 bytes of flash written
avrdude: verifying flash memory against CCD.hex:
avrdude: load data flash data from input file CCD.hex:
avrdude: input file CCD.hex auto detected as raw binary
avrdude: input file CCD.hex contains 78346 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 21.21s



avrdude: verifying ...
avrdude: 78346 bytes of flash verified

avrdude done.  Thank you.

Ich glaubs ja nicht! Keine Fehler! Da müht man sich fast 2 Wochen damit rum und es geht nicht - und kaum entschließt man sich im Forum nachzufragen, schon geht es!  ;D

Kann mir hier ein CCD-Fachmann evtl. Tipps oder eine klare Richtung geben...???

Tipps und Kommentare sind trotzdem willkommen!

Grüße
effe

PS:
Mein eigentliches Ziel war die Revolt NC-5461/NC-5462 unter RFXtrx433e zu nutzen. Das geht bei mir aber irgendwie nicht. Daher dachte ich - schalten wir doch mal das CCD auf 433 MHz und gucken, ob da was kommt... und siehe da, das CCD funkte (funzte) ja gar nicht...
Aber das Revolt-Problem werde ich bestimmt nochmal anderswo ansprechen...


effemmess

#1
Ich hab jetzt mal ne kleine Anleitung aus eigenen Aufzeichnungen und fremden Beiträgen zusammengestellt, damit andere es einfacher haben als ich... ;)

Raspbian-Image auf SD kopieren

Raspbian aktualisieren
Da seit der Erstellung des Raspbian-Images und der Installation einige Pakete zwischenzeitlich bereits wieder aktualisiert wurden --> Update durchführen:
$ sudo apt-get update
$ sudo apt-get dist-upgrade

Raspi-Firmware updaten

$ sudo rpi-update


Benutzer-/Root-Passwort ändern
-auf Konsole oder per ssh anmelden
-PW-Änderung mit
$ passwd
$ passwd root


Statische IP einrichten
$ sudo nano /etc/network/interfaces
auto lo

iface lo inet loopback

auto eth0
iface eth0 inet static
address 192.168.x.y
netmask 255.255.255.0
network 192.168.x.0
broadcast 192.168.x.255
gateway 192.168.x.z


allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp


CCD einbinden

Empty or delete /etc/modprobe.d/raspi-blacklist.conf
Than you shall configure /etc/modprobe.d/busware-ccd.conf:

options ads7846_device cs=1 speed=500000 model=7846 pressure_max=255 x_min=250 x_max=3780 y_min=160 y_max=3930 x_plate_ohms=60 gpio_pendown=25 keep_vref_on=1 verbose=2 swap_xy=1
options fbtft_device name=mi0283qt-9a gpios=reset:23,led:24 rotate=1 speed=16000000
options lirc_rpi gpio_in_pin=18 gpio_out_pin=0


Make sure your /etc/modules contains:

fbtft_device
fb_ili9341
snd-bcm2835
lirc_rpi
ads7846_device


The /boot/cmdline.txt file should look like:

dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait fbcon=map:10 fbcon=font:ProFont6x11


Radio interface
You need to free-up the serial line used by CCD. Remove any references to ttyAMA0 in:
   • /etc/inittab - comment or delete: T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100
   • /boot/cmdline.txt

RTC

$ modprobe i2c-bcm2708
$ echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device
$ hwclock


REBOOT...

CCD-Update

$ /etc/init.d/fhem stop              # falls fhem schon laufen sollte
$ wget http://sourceforge.net/p/culfw/code/HEAD/tree/trunk/culfw/Devices/CCD/CCD.hex?format=raw
$ wget http://sourceforge.net/p/culfw/code/HEAD/tree/trunk/culfw/Devices/CCD/makefile?format=raw
$ mv CCD.hex?format=raw CCD.hex
$ mv makefile?format=raw makefile
$ apt-get install make avrdude
$ make program

$ nano /etc/init.d/fhem                             # eintragen nach start    # falls fhem schon installiert

#Eintrag speziell für Busware CCD
if test ! -d /sys/class/gpio/gpio17; then echo 17 > /sys/class/gpio/export; fi
echo out > /sys/class/gpio/gpio17/direction
echo 1 > /sys/class/gpio/gpio17/value


FHEM
$ nano /opt/fhem/fhem.cfg
define CCD CUL /dev/ttyAMA0@38400 1234


REBOOT...

Backlight
Kann man schalten mit:
switch on:
$ echo 0 > /sys/class/backlight/fb_ili9341/bl_power
switch off:
$ echo 1 > /sys/class/backlight/fb_ili9341/bl_power

---------------------------------------------------------

LIRC           # Hab ich noch nicht ganz verstanden...
The IR receiver is connected to GPIO18
$ modprobe lirc_rpi gpio_in_pin=18 gpio_out_pin=0
test by pressing a key on your remote after you did:
$ mode2 -d /dev/lirc0

X11            # Auch hier hab ichs noch nicht ganz geraffelt..., aber X startet zumindest auf meinem großen Monitor...
$ apt-get install xinput
starting X11:
$ FRAMEBUFFER=/dev/fb1 startx

for correcting the touchscreen axis put this line into /etc/X11/xinit/xinitrc:

DISPLAY=:0 xinput --set-prop 'ADS7846 Touchscreen' 'Evdev Axis Inversion' 0 1

Be aware that the touchscreen is not exactly calibrated yet.

-----------------------------------------------------------------------
Hinweise und Kommentare sind willkommen!   :)

rudolfkoenig

Vorneweg: ich habe kein CCD, meine Angaben bitte pruefen.

ZitatWo muss ich die 3 Zeilen denn eintragen?
Falls vorhanden, in /etc/init.d/fhem. Sonst in /etc/rc.local.

ZitatIch finde hier ... keine Versionsnummern...
Die Versionsnummer ist 2 Verzeichnisse hoeher, in version.h. Aktuell ist 1.63. Achtung, es gibt zwei Alternativen, eins optimiert fuer HM-Empfang, und eins fuer IT und sonstige 433-er Geraete, beide sollte man hier im Forum finden.

ZitatIrgendwas zu "avr-gcc: not found" hatte ich schon irgendwo gelesen, aber damit bin ich nicht klargekommen.
Auf http://culfw.de/commandref.html#flashing steht, was man benoetigt. Allerdings habe ich die Doku vor 5 Jahren erstellt, und seitdem sie nicht verifiziert.

Zitatschalten wir doch mal das CCD auf 433 MHz und gucken, ob da was kommt...
Ich halte nichts von der Idee, fuer 868MHz gedachte Geraete in 433 MHz zu betreiben. Falls es funktioniert, ist ok, allerdings gibt es zu haeufig Probleme (mit der Reichweite, oder mit der Hin-/Herschaltung), was ich im Forum abfangen muss.

Zitat$ nano /opt/fhem/fhem.cfg
define CCD CUL /dev/ttyAMA0@38400 1234
Das muesste FHEM mit der standard fhem.cfg beim Hochfahren automatisch eintragen dank dem "usb scan" Befehl in fhem.cfg.