Forum: HF, Funk und Felder SDR 433 Mhz Signa aufzeichnen und in Audacity analysieren


von Diagonal D. (diagonal)


Lesenswert?

Hallo zusammen,

ich möchte von einer Markisen Funkfernbedienung über SDR ( mit usb und 
Antenne) das Signal dieser Fernbedienung (433 Mhz) aufzeichnen und in 
Audacity analysieren (bitmuster etc. um diesen dann selbst zu senden)


Konkret, SDR hat ja eine "Recording" Funktion, wie kann ich genau die 
Frequenz 433 Mhz aufzeichnen, ich meine, wenn ich SDR öffne sehe ich 
erst mal die Frequenz von ca. 420 bis 460 Mhz, wenn ich jetzt auf record 
klicke, was zeichnet er genau auf die komplette Bandbreite, also von 420 
von 460 Mhz…. oder ? wie kann ich das auf die Funkfrequenze der Markise 
433.82 Mhz eingrenzen und auch NUR dann aufzeichnen wenn ich auf der 
ferndbedienung ein Knopf drücke , was muss ich beim aufzeichnen noch 
beachten ? wie kann ich dann die Bitmuster dann in Audacity ( Markise 
raus und reinfahren) am besten analysieren ?

Vielen dank im Voraus.

Diagonal

: Bearbeitet durch User
von Joachim S. (oyo)


Lesenswert?

Falls Du Linux benutzt: Das Paket rtl-sdr installieren und dann z.B. in 
der Shell eingeben:
1
rtl_sdr -f 433.92e6 -s 250000 433mhz_capture.raw
Dieser Beispiel-Befehl würde die Frequenz 433.92MHz mit einer 
Sample-Rate von 250kHz aufnehmen und in der Datei "433_capture.raw" 
abspeichern.
Diese Datei musst Du dann nur noch in Audacity importieren (Datei -> 
importieren -> Rohdaten -> Unsigned 8 Bit PCM/1 Kanal/250000Hz).

von Peter (Gast)


Lesenswert?

Manche SDR Programme zeichnen das Niederfrequenz/Audiosignal auf, andere 
quasi das Rohsignal in dem gewählten Frequenzbereich oder eben auch 
beides. Für die Analyse des Audiosignals könntest du grundsätzlich 
Audacity verwenden, es gibt aber auch spezielle Oszilloskopprogramme für 
den PC wie beispielsweise Winscope oder Visual Analyzer, die für diesen 
Zweck vielleicht besser geeignet sind. Ich kenne aber  beide Programmen 
nicht näher, ich habe sowas ähnliches aber für Linux.

von Chris M. (yoblid) Benutzerseite


Lesenswert?

Schau dir das Wasserfalldisplay an während du auf die Fernbedienung 
drückst. Das Signal sollte wegen seiner Stärke sofort auffallen. Dann 
geh auf diese Frequenz und reduziere die Bandbreite deines Filters auf 
ca. 200 Hz.
Wenn du dann die Aufnahme startest und die Fernbedienung betätigst, 
sollte das Signal sauber zu analysieren sein.

Hier ein Beispiel:
https://hartgeloetet.blogspot.com/2014/05/hacking-intertec-funksteckdosen.html

VG
Chris

von Joachim S. (oyo)


Lesenswert?

Habe Quatsch erzählt - sinnvoller ist der Befehl:
1
rtl_fm -f 433.92e6 -M am -s 48000 433mhz_capture.raw
um mit 48kHz die Frequenz 433.92MHz AM aufzunehmen, dann per (Datei ->
importieren -> Rohdaten -> Signed 16 Bit PCM/1 Kanal/48000Hz) in 
Audacity importieren.

Und die besagten Kommandozeilen-Tools gibt es offenbar auch unter 
Windows, wenn ich das richtig verstehe.

von Frank G. (frank_g53)


Lesenswert?

Diagonal D. schrieb:
> wie kann ich dann die Bitmuster dann in Audacity ( Markise
> raus und reinfahren) am besten analysieren ?

Vielleicht kannst du dir hier was abgucken:
Beitrag "Bewegungsmelder decodieren mit SDR# und Audacity"

mit Verweis auf eine Software:
Beitrag "Re: Bewegungsmelder decodieren mit SDR# und Audacity"

von Diagonal D. (diagonal)


Angehängte Dateien:

Lesenswert?

