Autor Thema: FB Betty in FHEM einbinden  (Gelesen 1882 mal)

Offline KölnSolar

  • Hero Member
  • *****
  • Beiträge: 1372
FB Betty in FHEM einbinden
« am: 16 März 2017, 09:06:18 »
Ihr Lieben,
durch diesen Post https://forum.fhem.de/index.php/topic,68971.0.html, bin ich auf die Betty aufmerksam geworden.
Leider sind Wiki u. Repository zur Betty scheinbar Tod. Das Forum existiert aber noch und da findet man dann interessante Ansätze, wie man die FB mit seiner schicken Ausstattung(433MHz über CC1100, IR) nutzen könnte. Auch haben wohl einige das Ding in der Schublade und bei Pollin gibt es sie wohl auch noch für 4 EUR.

Im Forum hab ich nur diese Posts gefunden, wo scheinbar Boris Versuche gemacht hatte, aber mangels Interesse von anderen nicht mehr weiterverfolgt hat.
https://forum.fhem.de/index.php/topic,5505.msg20495.html#msg20495
https://forum.fhem.de/index.php/topic,11457.msg70817.html#msg70817

und ich hab, wohl kein Zufall, festgestellt, dass sowohl das Betty-Forum, als auch unseres, einen User Telekatz haben, der bei uns ja die culf@ARM betreut. https://forum.fhem.de/index.php/topic,38404.msg327424.html#msg327424

Von ARM-Entwicklung hab ich null Plan und bin gerade erst in die Atmel/Arduino-Welt eingestiegen.  :'(

Diesen Thread möchte ich daher nutzen, um die Erfahrungen zur Betty und FHEM zu sammeln, mir dann ggfs. Betty's zulegen und in die Entwicklung einsteigen.

Ich könnte mir die Betty als einfachen 433/IR-Hub vorstellen, was vermutlich machbar ist. Vielleicht auch als schicke FB in eine IT-(Derivate)-FB umzuwandeln und das allergrößte wäre es, wenn ich, evtl. durch Harwareumbau(IR-Baustein), einen 433-B&O-Hub hinbekäme, nach dem ich mich schon lange sehne.

Ich freu mich über Eure Beiträge.

Grüße Markus


« Letzte Änderung: 17 März 2017, 10:48:51 von KölnSolar »
RPi3/2 Jessie-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-CUL868-FS20A4-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty-Boop
Informativ Informativ x 2 Liste anzeigen

Offline mahowi

  • Sr. Member
  • ****
  • Beiträge: 590
Antw:FB Betty in FHEM einbinden
« Antwort #1 am: 16 März 2017, 09:20:03 »
Das Wiki ist noch über die WaybackMachine abrufbar: Stand 27.12.2012

Interesse hätte ich auf jeden Fall auch an einer Einbindung in FHEM. Ich muß das Teil mal in meinen Kisten suchen.
CUBe (MAX): HT, WT+, FK, EcoTaster | CUBe (SlowRF): ESA2000WZ
JeeLink: LaCrosse | nanoCUL433: Smartwares SHS-51001-EU, EM1000GZ
ZME_UZB1: GreenWave PowerNode, Popp Thermostat | SIGNALDuino: HE877, X10 MS14A, Revolt NC-5462,  IT Steckdosen + PIR
tado° | Milight | HUE, Lightify | SmarterCoffee

Offline Dr. Boris Neubert

  • Global Moderator
  • Hero Member
  • ****
  • Beiträge: 3598
Antw:FB Betty in FHEM einbinden
« Antwort #2 am: 16 März 2017, 18:36:31 »
Hurra, neues Leben in alter Hardware. Ich habe 3 Bettys im Keller liegen. Bei einer hatte ich vor Jahren auch schon die Boop-Firmware draufgebügelt. Die Teile sind echte Klopper. Nicht vom Specs, von den Abmessungen ;-)

Programmieradapter müsste ich auch noch haben.

Ich bin damals an der Lowlevel-Programmierung des CC1101 gescheitert. Meine letzte Idee war - soweit ich mich erinnere - die CUR-Firmware auf Betty zu portieren.

Mein Anwendungsfall: die Klopper liegen im Haus herum und werden zum Schalten benutzt (für FS20 und auch als Fernbedienungen i.V.m. sequence). Haben die nicht 868 MHz?

Viele Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Online Bapt. Reverend Magersuppe

  • Full Member
  • ***
  • Beiträge: 286
  • Flipperball geschluckt!
    • Internet! Die Zukunft der Vergangenheit.
Antw:FB Betty in FHEM einbinden
« Antwort #3 am: 16 März 2017, 18:59:51 »
Also, ich habe in meinem Hardware-Fundus auch noch ein paar Bettys in Orginaler Schachtel liegen.

Im Softwarefundus habe ich hier:
  • boop-room.bin
  • McBetty-0.7.tar.bz2
  • Betty-Heaven
  • Betty-UniFB
--
If I was born in 1453, Leonardo da Vinci would be jealous of me.
Reverend Paul Egon Magersuppe
HM-freie Zone.

Offline KölnSolar

  • Hero Member
  • *****
  • Beiträge: 1372
Antw:FB Betty in FHEM einbinden
« Antwort #4 am: 16 März 2017, 19:53:22 »
Boris, schön, dass Du Dich gemeldet hast. Auf Dich hatte ich soooo gebaut. Die beiden Threads von damals, die ich gepostet hatte, stammen ja aus Deiner Feder. Aber ist ja schon lange her....

Zitat
Haben die nicht 868 MHz?
Wenn ich es richtig quergelesen hab, habt Ihr damals versucht die 433MHz auf 868 umzustricken, um FS20 bedienen zu können. Sicherlich mit den auch beim CUL bekannten Reichweitennachteilen.....

Wenn Du die Klopper(sind die so groß oder schwer ?) aus dem Keller geholt hast, kommt vielleicht auch die Erinnerung wieder....  ;)

Und wie ich gerade sehe, hat auch noch jemand die damaligen Firmwares. Prima  :)

RPi3/2 Jessie-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-CUL868-FS20A4-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty-Boop

Offline Telekatz

  • Developer
  • Full Member
  • ****
  • Beiträge: 491
Antw:FB Betty in FHEM einbinden
« Antwort #5 am: 16 März 2017, 22:05:50 »
Ja, von den Bettys hab ich auch noch ein paar Kisten voll rumstehen. Die Hardware war ja einigermaßen brauchbar. Nachteilig war nur die geringe Akkulaufzeit. Vergleichbar mit heutigen Smartphones. Nach zwei Tagen leer.

Mit Boop hat culfw@ARM übrigens nichts zu tun. Außer dem Makefile gibts da keine Gemeinsamkeiten.

Offline KölnSolar

  • Hero Member
  • *****
  • Beiträge: 1372
Antw:FB Betty in FHEM einbinden
« Antwort #6 am: 17 März 2017, 08:32:26 »
@Telekatz
schön dass Du Dich gemeldet hast. War meine Spekulation denn richtig, dass der User Telekatz im Betty-Forum und Du identisch sind ?
Wenn ja, warst Du ja äußerst aktiv dort und hast sehr fleißig an Boop mitgewirkt. Du wärst dann sicherlich eine riesen Hilfe für die Einbindung an FHEM.

Ich hab mich gestern ein wenig durch das Betty-Forum gewühlt. Mal ein paar (für mich) neue Erkenntnisse:
Hardwarebeschreibung: http://www.hackdaworld.org/cgi-bin/awki.cgi/BettyTV
Der Prozessor ist ein LP2220 von npx(früher Philips). Datenblatt: http://www.nxp.com/documents/data_sheet/LPC2210_2220.pdf
Es scheint 2 verschiedene Hardwareversionen zu geben. Häufig ist die Rede von der deutschen und der swisscom-Version die Rede. Bei Pollin soll es wohl die swisscom-Variante geben. Manchmal auch als Version HW02 bezeichnet.

Zum Flashen benötigt es ein serielles Interface. Hier https://www.mikrocontroller.net/topic/355651 findet sich über die verschiedenen Posts eine Beschreibung, wie auch im Betty-Forum. Leider nirgends der konkrete Schaltplan, der wohl im nicht mehr vorhandenen Wiki steht. Oft ist auch von einem Siemens-Ladekabel die Rede. Müsst ich noch irgendwo haben  :-\

Die nächste Hürde ist wohl eine funktionierende Toolchain hinzubekommen. Auch dazu gibt es diverse Posts, die immer wieder auf Probleme hinweisen. Da die meisten von uns einen RPi besetzen, sollte es vielleicht das Ziel sein, eine funktionsfähige Toolchain hinzubekommen. Wer kennt sich da aus ?

Den Boop-Sourcecode gibt es hier https://sourceforge.net/projects/boopfirmware/. Ich hab mal den Sourcecode quer gelesen. Wenn ich es richtig verstanden habe, ist es recht simpel Sendecodes für 433MHz einzubinden. Es ist bereits dieser IT-ähnliche Code 0000 00FF FF (0F/F0)und 2 weitere fest verdrahtet. Auch zu FS20 fand ich etwas. Hab ich aber noch weniger verstanden  :-[

Und immer wieder das leidige Thema der Akkus. Aber je nach Einsatzzweck baut man direkt ein Netzteil dran oder nutzt die Ladeschale oder in einem Endstadium widmet man sich den Stromsparmodi....

RPi3/2 Jessie-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-CUL868-FS20A4-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty-Boop
Gefällt mir Gefällt mir x 1 Liste anzeigen

Online Bapt. Reverend Magersuppe

  • Full Member
  • ***
  • Beiträge: 286
  • Flipperball geschluckt!
    • Internet! Die Zukunft der Vergangenheit.
Antw:FB Betty in FHEM einbinden
« Antwort #7 am: 17 März 2017, 08:35:36 »
Ja, von den Bettys hab ich auch noch ein paar Kisten voll rumstehen. Die Hardware war ja einigermaßen brauchbar. Nachteilig war nur die geringe Akkulaufzeit. Vergleichbar mit heutigen Smartphones. Nach zwei Tagen leer.

Deswegen ist ja auch eine Ladestation dabei :-)

Interessant ist der Rückkanal und das Display.
--
If I was born in 1453, Leonardo da Vinci would be jealous of me.
Reverend Paul Egon Magersuppe
HM-freie Zone.

Online Bapt. Reverend Magersuppe

  • Full Member
  • ***
  • Beiträge: 286
  • Flipperball geschluckt!
    • Internet! Die Zukunft der Vergangenheit.
Antw:FB Betty in FHEM einbinden
« Antwort #8 am: 17 März 2017, 08:55:06 »

