*

Nachbau des Raspberry-PI Pico-SDR-RX nach Jon Dawson
In Bearbeitung
Stand: 16. Mai 2025
Automatic translation by GOOGLE:
https://www-kh--gps-de.translate.goog/PICO-RX.html?_x_tr_sch=http&_x_tr_sl=de&_x_tr_tl=en&_x_tr_hl=de&_x_tr_pto=wapp

Abb.1 Gesamtansicht des Empfängeraufbaus
( zur Grossdarstellung anklicken )

Schon seit einigen Jahren habe ich mich mit dem Selbstbau einfacher Kurzwellenempfänger beschäftigt und auch schon mehrfach auf meinen Homepageseiten darüber geschrieben. Unlängst stiess ich dann auf ein verhältnismässig einfaches Konzept zum Aufbau eines den gesamten Frequenzbereich von Längstwelle bis 30 MHz erfassenden und dabei viele Betriebsarten ( AM, AMS, CW, USB, LSB, FM ) abdeckenden Stand-Alone-Betrieb ermöglichenden SDR-Empfänger. Ein kleines OLED-Display diente dabei der Anzeige von Empfangsfrequenzen und weiteren Betriebsparametern. Via Tastenauswahl bestand zudem die Möglichkeit zur Spektrumsanzeige sowie zur Darstellung von Wasserfalldiagrammen, wobei zugegebenermassen allerdings doch auch einige Qualitätsabstriche gemachet werden mussten.

Die Bedieneung des Empfängers erfolgte über einen Drehimpulsgeber mit integrierter Taste und zwei zusätzlichen Tastern. In [1],[2] wurde das vom Autor Jon Dawson stammende Konzept ausführlich beschrieben. Dazu gehörte auch ein Manual [4], in dem die einzelnen möglichen Bedienschritte näher erläutert sind, wobei zu ihrer  Ausführung dann aber doch noch etwas praktische Übung erforderlich ist. Kerneinheit des Empfängers ist dabei einer der preiswert erhältlichen Raspberry-PI-PICO-Mikrocontroller. In ihm abgelegt werden die uf2-Betriebsfirmware und bis zu 512 Speicherplätze. Bedarfsweise lassen sich darin Empfangskanäle eigener Wahl incl. zugehöriger Betriebsparamter ablegen. Wie weiter unten noch näher zu erläutern sein wird, ist die Programmierung der verwendeten Prozessoren extrem einfach und auch ohne besondere Vorkenntnisse schnell durchführbar. Inzwischen gibt es von diesem Empfängerkonzept auch bereits verschiedene Nachbauten. Genannt sei dazu z.B. dasjenige des französischen Amateurs F4GOH, welches im FUNKAMATEUR Heft Mai 2025 auf den Seiten 374-375 veröffentlicht wurde. 


Abb.2 Teilansicht nach vorübergehender Entfernung des Displays
( zur Grossdarstellung anklicken )


Die Inbetriebnahme

Das beschriebene Konzept führt zu einem eigenständigen Empfänger, für dessen Inbetriebnahme lediglich noch wenige zusätzliche Massnahmen zu treffen sind. Dabei kann die Spannungsversorgung z.B. über eine externe Betriebsspannung von etwa 3,7-5V erfolgen. Ansonsten ist im einfachsten Fall auch 5V-Betrieb über die USB-Buchse des PICO-Bausteins möglich. Als mögliche Versorgungsquelle kann dabei beispielsweise ein externer Power-Block benutzt werden. Die Verwendung handelsüblicher USB-Ladenetzteile kann dagegen nicht empfohlen werden, da diese in der Regel erhebliche zusätzliche Empfangsstörungen verursachen. Ein am Tonausgang anschliessbarer Standard-Ohrhörer ermöglicht den Empfang mit im Normalfall ausreichender Lautstärke. Ansonsten kann aber auch ein externer Lautsprecherverstärker nachgeschaltet werden. Von grosser Bedeutung für eine möglichst hohe Empfangsqualität ist die verwendete Antenne. Im vorliegenden Fall haben sich bei mir besonders abstimmbare und ggf. auch aktive Antennenformen wie z.B. auch Loop-Anordnungen bewährt.
Für den Empfang unterhalb des Mittelwellenbereiches verwende ich übrigens einen abstimmbaren Ferritstab, so wie es sie z.B. von SV2CZF [11] ( Abb.4 ) gibt.
 
