Skip to the content
4 layers100 × 100 mmENGR357-receiverDesign, the printed circuit board in 3D

ENGR357-receiverDesign

jaronbrown/SDR_Receiver_Design1

The microPython module to control the SI5351, si5351.py, was provided by https://github.com/thaaraak/Tinypico-Radio/tree/master.

Size
100 × 100 mm
Copper layers
4
Thickness
1.61 mm
Parts
132
Nets
101
Pads
387
Tracks, vias
718, 156
Pours
7
Routed
Yes
KiCad
KiCad 7 (file 20221018)
Created
2 Apr 2024
Updated
7 Jun 2024

Overview

ENGR357-receiverDesign is an open-source printed circuit board by jaronbrown, from the jaronbrown/SDR_Receiver_Design repository on GitHub. It is a 4-layer board of 100 × 100 mm with 132 parts on 101 nets, routed with 718 tracks and 156 vias.

It is built around the ADA4805-2ARMZ, SN74CBT3253D and SI5351A-B-GT, with the TPS7A8001DRBR among its other parts. Its parts include 41 capacitors, 26 resistors, 9 ICs, 9 inductors and 2 diodes. It belongs with the RP2040 boards of this library.

Main components

4

README

README.md

Walla Walla University ENGR357 SDR Design Winter 2024

Goals

  • Continuous Coverage from 5-30 MHz and AM coverage (540-1700 kHz)
  • Tune to AM by mixing up to 10.7 MHz then using the Tayloe detector to down-sample to 0-48 kHz

Design

  • Incorporates a two stage mixing approach in order to achieve wider bandwidth with Si5351 quadrature limitations
  • Utilizes a Tayloe detector for down-conversion of RF signals.
  • Optional second mixer to bring up AM frequencies (540-1700 kHz) so they can be sampled by Tayloe detector.
  • Input Stage: Automatic Band Pass Filters with optional AM mixer. Includes antenna ground isolation.
  • Output Stage: Quadrature signals amplified with 84 kHz low pass filter. Sampled directly with on-board ADC (48 kHz Nyquist) or output over 3.5mm audio jack. The larger LPF passband (84 kHz) minimizes ripple.
  • Raspberry Pi Pico W Controller with LDO (TPS7A8001DRBR) for cleaner +4V5 (derived from +5V USB).
  • H/W Controlled BPF multiplexors, i2c controlled 3-output VLO (Si5351), and i2s compatible ADC (PCM1808PWR).

ltspice Simulations

Various core elements of the design were simulated to test their functionality. Notable simulations include a Monte Carlo simulation of the three bandpass filters (frequency response shown below) to determine effects of component tolerances and a simulation of the Tayloe detector, along with its "differential" amplifiers. The Tayloe detector input is a 1 $\mu V$ sinewave and the output (of the I channel) can be seen in the graph below. In the actual implementation, there is a 1 $\mu F$ blocking capacitor before the ADC and audio jack, but this is omitted for sake of simulation. This would remove the 2.25V DC offset.

Bandpass Filters Screenshot

Tayloe Detector Screenshot

Fabrication Information

The boards tested were fabricated by JLCPCB. They also installed all the surface-mount components--LCSC part numbers included in schematic. Total fabrication cost (including building the boards) from JLCPCB was about $120 USD for 5 boards. The build plan was followed for assembling the boards and testing their functionality. The specifications for the inductors and transformer used, can be found in Inductors.

Software

Python

The software for the Raspberry Pi Pico W consists of three microPython files: main.py, radio.py, and si5351.py. All three files should be loaded onto the Pico.

The microPython module to control the SI5351, si5351.py, was provided by https://github.com/thaaraak/Tinypico-Radio/tree/master. Some minor changes were made to the outputs_enabled setter in order to allow individual clock enabling/disabling--used for the AM mixer local oscillator.

The radio control is handled by radio.py which after initializing a Radio, run() can be used to parse Quisk commands and automatically control bandpass filter selection (based on frequency) and frequency. The bandpass filters can also be controlled manually by entering "BAND,AUTO" to allow for manual testing and use of the built in bypass capacitor. Frequencies from 4-32 MHz are handled via the HF HIGH/LOW BPFs with a single stage of mixing. Frequencies from 0.4-4 MHz are handled via AM mixing (due to the SI5351 not maintaining quadrature below 4 MHz). When switching from AM bands back to HF the SI5351 control is reinitialized to prevent unpredictable clock drift.