Zum Flashen benötigt es ein serielles Interface. Hier https://www.mikrocontroller.net/topic/355651 findet sich über die verschiedenen Posts eine Beschreibung, wie auch im Betty-Forum. Leider nirgends der konkrete Schaltplan, der wohl im nicht mehr vorhandenen Wiki steht. Oft ist auch von einem Siemens-Ladekabel die Rede. Müsst ich noch irgendwo haben  :-\

Dieses Siemens oder auch Nokia-Kabel wurde damals (tm) verwendet als serielle Schnittstelle. Heutzutage macht man das wohl einfach über einen CH340-USB-RX-TX usw.
Wozu war eigentlich der Scart-Connector da? Im Zeitalter von HDMI ist das Ding natürlich etwas aus der Zeit gefallen, aber vielleicht ist interessante Elektronik drin.
--
If I was born in 1453, Leonardo da Vinci would be jealous of me.
Reverend Paul Egon Magersuppe
HM-freie Zone.

Offline mahowi

  • Sr. Member
  • ****
  • Beiträge: 590
Antw:FB Betty in FHEM einbinden
« Antwort #9 am: 17 März 2017, 09:34:23 »
Zum Flashen benötigt es ein serielles Interface. Hier https://www.mikrocontroller.net/topic/355651 findet sich über die verschiedenen Posts eine Beschreibung, wie auch im Betty-Forum. Leider nirgends der konkrete Schaltplan, der wohl im nicht mehr vorhandenen Wiki steht. Oft ist auch von einem Siemens-Ladekabel die Rede. Müsst ich noch irgendwo haben  :-\
Wie gesagt, das Wiki ist in der WaybackMachine konserviert. Die Anschlußbelegung an der Betty steht hier.

Wozu war eigentlich der Scart-Connector da? Im Zeitalter von HDMI ist das Ding natürlich etwas aus der Zeit gefallen, aber vielleicht ist interessante Elektronik drin.

Der Scart Adapter hat aus dem Videosignal den Videotext decodiert und per Funk an Betty gesendet. Und nachts wurden dann mit dem TAE-Adapter Daten mit den Betty-Servern ausgetauscht. Alternativ gab's dazu einen IP-Adapter.

Ich weiß gar nicht, ob ich die Adapter noch habe. Ich hatte meine Betty damals noch ein zeitlang als Universalfernbedienung genutzt und nach dem letzten Umzug ist sie in der Kiste gebieben.
CUBe (MAX): HT, WT+, FK, EcoTaster | CUBe (SlowRF): ESA2000WZ
JeeLink: LaCrosse | nanoCUL433: Smartwares SHS-51001-EU, EM1000GZ
ZME_UZB1: GreenWave PowerNode, Popp Thermostat | SIGNALDuino: HE877, X10 MS14A, Revolt NC-5462,  IT Steckdosen + PIR
tado° | Milight | HUE, Lightify | SmarterCoffee

Offline KölnSolar

  • Hero Member
  • *****
  • Beiträge: 1372
Antw:FB Betty in FHEM einbinden
« Antwort #10 am: 17 März 2017, 09:45:06 »
Zitat
Wie gesagt
Hatte ich in Deinem ersten Post glatt übersehen  :-[
Zitat
das Wiki ist in der WaybackMachine konserviert.
Das ist ja genial  :-* :-* :-*
RPi3/2 Jessie-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-CUL868-FS20A4-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty-Boop

Offline KölnSolar

  • Hero Member
  • *****
  • Beiträge: 1372
Antw:FB Betty in FHEM einbinden
« Antwort #11 am: 17 März 2017, 11:10:30 »
Also mit der Bezugsquelle Pollin war es wohl nix. Aber amazon und eBay. Bevor ich jetzt dort 3-4 Stck. bestelle und der ein oder andere hier aus dem Forum den Keller entrümpeln möchte.....  ;)

Wegen der Toolchain: Was macht da Sinn auf dem Rpi zu installieren:
so wie im Wiki beschrieben: http://web.archive.org/web/20120929025327/http://www.bettyhacks.com/wiki/index.php/Entwicklungsumgebungen#Linux
oder ist das eine alte Version und man nimmt etwas aus dieser Übersicht: http://download.ronetix.info/toolchains/arm/
oder gar was ganz anderes, weil viel moderner(aus unserem culf@arm-Thread): https://launchpad.net/gcc-arm-embedded/5.0/5-2016-q3-update
Hat da jemand der Linux-C-Entwickler einen guten Rat ?


RPi3/2 Jessie-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-CUL868-FS20A4-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty-Boop

Offline Telekatz

  • Developer
  • Full Member
  • ****
  • Beiträge: 491
Antw:FB Betty in FHEM einbinden
« Antwort #12 am: 17 März 2017, 12:04:24 »
@Telekatz
schön dass Du Dich gemeldet hast. War meine Spekulation denn richtig, dass der User Telekatz im Betty-Forum und Du identisch sind ?
Wenn ja, warst Du ja äußerst aktiv dort und hast sehr fleißig an Boop mitgewirkt. Du wärst dann sicherlich eine riesen Hilfe für die Einbindung an FHEM.
Ja, das war ich.

Also mit der Bezugsquelle Pollin war es wohl nix. Aber amazon und eBay. Bevor ich jetzt dort 3-4 Stck. bestelle und der ein oder andere hier aus dem Forum den Keller entrümpeln möchte.....  ;)

Wegen der Toolchain: Was macht da Sinn auf dem Rpi zu installieren:
so wie im Wiki beschrieben: http://web.archive.org/web/20120929025327/http://www.bettyhacks.com/wiki/index.php/Entwicklungsumgebungen#Linux
oder ist das eine alte Version und man nimmt etwas aus dieser Übersicht: http://download.ronetix.info/toolchains/arm/
oder gar was ganz anderes, weil viel moderner(aus unserem culf@arm-Thread): https://launchpad.net/gcc-arm-embedded/5.0/5-2016-q3-update
Hat da jemand der Linux-C-Entwickler einen guten Rat ?



Wieso überhaupt der Versuch, einen Rpi dafür zu nehmen? Aus Gründen der Einfachheit würde ich die selbe Toolchain nehmen wie für culfw@ARM. Muss mal schauen, ob ich Boop damit übersetzt bekomme.

Wozu war eigentlich der Scart-Connector da? Im Zeitalter von HDMI ist das Ding natürlich etwas aus der Zeit gefallen, aber vielleicht ist interessante Elektronik drin.
Für die Decodierung des Videotextes ist ein CPLD enthalten, der µC ist ein relativ kleiner MSC-51 Controller. Für eine Minimalstversion eines CULs mit nur dem RFnative Protokoll zur Kommunikation mit der Betty reicht der Platz vielleicht noch aus.

Offline RaspiLED

  • Full Member
  • ***
  • Beiträge: 453
  • Es begann alles so klein ;-)
Antw:FB Betty in FHEM einbinden
« Antwort #13 am: 17 März 2017, 13:37:30 »
Hi,
Also das hört sich lustig an! Ich will auch mitesten. Hat jemand zwei über? Bitte eine PM an mich ;-)
Gruß Arnd

Diverse RasperryPi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, Bravia, WifiLight ...

Raspberry Pi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, WifiLight2, Bravia, ...

Offline KölnSolar

  • Hero Member
  • *****
  • Beiträge: 1372
Antw:FB Betty in FHEM einbinden
« Antwort #14 am: 17 März 2017, 13:39:08 »
Zitat
Wieso überhaupt der Versuch, einen Rpi dafür zu nehmen?
Nur weil ich dachte, dass die meisten "Bastler" einen Rpi besitzen, dann also möglichst viele von einer einheitlichen und funktionsfähigen Lösung profitieren würden.
Unter welchem Betriebssystem entwickelst Du ?


RPi3/2 Jessie-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-CUL868-FS20A4-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty-Boop

Offline retikulum

  • New Member
  • *
  • Beiträge: 27
Antw:FB Betty in FHEM einbinden
« Antwort #15 am: 17 März 2017, 15:56:59 »
Hey, ich hab auch noch eine irgendwo. Bin dabei

Gesendet mit Tapatalk


Offline Telekatz

  • Developer
  • Full Member
  • ****
  • Beiträge: 491
Antw:FB Betty in FHEM einbinden
« Antwort #16 am: 18 März 2017, 17:42:25 »
Nur weil ich dachte, dass die meisten "Bastler" einen Rpi besitzen, dann also möglichst viele von einer einheitlichen und funktionsfähigen Lösung profitieren würden.
Unter welchem Betriebssystem entwickelst Du ?
Ich verwende Windows. Und ich denke auch die meisten "Bastler" haben einen Windows und/oder Linux PC. Dafür gibt es die fertigen Toolchain auf Launchpad. Mit ein paar Änderungen im Makefile kompiliert auch Boop damit.


Offline KölnSolar

  • Hero Member
  • *****
  • Beiträge: 1372
Antw:FB Betty in FHEM einbinden
« Antwort #17 am: 18 März 2017, 20:18:10 »
Ok, dann probier ich es mal damit. Verräts Du noch die notwendigen Änderungen am Makefile.

Dann macht es sicherlich auch Sinn betty-heaven zum flashen zu nehmen, oder ? Verfügbar hier http://colibri.bplaced.net/Betty.htm

Zwischenzeitlich hab ich meinen USB-TTL-Konverter als Flashinterface hervorgekramt. Der sollte funktionieren. :)

Immer noch keiner, er ein paar Bettys loswerden möchte ?
RPi3/2 Jessie-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-CUL868-FS20A4-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty-Boop

Offline Telekatz

  • Developer
  • Full Member
  • ****
  • Beiträge: 491
Antw:FB Betty in FHEM einbinden
« Antwort #18 am: 18 März 2017, 21:26:26 »
Folgende Änderung habe ich vorgenommen:

Index: boop/trunk/Makefile
===================================================================
--- boop/trunk/Makefile (revision 60)
+++ boop/trunk/Makefile (working copy)
@@ -18,14 +18,15 @@
 #####
 ###############################################################
 
-ARMBASE = /opt/toolchains/gcc-arm-none-eabi-4_9-2014q4
-INCLUDEPATH = $(ARMBASE)/include
-#LIBGCCPATH = $(ARMBASE)/lib/gcc/arm-none-eabi/4.7.3/thumb/arm7tdmi-s
-#LIBCPATH = $(ARMBASE)/arm-none-eabi/lib/thumb/arm7tdmi-s
+
+ARMBASE = F:/Tools/GNU_Tools_ARM_Embedded/5.4
+INCLUDEPATH = $(ARMBASE)/arm-none-eabi/include
+LIBPATH = $(ARMBASE)/arm-none-eabi/lib
 ARMPATH = $(ARMBASE)/bin
 TOOLPREFIX = arm-none-eabi-
 LPCTOOL = lpctool