Bei dem verwendeten Empfängerkonzept ist auch mit unerwünschten Nebenempfangsstellen zu rechnen. Abhilfe können dabei im Eingangsweg des Empfängers hinzugefügte zusätzliche Frequenzfilter bewirken. Jon Dawson hat dazu auf seiner Seite Filterlösungen beschrieben, die jeweils nur Teile möglicher Kurzwellenbereiche abdecken, sich aber auf Wunsch sogar prozessorgesteuert selbständig schalten lassen. Ich benutze an dieser Stelle allerdings lediglich einen 30 MHz-Tiefpass aus fernöstlicher Fertigung ( Abb.3 ) und verhindere damit bisher zumindest solche vorher festgestellten Störungen, wie sie sich z.B. durch benachbarte UKW-Rundfunksender ergeben hatten.


Abb.3   OBEN: 20dB-Breitbandvorverstärker   UNTEN: 30 MHz-Tiefpassfilter
( zur Grossdarstellung anklicken )

bezogen von AliExpress

Eine merkbare Verbesserung der Empfangseigenschaften liess sich durch Einfügen eines zusätzlichen HF-Vorverstärkers erreichen. Auch an dieser Stelle verwendete ich wieder einfache,  mit einer Spannung von z.B. 3-5V betreibbare Versionen auf Fernost. Breitbandig bewirkten sie dabei eine Signalanhebung um ca. 20db, Bei ihrer Auswahl ist allerdings darauf zu achten, dass sie auch für die zur Nutzung vorgesehenen Frequenzbereiche tauglich sind. Wie sich bei durchgeführten Messungen ergeben hatte, sind auch die hierzu z.B. im Internet zu finden Angaben oft sehr unzuverlässig. So liess sich beispielsweise ein nur für den Betrieb oberhalb von 100 MHz deklarierter Vorverstärker auch noch sehr gut bis hinunter in den MW-Bereich nutzen.


Abb.4 abstimmbarer Ferritstab für Längstwellen von 125-525 KHz von SV2CZF
( zur Grossdarstellung anklicken )


Nachbauhinweise

Nach einigen noch etwas provisorischen Probeaufbauten entschloss ich mich zum Entwurf eines eigenen Platinenlayouts und bezog mich dabei ( mit einigen wenigen kleinen Ausnahmen ) auf das hier [10] herunterladbare Schaltbild. Die dabei entstandene Platine entspricht zwar nicht unbedingt höchsten professionellen Anforderungen, erfüllt an dieser Stelle aber meine Hobbyanforderungen in ausreichender Weise. Dabei wurde zur Vereinfachung des Nachbaus weitgehend auf die Verwendung von SMD-Bauteilen verzichtet. Lediglich für die Schalt IC's aus den Serien xxx3253 musste eine Version im SSOP-16-Gehäuse zum Einsatz kommen. Für mich liessen sich diese IC's mit ihrem 1,27mm-Pinabstand gerade noch handeln und wurden dabei auf der Folienseite der einseitig kaschierten Platine untergebracht ( Abb.5 ).


Abb.5  Platinenansicht von unten ( siehe den Schalt-IC auf der linken Seite )
( zur Grossdarstellung anklicken )