Hallo, anbei die screenshots von den Funksignalen der Markisen 
Fernbedienung. Mich würde interessieren ob ich mit der Annahme richtig 
liege das die kurzen Signale ca. 330 mikrosekunden eine 0 darstellen und 
die längeren ca. 680 mikrosekunden eine 1 darstellen, was meint ihr ?

Wenn es so wäre, könnte ich diese ja mit einem 433 mhz Sender für einen 
z.B. Arduino senden können oder ?

Vielen dank.

Grüsse

Diago

: Bearbeitet durch User
von Georg A. (georga)


Lesenswert?

Hast du das als FM demoduliert? Wenn sowas komisches rauskommt, ist es 
nicht FM...

von Diagonal D. (diagonal)


Angehängte Dateien:

Lesenswert?

Hi,

bin mir nicht sicher, anbei die Parameter der Einstellung für das 
recording.

Die Signale haben alle eine bestimmte länge, kurz oder lang, am anfang 
des dataragramms ist noch eine Präambel, nicht mehr nicht weniger, 
verstehe nicht was daran komisch ist ?


Vielen dank.
Grüsse

dd

von Joachim S. (oyo)


Lesenswert?

Georg hat Recht - das dargestellte Signal sieht höchst merkwürdig aus, 
als hättest Du mit FM statt mit AM demoduliert oder so.
Ein gewöhnliches 433MHz ASK/OOK-Signal, wie es Deine 
Markisen-Fernbedienung wohl sendet, muss in Audacity aussehen wie ein 
gewöhnliches digitales Signal.

von Diagonal D. (diagonal)


Lesenswert?

Hi,

das ist kein Audacity Signal, es ist von Universal Radio Hacker, das 
könnte es erklären ?

von Georg A. (georga)


Lesenswert?

Nein, das erklärt es nicht. Die angeschnittenen Sinuse im Basisband 
machen keinen Sinn (sagt mein geschultes Auge...). Was dann da codiert 
ist, sieht man erst richtig demoduliert gut. Könnte reines NRZ sein, 
dazu sinds mir aber so im Überflug zuwenig unterschiedliche Längen. Aber 
Präambel und die Wiederholung des Pakets kann man schon so erkennen...

von Diagonal D. (diagonal)


Lesenswert?

Hallo,

erstmal danke für die super schnellen Antworten.


Wenn man das Signal jetzt über einen 433 MHz Sender ( einfacher Sender 
für ein paar Euro für z.B. Arduino) senden wollte, würde das 
funktionieren, die Funkfernbedienung sendet bei ca. 433.82, der Sender 
ist auf 433 Mhz eingestellt, kann das grundsätzlich funktionieren ? oder 
ist der Empfänger recht tolerant was die Frequenz betrifft ?


Danke.

von Georg A. (georga)


Lesenswert?

Nachdem das recht sicher eben AM (bzw. OOK) ist, würde das schon gehen. 
Die Empfänger dazu sind breit wie ein Scheunentor. Aber bevor du was 
sendest, musst du erstmal das Signal vernünftig demodulieren.

Je nach Senderchen kann man das Basisband-Signal darin aber oft auch 
direkt abgreifen und zB. mit der Soundkarte samplen. Die "normale" 
Variante ist da unintegriert und hat einen uC bzw. ASIC, der nur das 
Digitalsignal auf Knopfdruck produziert. Der eigentliche Sender ist dann 
eine Schaltung mit einem ganzen Transistor, SAW-Oszillator und etwas 
RCL-Gemüse.

von Diagonal D. (diagonal)


Lesenswert?

gut das die Empfänger das mitmachen, dann wollte ich Euch nochmal meine 
Strategie näher erklären,

nachdem ich das Signal ja über einen Recorder aufgezeichnet habe, sehe 
ich ja wie lange ( On/Off) gesendet wird ( also Präembel + Datagramm), 
mit der Information würde ich dann den Sender füttern, den 433 Sender 
kann ich einfache auf ein + sendedauer bzw. off + sendedauer schalten, 
damit müsste ich ja exakt das gleiche Signal auch hinbekommen....oder 
stelle ich mir das zu einfach vor ?


danke & grüsse.

von Georg A. (georga)


Lesenswert?

Prinzipiell schon richtig, aber noch habe ich kein 
aufgezeichnetes/demoduliertes Signal gesehen, dass "passend" aussieht...

von Diagonal D. (diagonal)


Lesenswert?

ich hatte ja in den vorherigen beiträgen ein aufgezeichnetes Signal von 
"Universal Radio Hacker" gesendet, anscheinend war ja das Signal nicht 
in der richtigen Form ( AM oder FM ) demoduliert, wichtig ist doch wie 
lange OOK gesendet wird oder ?

von Joachim S. (oyo)


Angehängte Dateien:

Lesenswert?

Anbei nochmal ein Beispiel-Screenshot, wie so ein Signal in Audacity 
ungefähr aussehen müsste, wenn es korrekt (also in AM) aufgenommen 
wurde. Man erkennt, dass das im Idealfall wie ein digitaler 
Signalverlauf aussehen würde.

Um dieses aufgezeichnete Beispiel-Signal dann mit einem 
433MHz-Sendemodul zu reproduzieren, würde man den GPIO-Pin, an dem der 
Daten-Eingang des 433MHz-Sendemoduls angeschlossen ist, als Output 
einstellen und dann
- den GPIO-Pin ca. 300µs auf high setzen
- dann ca. 900µs auf low
- dann ca. 300µs auf high
- dann ca. 900µs auf low
- dann ca. 900µs auf high
- dann ca. 300µs auf low
- dann ca. 300µs auf high
- dann ca. 900µs auf low
- dann ca. 300µs auf high
- dann ca. 900µs auf low
- dann ca. 900µs auf high
- dann ca. 300µs auf low
- dann ca. 900µs auf high
- dann ca. 300µs auf low
- dann ca. 900µs auf high
- dann ca. 300µs auf low
- dann ca. 300µs auf high
- dann ca. 900µs auf low
- dann ca. 300µs auf high
- dann ca. 900µs auf low
usw.

Üblicherweise werden solche 433MHz-Signalfolgen mehrfach wiederholt, mit 
einer kurzen Sendepause zwischen den einzelnen Wiederholungen.

: Bearbeitet durch User
von Diagonal D. (diagonal)


Angehängte Dateien:

Lesenswert?

Hi,

danke für dein Beispiel....

das tool "Universal Radion Hacker" bietet eine Demodulation an, habe das 
gleiche Signal demoduliert, siehe anhang.


Könnt Ihr jetzt was damit anfangen ? Ich konnte jetzt sehen, das Signale 
in 1ms Bereiche augeteilt sind, d.h. innerhalb dieser Millisekunde habe 
ich ein high entweder mit ca. 300 mikrosekunden oder ein high mit ca. 
700 mikrosekunden, kann das sein ?

von Georg A. (georga)


Lesenswert?

Sieht jetzt sinnvoll aus, wenn auch eher "altmodisch" codiert. Effektiv 
sinds eigentlich 3 Sub-Bitperioden, und dann wirds entweder 100 oder 
110. Vorteil ist die ziemlich bomensicherere Dekodierung ohne aufwendige 
Synchronisierung oder Fehlerschutz. Bis auf die Präambel sind ja 000 
oder 111 schon ein Anzeichen für Datenmüll.

von Diagonal D. (diagonal)


Angehängte Dateien:

Lesenswert?

Hallo Georg,


danke für deine message. was ist mit 3 Sub Bitperioden gemeint, für mich 
sieht das Signal so aus, als ob es immer in 1 millisek. Bereiche 
aufgeteilt ist, und innerhalb dieser habe ich ein high mit ca. 300 
mikrosek. oder 700, der rest der millisek. ist off.

anbei habe ich nochmal ( auf vielfachen Wunsch ;-) das Audacity Signal 
angehangen.

Wie kann ich dann das Signal als bitmuster ausgeben/speichern in 
irgendeiner textform, so nach dem Motto, bit 1-->30 mikrose.high dann 70 
mikrosek pause, bit2-->70mikrosek...etc. so, oder os in der form, so das 
ich es in meinem Arduino Sketch als ein Array direkt reinkopieren kann 
ohne das ich das bitmuster selbst in Excel oder so anlegen muss ?

: Bearbeitet durch User
von Joachim S. (oyo)


Lesenswert?

Diagonal D. schrieb:
> für mich
> sieht das Signal so aus, als ob es immer in 1 millisek. Bereiche
> aufgeteilt ist, und innerhalb dieser habe ich ein high mit ca. 300
> mikrosek. oder 700, der rest der millisek. ist off.