-OPENOCD = openocd -f betty.cfg -f interface/parport.cfg
+OPENOCDPATH = F:\Tools\OpenOCD-20160901
+OPENOCD = $(OPENOCDPATH)\bin\openocd.exe -f $(OPENOCDPATH)\share\openocd\scripts\interface\jlink.cfg -f betty.cfg
 
 ###############################################################
 #####
@@ -34,17 +35,17 @@
 ###############################################################
 
 CC = $(ARMPATH)/$(TOOLPREFIX)gcc
-AS = $(ARMPATH)/$(TOOLPREFIX)as
-#LD = $(ARMPATH)/$(TOOLPREFIX)ld
+AS = $(ARMPATH)/$(TOOLPREFIX)gcc
 LD = $(ARMPATH)/$(TOOLPREFIX)gcc
 OC = $(ARMPATH)/$(TOOLPREFIX)objcopy
 OD = $(ARMPATH)/$(TOOLPREFIX)objdump
+SIZE = $(ARMPATH)/$(TOOLPREFIX)size
 
 CPUFLAGS = -mcpu=arm7tdmi-s
 OPTFLAGS = -Os
-CFLAGS = -Wall -mthumb-interwork -msoft-float
+CFLAGS = -Wall -mthumb-interwork
 INC = -I$(INCLUDEPATH) -I. -Iinterrupt -Idisplay -Ikeyboard -Iaudio -Iinfrared -Iserial -Iflash -Icc1100 -Igui -Itimer -Igames -Iadc -Irtc  -Itools
-ASFLAGS = -D --gstabs -mthumb-interwork -mfpu=softfpa
+ASFLAGS = -g -I. -mthumb-interwork
 #LDFLAGS = -Tlpc2220_rom.ld -Map boop.map
 #LIBS = -lc -lgcc
 LDFLAGS = -mthumb-interwork -nostartfiles -Xlinker -Map -Xlinker boop.map -Tlpc2220_rom.ld
@@ -122,7 +123,7 @@
  $(LD) $(LDFLAGS) -L$(LIBGCCPATH) -L$(LIBCPATH) -o $@ $^ $(LIBS)
 
 %.o: %.s
- $(AS) $(CPUFLAGS) $(ASFLAGS) -o $@ $<
+ $(CC) $(ASFLAGS) -c -o $@ $<
 
 %.o: %.c
  $(COMPILE) $(OPTFLAGS) -c -MMD -MF $(dir $<).deps/$(notdir $@) -o $@ $<
Index: boop/trunk/keyboard/keyboard.c
===================================================================
--- boop/trunk/keyboard/keyboard.c (revision 60)
+++ boop/trunk/keyboard/keyboard.c (working copy)
@@ -52,7 +52,7 @@
  setBacklight(BL_AUTO); // pwm value
 }
 
-inline char isKeyPressed (void)
+char isKeyPressed (void)
 {
    return ((keys[0] != 0) || (keys[1] != 0));
 }
Index: boop/trunk/keyboard/keyboard.h
===================================================================
--- boop/trunk/keyboard/keyboard.h (revision 60)
+++ boop/trunk/keyboard/keyboard.h (working copy)
@@ -188,7 +188,7 @@
 void waitKeyUp(void);
 void waitKeyDown(void);
 /// Return 1 if any key is pressed.
-inline char isKeyPressed (void);
+char isKeyPressed (void);
 signed char getNumKeyValue(void);
 unsigned char getKeynum(void);
 

Offline KölnSolar

  • Hero Member
  • *****
  • Beiträge: 1372
Antw:FB Betty in FHEM einbinden
« Antwort #19 am: 19 März 2017, 09:52:29 »
Danke für die Anpassungen am makefile. Wenngleich die Form als diff mir insofern Problemchen bereitete, dass ich die Zeilen einzeln per cut&paste ändern musste. Ich hoffe, ich hab da jetzt keine Fehler eingebaut  :-[ Als Dateianhang wäre das für mich und andere Amateure sicherlich einfacher zu handeln. Aber der Reihe nach ...

Erster Schritt war die Installation der Toolchain. Eigentlich ja recht einfach. Da ich bisher außer mit Arduino-IDE nicht unter Windows entwickelt habe, habe ich dann aber gleich 2mal installiert. Denn irgendwann fiel mir auf und ein, dass Win zwar Verzeichnisse vorschlägt, leider aber mit Leerzeichen, die ich dann später nicht zu maskieren wusste  :-[ Also für Nachahmer: lasst einfach die Leerzeichen weg und wählt kurze Verzeichnisnamen, denn mit dem Tablet auf der Couch wird die Tipperei in einer Konsole recht unamüsant :(

Nun noch die Boop-Sourcen auf WinDoof gebracht, makefile angepasst  und los geht's. Denkste ! Ein make kennt mein WinDoof (noch) nicht  :( Spätestens zu diesem Zeitpunkt kommt mir mein Bauchgefühl, besser auf dem Rpi zu entwickeln, wieder in den Sinn  :-\ Aber die Entscheidung ist ja gefallen. Also im Inet nach einer Lösung gesucht. Ich bin dann auf Eclipse gestoßen. Ebenfalls installiert und... Voila, ich kann ein make aufrufen, das sich aber mit Händen und Füßen gegen mich wehrt  :( Das im makefile von boops verborgene "svnversion" kennt WinDoof nun auch nicht. Außerdem fällt mir ein "include makefile.local" im makefile ins Auge, welches ich gar nicht hab.  :o Bei einem Blick ins Betty-Wiki ist mir dann aufgefallen, dass dort beschrieben ist, man solle dafür die "Musterdatei" makefile.local.WinArm kopieren. Ja, aber was steht denn da drin ? Definitionen, die ich bereits im makefile stehen hab, außer, dass dort noch auf Verzeichnisse von WinArm verwiesen wird, was ich ja bewusst nicht als Toolchain installiert habe. :o

Mit diesem Konflikt hab ich dann die Arbeiten eingestellt und mir vorgenommen Euch heute Morgen ein paar Zeilen und Fragen zu schreiben.

1. Braucht es dieses makefile.local/include überhaupt und wenn ja, was schreibe ich da für die gewählte Toolchain rein. Oder muss ich zusätzlich WinArm installieren ?
2. Woher kriege ich dieses svnversion ? Muss ich evtl. so etwas wie TortoiseSVN installieren ?

Ich bin da immer etwas vorsichtig alles Mögliche zu installieren, was sich vielleicht später rächen, weil beissen könnte  :-[

Danke&einen schönen Sonntag
Markus
« Letzte Änderung: 19 März 2017, 10:05:11 von KölnSolar »
RPi3/2 Jessie-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-CUL868-FS20A4-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty-Boop

Offline RaspiLED

  • Full Member
  • ***
  • Beiträge: 453
  • Es begann alles so klein ;-)
Antw:FB Betty in FHEM einbinden
« Antwort #20 am: 19 März 2017, 10:03:13 »
Moin,
Erstmal ne kurze Möglichkeit Lange Verzeichnisse zu kürzen:

subst z: "c:\langer Ordnername\sogar mit Leerzeichen"

Und schon gibt es z:\ ;-)
Gruß Arnd


Raspi2 mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, Bravia, ...
Raspberry Pi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, WifiLight2, Bravia, ...

Offline KölnSolar

  • Hero Member
  • *****
  • Beiträge: 1372
Antw:FB Betty in FHEM einbinden
« Antwort #21 am: 19 März 2017, 10:06:23 »
Das Leben kann manchmal so einfach sein, wenn man sich auskennt  :-[
RPi3/2 Jessie-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-CUL868-FS20A4-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty-Boop

Offline Telekatz

  • Developer
  • Full Member
  • ****
  • Beiträge: 491
Antw:FB Betty in FHEM einbinden
« Antwort #22 am: 19 März 2017, 11:11:18 »
1. makefile.lokal braucht man nicht unbedingt. Ist dafür gedacht, dass man lokal bestimmte Dinge wie z.B. den Pfad zur Toolchain anpassen kann, ohne das Makefile aus dem SVN Repo anpassen zu müssen.

2. Nimm das angehängte makefile und version.h, dann funktioniert es auch ohne SVN.

Offline KölnSolar

  • Hero Member
  • *****
  • Beiträge: 1372
Antw:FB Betty in FHEM einbinden
« Antwort #23 am: 19 März 2017, 14:50:05 »
Danke, wir nähern uns nun fast dem Ziel Aber nur fast  :(
mkdir -p $@
macht 2 Probleme. Irgendwie scheint $(1) wohl mit einem whitespace befüllt zu werden, was das make mit mkdir -p adc/ .deps abbrechen lässt. Hab da leider keinen Plan zu  :-[
Das 2. Prob. ist weniger wild aber um so überraschender. Parameter -p macht nicht, was er soll, sondern es wird ein Verzeichnis -p angelegt  :o Sowohl auf dem Laufwerk, als auch in der Registry nach dem "falschen" mkdir gesucht: negativ Rufe ich das EINZIGE mkdir aus dem eclipse-verzeichnis auf, funktioniert es richtig. Wo hat sich da welcher Geist versteckt ?

Ach so, und beim anpassen der Pfade kam mir in den Sinn nach openocd zu suchen. Ergebnis: ich musste es erst noch installieren.
RPi3/2 Jessie-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-CUL868-FS20A4-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty-Boop

Offline Telekatz

  • Developer
  • Full Member
  • ****
  • Beiträge: 491
Antw:FB Betty in FHEM einbinden
« Antwort #24 am: 19 März 2017, 17:18:47 »
Mach mal mit cmd eine Eingabeaufforderung auf und suche mit "where mkdir", ob nicht vieleicht doch irgendwo ein zweites mkdir in PATH versteckt ist.

Openocd brauchst du nur, wenn du ein JTAG zum Flashen verwendest.

Offline RaspiLED

  • Full Member
  • ***
  • Beiträge: 453
  • Es begann alles so klein ;-)
FB Betty in FHEM einbinden
« Antwort #25 am: 19 März 2017, 17:39:15 »
Hihi,
auf ner Windose where? Evtl. unter cygwin, oder geht das echt?

Test:
Spannend wieder was gelernt:

C:\Windows\system32>where mkdir
C:\Program Files\WinAVR\utils\bin\mkdir.exe

C:\Windows\system32>where MKDIR
C:\Program Files\WinAVR\utils\bin\mkdir.exe

Gruß Arnd


Raspi2 mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, Bravia, ...
« Letzte Änderung: 19 März 2017, 17:43:16 von RaspiLED »
Raspberry Pi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, WifiLight2, Bravia, ...

Offline Wichtel

  • Jr. Member
  • **
  • Beiträge: 74
Antw:FB Betty in FHEM einbinden
« Antwort #26 am: 19 März 2017, 18:07:51 »
Dieses Siemens oder auch Nokia-Kabel wurde damals (tm) verwendet als serielle Schnittstelle. Heutzutage macht man das wohl einfach über einen CH340-USB-RX-TX usw.
Wozu war eigentlich der Scart-Connector da? Im Zeitalter von HDMI ist das Ding natürlich etwas aus der Zeit gefallen, aber vielleicht ist interessante Elektronik drin.

Ganz genau das war damals meine Motivation den Text über das Siemens-Datenkabel ins Betty-wiki zu hacken.
Funktional entspricht dieses Kabel mit abgeschnittenem Stecker genau dem was man heute mit einem USB-RS232-TTL-Wandler aus Übersee bekommt, nur dass damals die echten Comports noch verbreiteter, die Handykabel öfter herumliegend und die USB-Seriell-Wandler noch etwas problematischer in der Anwendung gewesen sind.
Dazu habe ich eine kleine Platine gehäkelt, welche die Reset- und BLEN-Leitungen auf jeweils einem Dip-Schalter mit Masse brückbar macht.

P.S.: Hier der Wayback-Link zum Interface-Artikel, 10 Jahre ist es her..

http://web.archive.org/web/20121212070403/http://www.bettyhacks.com/wiki/index.php/Interfaces_PC_zu_Betty
« Letzte Änderung: 19 März 2017, 18:12:49 von Wichtel »
Informativ Informativ x 1 Liste anzeigen

Offline KölnSolar

  • Hero Member
  • *****
  • Beiträge: 1372
Antw:FB Betty in FHEM einbinden
« Antwort #27 am: 19 März 2017, 18:16:14 »
es konnten keine Dateien mit dem angegebenen muster gefunden werden  :o

also hab ich den eclipse-pfad in die path-variable eingetragen. where antwortet nun richtig, und mkdir funktioniert jetzt auch richtig :o  ;D warum auch immer.

Und make ? Nach ein paar kleineren Problemchen, die selbst durch mich behebbar waren.... läuft durch  ;D ;D ;D

Entwicklungsumgebung steht also erst einmal, Betty kann kommen  ;D

DANKE Telekatz  :-* :-* :-*
RPi3/2 Jessie-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-CUL868-FS20A4-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty-Boop

Offline RaspiLED

  • Full Member
  • ***
  • Beiträge: 453
  • Es begann alles so klein ;-)
FB Betty in FHEM einbinden
« Antwort #28 am: 20 März 2017, 21:54:58 »
Hi,
also heute war Weihnachten für KölnSolar und mich ;-) Soll heißen Bapt. Reverend Magersuppe hat uns aus seinem Fundus Betty FB überlassen! Vielen Dank dafür in Deine Richtung!!! Die Postfrau war übrigens super nett ;-)

Da die Entwicklungsumgebung bei KölnSolar schön eingerichtet ist, gilt es nun die richtige Flashtechnik zu entwickeln...
Gruß Arnd


Raspi2 mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, Bravia, ...
Raspberry Pi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, WifiLight2, Bravia, ...

Offline KölnSolar

  • Hero Member
  • *****
  • Beiträge: 1372
Antw:FB Betty in FHEM einbinden
« Antwort #29 am: 21 März 2017, 17:01:42 »
Hurra, Betty mit Boop ist da  ;D  ;D ;D

Aber von Anfang an. Vielen lieben Dank an Bapt. Reverend Magersuppe , der mir 2 OVP Bettys spendiert hat. Und vielen Dank an Arnd, der mir dann die Bettys ohne Boop gebracht hat.  :-* :-* :-* Möglich, weil wir 3 in der selben Region leben.

Die Betty sieht erst mal ganz hübsch aus. Zugegeben, durch das Display etwas lang, aber wir wollen ja auch viel  ;)

Ohne Boop(wer hat nur diesen Namen erfunden  8)) kann die Betty gar nix. Man müsste erst das Scart-Funkteil mit Netzstecker anschließen. Und dann das Modem mit Funk, welches dann nach Hause telefonieren würde. Mangels eigener Stromversorgung und, dass es das zu Hause ja nicht mehr gibt, die Idee verworfen, erst einmal die Betty im Standard auszuprobieren.

Also meinen USB-TTL-Adapter an den PC gestöpselt und, man will ja nix kaputt machen, mit Betty-Heaven die Flashs als Backup auslesen. Nach kleineren Schwierigkeiten hat es dann geklappt: Schnittstelle am PC auf 9600,8,N,1 Rx an Tx, Tx an Rx, GND an GND und ein Steckkabel an Reset und eins an EINT1. Eint1 auf GND, Reset auf GND, nun geht Bettys Display aus, Reset weg von GND, EINT1 weg von GND, Backup in Betty-Heaven gewählt und schon befindet sich Bettys Original-Firmware auf dem PC.

Das gleiche nochmal und für Flash1 die bereits erstellte Boop-Firmware ausgewählt im Restore-Modus. Restore-Button und die Verlaufsanzeige von Betty-Heaven läuft. Schnell ist der Flashvorgang fertig. Batterie raus und wieder rein und schon strahlt einen Betty, nun mit Boop, an.  ;D

Schnell versteht man das Menu von Betty. Auf Kanal A ist DBOX2 voreingestellt. Nix wie ab ins Schlafzimmer und meine Alte Box eingeschaltet. Priiiima, funktioniert. Nun für den freien Kanal C den Code über lirc von Samsung für meinen TV ausgewählt. Geht auch.

In nullkommanix hab ich also schon einmal eine nette Uni-IR-FB.

Nun die nächste Stufe. Anlernen von IR-Codes. Vom TV(38kHz) völlig problemlos, ja fast idiotensicher. Jetzt wird es spannend. Wird Betty auch meine B&O(exotische 455kHz) verstehen ???? Neeeeiiiin. Fehler. Zu kurz gedrückt, zu lang gedrückt, nicht erkannt. Nur gut, dass Betty, im Gegensatz zu Alexa, (noch) nicht reden kann  :D

Bis hierhin aber trotzdem schon mal eine nette Uni-IR-Fb.

Aber das Ziel ist ja meine B&O. Ich werde mich mal mit der Frequenz bzw. lirc auseinandersetzen, um mein Ziel zu erreichen. Hoffentlich ohne einlöten neuer IR-Dioden.

Fazit: Ziel die B&O einzubinden vorerst verfehlt und mit FHEM hat das bisherige nu auch nicht wirklich etwas zu tun.

Deshalb habe ich da einen Wunsch, und bevor ich den äußere, nochmal eine Aufzählung, was Betty an Hardware mit sich bringt: IR-Sende-/Empfang-Diode, 433MHz-CC1100, s/w-Display mit Hintergrundbeleuchtung, Lautsprecher, serielles Interface, JTAG-interface, 2*NiMh-1,2V-1.000mAh Akkus und natürlich eine Tastatur.

Nun der Wunsch: wenn sich je Hardwarebaustein mindestens einer von Euch detailllierter mit dem Hardwarebaustein und Boob auseinandersetzt, hätten wir ein Entwicklungsteam, welches relativ schnell noch einiges mehr aus Betty herausholen kann, als es jetzt schon vorhanden ist:

Alarmierung/Info per 433MHz aus FHEM an Betty: blinkend, anzeigend, tönend

Steuerung von 433MHz-devices per Tastatur über FHEM

Sicherung von Datum/Uhrzeit bei Batterie leer/stromparender Betrieb/leistungsfähigere Hardware
(Betty hat die negative Angewohnheit, Datum und Uhrzeit bei Batteriewechsel zu vergessen)

Anbindung von was auch immer über die beiden einfach zugänglichen Interfaces seriell und JTAG

Und die ganz große Vision: dem CC1100 ein quasi CUL-Verhalten einzuhauchen, so dass Betty auch noch als repeater nutzbar ist

Ich beginne mit der 455kHz Funktionalität für IR und Anbindung von IT-devices, wer mag sich eines anderen Themas annehmen ?

Grüße Markus

PS: Wäre sicherlich auch nicht schlecht, wenn sich jemand in der rechtlichen Ecke umschauen würde. Wie weit dürfen wir gehen ? Code von Boop öffentlich zugänglich machen, etc...
« Letzte Änderung: 21 März 2017, 17:30:31 von KölnSolar »
RPi3/2 Jessie-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-CUL868-FS20A4-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty-Boop

Offline Telekatz

  • Developer
  • Full Member
  • ****
  • Beiträge: 491
Antw:FB Betty in FHEM einbinden
« Antwort #30 am: 21 März 2017, 17:50:47 »
Es heißt Boop, nicht Boob.


Steuerung von 433MHz-devices per Tastatur über FHEM
In lirc ist eine HX2262 Remote vorhanden, mit der so etwas schon möglich ist.

Sicherung von Datum/Uhrzeit bei Batterie leer/stromparender Betrieb/leistungsfähigere Hardware
(Betty hat die negative Angewohnheit, Datum und Uhrzeit bei Batteriewechsel zu vergessen)
Wenn beim Batterie einlegen eine zweite Betty mit eingestellter Uhr in der Nähe ist, wird die Uhrzeit über Funk automatisch übertragen.
Stomsparender wird es nur, wenn man das Display bei nichtbenutzung ausschaltet. Power Down Modus beim µC und WOR beim CC1100 ist schon vorhanden.

PS: Wäre sicherlich auch nicht schlecht, wenn sich jemand in der rechtlichen Ecke umschauen würde. Wie weit dürfen wir gehen ? Code von Boop öffentlich zugänglich machen, etc...
Ist doch schon öffentlich:
https://sourceforge.net/projects/boopfirmware/

Online Bapt. Reverend Magersuppe

  • Full Member
  • ***
  • Beiträge: 286
  • Flipperball geschluckt!
    • Internet! Die Zukunft der Vergangenheit.
Antw:FB Betty in FHEM einbinden
« Antwort #31 am: 21 März 2017, 17:58:08 »

PS: Wäre sicherlich auch nicht schlecht, wenn sich jemand in der rechtlichen Ecke umschauen würde. Wie weit dürfen wir gehen ? Code von Boop öffentlich zugänglich machen, etc...

Gern geschehen :-)

Hast Du nur die Boop.bin? Laut dem alten Archive ist Boop GPL3 und war soweit ich mich erinnere auch eher als Beispiel gedacht was alles für Funktionen in der Betty sind. Leider habe ich das Sourcepaket auch nicht mehr. Tzefix.
Aber das Netz vergisst angeblich nichts (es verlegt es nur oftmals irgendwo):https://sourceforge.net/projects/boopfirmware/?source=directory.

Jetzt habe ich noch ein Paket McBetty, da sind auch einige Sourcen drin. Das hänge ich hier mal dran. Auch GPL.

--
If I was born in 1453, Leonardo da Vinci would be jealous of me.
Reverend Paul Egon Magersuppe
HM-freie Zone.

Offline KölnSolar

  • Hero Member
  • *****
  • Beiträge: 1372
Antw:FB Betty in FHEM einbinden
« Antwort #32 am: 21 März 2017, 22:14:15 »
Zitat
Leider habe ich das Sourcepaket auch nicht mehr
Hat Telekatz doch auch einen Post früher nochmal verlinkt. Die hab ich dann mit der hier im Thread beschriebenen Toolchain in "meine" .bin umgewandelt und geflashed.
Zitat
Paket McBetty
..ist glaub ich irgendwas mit Musik oder so.
Zitat
In lirc ist eine HX2262 Remote vorhanden, mit der so etwas schon möglich ist.
Jo, die hatte ich schon gesehen  ;) Stammt ja wohl aus Deiner Feder. Die Idee, das über eine "lirc"-Schnittstelle zu handeln find ich auch recht pfiffig. Hatte dann erst gedacht, dass es daher ganz simpel ist IT V1 umzusetzen. Der HX2262 ist ja vergleichbar den ITs. Pulsweiten, Tristate etc. sind auch klar, aber die vielen anderen Parameter, für die lirc-Schnittstelle... :-[ Ich hab dann versucht die Codes auf IT anzupassen. Bin da aber nicht mit klar gekommen. Die Beschreibung predata 0x00000000 und (bits 0-4) und für Taste 1 dann 0x00551 (bits 5-11) haben mich etwas verwirrt. Für predata also 4bytes hex, um 5bits abzubilden und bei der Taste dann 5 nibbles für 7 bits(0FFFF0F), Gesamtlänge dann 13 nibbles 0x0000000000551 um 12 bit abzubilden  :-\ Hab da keine Systematik erkennen können und meinen 433CUL leider nicht da, der mich sicherlich erhellen würde. Ach ja und bei bits steht dann noch die 14  :-\

Es ist aber nur das Senden implementiert oder ?

Zitat
Wenn beim Batterie einlegen eine zweite Betty mit eingestellter Uhr in der Nähe ist, wird die Uhrzeit über Funk automatisch übertragen.
gut zu wissen.

Versuche jetzt noch weitr zu verstehen, wie der Programmablauf ist...
RPi3/2 Jessie-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-CUL868-FS20A4-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty-Boop

Offline Telekatz

  • Developer
  • Full Member
  • ****
  • Beiträge: 491
Antw:FB Betty in FHEM einbinden
« Antwort #33 am: 21 März 2017, 23:30:06 »
Jo, die hatte ich schon gesehen  ;) Stammt ja wohl aus Deiner Feder. Die Idee, das über eine "lirc"-Schnittstelle zu handeln find ich auch recht pfiffig. Hatte dann erst gedacht, dass es daher ganz simpel ist IT V1 umzusetzen. Der HX2262 ist ja vergleichbar den ITs. Pulsweiten, Tristate etc. sind auch klar, aber die vielen anderen Parameter, für die lirc-Schnittstelle... :-[ Ich hab dann versucht die Codes auf IT anzupassen. Bin da aber nicht mit klar gekommen. Die Beschreibung predata 0x00000000 und (bits 0-4) und für Taste 1 dann 0x00551 (bits 5-11) haben mich etwas verwirrt. Für predata also 4bytes hex, um 5bits abzubilden und bei der Taste dann 5 nibbles für 7 bits(0FFFF0F), Gesamtlänge dann 13 nibbles 0x0000000000551 um 12 bit abzubilden  :-\ Hab da keine Systematik erkennen können und meinen 433CUL leider nicht da, der mich sicherlich erhellen würde. Ach ja und bei bits steht dann noch die 14  :-\

Es ist aber nur das Senden implementiert oder ?
Predata ist 4 Bytes groß, weil es ja auch groß genug für andere Protokolle sein muss. Diese Größe ist auch bei LIRC dafür vorgesehen. Gesendet davon werden nur die ersten 10 Bit (/*pre_data_bits*/). Jedes der 5 tristate Bits (Bit 0-4) wird in jeweils zwei Bits übersetzt. Dasselbe gilt für die 7 folgenden tristate Bits. Diese werden in 14 Bits übersetzt (/*bits*/).
Und es ist nur Senden implementiert.

Anbei noch ein Diagramm mit der zeitlichen Abfolge der einzelnen LIRC Phasen.
« Letzte Änderung: 22 März 2017, 11:51:00 von Telekatz »

Offline KölnSolar

  • Hero Member
  • *****
  • Beiträge: 1372
Antw:FB Betty in FHEM einbinden
« Antwort #34 am: 22 März 2017, 12:09:37 »
ganz schön kompliziert  :o aber wohl notwendig wg. der LIRC-Kompatibilität. Dazu scheint mir dann noch die alte Inline-Doku falsch, so dass das Muster nicht erkennbar wird  :(

Aber ich hab jetzt die IT-Funktionalität für Protokoll V1 umgesetzt. Inline-Doku ist entsprechend verändert, so dass es jetzt einfacher möglich sein sollte, die Datei auf die individuellen Bedürfnisse anzupassen. Damit die alte Funktionalität nicht verloren geht, werde ich im nächsten Schritt die übergeordneten Files so verändern, dass die hx2262-Funktionalität erhalten bleibt und zusätzlich Intertechno mit einem separaten LIRC-file auswählbar wird. Für hx2262 werde ich dann die inline-Doku korrigieren(Taste 1-3 = on-Befehle, Taste 4-6 = off-Befehle).

Edit: Danke für die Grafik, macht die Parameter klarer  ;)
        Damit Ihr nicht lange suchen müsst: Die angehängte Datei müsst Ihr nach infared/ir_codes/lirc kopieren.
        Ach, auch noch wichtig: aufgrund der Konstruktion über LIRC lassen sich nur 8 IT-Codes nutzen. Die ersten 5 Stellen sind fix, also der
        Buchtstabe+das_erste_Bit_IT_Code der Dezimalzahl(bedeutet dann gerade oder ungerade) also z.B. nur C1, C3, C5, C7.....
« Letzte Änderung: 22 März 2017, 19:24:11 von KölnSolar »
RPi3/2 Jessie-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-CUL868-FS20A4-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty-Boop

Offline Telekatz

  • Developer
  • Full Member
  • ****
  • Beiträge: 491
Antw:FB Betty in FHEM einbinden
« Antwort #35 am: 22 März 2017, 17:24:02 »
Du kannst auch mehr als 8 IT-Codes benutzen, wenn die die ersten 5 Stellen von pre_data nach data verschiebst. Pre_data wird dann gar nicht benutzt. In data passen bis zu 32 Bits rein.

Offline KölnSolar

  • Hero Member
  • *****
  • Beiträge: 1372
Antw:FB Betty in FHEM einbinden
« Antwort #36 am: 22 März 2017, 19:22:10 »
Ahh, danke. Das macht die Sache natürlich schöner und viiiiiel einfacher  ;) Anbei die Dateien, um nun IT mit allen 256 Codes u. HX2262 zu nutzen. Auswahl des Sets erfolgt über das Menü - Settings - RC Keys - gew. ABCD-Taste - remotes in LIRC - IT V1.
Datei codes.c muss in den Pfad infrared kopiert werden.

Kannst Du was zu B&O sagen ? LIRC-File gibt es ja mit raw_codes. Nur kann man die einbinden und wenn ja, wie ? In der ir_lirc.h hast Du Dich wohl schon mal versucht und im Bettyforum hast Du mal die Aussage getroffen, dass es gar nicht ginge  :-\ In IRMP scheint mir die Implementierung des Protokolls einfacher(zumindest übersichtlicher). Ob man das anders als die jetzige Implementierung in LIRC "übersetzt" bekommt ?
« Letzte Änderung: 22 März 2017, 19:25:27 von KölnSolar »
RPi3/2 Jessie-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-CUL868-FS20A4-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty-Boop

Offline Telekatz

  • Developer
  • Full Member
  • ****
  • Beiträge: 491
Antw:FB Betty in FHEM einbinden
« Antwort #37 am: 22 März 2017, 20:47:17 »
Meine Aussage bezog sich darauf, das mit der aktuellen IR Implementierung keine 455kHz Modulation der IR Diode erreicht werden kann. Die Modulation ist als Software PWM mit dem Timer1 implementiert. Für 455KHz ist das zu langsam.
Hardware PWM ist zwar möglich, die IR Diode hängt an PWM5. Dafür sind jedoch einige Änderungen am IR Code nötig.

Offline KölnSolar

  • Hero Member
  • *****
  • Beiträge: 1372
Antw:FB Betty in FHEM einbinden
« Antwort #38 am: 22 März 2017, 21:08:37 »
Danke, dann kann ich mir erst einmal die Mühe sparen. Ich guck mir das mal an, um überhaupt mal den Unterschied zwischen software-PWM und Hardware-PWM zu verstehen  ;)
RPi3/2 Jessie-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-CUL868-FS20A4-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty-Boop

Offline KölnSolar

  • Hero Member
  • *****
  • Beiträge: 1372
Antw:FB Betty in FHEM einbinden
« Antwort #39 am: 24 März 2017, 09:24:54 »
Hi Telekatz,
ich wollte mich jetzt mal zum Funk-Empfang vortasten. Unter Tools gibt es ja den FS20 Decoder. Der macht aber rein gar keinen Mux  :'( Ist die Funktionalität gar nicht gegeben ? Weißt Du ggfs. wo ich dran drehen müsste, um überhaupt etwas zu sehen ? Mir geht es da erst einmal gar nicht um die vollständige und richtige Protokollentschlüsselung, sondern nur ein wenig dem Programmablauf und den settings des CC1100 näher zu kommen.

Sowohl für den CC1101 im CUL, als auch dem CC1100 der Betty wird nach meinem Verständnis über SPI kommuniziert. Da müsste es doch "relativ" einfach sein, sich an den culfw-Sourcen zu "bedienen" oder bin ich da total auf dem Holzweg  :-\

Als µC-Developer-Dummy: Gibt es irgendein sinnvolles Tool, zum Debugging ? Zumindest so etwas, wo ich die einzelnen Funktionsaufrufe in Ihrer Sequenz verfolgen kann ?

@all: 1 download für die IT-Funktionalität ist arg wenig  :'( Mag denn neben der Unterstützung von telekatz niemand mitmachen ?
RPi3/2 Jessie-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-CUL868-FS20A4-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty-Boop

Offline Telekatz

  • Developer
  • Full Member
  • ****
  • Beiträge: 491
Antw:FB Betty in FHEM einbinden
« Antwort #40 am: 24 März 2017, 11:57:46 »
Hi Telekatz,
ich wollte mich jetzt mal zum Funk-Empfang vortasten. Unter Tools gibt es ja den FS20 Decoder. Der macht aber rein gar keinen Mux  :'( Ist die Funktionalität gar nicht gegeben ? Weißt Du ggfs. wo ich dran drehen müsste, um überhaupt etwas zu sehen ? Mir geht es da erst einmal gar nicht um die vollständige und richtige Protokollentschlüsselung, sondern nur ein wenig dem Programmablauf und den settings des CC1100 näher zu kommen.
Funktionieren sollte der schon. Aufgrund der Fehlanpassung der Antenne ist die Reichweite aber nicht groß.

Sowohl für den CC1101 im CUL, als auch dem CC1100 der Betty wird nach meinem Verständnis über SPI kommuniziert. Da müsste es doch "relativ" einfach sein, sich an den culfw-Sourcen zu "bedienen" oder bin ich da total auf dem Holzweg  :-\
Die Ansteuerung des CC1100 ist im Grunde gleich. Allerdings kann man die Registerwerte nicht 1:1 übernehmen, da die im CUL verwendeten CC1101 Module mit 26MHz Quarz bestückt sind, bei der Betty jedoch ein 27MHz Quarz verwendet wird. Das hat dann Auswirkungen auf alle frequenzabhängigen Register.

Als µC-Developer-Dummy: Gibt es irgendein sinnvolles Tool, zum Debugging ? Zumindest so etwas, wo ich die einzelnen Funktionsaufrufe in Ihrer Sequenz verfolgen kann ?
Zum Debuggen habe ich Eclipse und openOCD in Verbindung mit einem FTDI2232 basierten JTAG Interface genommen. Ich habe es jetzt auch mal mit einem J-Link versucht. Da funktioniert aber irgendwie die Programmierung des externen Flashs über CFI nicht.


@all: 1 download für die IT-Funktionalität ist arg wenig  :'( Mag denn neben der Unterstützung von telekatz niemand mitmachen ?
Das mangelnde Interesse war für mich dann auch irgendwann der Grund, die Entwicklung von Boop einzustellen.

Offline pc1246

  • Sr. Member
  • ****
  • Beiträge: 944
  • tempus fugit
Antw:FB Betty in FHEM einbinden
« Antwort #41 am: 24 März 2017, 12:31:51 »
....
Ohne Boop(wer hat nur diesen Namen erfunden  8))
....
Hier https://de.wikipedia.org/wiki/Betty_Boop die Erlaeuterung des Namens, aber die solltest Du doch eigentlich kennen!?

Interesse habe ich schon, insbesondere, da es ja sehr geringer finanzieller Aufwand ist! Aber helfen kann ich nur beim Testen, und eventuell was Schreiben! Momentan sehe ich allerdings noch nicht so ganz das Ziel, ich schlafe mal des WE drueber!

Gruss Christoph
RasPi2
Jeelink mit 1 ETH200comfort; Onkyo_AVR;3 Enigma2; SB_Server ; SB_Player; netatmo; HM-USB mit 14 HM-CC-RT-DN, 3 HM_WDS10_TH_O; PhilipsTV; add-on board mit 6 IT-Steckdosen;3 harmony hub; Jeelink mit 6 PCA301; Somfy;
S7-300; 2 LGW; KS300

Offline KölnSolar

  • Hero Member
  • *****
  • Beiträge: 1372
Antw:FB Betty in FHEM einbinden
« Antwort #42 am: 24 März 2017, 12:43:45 »
Zitat
Funktionieren sollte der schon. Aufgrund der Fehlanpassung der Antenne ist die Reichweite aber nicht groß.
Schon klar. Aber weder 3m, noch 50cm Abstand zum 868CUL bringen das Display in Bewegung, wenn ich einen FS20-Befehl aus FHEM absetze  >:( Ich sehe FS20 auch nur als Testcase.
Zitat
Die Ansteuerung des CC1100 ist im Grunde gleich. Allerdings kann man die Registerwerte nicht 1:1 übernehmen, da die im CUL verwendeten CC1101 Module mit 26MHz Quarz bestückt sind, bei der Betty jedoch ein 27MHz Quarz verwendet wird. Das hat dann Auswirkungen auf alle frequenzabhängigen Register.
SUPER Info. Wenn ich etwas implementiert und getestet hätte, wäre ich im Leben nicht drauf gekommen, dass die Frequenzparameter anzupassen sind. Hatte beim vergleichenden Lesen schon Fehler in der FS20.c vermutet :-[

@Christoph: Danke für den Hinweis, den Wiki-Eintrag hatte ich tatsächlich noch nicht gesehen.
Ziel ? Uni-FB für TVs, Receiver UND IT-V1 habe ich ja nun schon. Die bei weitem nicht vollständigen Ideen hab ich ja hier https://forum.fhem.de/index.php/topic,69112.msg609209.html#msg609209 gepostet.
RPi3/2 Jessie-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-CUL868-FS20A4-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty-Boop

Offline RaspiLED

  • Full Member
  • ***
  • Beiträge: 453
  • Es begann alles so klein ;-)
Antw:FB Betty in FHEM einbinden
« Antwort #43 am: 24 März 2017, 15:59:45 »
Moin KölnSolar,
Super Du gibst richtig Gas cool! Naja diese Woche war ja erstmal Cebit gelle, aber nächstes Jahr hat man ja 3 Monate mehr Zeit bis zu der ;-) Aber ich schaue mir die Hardware am WE mal an...
Gruß Arnd


Raspi2 mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, Bravia, ...
Raspberry Pi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, WifiLight2, Bravia, ...

Online Bapt. Reverend Magersuppe

  • Full Member
  • ***
  • Beiträge: 286
  • Flipperball geschluckt!
    • Internet! Die Zukunft der Vergangenheit.
Antw:FB Betty in FHEM einbinden
« Antwort #44 am: 28 März 2017, 08:48:52 »
Ich habe in den Tiefen meiner Platte noch ein Paket namens Lernbetty gefunden. Das gibts auch noch online: https://www.mikrocontroller.net/topic/277603. Da sind einige interessante Beispiele drin.
--
If I was born in 1453, Leonardo da Vinci would be jealous of me.
Reverend Paul Egon Magersuppe
HM-freie Zone.

Offline KölnSolar

  • Hero Member
  • *****
  • Beiträge: 1372
Antw:FB Betty in FHEM einbinden
« Antwort #45 am: 29 März 2017, 14:09:17 »
Hi Telekatz,
hab jetzt auch mal die 2. FB in Betrieb genommen. Das Synchronisieren der Zeit hat gut geklappt.
Leider tut sich auch dort nichts beim FS20-Empfang. Hatte gehofft, dass das evtl. an der FB liegt  :(

Da ich dort nicht weiterkam, hab ich mich dann doch wider dem B&O-Protokoll gewidmet. Ich hab ein LIRC-File erstellt, welches passen sollte. Wie Du schon sagtest: klappt nicht. Man kriegt wohl scheinbar max. ca. 100kHz hin. Warum ist mir leider immer noch nicht klar. Ich hab zwar einiges investiert, um den Programmablauf zu verstehen, insbesondere die Timersteuerung und die Interrupts, aber das ist echt müüüühselig. Irgendwie fehlt mir da noch der Zusammenhang zwischen key_press, lirc_send, RunIR, welches den timer1 startet und dann ? Wird dann die FIQ_Routine getriggered, die dann den infraredirq aufruft, die wiederum die LIRC_Encode aufruft ?

 Im Augenblick hänge ich an hi_ u. lo_border, die ja durch den Parameter duty_cycle im LIRC-file gesetzt werden. Daran hängt ja wiederum der Wert für das match register T1MR0. Kannst Du mir vielleicht in wenigen Worten beschreiben, was die 3 Parameter bedeuten/bewirken ?
Außerdem hab ich noch nicht so ganz verstanden, warum der Timer1 nicht in der VIC eingetragen wird. Heißt das nicht, dass die VICs alle eine höhere Priorität haben ? Hintergrund der Frage ist, dass ich auch ohne Umbau auf PWM gerne testen würde, ob das senden grundsätzlich funktioniert, also erst einmal alles entfernen würde, was Zeit kostet bzw. behindert oder vorhandenes beschleunigen würde. Dann hätte ich auch den kompletten Ablauf verstanden. Danach würd ich mich dann an den Umbau auf PWM geben. Ist dieser Gedanke machbar oder einfach nur Blödsinn eines µC-Dummies ?
Grüße Markus
RPi3/2 Jessie-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-CUL868-FS20A4-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty-Boop

Offline Telekatz

  • Developer
  • Full Member
  • ****
  • Beiträge: 491
Antw:FB Betty in FHEM einbinden
« Antwort #46 am: 29 März 2017, 20:55:21 »
Die IR Encoder sind alle so aufgebaut, dass sie folgende Funktionen bereitstellen:
xx_Encode
xx_Init
xx_Send
xx_Repeate
xx_Stop

xx_Init wird aufgerufen, wenn der Fernbedienungscode gewechselt wird und initialisiert den Encoder
xx_Send wird aufgerufen, nachdem eine Taste gedrückt wird und läd dann z.B. den Encoder mit dem entsprechenden Code für diese Taste.
xx_Repeate wird periodisch aufgerufen, solange die Taste gedrückt wird.
xx_Stop wird aufgerufen, wenn die Taste losgelassen wird.

In xx_Send oder xx_Repeat wir mit runIR der Timer1 Interrupt aktiviert.

T1MR0 ist das Timer Counter 1 Match Register. Erreicht Timer1 diesen Wert, wird der Interrupt ausgelöst. Bei jedem Interrupt wird die Variable c_cnt hochgezählt. Solange c_cnt kleiner hi_boarder ist, bleibt die IR Diode eingeschaltet falls ein Träger erzeugt werden soll. Danach bleibt die IR Diode ausgeschaltet bis c_cnt gleich lo_border ist. Dann ist eine Periode vorbei und c_cnt wird wieder auf 0 gesetzt.

Die Frequenz des Trägers kann man ausrechnen mit: fTräger =  PCLK / (tval * lo_border)
Am Beispiel von RC5: fTräger = 15MHz / (139 * 3) = 35,97kHz

Für die duty_cycle gilt: duty_cycle = hi_border / lo_border
Am Beispiel von RC5: duty_cycle = 1 / 3 = 33,3%

Die Anzahl der Perioden wird in b_len gezählt. Über die Variable cycles wird vorgegeben, wieviele Perioden und damit wie lange ein Signal gesendet werden soll. Ist die gewünschte Anzahl an Perioden erreicht, wird in xx_Encode die Anzahl der Perioden für das nächste Signal und ob der Träger gesendet werden soll ermittelt.

Für das Verständnis der IR Funktion würde ich empfehlen, mit einem einfacheren Encoder wie RC5 anzufangen. Der Ablauf ist bei allen IR Encodern gleich.

Der Timer1 Interrupt steht nicht im VIC, weil er im FIQ behandelt wird. Der hat schon die höchste Priorität.


Offline KölnSolar

  • Hero Member
  • *****
  • Beiträge: 1372
Antw:FB Betty in FHEM einbinden
« Antwort #47 am: 29 März 2017, 22:08:07 »
Danke für Deine Mühe. Jetzt fehlt mir nur noch die Stelle, wo die FIQ_Adresse gesetzt wird. spielt aber keine Rolle, wird schon irgendwo gesetzt werden  :)
Mit Deiner Formel müsste ich bei lo_border = 3 tval = 11 setzen und hätte 454545 Hz. Das ist doch bestimmt zu einfach gedacht, oder ?
Duty cycle ist ja eigentlich das Verhältnis des Pulses zum Space. Der liegt bei einem 0-bit bei ca. 2% und beim pre-bit sogar bei nur 1,3%. Also eher tval =1 und lo_border =33, also duty cycle 3% ?
Ich probiers mal aus...
RPi3/2 Jessie-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-CUL868-FS20A4-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty-Boop

