
Funk-Türgong Clone mit Tiny13
von Hubert Freisinger , OE3FHA
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
Nachtrag
Die Funktürklingel funktioniert gut, doch wie immer bei "Prototypen"
stellen sich im Einsatz Mängel heraus. Das Problem? Es klingelt und
keine will etwas. Warum? Das gesurre und gehacke aktiver Handys in
analogen Verstärkern und Rundfunkgeräten ist der Schlüssel dazu. Es
wird nahe dem Funktaster am Handy gefuhrwerkt, die getacktete HF löst
die Taste aus und gewonnen, es klingelt.
Leider hat sich die Transistorkombination (Q1,Q2) zum halten der Power
für 40 Wiederholungen des Kodes, die im Prinzip eine Darlington
Schaltung darstellt, als zu großer Verstärker entpuppt. Ich habe ganz
einfach den Spieß umgedreht und einen Emitterfolger daraus gemacht,
jetzt mit einem Transistor doch mit Verstärkungsfaktor kleiner 1 und
damit das Problem beseitigt. Trotz herumfuhrwerken mit meinem Handy
keine Falschauslösung mehr. Ein letzter Test ergab mit verbrauchten
Batterien ca. 1,5V bei Belastung noch immer eine einwandfreie Funktion,
der kleine Wandler hält die Spannung exakt auf 3V.
Ein kleiner Hinweis noch: wenn ein Tiny13A verwendet wird kann der
BODLEVEL in den FUSES auf 1,8V verringert werden, die A-Typen
funktionieren bis 1,6V in der Regel. Und jetzt gutes Gelingen.