Die einseitig kaschierte Platine erforderte auch ein zusätzliches Einfügen mehrerer Drahtbrücken. Weiterhin ist an einigen Stellen der Folienseite vorgesehen, dass sich die Leiterbahnen dort auftrennen und benötigte Verbindungen auch durch kreuzweise hinzugefügte kurze Drahtbrücken wieder herstellen lassen. Nachdem es die OLED-Displays mit unterschiedlichen Pinanordnungen gibt, können sich diese ggf. auch vor der für das Layout gewählten unterscheiden. Deshalb ist auch hier eine Möglichkeit zum bedarfsweisen umrangieren einiger ihrer Anschlusspins vorgesehen.
Ebenfalls vorgesehen sind einige Anschlusspunkte, über die sich bei Bedarf auch die von Jon Dawson zur Grossanzeige von Spektrum- und Wasserfallanzeige vorgeschlagenen 2.4"-Displays anschliessen lassen.

etwas speziellere Bauteile und mögliche Bezugsquellen:

1x Platine: "DJ7OO_DAWSON-PICO-RX_V2" ( Bezug der gebohrten und verzinnten Platinen durch Dirk Ruffing, DH4YM [8]  )
1x Schalt-IC: SN74CBT3253CDR ( mögl. Bezug in kleinen Mengen durch DH4YM [8]; dabei auf Wunsch auch bereits aufgelötet auf vorgenannte Platine )  
1x OP-Amp-IC: MCP6022 im DIL8-Gehäuse ( z.B. Fa. CONRAD [9] )
1x Raspberry-PICO: ( Anm: auch verwendbar ist die Version "PICO2", wozu über [3] auch die passende uf2-Firmwareversion verfügbar ist )
1x 0.96"-OLED-Display:
1x Drehimpulsgeber:  (  z.B. Fa. REICHELT [6] )
2x Minitaster:  ( z.B. Fa. REICHELT [7] )
2x 20pol. Buchsenleiste mit 5mm-Bauhöhe: zum Aufstecken von PICO  ( z.B. Fa. REICHELT [5]  )


Hochladen von uf2-Firmware in Richtung PICO

Das Hochladen der Firmware in Richtung des PICO's stellt sich als extrem einfach dar. Vorerst ist dazu jedoch erst einmal die unter [3] zu findende und zum verwendeten Typ des PICO's passende uf2-Firmwareversion herunterzuladen und in einen beliebigen Ordner des PC's zu kopieren. Danach sind PICO und PC via USB miteinander zu verbinden. Wenn dabei gleichzeitig auch der auf dem PICO befindliche Taster gedrückt gehalten wurde, öffnet sich auf dem PC ein virtuelles Laufwerk mit zwei darin enthaltenen Dateien ( INDEX.HTM und INFO_UF2.TXT ). Wird parallel dazu auch der Ordner mit der vorher abgelegten uf2-Firmware geöffnet, so ist diese Datei lediglich per DRAG und DROP in Richtung des erwähnten virt. Laufwerks zu kopieren. Parallel dazu wird sie dabei dann auch automatisch in den Speicher des PICO geschrieben. Auf einem ggf. angeschlossenen OLED-Display erscheint kurz danach eine Startmeldung, womit sich der Empfänger als betriebsbereit meldet. 
Hinweise zur Ablage einzelner Memory-Speicherplätze oder
Überschreibung aller verfügbaren 511 Speicher


Die von Jon Dawson bereitgestellten uf2-Firmwareversionen sind bereits mit etwa 150 Speicherplätzen vorbelegt. Hierdurch ergibt sich die Möglichkeit zum Schnellaufruf der LW, MW und KW-Rundfunkbänder, sowie getrennt nach Betriebsmodus auch der Amateurfunkbereiche. In weiteren Speicherplätzen sind auch noch die Frequenzen einiger kommerzieller Stationen, sowie bestimmter Rundfunksender abgelegt. Nachdem die dabei benutzen Frequenzen und Betriebsparameter allerdings nicht in allen Fällen auch meinen Wunschvorstellungen entsprachen, habe ich mich speziell mit den Möglichkeiten zum Hinzufügen einzelner Speicherplätze und auch dem Austausch kompletter Memorysätze beschäftigt und möchte die dazu erforderlichen Vorgehensweisen hier etwas näher beschreiben. 

