Ich hoffe es ist okay, wenn ich hier ein neues Thema eröffne. Ich dachte es passt nicht zum URH und verdient ein eigenes.
Hier möchte ich euch mein OOK Sniffer Projekt vorstellen. Da ich in letzter Zeit ein paar defekte Garagenöffner hatte, wollte ich mir das mal genauer anschauen. Bei den meisten Funksendern sind die Typenbezeichnungen der IC’s entfernt oder mit eigenen Bezeichnungen wie ‚FAAC SL…‘ versehen, deshalb wollte ich ein Universal Gerät bauen.
Und, es ist einfacher als gedacht…
Als Funkmodule kommen die beliebten und bekannten CC1101 zum Einsatz, es gibt sie in fast allen Frequenz-Variationen und kosten rund 6 $, also wirklich billig. (Das soll keine Werbung für Waveshare sein)
Die Konfiguration wird mit RFStudo von TI und über die SPI Schnittstelle gemacht. RFStudio erlaubt es, die Konfig zu exportieren.
Zum Sniffer selbst:
CC1101 unterstützt sehr viele Modi wie ASK/OOK, FSK, MSK etc. Dazu Preamble, Sync-Word, Manchester etc. Wenn wir einen Sniffer bauen für OOK, wissen wir nur, dass es ein ON/OFF Keying ist, aber keine Baudrate, keine Preamble, kein Sync Wort.
Wir nutzen diese Funktionen also nicht und schalten den CC in den asynchronen seriellen Modus und ASK/OOK. Das bedeutet, die RX und TX Bits liegen nicht im FIFO welcher über die SPI Schnittstelle zugänglich ist, sondern werden an den GDOx Pins eingelesen oder ausgegeben.
Wir müssen also die Decodierung am Controller selbst machen. Die meisten Fernbedienungen im OOK Mode hatten ca. 1200 Baud. Wir stellen den CC also auf 4800 ein, dann können wir bis 2400 Baud problemlos lesen, natürlich geht auch mehr…
Mein Prototyp hat zwei Funktionen, sniffen und senden. Die ge-snifften Daten werden im Eeprom des PIC’s abgelegt und sind nach einem Neustart auch noch da.
Das Einfache an der Sache: Uns interessiert es eigentlich nicht, wie der Aufbau ist, sprich Preamble, Sync Word Daten. Wir messen die Länge der High und die der Low und legen diese im Eeprom ab.
Momentan läuft das ganze auf einem 18F45k22 PIC, werde heute das noch auf einem 16F873 anpassen.
Genauere Erklärung inkl. Schatlplan und Sourcecode folgt.
Nachtrag:
Hab schnell ein Layout erstellt, nicht schön aber es sollte funktionieren.
Ich bin noch einen Schritt weiter. Da die Module wirklich nicht teuer sind, dachte ich warum nicht zwei aufs Board
So wird ein Modul auf RX Konfiguriert, während das andere im TX Modus ein Störsignal auf einer leicht versetzten Frequenz sendet.
Stichwort: Rolling Code
Ich konnte bereits einen erfolgreichen Test machen, muss aber die Konfig von den CC1101 noch etwas anpassen.