Currently there is no support for WiFi control/data transmit, nor is there support for the on-board ADC. This would require migrating to C for DMA. This is coming soon TM.

Quisk

This SDR is designed to be used with Quisk (https://james.ahlstrom.name/quisk/). Some basic Quisk device configs are provided in quisk. Currently there is no custom widget support for bandpass selection and AM offsets (for tuning away from center).

An optional Dockerfile and sample start script is provided to run Quisk via Docker--though this requires proper /dev/ttyACM0 permissions, pulseaudio, and xserver. If running on Windows via WSL the aforementioned packages should be installed as well as utilizing usbipd-win (https://james.ahlstrom.name/quisk/) to passthrough the Pico connection.

Case

stl files for a 3d printable case are included. Note that because the board does not have any mounting holes the case is a friction fit--consider adjusting tolerances when printing.

Testing

Testing revealed the radio functions over the planned 10-30 MHz as well as the AM commercial frequencies (using the second mixer), though some signal overlap is apparent for AM. The bandpass filters were characterized using a signal generator and a spectrum analyzer.

AM Bandpass Filter Characterization

Screenshot

Low HF Bandpass Filter Characterization

Screenshot

High HF Bandpass Filter Characterization

Screenshot

KiCAD Schematic

Complete Block Diagram

Screenshot

Automatic Band Pass Filter

Screenshot

AM Handling: Filters and Upconversion

Screenshot

3rd Order Butterworth BPF 5-18 MHz

Screenshot

3rd Order Butterworth BPF 13-32.7 MHz

Screenshot

IQ Tayloe Detector & 84kHz IF filter

Screenshot

SDR Controller

Screenshot

Parts

132
QtyValueFootprintReferences
35TestPointTestPoint:TestPoint_THTPad_D1.0mm_Drill0.5mmPOST_XSTAL, PRE_XSTAL, TP1, TP2, TP10, TP11, TP12, TP13, TP14, TP15, TP16, TP19, TP20, TP21, TP22, TP23 +19
140.1uCapacitor_SMD:C_0805_2012MetricC1, C3, C5, C6, C9, C11, C13, C14, C15, C17, C18, C29, C38, C39
110Resistor_SMD:R_0805_2012MetricR3, R4, R5, R6, R11, R12, R13, R15, R16, R17, R18
84.7nCapacitor_SMD:C_0603_1608MetricC19, C20, C21, C22, C23, C24, C25, C26
510kResistor_SMD:R_0805_2012MetricR1, R2, R10, R14, R21
410uCapacitor_SMD:C_0805_2012MetricC2, C4, C7, C16
44.7kResistor_SMD:R_0805_2012MetricR7, R8, R24, R25
4SN74CBT3253SN74CBT3253CPWR:SOP65P640X120-16NU5, U6, U7, U9
3470pCapacitor_SMD:C_0805_2012MetricC32, C33, C34
2150pCapacitor_SMD:C_0603_1608MetricC40, C42
21uCapacitor_SMD:C_0805_2012MetricC30, C31
22.7uInductor_THT:L_Toroid_Vertical_L10.0mm_W5.0mm_P5.08mmL4, L6
2270pCapacitor_SMD:C_0402_1005MetricC27, C28
2390nInductor_THT:L_Toroid_Vertical_L10.0mm_W5.0mm_P5.08mmL7, L9
247Resistor_SMD:R_0805_2012MetricR22, R26
25.1kResistor_SMD:R_0805_2012MetricR19, R20
26.8nCapacitor_SMD:C_0603_1608MetricC35, C37
2620nInductor_THT:L_Toroid_Vertical_L10.0mm_W5.0mm_P5.08mmL1, L3
2ADA4805-2ARMZPackage_SO:MSOP-8_3x3mm_P0.65mmU8, U10
2B5819W SLDiode_SMD:D_SOD-123D1, D2
2Jumper_2_BridgedConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJP1, JP2
10.01uCapacitor_SMD:C_0603_1608MetricC10
1180nInductor_THT:L_Toroid_Vertical_L10.0mm_W5.0mm_P5.08mmL8
12.2nCapacitor_SMD:C_0805_2012MetricC36
127Mhz 10pFCrystal:Crystal_SMD_3225-4Pin_3.2x2.5mmY1
1330pCapacitor_SMD:C_0603_1608MetricC41
14.7uCapacitor_SMD:C_0603_1608MetricC12
147kResistor_SMD:R_0805_2012MetricR9
151Resistor_SMD:R_0805_2012MetricR23
1560nInductor_THT:L_Toroid_Vertical_L10.0mm_W5.0mm_P5.08mmL2
19.1uInductor_THT:L_Toroid_Vertical_L10.0mm_W5.0mm_P5.08mmL5
1AntConnector_Coaxial:BNC_Amphenol_B6252HB-NPP3G-50_HorizontalJ1
1AudioJack3Connector_Audio:Jack_3.5mm_CUI_SJ1-3523N_HorizontalAudio Out
1ECS-10.7-30ACrystal:Crystal_HC49-U-3Pin_VerticalY2
1GND_IsolationJumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mmJP3
1PCM1808PWRPCM1808:PW14U1
1PicoWRPi_Pico:RPi_PicoW_SMD_THRPi Pico
1SW_PushButton_Switch_SMD:SW_Push_1P1T_XKB_TS-1187ASW1
1Si5351A-B-GTPackage_SO:MSOP-10_3x3mm_P0.5mmU4
1TPS7A8001DRBRTPS7A8001DRBR:DRB0008A-MFGU3
1Transformer_1P_1S_00Transformer_THT:Transformer_Toroid_Horizontal_D10.5mm_Amidon-T37T1

Similar boards

  • 4 layers84 × 62 mmQuad AMBE3000, the printed circuit board in 3D

    Quad AMBE3000

    m1geo/Quad-AMBE3000

    A PCB for four DVSI AMBE-3000R Vocoders for use with WebSDRs/Audio transcoding

    200 parts19MIT
  • 2 layers81.3 × 33.7 mmSDRReciever, the printed circuit board in 3D

    SDRReciever

    Dizzerin/Software-Defined-Radio

    Quadrature sampling down converter software defined radio

    67 parts24
  • 2 layers100 × 100 mmSDRReciever, the printed circuit board in 3D

    SDRReciever

    KonradMcClure/SDR_Receiver

    Software Defined Radio Receiver designed together with Caleb Froelich (https://github.com/froeca) for our Walla Walla University Electronics II project.

    78 parts7
  • 2 layers74 × 72.1 mmENGR357 Project v1.1, the printed circuit board in 3D

    ENGR357 Project v1.1

    pricna/Software-Defined-Radio-Receiver

    Software Defined Radio receiver created for Engineering Electronics II at Walla Walla University.

    80 parts3MPL-2.0
  • 2 layers77.6 × 37.8 mmR820t2 breakout, the printed circuit board in 3D

    R820t2 breakout

    gmtii/Prototipo-R820T2

    Proyecto 'breakout' de un R820T2 más un QSD para obtener salida IQ directamente a la tarjeta de sonido del PC. La idea es experimentar con el R820T2 y un QSD cuya frecuencia de refencia es 4X a la de demodulación…

    99 parts2MIT
  • 4 layers85 × 56 mmRadiohead, the printed circuit board in 3D

    Radiohead

    mpvano/radiohat2

    Software and Documentation for the Radiohat2 Project

    175 parts2MIT
  • 2 layers99.6 × 99.7 mmComplete Schematic V5, the printed circuit board in 3D

    Complete Schematic V5

    JoshuaMularczyk/Software_Defined_Radio_Receiver

    This project was taken on with the goal to create a Software Defined Radio (SDR) in coolaboration with my partner Christian Williams.

    74 parts1MIT

Questions

How big is the ENGR357-receiverDesign PCB?

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

What parts does the ENGR357-receiverDesign use?

132 parts, built around the ADA4805-2ARMZ, SN74CBT3253D, SI5351A-B-GT and TPS7A8001DRBR. 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 ENGR357-receiverDesign KiCad files?

From the jaronbrown/SDR_Receiver_Design repository on GitHub, at the commit this page was made from: the board is kicad/ENGR357-receiverDesign.kicad_pcb and its schematic kicad/AM.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the ENGR357-receiverDesign design in my own project?

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