Skip to the content
4 layers100 × 100 mmSDR TRX, the printed circuit board in 3D

SDR-TRX is an experimental low-cost digital mode ham radio HF transceiver.

Size
100 × 100 mm
Copper layers
4
Thickness
1.6 mm
Parts
141
Nets
93
Pads
465
Tracks, vias
976, 101
Pours
7
Routed
Yes
KiCad
KiCad 8.0 (file 20240108)
Created
27 Mar 2024
Updated
6 Jan 2025

Overview

SDR TRX is an open-source printed circuit board by frohro, from the frohro/SDR-TRX repository on GitHub. It is a 4-layer board of 100 × 100 mm with 141 parts on 93 nets, routed with 976 tracks and 101 vias.

It is built around the TPS5430DDA, 74HC14 and CJ432, with the MS5351M, SS54 and X322525MSB4SI among its other parts. Its parts include 60 capacitors, 23 resistors, 11 ICs, 5 connectors and 4 inductors. It belongs with the radio and wireless boards and the RP2040 boards of this library.

Main components

6

README

README.md

SDR-TRX Digital Modes Transceiver, 2023-2024

Philosophy and Design Goals

This SDR is a prototype hardware platform to assist in developing a low-cost transceiver for digital modes (FT8, JSTcall, WSPR, CW, etc) that do not require linear amplification like SSB. This is designed for amateur radio enthusiasts who view their hobby as an avenue for experimenting, who like building things, and have an interest in HF radio propagation. The idea is to use a laptop and mainstream (actively maintained) existing software as the display and for the DSP needed. The hardware described here will fill out the rest of the transceiver. The assumption is that most hams will have a PC of some kind already, and this is an easy and cheap way to get on the air using the digital modes and their PC. I am also using this as a platform to demonstrate to my students how to do an electronic design project. It is hoped a transceiver based on this prototype platform will be inexpensive enough that third-world hams or those with few funds to spend on their hobby would find it attractive. JLCPCB built five of these for me for a little over $100. This project is built using designs previously published and would not be possible without them. The next section is meant to be a short review of some of the projects I found especially useful.

Previous Work

Especially Relevant Work
More General but Useful Work

The basic block diagram showing how this SDR interfaces with a PC is shown below. (Sorry the photos do not show up on GitHub's README here. To see them, download the progress notes here: https://github.com/frohro/SDR-TRX/blob/main/SDR-TRX-Readme-Progress-Notes.html and then open them in your browser, or get the iPython Progress Notes for a more up to date version and use JupyterLab or similar tool to read them.)

image.png

A clone of the Silicon Labs, Si5351a, the MS5351M is used as the local oscillator for the QSD down converter. The resultant audio frequency data is sent to the PC where Quisk demodulates it and sends it on to WSJT-X or Fldigi for decoding. The MS5351M's third oscillator is used to generate the digital signals on transmit. These signals are amplified by a class E circuit for the 20-meter band. Throughout the unit, there are features that provide stepping stones toward the final goal. For example, an output is provided to allow the sound data to be sent to the PC where a sound card on the PC converts the sound signal to digital samples. A Raspberry Pi Pico or Pico W is used on the SDR to control the MS5351M local oscillator and exciter, sample the receiver audio data using a PCM1808 ADC, and send the sampled data to the PC for processing. It also receives transmit data from the PC to allow transmission of the digital signals desired.

The Kicad project SDR-TRX contains the hardware documentation, including the schematic diagram and the printed circuit board. The software is still in development.

Transmitter

The MS5351M, a Si5351a clone, generates a digitally transmitted signal (and the harmonics you expect) on its third output. It is used to drive a set of CMOS inverters that in turn drive a MOSFET class E amplifier for 20 meters.

image.png

Class E Amplifier

The design started with the DL2MAN sandwich Class E amplifier for 20 meters. LTspice was employed to try and minimize the number of values of Extended Parts capacitors needed from JLCPCB while still maintaining a decent efficiency, power output, and harmonic attenuation. The value of the capacitor that seemed to be best was a 120 pF 100V 1% COG multilayer monolithic capacitor. We paralleled a bunch to make the amplifier we ended up with. It was chosen first for harmonic suppression, second for power output, and lastly for efficiency, with the constraint of using only one value of capacitor. The simulation has about 50 dB of harmonic attenuation, about a watt of output, and an efficiency of 75%. See the simulation below which is called Class E.asc in the Simulation folder.

This simulation shows the efficiency and output power.

image.png

This is the FFT of the antenna voltage. image.png

There is an I2C voltage and current monitor, the INA219A, that should allow measuring the DC power used by the class E amplifier so LTspice simulations can be verified for accuracy easily.

Receiver

The receiver used was the QSD Tayloe-type design using both inverting and inverting inputs. The inverting input has a lower input impedance and so is more of a current amplifier. The non-inverting amplifier has a high input impedance, and so acts as a voltage amplifier. The low-frequency gain of the inverting amplifier is $\frac{-R_f}{R_i}$ and the non-inverting amplifier has a gain of $1 + \frac{R_f}{R_i}$ so the CMRR is not as good as a fully differential amplifier, but we are just trying to amplify the signal not null out any common mode signal. We need to keep the DC to $\frac {4.5V}{2}$ and the $1$ term perfectly does this for us for the common mode DC voltage. There is a gain for the mixer of $1/4$ because the state space average of the switched voltage at the output of the mixer is a quarter of the input voltage. The gain is initially set to about 20 between the antenna and I or Q. These signals go into the soundcard or the onboard ADC, a PCM1808.

image.png

The MS5351M generates in-phase and quadrature signals for the SN74CBT3253 four-to-one analog switch mixer.

The sampling capacitors provide a low pass filter for the signal, and the cutoff frequency is $1/(2\pi R_f 4 C)$. The factor of four comes about because the sampling capacitors only get charged a quarter of the time, or equivalently, there are four of them to charge. The resistance, $R_i$, is the antenna impedance plus the 10 ohms on the inverting input. The feedback capacitors, $C_f$ add another pole of low pass filter to the signal. The cutoff frequency of these filters is $1/(2\pi R_f C_f)$.

There are two antenna inputs (BNC connectors), one on a transmit/receive switch that uses the Class E filter to try and filter the received signal, and another one that bypasses the filter that can be used when we want to listen to more than just 20 meters. It can also suffice to do real-world testing to see which is preferable.

An LDO linear regulator powered by the USB 5 volts or the external 12-volt power supply provides a 4.5 volt low noise power for the analog parts in the receiver. When the 12-volt input is used the USB power supply is disconnected by some Schottky diodes and two possible regulators drop the voltage to about 5.8 volts to run the rest of the radio except the class E PA stage. These are selected by an I/O line from the processor or by not populating the undesired supply. The two options are an SMPS buck regulator or a 7805 linear regulator that is not as efficient but should not produce switching noise. We will experiment to see which we like and choose that one.

There are several ground loop suppression strategies available. The filtered antenna uses a transformer. In other places, a jumper is provided to allow a single ground connection through the power supply.

Control Circuitry

The control of the SDR comes from the operator via the PC interface software (Quisk, for example), which sends the data to the SDR via USB UART or via WIFI. The MCU that we chose is the Raspberry Pi Pico or Pico W if WIFI is desired. It controls the MS5351M programmable oscillator using I2C and uses the INA219 to measure the current and voltage of the power amplifier. It also reads the ADC via I2S and transfers that data to the PC where Quisk or a similar program demodulates it. For the Pico, we are using C++ and the Earl E. Philhower, Arduido-Pico development library. The easiest way to get started is to use the Arduino IDE, but VScode with Github Copilot there are a lot more features. You have to read how to make the Arduino-Pico code work with VScode. The software needs a lot more attention, but that is the point of a software-defined radio.

image.png

PCB

The PCB has test points and uses components I found still available on JLCPCB. That accounts for why a mix or 0603 and 0805 components, and why there are a lot of 120pF and 4.7nF caps in parallel.

image.png

The cutout is for the WIFI antenna if a Pico W is used.

Parts

141
QtyValueFootprintReferences
22120pCapacitor_SMD:C_0603_1608MetricC17, C21, C22, C23, C24, C27, C28, C29, C41, C42, C43, C44, C45, C52, C53, C54 +6
150.1uCapacitor_SMD:C_0805_2012MetricC5, C7, C8, C9, C10, C14, C15, C19, C31, C33, C40, C46, C47, C48, C49
94.7nFCapacitor_SMD:C_0603_1608MetricC3, C4, C11, C12, C13, C16, C18, C36, C51
710uFCapacitor_SMD:C_0805_2012MetricC1, C2, C6, C20, C30, C32, C39
610Resistor_SMD:R_0805_2012MetricR10, R11, R12, R13, R20, R21
410kResistor_SMD:R_0805_2012MetricR4, R5, R6, R18
43.9kResistor_SMD:R_0805_2012MetricR7, R14, R15, R23
322uFCapacitor_SMD:C_0805_2012MetricC34, C37, C38
3SS54Diodes:DO-214AC-RobD1, D2, D3
2100uFCapacitor_SMD:C_1206_3216MetricC35, C50
21uFCapacitor_SMD:C_0805_2012MetricC25, C26
2200Resistor_SMD:R_0805_2012MetricR1, R2
24.7kResistor_SMD:R_0805_2012MetricR8, R9
2BNCConnector_Coaxial:BNC_Amphenol_B6252HB-NPP3G-50_HorizontalJ2, J3
2GNDTestPoint:TestPoint_Keystone_5000-5004_MiniatureTP9, TP13
2IRLML2060Package_TO_SOT_SMD:SOT-23Q2, Q3
1+12TestPoint:TestPoint_Keystone_5000-5004_MiniatureTP35
1+12VConnector_BarrelJack:BarrelJack_HorizontalJ6
1+5TestPoint:TestPoint_Keystone_5000-5004_MiniatureTP28
1+5.8TestPoint:TestPoint_Keystone_5000-5004_MiniatureTP34
1.19uH 5t/T37-6Inductor_THT:L_Toroid_Vertical_L10.0mm_W5.0mm_P5.08mmL2
1.48uH 12t/T-37-6Inductor_THT:L_Toroid_Vertical_L10.0mm_W5.0mm_P5.08mmL1
10TestPoint:TestPoint_Keystone_5000-5004_MiniatureTP6
10.03 shuntShunt:.03 ShuntR22
11Resistor_SMD:R_0805_2012MetricR3
115uH 7t/FT37-43Inductor_THT:L_Toroid_Vertical_L10.0mm_W5.0mm_P5.08mmL4
1180TestPoint:TestPoint_Keystone_5000-5004_MiniatureTP5
11:1 FT37-43Transformer_THT:Transformer_Toroid_Horizontal_D10.5mm_Amidon-T37T1
11kResistor_SMD:R_0805_2012MetricR17
12.67kResistor_SMD:R_0805_2012MetricR19
1200u 22t FT-37-43Inductor_THT:L_Toroid_Vertical_L10.0mm_W5.0mm_P5.08mmL3
1270TestPoint:TestPoint_Keystone_5000-5004_MiniatureTP7
1470kResistor_SMD:R_0805_2012MetricR16
174HC14Package_SO:SOIC-14_3.9x8.7mm_P1.27mmU8
190TestPoint:TestPoint_Keystone_5000-5004_MiniatureTP8
1Audio Out to SoundcardConnector_Audio:Jack_3.5mm_CUI_SJ1-3523N_HorizontalJ4
1CJ432Package_TO_SOT_SMD:SOT-23U11
1CM1AJumper:SolderJumper-2_P1.3mm_Bridged_RoundedPad1.0x1.5mmJP5
1CM1BJumper:SolderJumper-2_P1.3mm_Bridged_RoundedPad1.0x1.5mmJP6
1CM2AJumper:SolderJumper-2_P1.3mm_Bridged_RoundedPad1.0x1.5mmJP8
1CM2BJumper:SolderJumper-2_P1.3mm_Bridged_RoundedPad1.0x1.5mmJP7
1DTestPoint:TestPoint_Keystone_5000-5004_MiniatureTP15
1Debug ConnectorConnector_PinHeader_2.54mm:PinHeader_1x16_P2.54mm_VerticalJ1
1Diode needed?Jumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mmJP9
1GND_LP_SNDJumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mmJP1
1Groundloop RX_NSJumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mmJP2
1ITestPoint:TestPoint_Keystone_5000-5004_MiniatureTP10
1INA219AxDPackage_SO:SOIC-8_3.9x4.9mm_P1.27mmU6
1I_LOTestPoint:TestPoint_Keystone_5000-5004_MiniatureTP1
1LM2937xSPackage_TO_SOT_SMD:TO-263-3_TabPin2U7
1LM7805_TO220Package_TO_SOT_THT:TO-220-3_VerticalU4
1MS5351MPackage_SO:MSOP-10_3x3mm_P0.5mmU5
1OPA1612AxDPackage_SO:SOIC-8_3.9x4.9mm_P1.27mmU3
1OSCTestPoint:TestPoint_Keystone_5000-5004_MiniatureTP16
1PCM1808PWRPackage_SO:TSSOP-14_4.4x5mm_P0.65mmU1
1PicoMCU_RaspberryPi_and_Boards:RPi_Pico_SMD_THU9
1QTestPoint:TestPoint_Keystone_5000-5004_MiniatureTP11
1Q_LOTestPoint:TestPoint_Keystone_5000-5004_MiniatureTP2
1RESETButton_Switch_SMD:SW_Push_1P1T_XKB_TS-1187ASW2
1RF_OUTTestPoint:TestPoint_Keystone_5000-5004_MiniatureTP18
1RXTestPoint:TestPoint_Keystone_5000-5004_MiniatureTP17
1RX_INTestPoint:TestPoint_Keystone_5000-5004_MiniatureTP14
1RX_NSTestPoint:TestPoint_Keystone_5000-5004_MiniatureTP4
1SN74CBT3253CPWRPackage_SO:TSSOP-16_4.4x5mm_P0.65mmU2
1TPS5430DDAPackage_SO:TI_SO-PowerPAD-8_ThermalViasU10
1USB OnlyJumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mmJP12
1Use backup regulatorJumper:SolderJumper-2_P1.3mm_Bridged_RoundedPad1.0x1.5mmJP4
1VA/2TestPoint:TestPoint_Keystone_5000-5004_MiniatureTP12
1VDDATestPoint:TestPoint_Keystone_5000-5004_MiniatureTP27
1X322525MSB4SICrystal:Crystal_SMD_3225-4Pin_3.2x2.5mmY2

Similar boards

  • 2 layers40 × 54.2 mmTdr, the printed circuit board in 3D

    Tdr

    Jana-Marie/Mini-TDR

    Software defined TDR based on an STM32G474, MCU+USB interface work and are tested, TDR AFE is untested. Firmware needs to be updated.

    76 parts6
  • 2 layers112.2 × 143.1 mmSecond pcb, the printed circuit board in 3D

    Second pcb

    Tomeee02/PCB

    195 parts
  • 4 layers15 × 11 mmEMG INA331, the printed circuit board in 3D

    EMG INA331

    Aightech/CleverHand-hardware

    46 parts17GPL-3.0
  • 2 layers45 × 45 mmPEP204-differencijalni par, the printed circuit board in 3D

    PEP204-differencijalni par

    Elektronika-u-Petnici/PEP

    Set štampanih ploča namenjenih za učenje elektronike

    29 parts
  • 4 layers83.8 × 22.9 mmRemex wch, the printed circuit board in 3D

    Remex wch

    ArcaneNibble/remex-wch

    CH32V307 GigE development board

    102 parts10BSD
  • 4 layers107.1 × 32.4 mmAudio lab, the printed circuit board in 3D

    Audio lab

    AnterCreeper/shred

    electric guitar audio system

    132 partsGPL-2.0
  • 4 layers100 × 100 mmAv board cb, the printed circuit board in 3D

    Av board cb

    bryfur/tang-av-scaler

    PS2-class component video -> deinterlace, SMAA, scale -> 1080p60 HDMI on a Sipeed Tang Console 138K, with its AV board

    318 parts
  • 2 layers100 × 50 mmQsd with si5351 and rp2040, the printed circuit board in 3D

    Qsd with si5351 and rp2040

    ealex/qsd_with_si5351_and_rp2040

    Tayloe QSD with SI5351 clock and RP2040 as an USB and UI controller

    87 partsGPL-3.0

Questions

How big is the SDR TRX PCB?

It measures 100 × 100 mm and has 4 copper layers, 1.6 mm thick.

What parts does the SDR TRX use?

141 parts, built around the TPS5430DDA, 74HC14, CJ432 and MS5351M. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the SDR TRX KiCad files?

From the frohro/SDR-TRX repository on GitHub, at the commit this page was made from: the board is Hardware/SDR-TRX.kicad_pcb and its schematic Hardware/PA.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the SDR TRX design in my own project?

Its repository states no licence, so its author keeps all rights: ask frohro before reusing the design.