Belegung einzelner Speicherplätze ( aktualisiert )
Bevor ein freier Speicherplatz belegt werden kann, müssen die darin abzulegenden Werte von Frequenz, Mode ( wie z.B. AM, CW, USB usw ) und AGC-Modus ausgewählt werden. Dazu sind die über die Menu-Taste wählbaren Rubriken:  <Frequency>, <Mode> und <AGC Speed> nacheinander aufzurufen und gewünschte Eingaben bzw. Auswahlen dort jeweils vorzunehmen. ( Bei im gleichen Arbeitsgang folgenden Eingaben für weitere Speicherplätze und unveränderten Werten von Mode- und AGC-Parametern, müssen diese beiden Rubriken nicht erneut aufgerufen werden. ). Für Frequenzeingaben kann mithilfe der Drehgebertaste zwischen Anwahl einzelner Cursorpositionen oder darin einzugebender gewünschter Ziffernwerte gewechselt werden. Anschliessend ist die Rubrik <Store> anzuwählen und darin mithilfe des Drehimpulsgebers ein gewünschter freier, auf dem Display dabei jeweils mit <BLANK< bezeichneter Speicherplatz aufzurufen. Danach ist die Drehgebertaste kurz zu betätigen und der Geber soweit nach links zu drehen, bis der Display-Cursor-das  <B> von <BLANK> markiert. Nach erneutem Tastendruck kann der Geber dann zur Anwahl des ersten zu überschreibenden Zeichens der für den jeweiligen Speicherplatz gewünschten Kopfzeile benutzt werden. Anschliessend lassen sich durch wechselweise Nutzung von Drehgeber und zugehöriger Taste ( analog zur oben bereits für Frequenzeingaben beschriebenen Vorgehensweise ) auch alle weiteren für die Kopfzeile gewünschten Zeichen auswählen und positionieren. Nach Abschluss aller gewünschten Eingaben ist der Drehgeber bis zum Aufleuchten der OK-Anzeige nach rechts zu drehen. Wird anschliessend noch einmal kurz die mit ihm verbundene Taste betätigt, ist der Speichervorgang beendet.

Austausch des gesamten Speicherbereiches
Mein Dank hierfür gebührt zuerst einmal Joe G. aus dem Mikrocontrollerforum, weil er maßgeblich geholfen hat, dabei einige Anfangshürden zu überwinden. Zu Beginn sei gesagt, dass der Austausch nicht ganz trivial ist und zumindest bei mir anfänglich auch einiges an Zeit gekostet hat.
Zuerst einmal ging es um die Erstellung einer Liste mit jeweils mehreren Datensätzen, die dabei entsprechend der Anzahl gewünschter Speicherplätze ( Memories ) auf einzelne Zeilen zu verteilen waren. Als Beispiel hierfür mag der folgende Ausschnitt aus einer solchen Liste dienen, an dem man ihren generellen Aufbau bereits deutlich erkennen kann: 


+Title                  , Frequency, Band Start, Band End, Mode, AGC Speed, Frequency Step
All Bands            ,198000,0,30000000, AM, VERY SLOW, 1kHz
MW Broadcast   ,1413000,531000,1602000,  AM, VERY SLOW, 9kHz
LW Broadcast     ,198000,153000,279000,   AM, VERY SLOW, 1kHz
SW 49m              ,5900000,5900000,6200000,  AM, FAST, 5kHz
SW 41m              ,7200000,7200000,7450000,  AM, FAST, 5kHz
SW 31m              ,9400000,9400000,9900000,  AM, FAST, 5kHz
SW 25m              ,11600000,11600000,12100000, AM, SLOW, 5kHz
17m SSB             ,18111000,18111000,18168000, USB, SLOW, 100Hz
20m SSB             ,14101000,14101000,14350000, USB, SLOW, 100Hz
40m SSB             ,7060000,7060000,7200000,  LSB, SLOW, 100Hz
80m SSB             ,3620000,3620000,3800000,  LSB, SLOW, 100Hz
10m FT8             ,28074000,28070000,28190000, USB, SLOW, 100Hz
12m FT8             ,24915000,24195000,24929000, USB, SLOW, 100Hz
15m FT8             ,21074000,21070000,21149000, USB, SLOW, 100Hz

