De RP2040 Minimalistische HF-Transceiver: Een goedkope en leuke sandbox voor de radioknutselaar

Het is een werk in uitvoering, maar het vormt een fantastisch canvas voor het knutselen. Ik ben benieuwd waar deze experimenten toe zullen leiden.

Door de dual-core processorkracht van de Raspberry Pi RP2040 te koppelen aan hooggeïntegreerde, goedkope breakout-boards (de Si5351 en Si4732), omzeilt deze opstelling complexe traditionele ontwerpen. Hierdoor kun je snel en goedkoop in de ether komen. Sluit een enkele USB-kabel aan op je pc of telefoon, start WSJT-X of FT8CN, en je bent klaar om te zenden!

Projectfilosofie: Het plezier van "goed genoeg" radio

Om duidelijk te zijn: dit project probeert niet te concurreren met fabrieksgebouwde precisie-instrumenten zoals de QMX of QDX. Dat zijn hooggeoptimaliseerde rigs met nauwgezet ontworpen meerstapsfilters en aangepaste transformatoren. Ik merkte de hoeveelheid zwaar werk die daarvoor nodig is toen ik worstelde met mijn FSK-routines om de FT8-audio naar de ether te sturen, om nog maar te zwijgen over de andere hindernissen om alles tot een harmonieus geheel te krijgen.

In plaats daarvan draait deze rig volledig om eigenaarschap van de hardware en experimenteren. Het is een open sandbox die bewijst dat je voor digitale modi niet direct een dure commerciële setup nodig hebt. Het is pure, old-school amateurradio-knutselarij, geactualiseerd voor de 21e eeuw. Voor wie een kant-en-klare en goedkope oplossing zoekt, raad ik sterk een QMX, QDX of G90 aan.

Kenmerken

  • Single-Cable Digitaal Station (UAC2 + CAT): Geen externe geluidskaarten of ingewikkelde interface-boxen. Eén enkele USB-verbinding regelt gelijktijdig zowel bidirectionele digitale audio (24-bit/48kHz) als Kenwood TS-480 CAT-controlecommando's. Werkt met WSJT-X, qFT8, FT8CN, FT8TW, etc.
  • Stand-Alone Beacon-modus: Test je antennes of propagatie volledig 'headless'. Stel de radio in als een onafhankelijke, volledig autonome FT8- of WSPR-beacon, zonder dat er een computer aan te pas komt.
  • "Type-to-Talk" CW-terminal: Sluit aan op elke standaard seriële terminal (zoals PuTTY, minicom of screen). Je kunt een fysieke automatische keyer gebruiken, of simpelweg tekst in de terminal typen om nauwkeurig getimede morsecode over de ether te verzenden.
  • Interactieve Seriële UI in QMX-stijl: Bevat een uitgebreide set terminalcommando's. Typ ? om te verkennen, banden te wijzigen, frequenties af te stemmen, de interne referentieklok te kalibreren tot op delen per miljard (ppb), of real-time systeemdiagnostiek te controleren.
  • Brede RX-dekking, gefocuste TX-kracht: Geniet van breed luisteren over het gehele multi-mode spectrum van de Si4732 (AM, FM en shortwave SSB-banden). Voor verzending bestuurt de firmware een eenvoudige Power Amplifier (PA) en Low-Pass Filter (LPF), geschakeld over twee doelbanden ( eenvoudig uitbreidbaar door meer GPIO's toe te wijzen).
  • Robuuste Dual-Core Architectuur: Core 1 richt zich volledig op foutloze, low-latency DMA analoge audiocapture. Core 0 beheert de graphics op het OLED-scherm, verwerkt de encoder-inputs, draait de beacon-sequencing en handelt het USB-verkeer af zonder vertraging.

Hardwareprofiel & Pin-mapping

Omdat deze setup gebruikmaakt van gangbare, readily available breakout-boards, is er geen aangepaste multi-layer PCB nodig. De modules kunnen direct worden bedraad volgens de volgende pin-map:

PinFunctie / DoelBeschrijving
GP0I2C0 SDAGedeelde datalijn voor Si5351 (VFO), Si4732 (RX) en SSD1306 (OLED)
GP1I2C0 SCLGedeelde kloklijn op 400 kHz
GP6Si4732 RESETActief LAAG hardware reset-lijn om de receiver-board te initialiseren
GP7Rotary Encoder AQuadratuur Tuning Input
GP8Rotary Encoder BQuadratuur Tuning Input
GP9Encoder ButtonPush-button menu select (Actief LAAG)
GP10RX/TX RelayState sequencer controllijn (HOOG = Zenden, LAAG = Ontvangen)
GP11CW Straight KeyExterne Morse-code keyer input (Actief LAAG)
GP12Sidetone OutputPWM-output die een 700 Hz referentie-audiosignaal genereert
GP14BPF/LPF Band 1Low-Pass Filter selectie voor de eerste hoofdgebruiksband
GP15BPF/LPF Band 2Low-Pass Filter selectie voor de tweede hoofdgebruiksband
GP16WS2812 status LEDNeoPixel indicator (kleuren veranderen dynamisch op basis van RX/TX status)
GP25Onboard LEDSysteemstatus indicator (niet gebruikt)
GP26ADC Channel 0Analoge audio-input gesampled van de Si4732 receiver

GP26 Audio Input Bias-subcircuit

Om de ruwe audio-output van de ontvanger correct op te vangen via de single-ended RP2040 ADC, moet het signaal worden verschoven (offset) om aan te sluiten bij het centrum van het 3.3V ADC-venster. Het exacte bedradingsschema is te vinden in het document lb7ug_RP2040XCVR.pdf, waarin wordt uitgelegd hoe de Si4732 audio-out via een 10µF condensator direct naar GP26 wordt geleid.

Noot voor de knutselaar: Het dubbele 10kΩ weerstand-divider netwerk verschuift het DC-offsetpunt direct naar 1,65V (half-rail bias) om negatieve spanningsclipping te voorkomen.

Schema's

De schema's zijn basic; de hardware is gebaseerd op diverse soortgelijke projecten. Voor inspiratie voor een verbeterd ontwerp kan men kijken naar de Si4732 receiver (rp2040-rdx), Si5351 schema's (wb2cba, usdx etc.) en LARCSET, DDX of QDX. De focus ligt primair op de software om met goedkope componenten resultaat te boeken. Het kan gebouwd worden met basismodules.

De hardware omvat onder andere:

  • RP2040 + Si5351
  • Si4732 + LPF
  • PA gebaseerd op IRF510 single-ended

Bekende beperkingen & Compromissen

Het weglaten van complexe meerstaps-circuits maakt deze radio zeer goedkoop en leuk om te bouwen, maar introduceert enkele praktische grenzen:

  • Strikte beperkingen voor harmonische onderdrukking: Omdat er alleen hardware Low-Pass Filters (LPFs) zijn voor twee banden, mag er alleen op deze twee aangewezen banden worden verzonden. Verzenden buiten deze banden zal ongefilterde vierkante-golf harmonischen van de Si5351 veroorzaken, wat in strijd kan zijn met lokale RF-regelgeving.
  • Het antenne-compromis: De Si4732 receiver-chip kan alles ontvangen van AM/FM-omroepstations tot shortwave. Echter, een long-wire of HF-dipool die goed werkt voor shortwave, zal de ontvanger gemakkelijk oversturen bij sterke lokale FM-stations. Omgekeerd zal een kleine FM-antenne zwakke HF-signalen niet goed opvangen.
  • Single-Ended Audio Ruis: Omdat de audiolijn van de Si4732 naar de RP2040 ADC (GP26) single-ended is in plaats van differentieel, is deze gevoelig voor digitale schakelruis van het OLED-scherm en de RP2040 kloklijnen. Het kort houden en goed aarden van de audiolijnen is cruciaal.
  • Geen SSB Phone (Spraak): Dit minimalistische ontwerp bevat geen PWM-envelope structuur of Hilbert-transform arrays. Het kan geen SSB-spraak (LSB/USB) verzenden. Het is strikt een digitale modus (FSK) en CW (morsecode) zender.
  • Geen dynamische RX-filtering: De Si4732 verzorgt het zware filterwerk, maar de interne bandbreedtefilters hebben vaste stapgroottes. In tegenstelling tot een volledige SDR-transceiver met aangepaste DSP-softwarefilters, kun je de passband van de ontvanger niet oneindig versmallen om een storend naburig station weg te filteren.

De Hardware Sandbox: Upgraden & Uitbreiden

De kracht van deze architectuur is de modulaire flexibiliteit. Omdat de RP2040 en de Si5351 fungeren als zelfstandige digitale bouwstenen, kunnen ze in bijna elk klassiek analoog radio-ontwerp worden geplaatst om dit direct te moderniseren.

1. Retrofitting van klassieke rigs (BITX, etc.)

Je kunt het controlesysteem van deze radio eenvoudig integreren in legendarische analoge ontwerpen zoals de BITX (een bidirectionele analoge SSB-transceiver):

  • Directe VFO-upgrade: Vervang oude, driftende analoge VFO's of starre kristaloscillatoren. Verbind de CLKO van de Si5351 direct met de mixer-trap van een BITX voor rock-solid digitale tuning en band-switching.
  • Direct Audio Tapping: In plaats van de RP2040 ADC naar de Si4732 breakout te leiden, kun je de analoge audio aftappen direct na de product detector/pre-amplifier trap van je analoge rig. Leid dit via het 1,65V bias-netwerk naar GP26, zodat je computer digitale modi direct vanuit een vintage circuit kan decoderen.
  • Naadloze RX/TX Sequencing: Gebruik de PIN_RXTX lijn (GP10) om de push-to-talk (PTT) lijnen of bias-circuits op een analoge printplaat aan te sturen.

2. Leveling Up: Toevoegen van een externe Codec (WM8731/SGTL5000)

Om de beperkingen van de ingebouwde 12-bit ADC te overstijgen en SSB-spraakverzending mogelijk te maken, kun je het eenvoudige interne analoge pad vervangen door een dedicated externe I2S audio-codec zoals de WM8731:

  • Echte SSB-spraakverzending: Een codec biedt zuivere, hoge resolutie audio-input en output (typisch 24-bit). Hiermee kun je een correcte digitale Phase Shift-netwerk (Hilbert Transform) implementeren in de RP2040-code. Je kunt je microfoon-audio splitsen in exacte 90° I- en Q-kanalen en deze via de codec moduleren op de Si5351 of via qsd/qse type fst3253.
  • Superieur dynamisch bereik: Ingebouwde microcontroller-ADC's zitten op dezelfde silicon die als hoge-snelheid digitale processors, waardoor ze gevoelig zijn voor interne ruis. Een dedicated externe codec zorgt voor een enorme sprong in dynamisch bereik, waardoor de ruisvloer drastisch daalt en zwakke signalen beter uit de ruis komen.
  • Hardware Filtering & Pre-amps: De meeste van deze goedkope codecs hebben geïntegreerde low-noise microfoon-voorversterkers en configureerbare hardwarefilters, wat het bouwen van externe operationele-versterker circuits overbodig maakt.

Code uitbreiden

Wil je een derde of vierde band? Sluit simpelweg een extra goedkoop relais of transistor-switch aan op een open GPIO-pin, map deze in het configuratiebestand config.h en voeg een paar regels code toe om deze te triggeren. Je hebt directe controle over de frequentiegeneratie, de UI-display layout en de audio-capture routines.

Erkenningen & Credits

Dit project is gebouwd op de fundamenten van anderen. De RP2040 Minimalist HF Transceiver is een convergentie van briljante open-source hardware-ontwerpen, geoptimaliseerde firmware-architecturen en de geest van amateurradio-experimenten. Speciale dank aan:

  • Hans Summers (QRP Labs): Voor de inspiratie voor de QMX/QDX-architecturale aanpak en de interactieve seriële UI.
  • Dhiru Kholia: Voor waardevolle bijdragen aan open-source radio-firmware en fundamentele engineering-concepten.
  • Angel: Voor de robuuste, concurrente USB CDC + UAC2 dual-core audio- en CAT-control stack.
  • WB2CBA & de ADX Community: Voor het pionieren van ultra-simpele, goedkope digitale modus transceivers.
  • PU2CLR (Ricardo Lima Caratti): Voor de ontwikkeling van het robuuste Arduino/C++ library ecosysteem voor de Si473X serie.
  • Ashhar Farhan (VU2ESE) & de BITX Community: Voor de legendarische bidirectionele analoge ontwerpen.

Core DSP & Frequentietracking

Een speciale vermelding gaat naar de open-source bijdragers achter de high-performance tracking routines (oorspronkelijk in dsp/goertzel.c). De huidige architectuur is een meesterwerk van minimalistische engineering:

Huidige architectuur: Een hooggeoptimaliseerde, continue zero-crossing FSK-frequentievolger voor digitale modi (FT8/WSPR). Deze maakt gebruik van sub-sample interpolatie met een unsigned 32-bit integer difference tracker om precisieverlies (float32) op lange termijn te voorkomen. Het bevat een discrete stap-detectie en multi-cycle bevestigingsfilter om vervaging van symboolgrenzen te voorkomen, gekoppeld aan double-precision VFO blending en snelle fractionele-divider tuning (si5351setfreq_fast) om fase-glitch-vrije spectrale puurheid te garanderen.

Bijlagen en technische opmerkingen

De beschikbare prototype-bestanden (Schematic PDF, Gerber Files, Interactive BOM, Firmware en Source code) zijn in een vroeg stadium (alpha). Gebruikers worden geadviseerd hulp te zoeken bij clubs of ervaren radio-amateurs (Elmers) bij de implementatie.

Lijst met benodigde wijzigingen in het schema/notities:

  • Voeg een 10nF condensator toe aan de clk0 output naar de driver IC (UCC27517DBVR).
  • Controleer of de I2C-lijntraces alle chips correct bereiken.
  • De si4732 reset-lijn is cruciaal voor het I2C-verkeer.
  • Verwijder het OLED-scherm en de encoder als deze niet worden gebruikt; deze genereren ruis en glitches in de audiostroom omdat het multicore-gebruik en de I2C OLED-flush vertragingen nog niet zijn geoptimaliseerd.
  • Controleer dubbel de rxtx, band-controle en cw GPIO-lijnen.
  • Voeg een key-shaping circuit toe aan de PA (indien CW wordt gebruikt).
  • Het RX-pad heeft enkele lage PF-condensatoren; deze kunnen worden gewijzigd om de ontvangst te verbeteren.
  • Het RX/TX antenne-schakelpad gebruikt een bs170, wat prima is voor laag vermogen, maar voor hoger vermogen is een relais of alternatieve oplossing beter.
  • De IRF510 PA is eenvoudig te voorzien van een koellichaam (efficiëntie 52-54%), terwijl de bs170 beter is in class E-modus (60-70%) met betere efficiëntie op 14MHz, maar gevoeliger is voor hitteproblemen bij slechte SWR-matching (TO-92 behuizing).