Freitags gehe ich mit ein paar Kollegen immer auswärts essen - abwechselnd in unterschiedlichen Restaurants. Dabei kommt alle paar Wochen auch ein Grieche dran, der total leckeres Essen hat.
Soweit ist alles prima.
Aber
leider plärrt in dem Restaurant ein Fernseher.
Boah, ist das nervig! Irgend
so ein ätzender Privatsender stört die ganze Zeit bei der Unterhaltung und
beim Essen. Wenn der nicht so leckeres Gyros machen würde, könnte ich den
Laden glatt boykottieren!
Also habe ich schon mal die Endlösung für
das Gerät in Gedanken durchgespielt:
Über Fingers Forum bin ich zufällig auf das Tv-B-Gone Kit Projekt gestoßen: Eine kleine Fernbedienung, welche die Ausschaltcodes von rund 40 Fernsehern kennt. Wenn man auf den einzigen Knopf der Fernbedienung drückt, spielt der Prozessor nacheinander einmal alle Ausschaltcodes durch. Etwa 4 Pro Sekunde. Damit sollten nach 10s alle möglichen Fernseher aus sein.
Super
Idee! So ein Teil wäre
genau der richtige Freund
für meinen nächsten Griechenbesuch!
Drin ist neben der IR-Sendediode nur ein kleiner
Atmel Tiny85 Prozessor und einige Kleinteile.
Da ich gerade rund 70 Prozessoren Atmel8535 für lau abgestaubt habe,
war klar, dass ich mir nicht den im Originalprojekt vorgesehenen AtTiny85 kaufe, sondern die Software auf diesen Prozessor umstricke.
Zusätzlich habe ich statt der pisseligen 3V Batterien die Schaltung für 9V ausgelegt und eine richtige Stromregelung für die LEDs vorgesehen.
Irgendwie ist dieses Projekt ein Musterbeispiel dafür, wie alles mögliche schief laufen kann!
Der Prozessor hat so feine Anschlüsse, dass Fädeln nicht in Frage kommt. Also flugs eine Platine gemacht.
Es fing dann damit an, dass in meinem Layoutprogramm Kollektor und Emitter der Endstufentransistoren vertauscht sind. Das hab ich natürlich erst nach dem Ätzen gesehen. Also hat die Platine schon vor der ersten Inbetriebnahme die ersten Fädeldrähte:
Nachdem ich den
Code auf meinen Prozessor
umgestrickt hatte, ging der
Ärger weiter: Der Prozessor wollte sich ums verrecken nicht programmieren
lassen.
Zig mal habe ich alle Leitungen durchgepiept. Alles korrekt.
Was wars? Der Prozessor ist gar kein Mega8535, sondern ein 90LS8535. Ein
total veralteter Typ. Kannte ich bisher gar nicht.
Deshalb habe ich die Teile
wohl auch geschenkt bekommen. Natürlich hat dieser alte Prozessor deutlich
andere Register, Timer und auch die ollen Fuse-Bits für die Programmierung
sind ganz anders. Der Compiler wollte den Code jedenfalls nicht fressen.
Also musste ich das Datenblatt studieren und dann das ganze Programm nochmal umschreiben. So ist das eben, wenn man nicht so genau hinsieht.
Hmpf, der Chip lässt sich immer noch nicht brennen. Was ist den nun noch falsch? Isser hin? Könnte sein, ich hatte den Programmierstecker aus Verzweiflung mal andersrum aufgesteckt, wodurch er +5V auf 'ne Datenleitung bekommen hat.
Also mit dem Heissluftfön das Teil von der Platine gepustet und 'nen frischen Chip aufgelötet. Habe ja genug davon.
War klar, dass der kleine Mistkerl sich aber immer noch nicht programmieren ließ. Bei genauerer Betrachtung des Datenblatts wurde es dann aber verständlich: der LS-Typ kann nur 4MHz. Ich hatte aber wie im Original einen 8MHz Quarz drin. Wie war das mit dem genau hinsehen?
Also raus mit den 8MHz und 4MHz eingelötet - schon klappts auch mit dem brennen! Natürlich musste ich die Software nochmal anpacken und alle Timer auf 4MHz Takt umstellen. Langsam kenne ich die Programmzeilen auswendig.
Und dann kam der große Moment: Ich bin zur Nachbarin ins Wohnzimmer gegangen und hab' ihren Fernseher ausgemacht - grins!
Da ich die Infrarot-LEDs von meinem
Nachbarn habe (der macht halt mit bei dem Projekt), habe ich abends dann in seinem Arbeitszimmer das Teil vorgeführt - Und sein Fernseher blieb an! Das war so'n frecher kleiner Grundig - Na warte!
Mit 'nem Speicheroszi
und einer IR-LED als Empfänger wurde dann flugs seine Fernbedienung
analysiert: Träger genau 36KHz. Dann als Fleissarbeit die Pulsabstände ausgemessen
und in die Software gleich als ersten Code eingetragen.
Keine 10min später
stand ich wieder in seinem Arbeitszimer - und sofort bei Anklemmen der
Batterie war der Grundig platt. Sooo soll das sein!
Der Nachbar hat noch einen 90S8535 rumliegen - und die können
8MHz. Also wurde eine neue
Platine entworfen. Diesmal mit Endstufe
in SMD und 8 statt 4 LEDs. Aber auch die Platine war nicht gerade vom Glück beschienen:
Ich hatte als erstes wieder den Atmel draufgelötet. Ging aber total schlecht. Dann fiel
mir ein, dass ich die Platine nach dem Bohren noch gar nicht entschichtet hatte. Asche auf mein
Haupt.
Der Prozessor ging mit vorsichtigem Fönen aber nicht mehr runter, weshalb ich
großzügig mit Aceton drumrumgeschmaddert
habe. Nun ging das Löten
wie geschmiert.
Hier die bestückte Platine:
Die Software wurde wieder auf 8MHz
umgestrickt - mach' ich inzwischen im Schlaf.
Da der Freitag (mit Griechenbesuch)
nahte, musste schnell ein Gehäuse her. Dazu diente ein 40er PVC-Rohr, welches 10min
bei 200° im Backofen gelegen hat und anschließend etwas plattgedrückt wurde.
Die Platine und die Batterie sind einfach mit Schaumstoff reingeklemmt.
Ein schöner roter Taster ziert die einzig wahre Fernbedienung.
Sie liegt gut in der Hand und lässt sich unauffällig mit dem kleinen Finger bedienen:
Beim rummessen in der Schaltung fiel auf, dass die IR-Dioden gar nicht die vorgesehenen 200mA Pulsstrom bekommen (das ist das Maximum für diese Teile laut Datenblatt). Ich habe mit meinem Nachbarn mehrere Stunden an diesem Teil rumgemurxt. Wir haben alle möglichen Teile ausgewechselt und diverse Transistortypen ausprobiert. Nix - die Schaltung macht einfach nicht das, was sie laut Lehrbuch müßte.
Ich tappe da auch heute noch im Dunkeln!
Nachdem ich aber 2 Dioden,
welche eine 1,4V Konstantspannung erzeugen sollten, durch eine rote 3mm LED (1,6V) ersetzt
habe, läuft die Schaltung
wie geschmiert. Saubere 200mA
- als wenn nie was gewesen wäre. Ich glaub's einfach nicht!
So sieht die Baustelle
nun aus:
Mit völlig unauffälligem PVC-Rohr in der Jacke bin ich dann beim Griechen rein - hab auf die Plärrkiste gezielt und 10s gedrückt. Nix.
Grmbl! Ich bin dann extra noch mal ganz
nah rangegangen - nix.
Ratet, was für 'ne Marke das Teil ist: Richtig,
ein Grundig! Der hätte doch eigentlich 'ne zehntel Sekunde nach dem
Taste drücken die Klappe halten sollen. Der Grundig Code steht bei mir doch
immer noch an erster Stelle! Man, wenn doch bloss das Gyros nicht so lecker
wär. Ich will jetzt 'nen Ouzo.
Ja was, soll ich jetzt rumrennen
und Grundig Fernseher suchen - und dann versuchen, mir die Fernbedienung
auszuleihen? Es ist nicht zu fassen.
Abends hab ich zur Belohnung den
Phillips von gegenüber ausgemacht. Jetzt bin ich wohl nicht mehr so beliebt.
Ärgerlicherweise hört der Panasonic eines anderen Nachbarn auch nicht zu. Vielleicht ist da doch grundsätzlich noch was faul. An der Sendeleistung liegt's jedenfalls nicht. Die Reichweite ist super!
Damit man das Teil eventuell nachbauen kann, gibts hier natürlich Schaltplan , Layout und ein Archiv mit dem Quellcode und dem kompletten Protel-Projekt. Schaltplan und Platine sind an meine neusten Erkenntnisse angepasst, aber von mir noch nicht getestet. Gegenüber der Originalsoftware ist ziemlich viel rausgeflogen. Bei mir flackert die rote LED synchron mit den IR-Leds und dient gleichzeitig als Referenzspannungsquelle für die Stromregelung. Die sei hier kurz erklärt:
An der Basis von V3 (und V4) liegen entweder
rund 1,6V-1,7V oder 0V an (Spannung über der roten LED). Auf der Basis-Emitter Strecke
fallen immer rund 0,7V ab.
Der Transistor stellt nun den
Strom durch die LEDs so ein, dass über dem 5-Ohm Widerstand (R2+R3) genau 1,7V-0,7V
= 1V abfallen - Das gibt dann 200mA Diodenstrom. Wer das nachbaut, muss die Spannung über
der Leuchtdiode messen! Heutzutage gibt es diverse LED-Typen, die nicht mehr die früher
einheitlichen 1,6V haben.
Braucht man einen anderen IR-LED Strom, ändert man
den Emitterwiderstand nach R=1/Diodenstrom (in Ampere).
Aus den Tiefen des Internet habe ich eine Sammlung von Codes von angeblichen europäischen Fernsehern gefischt. Merkwürdigerweise sind drei Codes enthalten, deren ON-Zeiten deutlich außerhalb des zulässigen Zahlenbereichs liegen. Und unglaubwürdig sind die Werte auch. Der Code105 zum Beispiel würde mehrere Minuten zum durchlaufen brauchen, da die Trägerfrequenz über 60 Mal abwechselnd 2,7 Sekunden ein und 0,0008s ausgeschaltet wird.
Diese vergeigten
Tabellen sind daher einfach deaktiviert.
Hier
die EUcodes.c Datei und der PERL-Script, welcher die Original
Codetabellen liest, und daraus die Rohfassung der EUcodes.c Datei erzeugt.
Ob die Codes was taugen, muss ich erst noch testen...
Alternativ stellt das LIRC-Projekt eine Unmenge an Daten zu unterschiedlichen Fernbedienungen bereit. Für Grundig-Fernseher habe ich da allein 14 Codes gefunden. Leider kann man die nicht einfach rausfischen, sondern muss erstmal analysieren, was die ganzen Einträge in den Konfigurationsdateien bedeuten und dann in Ein-/Ausschaltzeiten konvertieren.
Freitag
waren wir beim Griechen. Hach, war das schön dort!
Kaum hatte ich
mich hingesetzt, ging angenehmerweise der Fernseher aus ( Grins - die EU-Codes
sind spitze! ).
Es hat gut zehn Minuten gedauert, bis der Wirt das
bemerkt hat und die Plärrkiste wieder aufweckte.
Ein Tastendruck - schon war wieder Ruhe. Der richtige Code scheint also einer der Ersten in meiner Tabelle zu sein.
Mal sehen, wie lange es dauert, bis dem Wirt auffällt, dass der Fernseher immer genau dann spinnt wenn wir kommen.
Kommentieren | Startseite |
Best view: use a W3C compatible HTML-browser.
Curious view: use an Editor!