Am jeweiligen Zeilenbeginn enthält die Liste die später auf dem OLED-Display erscheinenden Kopftexte, wobei ihre Großdarstellung nur bei einer Länge von bis zu 8 Zeichen erfolgt und darüberhinaus ansonsten ein kleineres Textformat genutzt wird. Es folgen die für die jeweiligem Speicherplätze aufgerufenen Startfrequenzen und danach die Eckfrequenzen der später mit dem Drehimpulsgeber einstellbaren Frequenzbereiche. Es schließen sich die Namen der verwendeten Betriebsarten ( modes ), der gewählten AGC-Modes ( automatische Verstärkungssteuerung ) und der beim Abstimmen verwendeten Schrittweiten ( steps ) an. Mit Ausnahme der Kopftexte und der Frequenzen ( in Hz ) dürfen dabei nur Begriffe und Schreibweisen ( ! ) entsprechend der folgenden Aufstellung benutzt werden:

modes        : AM, AMS, LSB, USB, NFM, CW
agc_speeds : FAST, NORMAL, SLOW, VERY SLOW
steps          : 10Hz, 50Hz, 100Hz, 1kHz, 5kHz, 9kHz, 10kHz, 12.5kHz, 25kHz, 50kHz

Bei der Erstellung der Liste ist das Format penibel einzuhalten, da bereits geringe Abweichungen zu Fehlermeldungen führen, die eine Blockierung der späteren Hochladeprozedur bewirken. Bei dem verwendeten Datenformat mit seiner Kommatrennung zwischen den einzelnen Datenelementen handelt es sich um eine sog. CSV-Datei ( comma separated values ), wobei sich diese ( zumindest unter WINDOWS ) im vorliegenden Fall auch mit z.B. dem Standard-Tool "Notepad" erzeugen und als "normale" Textdatei mit der Endung "txt" speichern und später auch weiterverarbeiten liess.

Zum Hochladen der so erstellten und unsere Speicherdaten enthaltenden Textdatei in Richtung PICO verwendete ich des Programm "Thonny". Hierbei war sicherzustellen, dass dieses als lokales Python arbeitet und der serielle Mode aktiviert ist ( letzteres war bei mir nach Installation bereits automatisch der Fall ). Danach war unter Thonny als neue Datei "memory_upload.py" zu wählen. Dabei handelt es sich um eine von Joe G. freundlicherweise bereitgestelltes Tool. Es wurde von mir allerdings noch dahingehend modifiziert, dass jetzt auch noch eine Abspeicherung der im Mittelwellenbereich benutzten 9 KHz-Schrittweiten möglich ist. Nach Aufruf des Tools ist in seiner Programmzeile "6" der Filename unserer hochzuladenden Textdatei einzugeben. Dafür sollte sich diese Datei im gleichen Ordner befinden, in dem auch "memory_upload.py" abgelegt wurde.
Indem man danach "Ausführen" und "Das aktuelle Skript ausführen" anwählt, wird das eingeladene PY-Programm gestartet und auf dem PC-Schirm erscheint die folgende Meldung: 

!! This will overwrite the memory contents of the pi-pico Rx !!
Are you sure? Y/N

Diese Anfrage ist durch Tastatureingabe von "Y" und Betätigung der Eingabetaste zu beantworten und führt wiederum zur folgenden Meldung:

1. Connect USB cable to Pico Rx
2. Select *USB Memory Upload* menu item
3. When ready press any key

Bevor danach noch einmal die Eingabetaste gedrückt wird, muss spätestens jetzt allerdings bereits die USB-Verbindung zwischen PC und zum PICO hergestellt worden sein. Dazu ist die MENU-Taste des PICO-RX zu betätigen und durch kurze Linksdrehung mit dem Drehimpulsgeber die Displayanzeige "HW Config" aufzurufen. Nach erneuter Menutastenbetätigung sind die Anzeige "USB-Upload" und anschliessend nach weiterer Betätigung der gleichen Taste und Rechtsdrehung des Gebers die Anzeige von "Ready for Memory" zu wählen. Wenn hierbei durch evtl. Falschbedienungen stattdessen ggf. "Ready for Firmware" erscheint, ist der Eingabevorgang zu wiederholen.
Ansonsten ist der PICO jetzt bereit zum Einlesen unserer neuen Memorydaten und wir müssen sie lediglich noch mithilfe von Thonny ausgehend vom PC übertragen.
Wenn wir dazu jetzt die Eingabetaste des PC's drücken, sollte beispielsweise eine Meldung wie die Folgende erscheinen:

Available Ports
0 COM14: Serielles USB-Gerät (COM14) [USB VID:PID=CAFE:4011 SER=123456 LOCATION=1-1:x.2]
Select COM port >

Damit wird das Zustandekommen der Datenverbindung zwischen beiden Einheiten signalisiert und der hierbei benutzte COM-Port genannt. In unserem Fall geht es jetzt aber nur noch darum, mit Eingabe der am Beginn der mittleren Zeile erscheinenden Ziffer ( im Beispiel: 0 )  zu antworten und letztmalig die Eingabetaste zu drücken. Für einige Sekunden sollte daraufhin auch die in Richtung PICO erfolgende Übertragung mit den Daten unserer Speicherplätze verfolgbar sein. Ist dieser Vorgang beendet, wird das durch mehrfaches kurzes Blinken auch über das PICO-Display signalisiert. Zum erneuten Programmstart ist die Verbindung zur Versorgung des PICO's danach noch einmal kurz zu unterbrechen.


Anm: Die gemäß Text benutzten Dateien "memory_upload.py" und "memory_klaus.txt" sind via [12]  herunterladbar. Letztere enthält die Memorykanäle meiner Wahl mit verschiedensten Rundfunk- Amateurfunk- und kommerziellen Frequenzen.

PS: Es würde mich freuen zu hören, ob diese Beschreibung auch an anderen Stellen hilfreich war oder ob es ggf. auch Probleme gegeben hat. 
Linkliste

[1] https://101-things.readthedocs.io/en/latest/
[2] https://github.com/dawsonjon/PicoRX
[3] https://github.com/dawsonjon/PicoRX/releases
[4] https://github.com/dawsonjon/PicoRX/tree/master/user_manual
[5]
https://www.reichelt.de/de/de/shop/produkt/20pol_buchsenleiste_gerade_rm_2_54-6072

[6] https://www.reichelt.de/de/de/shop/produkt/drehimpulsegeber_24_impulse_24_rastungen_vertikal-73923
[7] https://www.reichelt.de/de/de/shop/produkt/kurzhubtaster_printmontage_1_schliesser_6_x_6_x_9_5_mm-360048

[8] https://dh4ym.de/
[9] https://www.conrad.de/de/p/microchip-technology-mcp6022-i-p-linear-ic-operationsverstaerker-mehrzweck-pdip-8-651498.htm
[10] http://kh-gps.de/PICO-RX_10.jpg
[11]
https://www.sv2czf.com/rfl200.html
[12] http://www.kh-gps.de/memory_klaus.zip

E-Mail contact via: