SDR-Radio mit Raspberry Pi Pico

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche

Radio-Empfänger (SDR) mit dem Mikrocontroller Raspberry Pico

Das ist eine Info-Sammelseite für Radio/Funk-Empfangsprojekte mit dem Raspberry-Pico, neben Aufbauhinweise sollen auch Wissen zur Funktionsweise eines SDR-Empfängers mit Mikrocontroller vermittelt werden. Ausgangspunkt ist das gut dokumentierte Projekt: https://101-things.readthedocs.io/en/latest/breadboard_radio.html und der tread: https://www.mikrocontroller.net/topic/576310 aus dem Unterforum "HF, Funk und Felder". Englischsprachige Beschreibungen zur Bedienung finden sich auch im Software-Depot: https://github.com/dawsonjon/PicoRX

Wie funktioniert das Ganze

Empfangstechnisch handelt es sich hierbei um einen Überlagerungsempfänger, das Signal von der Antenne wird zuerst auf eine Zwischenfrequenz (ZF) abgewandelt, und anschliessend mit einem "langsamen" AD-Wandler digitalisiert. Im Üicp selbst dann Demodulation und damit Extraction des Audio-Signals.

Der Pico erzeugt Rechtecksignale mit denen das eingehende Antennen Signal auf vier slots aufgeteilt wird. Fehlende "Standard-Teile" lassen sich ggf. mittels diskrete Bauteile wie Transistoren ersetzen, wobei man bei diskreter Schaltungstechnik bei hohen Schaltfrequenz oft verloren hat.

Aufbau aus losen Teilen.

Aufbau/Hauptbaugruppen

Antennen-Anschluss -> IQ-Mischer -> Pico IQ ADC -> Kopfhörer/Lautsprecher

                        ^--     <- Pico ZF Local osz.

  • Mischer
  • Pico als SDR-Empfänger mit integrierten 500kS/s AD-Wandler
  • Audio-Ausgang (PC-Soundkarte/Kopfhörer)

Ach ja, "Bedienteil" braucht ein klassisches Radio auch, so Drehknöpfe und Tasten mit denen man Lautstärke und Sender einstellen kann. Und eine Anzeige für den Sender und Betriebsart. Also Drehencoder und SPI - Interface dran deren Ansteuerung eher triviale programmierung ist. OK, man sich kann sich auch die Pico-Software modifizieren um alles per UART-Terminal vom Laptop über USB-Kabel zu steuern. (Übrigens, es gibt auch Pico-Ausführungen mit WLAN, die W-Modelle)

Antennenanschluß

Als RX-Anschluss ("Empfänger") sollten eigentlich 75 Ohm angepasst sein, im Funkbereich dagegen wird 50 Ohm Kabel verwendet.

  • Was, welche Antennenbuchse dran ?
    • Ferritantenne -

https://www.elexs.de/drm15.htm (aktiv breitband Ferritantenne bis 1600kHz auch bis 8 MHz

    • Schnellvorschlag? - halber Meter Draht ?!
  • Antennenverstärker

Es gibt einige Schaltungsvorschläge für "Aktive Antennen", meist eine simple Transistorstufe (Transisortyp BC547B) oder neuerdings auch mit Breitband-OPV. Einfache Transistorstufen genügen aber meist nur bis einige MHz.

Eine Magnet-Antenne (loop) kann, entsprechend ausgerichtet, manche Störer in der Umgebung "ausblenden".

IQ-Mischer / Tayloe detector

Ein Mischer erzeugt aus zwei Signalen ein drittes mit neue Frequenzen. Im SDR Bereich wird gern der sogenannte "Tayloe-Detector" eingesetzt, benannt nach dem Autor eines Patentes von 1998. Der Tayloe-Mixer erzeugt das erwähnte dritte Signal in zwei Komponenten, I und Q benannt, daher wird er auch als IQ-Mischer bezeichnet. Vorteile gegenüber einem analogen Mischer sind:

  • das Fehlen der Spiegelfrequenzen
  • Effizienz

Für den Mischer werden im wesentlichen drei Baugruppen/IC benötigt, die als (Standard-)IC beschaffbar sind:´

  • Analogschalter/De-Multiplexer (1 Eingang auf 4 Ausgänge)
  • Differenzverstärker
  • Lokaler Oszillator -LO- (hier Rechtecksignalerzeugung im Pico)

Analogschalter

Mit dieser Baugruppe wird das einlaufende HF-Signal auf vier Kanäle umgeschaltet. Diese vier Kanäle werden entsprechend ihres Phasenunterschiedes mit 0°, 90°, 180° und 270° bezeichnet. Die Umschaltung kann entweder durch einen Analog-umschalter mit 4 Ausgängen realisiert werden oder durch drei die jeweils lediglich zwischen zwei Ausgängen umschalten. Letztere hat einige Vorteile gegenüber der „klassischen“ Variante mit einem 1:4 Mux. Mit einem 1:4 Mux ist jeder Schalter des Mux nur für eine Viertelperiode der Takt-(/Empfangsfrequenz) eingeschaltet und Dreiviertel der Periode ausgeschaltet, was besonders schnelle Schaltzeiten (bei höheren Empfangsfrequenzen) des Mux erfordert. Bei Verwendung eines 4053 als Mux wird dagegen jeder Schalter für eine Halbeperiode ein- und ausgeschaltet, was nicht ganz so schnelle Schaltzeiten erfordert.

Die 74HCT4053 verschiedenster Hersteller sind bis 30MHz Schaltfrequenz gut geeignet.

Typvorschläge:

  • 74HCT4053 (bis 30 MHz)
  • CD4053 (wahrscheinlich deutlich langsamer als 30 MHz)

Wenn statt der Multiplexer (Umschalter) einfache (On/Off)-Schalter wie Vierfach im CD74HC4066E vorhanden, verschaltet wird, muss statt dem 2 bit select-Signal aus der Standardprogrammierung ein "One-Hot" Signal generiert werden. Das kann durch Firmwareänderung (PIO) des Pico erreicht werden oder man fügt Logic-gatter (Decoder) wie den 74HC238 zwischen den Pico und den Steuereingängen der Analog-(um)-schalters.

Differenzverstärker

Beide Verstärker werden jeweils mit um 180° versetzten Kanälen beschaltet, also 0° und 180° (I-Verstärker-Zweig) und als zweites Paar 90° und 270° (Q-Verstärker-Zweig). Die Verstärker werden als Instrumentverstärker (hoher Eingangswiderstand) betrieben u Unterschiede in der Phasenlage auszugleicheen (balanced).

Wichtige Kennwerte:

Typvorschläge?

Pico: ZF-Local Osc.

Der lokale Oszillator ist hier ein Rechteckgenerator der eine dem Raspberry Pico eigenen Spezialhardware (PIO - Programmable IO) und nicht per Bit/Bang o.ä. emuliert wird. Dadurch sind Frequenzen bis zu 30 MHz möglich.

Da die Abstimmung (Einstellen auf die Trägerfrequenz eines bestimmten Senders) von der ZF-Frequenz abhängt, ist es entscheidend mit welchem Raster dieser Oszillator verändert werden kann. Mit dem beschriebenen SDR-Empfänger soll eine Selektivität von 8(?) kHz möglich sein.

Demodulation/Aufbereitung

Pico: IQ ADC

Der Pico hat einen ADC mit 5 Kanälen. ?Ist die Kanal-Sequenz einschaltbar und hat einen Einfluß auf die Samplerate?

Pico: Audio - Ausgang

Misc

Platinenprojekt

Ohne Pico quasi als Kompaktmodul für Breadboard-Aufbauten:

Oder auch mit PiPico an Board (Dank an: Joe G. (feinmechaniker))

Stromversorgung (entstört)

Die Stromversorgung und das Spannungskonzept dieses SDR Design kann unter mehere Aspekte opotimiert werden:

  • Störungsarm
  • Batterieversorgung

Das verwendete Raspberry Pico Modul ist auf den Betrieb an einen USB-Port ausgelegt, wird also mit 5V versorgt und ist mit Spannungsreglern für niedrigere Spannungen wie 3V3 bestückt. An den Pins des Moduls wird 5V und 3V3 bereitgestellt, eine externe Versorgung über 2V5 ist ebenfalls möglich.

