Funk-Türgong Clone mit Tiny13          

von Hubert Freisinger , OE3FHA                      
 
                      Elektronik-Labor  Bastelecke  Projekte  Mikrocontoller                         




Als Einleitung sei gesagt, dass dieser Beitrag ein fundierter Anstoß sein soll um die Kreativität in diese Richtung zu fördern und mit einfachen Mitteln zum Erfolg zu kommen. Ich habe nur ein Beispiel-Listing mitgeliefert denn in der Regel hat jeder Türgong eine andere Kodierung. Der Dank sei Burkhard Kainka ausgesprochen, der diese gewaltige Sammlung seit langer Zeit am Leben erhält und somit auch mir die Möglichkeit gibt dem Einen oder Anderen einen Anstoß zu geben.

Eine Funkklingel sollte das Errichten einer Signalisierung vom Tor/der Tür in den Haushalt vereinfachen da keine Leitung verlegt werden muss, die Betonung liegt auf "sollte". Warum? Ganz einfach, wenn die Funktaster Wind und Wetter ausgesetzt sind, meistens undicht und mit Wasser gefüllt, die Batterie, vor allem im Winter, in die Knie geht dann ist der Freude bald ein Ende gesetzt, der Empfangsteil im Haus würde funktionieren doch der Sender ist Schrott und das nach ein bis max. zwei Jahren.



Worum geht es? Ganz einfach um die Kodierung des ausgesendeten Signals. Es gibt etliche standardisierte Kodes, doch in diesem Fall macht jeder Hersteller was er will, eben seinen eigenen "Hauskode". In der Regel ist es ein fixer Kode, da ein sogenannter rolling Kode mehr Aufwand erfordert. Ein fixer Kode, auch wenn der Empfänger "angelernt" werden muss, wird in der Regel in unseren Breiten auf 433,92MHz übertragen. Wie kommt man an den Kode ran?



Nun könnte man ein Speicheroszilloskop zum Einsatz bringen, schön wer so etwas hat, ist dennoch nicht ganz einfach, ein empfangenes Datenpaket zu extrahieren, und man muss auch die Breite der einzelnen H/L Folgen zeitlich analysieren können, doch meistens ist das nicht vorhanden. Es gibt im Netz sehr viele Audio-Bearbeitungsprogramme, ich habe das kostenlose "Audacity" verwendet um den Kode einzulesen und zu analysieren.



Was ist notwendig? Man braucht den noch funktionierenden Funk-Taster (ist wie bei lernfähigen TV-Fernbedienungen Voraussetzung), einen Superhetempfänger (zur Not einen Pendelempfänger) und einen Sender für 433,92MHz im Set aus China um wenig Geld und einen PC mit einem Audio-Bearbeitungprogramm.


Das aus dem Empfänger kommende Signal wird über Line-In oder Mic-In vom Ausgang des Empfängers eingespielt und kann bei geeigneter Nachbearbeitung analysiert werden. Ich habe die maßliche Analyse eines Ausdrucks mittels Geo-Dreieck angewandt. Dazu muss man wissen dass die Dekoder-SW im Empfänger bezüglich Signalschwankungen sehr tolerant sein muss, es wird ja gefunkt, also Phasenschwankungen und Reflexionen müssen weitgehend kompensiert werden, das kommt uns jetzt zu Gute.



Nach der Analyse des Signals, die ich so genau als möglich gemacht habe, wird das Ganze in ein simples Programm mit H/L Folgen eines Port umgesetzt, dazu habe ich wieder den Attiny13 ausgewählt und mit Bascom programmiert. Der 8:1 Teiler sollte in den Fuses deaktiviert werden, dadurch dauert ein Zyklus ungefähr 104 Nanosekunden und Laufzeiten der Operationen werden auf ein Minimum verkürzt, sind praktisch nicht mehr Koderelevant. Ich habe die Abfolge von H/L Ereignissen einfach mit "Waitus nnnnn" angegeben und dementsprechend Zeile für Zeile programmiert. Der originale Sender hat dieses Signal 40mal wiederholt und sich dann trotz permanentem Tastendruck, zur Schonung der Batterie, in den Ruhezustand begeben. Nach meiner Erfahrung muss der Empfänger mehrmals hintereinander ein gültiges Signal empfangen um aktiv zu werden.