Könnte schon sein, aber meiner Erfahrung nach ist es häufiger so, dass 
die verschiedenen Zeitspannen Vielfache eines bestimmten Wertes sind.
Oder anders gesagt: Ich würde vermuten, dass der grosse Wert (den Du auf 
700µs schätzt doppelt so hoch ist wie der kleine Wert. Ich würde tippen: 
ca. 375/750µs

EDIT: Nee, hast Recht - sieht wirklich so aus, als ob eine eine Folge 
aus High und Low zusammen exakt eine 1ms lang ist.

> anbei habe ich nochmal ( auf vielfachen Wunsch ;-) das Audacity Signal
> angehangen.

Da Du mittlerweile ja offenbar weisst, was Du tun musst um das Signal 
auch in Audacity anschauen zu können, würde ich persönlich vorschlagen:
- Nimm auf die gleiche Weise nochmal mehrere Signale kurz hintereinander 
auf - am besten mehrere unterschiedliche, Deine Fernbedienung hat ja 
vermutlich mehrere Buttons. Also einfach Aufnahme starten, und dann mit 
kurzen Abstand nacheinander kurz alle Tasten drücken. Ach ja, drücke am 
besten jede Taste ZWEIMAL nacheinander - dann kann man auch sehen, ob 
die Fernbedienung möglicherweise einen Rolling Code verwendet (in diesem 
Fall kann die Fernbedienung nicht per Arduino o.Ä. ersetzt werden).
- Nimm eine vglw. hohe Samplerate; wegen der guten Teilbarkeit würde ich 
100k vorschlagen, wenn das geht
- Lade das Ganze dann hier hoch - aber nicht als Audacity-Screenshot, 
sondern als Audiofile, das dann jeder selbst in Audacity importieren 
kann.

> Wie kann ich dann das Signal als bitmuster ausgeben/speichern in
> irgendeiner textform, so nach dem Motto, bit 1-->30 mikrose.high dann 70
> mikrosek pause, bit2-->70mikrosek...etc. so, oder os in der form, so das
> ich es in meinem Arduino Sketch als ein Array direkt reinkopieren kann
> ohne das ich das bitmuster selbst in Excel oder so anlegen muss ?
Bin mir nicht sicher, ob ich wirklich 100%ig verstanden habe, was Du 
damit meinst, aber ich vermute, dass folgendes zumindest in die richtige 
Richtung geht:
Schau Dir in Audacity eine Wiederholung dieses Signals vergrössert an.
Die Präambel ist offenbar eine längere High-Phase, gefolgt von einer 
kürzeren Low-Phase.
NACH dieser Präambel schaust Du Dir nacheinander von Anfang bis Ende 
jedes Paar aus High-Phase gefolgt von Low-Phase an, und schreibst für 
eine kurze High-Phase gefolgt von einer langen Low-Phase eine "0" auf, 
bei einer langen High-pHase gefolgt von einer kurzen Low-Phase hingegen 
eine "1".

Dann hast Du das gesendete Signal als "Bit-Folge", die, wenn ich das 
richtig sehe, genau 40 Bits lang sein müsste. Kann es wegen der geringen 
Auflösung nicht ganz sicher erkennen, aber das Signal im ersten 
Screenshot würde ich bspw. als 
"0111011000001001001100110111000100110011" dekodieren.

Es könnte nur noch sein, dass die Bits genau invertiert sind.
Drücke jede Taste zweimal, und konvertiere jeden Tastendruck nach obiger 
Anleitung in eine "Bit-Folge".
Diese Bit-Folgen schreibst du immer schön untereinander; vermutlich 
wirst Du dann schon ein gewisses Muster erkennen.

: Bearbeitet durch User
von Diagonal D. (diagonal)


Angehängte Dateien:

Lesenswert?

Hallo,

danke für die ausführliche Anleitung, ich habe das ganze jetzt mal mit 
einem 433 mhz Sender über Arduino und digitalwrite versucht zu senden ( 
allerdings hatte ich keine richtige Antenne) , hab das high Signal mal 
im Sketch auf 0.7 gesetzt und mit SDR# aufgenommen und mit Audacity 
analysiert, das passt von der länge her nicht, das high Signal ist viel 
zu kurz ca. die hälfte und das Signal sieht echt miserable aus...weiss 
einer rat ?

von Diagonal D. (diagonal)


Angehängte Dateien:

Lesenswert?

Hallo nochmal,

habs jetzt mal mit delayMicroseconds versucht, das Signal sieht gut aus 
finde ich, was meint Ihr ?

Beitrag #5479389 wurde vom Autor gelöscht.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.