https://www.elektronik-kompendium.de/sites/raspberry-pi/2611061.htm

Batterieversorgung

USB-Power-bank

Dies ist die einfachste Möglichkeit, bei manchen "smart" Powerpacks gibt es das Problem, das das Pico-Modul zuwenig Strom benötigt und die Power-bank einfach abschaltet. Um das verhindern, muss man den Strombedarf ggf. durch Lastwiderstände gegen GND erhöhen.


LiIon-Zelle

Beliebt sind kleine Akkus mit einer Zellspannung um 3.7 V ausgeben, um diese zu nutzen wählt man IC's (OPV, Analogschalter) die auch mit einer Betriebsspannung von 3V3 arbeiten können.


Viele Störungen im Empfangsteil (HF) werden durch Schaltregler (von der Versorgungsspannung auf andere nötigen Spannungen) erzeugt. Legt man also alle IC auf eine Spannung aus die von einer Batterie/Akku kommt, werden solche Spannungswandler unnötig und kann über ein Pin (Pin 37 = GND) abgeschaltet werden. Das verbessert den Rauschabstand deutlich. Der Pico kann von extern über 3.3V an Pin 36 versorgt werden. In diesem Fall ist der RP2040 weiterhin über USB programmierbar.

Pico 2 (RP2350)

Sollte auch für den ARM-Core dort laufen, Unterstützung RISC-V-Core derzeit unbekannt. Frage: sind die PIO auch von diesem erreichbar?

Empfehlenswertes Zubehör (nicht nur für Pico-SDR)

Insbesonders zwischen Antenne und Mischer können zugekaufte Module den Empfang entfernter Stationen verbessern.

  • Breitband-Verstärker LNA billig (20€) aus China zur Empfangverbesserung
  • (Tiefpass-) Bandfilter als Preselector
  • Magnet (loop-) Antenne für indoor-Empfang
  • Pico Kopfhöreranschluss

Aufbau-/Inbetriebnahmehinweise

Man kann das Ganze auf Lochraster oder Steckbrett aufbauen, die Anschlussreihen der Raspberry Pico-Platinen sind für dieses Raster ausgelegt. Die wenigen IC, die man nur im kleinen SMD-packages bekommen hat, kann man nach Auflöten auf Adapterplatinen verwenden. Unbedingt das Pinout der benutzten Module überprüfen, bei manchen Verdrahtungbildern ist dieses falsch, resp. stimmt nicht mit den jeweils benutzten überein.

Wo sitzen die "Stellschrauben"?

Hardware: Den Kondensatoren kommt eine wichtige Rolle zu, da sie die Tiefpass-Grenzfrequenz bestimmen und so Digitalisierungsf(Alias-)fehler abmildern. Vorgehensweise bei der Optimierung der Kondensator-Werte:

Software: Die "Geschwindigkeit" (minimale Zeit zur Kanalumschaltung) bestimmt die maximale ZF-Frequenz aus dem Pico.

Aufgebaut :-) Und was mache ich nun damit?

Stationen/Signale zum Reinhören

Erweiterung zum Panorama-Empfänger mit Wasserfalldiagramm

Für den "Rundumblick" welche Sender gerade "On the Air" sind benutzen insbesonders Funker Sogenannte Panoramaempfänger. Erste Skizzen zum Umbau insbesonders zur Verbesserung der Bandbreite von Joe.G dort: https://www.mikrocontroller.net/topic/576310#7852906

Es gibt auch eine suboptimale Wasserfalldarstellung in den Orginalsource.

Links/Literatur

Realisierungen mit Raspberry Pico

Realisierungen ohne Raspberry Pico:

  • Funkamateur Heft 5/2025 (lt. Vorankündigung)
  • Kainka: "Das SDR-Praxisbuch", ISBN: 9783895763380 (2018, nicht zum Pico, vergriffen?)

Abwürgungen ;-)

  • CAT ... Computer Aided Transceiver, Computerschnittstelle zur Bedienung eines Funkgerätes
  • PIO ... hier "Programmable I/O", eine Technik mit der man am Pico Schnell Signale ausgeben kann
  • QSD ... "Quadrature Sampling Detector"
  • SDR ... "Software Defined Radio"