Allgemeine Erklärungen:

Das aufgenommene Signal rutscht unter die Null-Linie und ist verschliffen. Das kommt daher, dass im Audio-Bereich keine Gleichspannungskopplung vom Eingang bis zur Aufzeichnung besteht, stört aber in keiner Weise das Ergebnis.

Es gibt zwei Arten von Funkklingeln am breiten Markt. Eine Variante ist fix mit dem Empfänger verknüpft und nur dieses Set funktioniert. Die zweite Variante hat einen "lernfähigen" Empfänger der zum Leidwesen des Nutzers in der Regel nach jedem Batterietausch mit der Taste verheiratet (angelernt) werden muss.

Im Prinzip kann jeder fixe Kode auf diese Weise ausgelesen werden.

Es hat Spaß gemacht, der Erfolg gab mir recht und ich wünsche allen die das auch machen wollen viel Erfolg!


'-------------------------------------------------------------------------------
' Funktaster Türgong MEDION
' 3/2020 ,OE3FHA Hubert
'-------------------------------------------------------------------------------




$regfile = "attiny13.dat" 'verwendeter Prozessor
$crystal = 9600000 'Definition des Takt 9,6 MHz
$hwstack = 15 'Stack-Reservierung im SRAM
$swstack = 15
$framesize = 15

Stop Adc
Stop Ac 'Switch off the power to the Analog Comparator
Reset Acsr. Acbg 'Disable Analog Comparator Bandgap Select

Dim Z As Byte

Ddrb = &B0001_1000 'konf Port's B auf > 0=Eingabe 1=Ausgabe


' Programmschleife #############################################################



Portb.3 = 1

For Z = 1 To 40

Waitus 15366 '15384 ohne Schleife

Portb.4 = 1
Gosub 641
Portb.4 = 0
Waitus 6570

Portb.4 = 1
Gosub 641
Portb.4 = 0
Gosub 929
Portb.4 = 1
Gosub 641
Portb.4 = 0

Gosub 2724
Portb.4 = 1
Gosub 641
Portb.4 = 0
Gosub 929
Portb.4 = 1
Gosub 641
Portb.4 = 0

Gosub 2724
Portb.4 = 1
Gosub 641
Portb.4 = 0
Gosub 929
Portb.4 = 1
Gosub 641
Portb.4 = 0

Gosub 2724
Portb.4 = 1
Gosub 641
Portb.4 = 0
Gosub 929
Portb.4 = 1
Gosub 641
Portb.4 = 0

Gosub 2724
Portb.4 = 1
Gosub 641
Portb.4 = 0
Gosub 929
Portb.4 = 1
Gosub 641
Portb.4 = 0
Gosub 929
Portb.4 = 1
Gosub 641
Portb.4 = 0
Gosub 929
Portb.4 = 1
Gosub 641
Portb.4 = 0
Gosub 929
Portb.4 = 1
Gosub 641
Portb.4 = 0

Gosub 2724
Portb.4 = 1
Gosub 641
Portb.4 = 0
Gosub 2724
Portb.4 = 1
Gosub 641
Portb.4 = 0
Gosub 2724
Portb.4 = 1
Gosub 641
Portb.4 = 0
Gosub 2724
Portb.4 = 1

Gosub 641
Portb.4 = 0
Gosub 929
Portb.4 = 1
Gosub 641
Portb.4 = 0
Gosub 929
Portb.4 = 1
Gosub 641
Portb.4 = 0
Gosub 929
Portb.4 = 1
Gosub 641
Portb.4 = 0

Gosub 2724
Portb.4 = 1
Gosub 641
Portb.4 = 0
Gosub 2724
Portb.4 = 1
Gosub 641
Portb.4 = 0

Gosub 929
Portb.4 = 1
Gosub 641
Portb.4 = 0

Next Z

Portb.3 = 0

Stop


'Subroutinen ###################################################################



641:
Waitus 641
Return

929:
Waitus 929
Return

2724:
Waitus 2724
Return


Elektronik-Labor  Bastelecke  Projekte  Mikrocontoller