Offline Telekatz

  • Developer
  • Full Member
  • ****
  • Beiträge: 491
Antw:FB Betty in FHEM einbinden
« Antwort #48 am: 29 März 2017, 22:29:13 »
Duty cycle ist ja eigentlich das Verhältnis des Pulses zum Space. Der liegt bei einem 0-bit bei ca. 2% und beim pre-bit sogar bei nur 1,3%. Also eher tval =1 und lo_border =33, also duty cycle 3% ?
Nein, duty_cycle hat nichts mit dem Verhältnis Pulse zu Space zu tun. Duty_cycle betrifft den Träger während des Pulses.

Offline KölnSolar

  • Hero Member
  • *****
  • Beiträge: 1372
Antw:FB Betty in FHEM einbinden
« Antwort #49 am: 29 März 2017, 23:37:06 »
Hmm, Träger während des Pulses  :-\ bitte für dummies...

Beide Tests fehlgeschlagen  :'( Hab auch mal probiert die Taktrate auf 60/30 höher zu setzen. War aber auch nix  :'(  Betty starb  :'(

Ich häng mal das LIRC-file dran. Passend hab ich die code.c erweitert, eine Anpassung in der LIRC_Init für hi_ u. lo_border, sowie in der LIRC_Encode bei LIRC_DATA_S eine Anpassung, weil nicht einfach 0 u. 1 gesendet wird, sondern, wenn sich der bit-wert gegenüber dem vorhergehenden nicht ändert, eine besondere Space-Pulsweite zu berücksichtigen ist.

Any ideas ? Was hab ich überfordert, dass die Betty den Geist aufgibt ?
Edit: Einen Fehler in meinem zusätzlichen Code oder des LIRC-Files kann ich insofern ausschließen, dass ich die Betty am Leben erhalte, wenn ich die Frequenz im LIRC-File deutlich absenke(um die 100kHz). Es ist also irgendein "Timing"-Problem.
Zum Aufbau des IR-Protokolls: Die B&O hat immer einen Sendepuls von 200, der Spacepuls variiert. Es werden 4 unterschiedliche Startbits gesendet. Die hab ich im header(1.), pre_data(2.), pre(3.) u. das letzte neben den Daten in bits. Nach den 17 Datenbits(16 + 4. start bit) kommt dann noch ein post_bit und ein abschließender Puls als ptrail.
« Letzte Änderung: 30 März 2017, 09:59:13 von KölnSolar »
RPi3/2 Jessie-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-CUL868-FS20A4-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty-Boop

Offline Telekatz

  • Developer
  • Full Member
  • ****
  • Beiträge: 491
Antw:FB Betty in FHEM einbinden
« Antwort #50 am: 30 März 2017, 11:51:04 »
Hmm, Träger während des Pulses  :-\ bitte für dummies...
Du sendest einen Puls mit 200 µs Länge gefolgt von einem Space variabler Länge. Während des Pulses ist die IR Diode jedoch nicht ständig an sondern wird mit 455kHz moduliert (der Trägerfrequenz). Der 200 µs Puls besteht nicht aus einem langen Puls, sondern aus 91 kurzen Pulsen. Und das Verhältnis aus IR Dioden an und aus während dieser 200 µs ist die duty_cycle.

Edit: Einen Fehler in meinem zusätzlichen Code oder des LIRC-Files kann ich insofern ausschließen, dass ich die Betty am Leben erhalte, wenn ich die Frequenz im LIRC-File deutlich absenke(um die 100kHz). Es ist also irgendein "Timing"-Problem.
Du kannst jetzt noch im lirc File duty cycle auf 50 stellen, dann könntest du um die 150kHz schaffen. Mehr geht nicht mit Software PWM so wie es jetzt im Timer1 Interrupt implementiert ist.

Offline KölnSolar

  • Hero Member
  • *****
  • Beiträge: 1372
Antw:FB Betty in FHEM einbinden
« Antwort #51 am: 31 März 2017, 08:21:38 »
ich beginne mehr zu verstehen ...
Ist es nur eine Schätzung aufgrund von Erfahrungswerten, dass nicht mehr als 150kHz drin sind oder lässt sich das irgendwie (einfach)berechnen/abschätzen ?

Hab mich jetzt mit PWM weiter auseinandergesetzt und könnte mich an den Einbau wagen. Sieht ja erstmal gar nicht so schlimm aus  :D Als Basis nähme ich den PWM aus der Soundsteuerung, natürlich angepasst für channel 5. Da es ja nur einen Counter für alle PWM channels gibt: siehst Du später ein Problem darin, dass sound und IR PWM-gesteuert werden ? Auch, wenn ich jetzt den Anwendungsfall nicht sehe, die könnten sich ja in die Quere kommen ? Fängt ja schon mit dem prescaler an, der für sound auf 7 gesetzt wurde. Grund ? Gibt es Performance- oder sonstige Gründe den Prescaler zu setzen oder aber eher nicht setzen ? Was würdest Du mit Deiner Erfahrung mit dem Prescaler für IR und speziell dem B&O-Protokoll treiben ? Auf die minimalste Pulslänge setzen ?

Des weiteren dachte ich mir, ich beschreibe das PWMMR5 immer mit der nächsten Pulslänge oder wäre hier ähnlich wie beim timer ein "Basis-puls" besser und die Programmlogik kümmert sich um die Pulslängen ?

Muss ich mich mit double-edge auseinandersetzen oder kann ich mir das sparen ?

Und schließlich verwirrt mich die Doku(ich nutze UM10114) etwas. Es wird eingangs zum PWM beschrieben, man könne high, low, oder toggle beim match setzen. Nur: Ich finde kein(e) Register, wo ich genau diesen Willen kundtun könnte  :o Muss man also für jede P/S-Kombination PWMMMR0 auf P+S setzen und PWMMR5 auf S ?

Freu mich wie immer über Deine Hilfe...
RPi3/2 Jessie-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-CUL868-FS20A4-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty-Boop

Offline Telekatz

  • Developer
  • Full Member
  • ****
  • Beiträge: 491
Antw:FB Betty in FHEM einbinden
« Antwort #52 am: 02 April 2017, 16:27:24 »
ich beginne mehr zu verstehen ...
Ist es nur eine Schätzung aufgrund von Erfahrungswerten, dass nicht mehr als 150kHz drin sind oder lässt sich das irgendwie (einfach)berechnen/abschätzen ?
Das ist eine Schätzung aufgrund deiner LIRC Konfiguration, bei der 100kHz als maximale Frequenz ermittelt hattest.

Hab mich jetzt mit PWM weiter auseinandergesetzt und könnte mich an den Einbau wagen. Sieht ja erstmal gar nicht so schlimm aus  :D Als Basis nähme ich den PWM aus der Soundsteuerung, natürlich angepasst für channel 5. Da es ja nur einen Counter für alle PWM channels gibt: siehst Du später ein Problem darin, dass sound und IR PWM-gesteuert werden ? Auch, wenn ich jetzt den Anwendungsfall nicht sehe, die könnten sich ja in die Quere kommen ? Fängt ja schon mit dem prescaler an, der für sound auf 7 gesetzt wurde. Grund ? Gibt es Performance- oder sonstige Gründe den Prescaler zu setzen oder aber eher nicht setzen ? Was würdest Du mit Deiner Erfahrung mit dem Prescaler für IR und speziell dem B&O-Protokoll treiben ? Auf die minimalste Pulslänge setzen ?
Sound und IR wird nicht gleichzeitig funktionieren.
PWMR0 muss passend zur PWM Auflösung gewählt werden. Zusammen mit Prescaler muss das dann die gewünschte Frequenz ergeben. Beim Sound PWM sind das dann etwa 4,4kHz.
Für IR wirst du keinen Prescaler benötigen um auf 455kHZ zu kommen. Eingestellt werden die 455kHz über PWMR0 (müsste dann 33 sein)

Des weiteren dachte ich mir, ich beschreibe das PWMMR5 immer mit der nächsten Pulslänge oder wäre hier ähnlich wie beim timer ein "Basis-puls" besser und die Programmlogik kümmert sich um die Pulslängen ?

Muss ich mich mit double-edge auseinandersetzen oder kann ich mir das sparen ?

Und schließlich verwirrt mich die Doku(ich nutze UM10114) etwas. Es wird eingangs zum PWM beschrieben, man könne high, low, oder toggle beim match setzen. Nur: Ich finde kein(e) Register, wo ich genau diesen Willen kundtun könnte  :o Muss man also für jede P/S-Kombination PWMMMR0 auf P+S setzen und PWMMR5 auf S ?
Über PWMMR5 wird die duty cycle der Trägerfrequenz eingestellt. Für die Puls und Pausenlängen des IR Signals ist ist weiterhin Timer1 zuständig. Nur muss hier der Timer1 Interrupt nicht mehr so oft aufgerufen werden. PWM kümmert sich nur um die Trägerfrequenz und benötigt dazu auch keinen Interrupt.

Offline KölnSolar

  • Hero Member
  • *****
  • Beiträge: 1372
Antw:FB Betty in FHEM einbinden
« Antwort #53 am: 02 April 2017, 22:40:49 »
jaja, die Trägerfrequenz. Die hatte ich in meinem Post völlig vergessen, was mir dann bei der Umsetzung klar geworden war.  :o
Zitat
Über PWMMR5 wird die duty cycle der Trägerfrequenz eingestellt.
ist mir also soweit klar. Aber warum brauche ich noch den timer 1? Bei den Spaces muss ich doch sowieso den pin abschalten und beim nächsten pulse die Trägerfrequenz wieder auf die LED schalten, oder nicht ?

Die richtigen Probleme, die ich hab, sind aber andere  :'( Der ersten Betty hab ich wohl die Diode zerstört  :'( :'(  Damit nicht genug. Bis ich mal auf die Idee kam, dass PINSEL1 gesetzt werden muss  ::) Danach blinkte die Diode, aber irgendwie ist alles durcheinander. Sie blinkt rythmisch endlos weiter, trotz coding für stopIR  :o Fehlt der Aufruf ? Aber das ist nicht alles  >:( Die Hintergrundbeleuchtung spinnt auch. Die wird aber doch über timer0 gesteuert oder etwa nicht ? Wieso funktioniert der nicht mehr richtig, obwohl die Register zwischen timer und PWM doch unterschiedlich sind ?
 
Testen tu ich über das LIRC-Samsung-Protokoll, was mit timer1 ja einwandfrei funktioniert. Erst, wenn das über PWM funktioniert, versuche ch mich an den 455kHz.

Jetzt nehm ich mal den  sound raus und gucke, ob die Geister sich beruhigen....

Edit: der Sound war es nicht. Ich hatte nach dem Senden den PWMTCR nicht richtig zurückgesetzt  :-[ Backlight bleibt aber immer noch aus  :-\
Und jetzt kann ich das erste mal das Senden beobachten. Gefühlt bleibt die Diode viel zu lange an  >:(
« Letzte Änderung: 02 April 2017, 23:29:46 von KölnSolar »
RPi3/2 Jessie-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-CUL868-FS20A4-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty-Boop

Offline KölnSolar

  • Hero Member
  • *****
  • Beiträge: 1372
Antw:FB Betty in FHEM einbinden
« Antwort #54 am: 06 April 2017, 09:32:34 »
So, neue Diode angelötet. Geht selbst für mich Löt-Dummy relativ problemlos. Die 2. Betty ist also wieder geheilt.

Um die Probleme mit der Hintergrundbeleuchtung und dem Sound abzustellen, habe ich das Ganze etwas entgegen der üblichen Ablaufstruktur nun direkt in den LIRC_Send bzw. LIRC_Stop eingebaut. irIRQ und FIQ_Routine passend umgebaut, den timer1 nicht gestartet(kein runIR())

Der Output der Diode sieht "richtiger" aus, schaltet aber leider nicht auf 38kHz  :'(

Bei 433kHz scheint ebenfalls der Erfolg auszubleiben. Die Diode kommt nicht zur Ruhe  :o

So sieht der Code in LIRC_Send aus: PWMTCR = 0x00;
PINSEL1 |=  (1 << (2 * (IR_PWM - 16))); // Pin function PWM5
PWMPCR  |=  (1 << 13); // enable output f. pwm5
PWMTC  = 0;
PWMPC  = 0;
PWMPR  = 0; //precale register initialize
PWMMCR = 0x03; //match MR0: reset counter and interrupt; no further action
PWMMR2 = 0;
PWMMR0 = T1MR0;
PWMMR5 = PWMMR0 / lo_border * hi_border; // high cycles for carrier frequence
PWMLER = 0x25;
PWMTCR = 0x0b;
PWMTCR &= (0<<1);

das on-off-keying passiert dann am Ende der LIRC_Encode mit
if(mod_enable) PWMPCR |= (1<<13);
else  PWMPCR &= ~(1<<13);

Da ich ja auch C-Amateur bin verstehe ich auch nicht warum PWMTCR = 0x09;
nach   PWMTCR = 0x0b; funktioniert,    PWMTCR   &= (0<<1);  aber nicht  :-\ Mache ich da generell beim setzen u. löschen von Bits etwas falsch ?
RPi3/2 Jessie-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-CUL868-FS20A4-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty-Boop

Online Per

  • Sr. Member
  • ****
  • Beiträge: 587
Antw:FB Betty in FHEM einbinden
« Antwort #55 am: 06 April 2017, 13:11:07 »
@all: 1 download für die IT-Funktionalität ist arg wenig  :'( Mag denn neben der Unterstützung von telekatz niemand mitmachen ?
Meinerseits gibt es dafür zwei Gründe:
1. habe ich den Thread erst heute gefunden
2. wäre ich euch keine Hilfe
Aber ich habe den Thread aboniert und bin schonmal extrem gespannt!
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline Telekatz

  • Developer
  • Full Member
  • ****
  • Beiträge: 491
Antw:FB Betty in FHEM einbinden
« Antwort #56 am: 06 April 2017, 13:37:02 »
Du brauchst weiterhin den Timer1, um die Puls und Pausen Zeiten auszugeben. LIRC_Encode wird sonst nicht aufgerufen. T1MR0 wird dann auf die entsprechenden Zeiten geladen.

PWMMR0 = T1MR0;PWMMR0 muss auf die Trägerfrequenz eingestellt werden. T1MR0 ist dabei nicht der korrekte Wert. Der korrekte Wert ergibt sich aus 15MHz/Trägerfrequenz.

Da ich ja auch C-Amateur bin verstehe ich auch nicht warum PWMTCR = 0x09;
nach   PWMTCR = 0x0b; funktioniert,    PWMTCR   &= (0<<1);  aber nicht  :-\ Mache ich da generell beim setzen u. löschen von Bits etwas falsch ?
Eine 0 zu shiften bringt nicht, das Ergebnis ist immer 0. Und ein AND mit 0 ist auch immer 0.

Korrekterweise schiebt man eine 1 an die richtige Stelle, invertiert alle Bits und verknüpft dann mit AND:
PWMTCR &= ~(1<<1)
   
Informativ Informativ x 1 Liste anzeigen

Offline KölnSolar

  • Hero Member
  • *****
  • Beiträge: 1372
Antw:FB Betty in FHEM einbinden
« Antwort #57 am: 09 April 2017, 14:38:03 »
Zitat
Und ein AND mit 0 ist auch immer 0.
Das war ja auch beabsichtigt. Funktioniert aber nicht, während die von Dir gepostete Syntax bestens funktioniert.  ;)
Durch Deine Beharrlichkeit mit timer1 hab ich dann noch einen Fehler gefunden. Ich hatte beim Umbau nach LIRC_Send einen Fehler gemacht. Es muss natürlich heißen
PWMMR0 = T1MR0 * lo_border;
PWMMR5 = T1MR0 * hi_border;
Und dann funktioniert das Samsung-Protokoll  :-* Bis hierhin viel gelernt über Boop, Betty, C....aber das war ja nicht das Ziel. Nur leider funktioniert so das B&O immer noch nicht. 155kHz laufen durch, 205kHz aber schon nicht mehr  :'(

Und bevor ich das poste und mir den Rüffel einhandele, dass ich ja den IRQ beim PWM rausnehmen und den timer1 wieder benutzen soll, habe ich dies gemacht. Im "Standard" keine Veränderung  :( Aber Ziel ist ja auch den IRQ seltener auslösen zu lassen. Das hat mir aber mal wieder enorme Schwierigkeiten bereitet  :'( Ich hatte timer1 auf 20 Zyklen gesetzt, was in keiner Konstellation funktionierte  :'( Bis ich auf den Gedanken kam es einfach mal nur mit 2 Zyklen zu probieren. Kein Fehler ! Weiter getestet mit 5, dann mit 10. Ab 10 ging wieder nichts mehr. Gibt's eine Erklärung dafür, dass man den timer nicht höher setzen kann ?
Mittlerweile hab ich mir dann die genauen Zeitenberechnungen angesehen und bestmöglich auf das B&O-Protokoll eingestellt: Frequenz im Lirc-File auf 450000, damit auch 33 Zyklen errechnet werden. Den timer1 auf den Faktor 4(Interrupt nach 132 Zyklen) eingestellt, so dass eine Abweichung der Pulsdauern von ca. 1% entsteht. Samsung funktioniert so einwandfrei. Aber leider geht bei der B&O nix. Mir gehen jetzt die Ideen aus, was ich noch verändern könnte  :'( Ob es an der Diode liegt ? zu schwach, falsche Wellenlänge, doch noch Fehler im Protokoll ......

Da ich da nicht weiterkomme hab ich mir mal Gedanken über die weiteren Teile gemacht, also Scart- u. TAE-Adapter.  Den Scart müsste man doch fast als Betty-CUL mit eingeschränkter Funktionalität(nur 8kB flash) umbauen können... Im ersten Schritt scheitert es natürlich mal wieder an der Toolchain  :(  wird ich wohl mal den SDCC installieren...
RPi3/2 Jessie-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-CUL868-FS20A4-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty-Boop

Online szoller

  • Jr. Member
  • **
  • Beiträge: 89
Antw:FB Betty in FHEM einbinden
« Antwort #58 am: Heute um 11:44:44 »
Möchte auch nur kurz Interesse bekunden, auch wenn ich inhaltlich eher Bahnhof und Abfahrt verstehe, aber ich habe wieder Hoffnung, meine in einem Moment des Enthusiasmus gekauften Bettys doch noch in Verbindung mit FHEM nutzen zu können  8)

Wenn's da was brauchbares gibt, wäre ich über einen Wiki-Eintrag sehr dankbar, bin kein Programmierer  :D
FHEM 5.7 auf Raspberry Pi Model B mit Raspbian Linux | SCC 433Mhz | SCC 868 Mhz @ MAX | SCC 868 Mhz @slowRF
Gefällt mir Gefällt mir x 1 Liste anzeigen