Skip to the content
4 layers70 × 100 mmTxrx-1, the printed circuit board in 3D

This is a homebrew SDR rig with no dependency on external computers/soundcards/etc.

Size
70 × 100 mm
Copper layers
4
Thickness
1.6 mm
Parts
98
Nets
62
Pads
271
Tracks, vias
532, 124
Pours
3
Routed
Yes
KiCad
KiCad 8.0 (file 20240108)
Created
3 Jan 2025
Updated
2 Jun 2025

Overview

Txrx-1 is an open-source printed circuit board by brucemack, from the brucemack/sdr2 repository on GitHub, published under the GPL-3.0 licence. It is a 4-layer board of 70 × 100 mm with 98 parts on 62 nets, routed with 532 tracks and 124 vias.

It is built around the LM4562NA, SN74CBT3253D and SI5351A-B-GT, with the CX3225SB25000D0FFFCC among its other parts. Its parts include 41 capacitors, 37 resistors, 7 ICs, 4 connectors and 1 crystal.

Main components

4

README

README.md

Overview

This is a homebrew SDR rig with no dependency on external computers/soundcards/etc.

System Picture

Build/Debug Commands

One-time setup of make process:

text
    git submodule update --init
    mkdir build
    cd build
    cmake -DPICO_BOARD=pico2 ..

Command used to flash code to board:

text
    ~/git/openocd/src/openocd -s ~/git/openocd/tcl -f interface/cmsis-dap.cfg -f target/rp2350.cfg -c "adapter speed 5000" -c "rp2350.dap.core1 cortex_m reset_config sysresetreq" -c "program main.elf verify reset exit"

Pico 2 Pinout Notes

text
GP0  - (Reserved for UART0 TX)
GP1  - (Reserved for UART0 RX)

GP2  - 
GP3  - 
GP4  - I2S SCK out to PCM1804 ADC and PCM5100 DAC
GP5  - RST out to PCM1804 ADC

GP6  - I2S DIN in from PC1804 ADC
GP7  - I2S BCK out to PC1804 ADC
GP8  - I2S LRCK out to PC1804 ADC
GP9  - I2S DOUT out to PCM5100 DAC

GP10 - I2S BCK out to PCM5100 DAC
GP11 - I2S LRCK out to PCM5100 DAC
GP12 - User button input 0
GP13 - User button input 1
GP14 - PTT input 
GP15 - 
GP16 - I2C0 SDA for Si5351 (Addr 0x60)
GP17 - I2C0 SCL for Si5351 (Addr 0x60)

GP18 - I2C1 SDA for display and IO expander
GP19 - I2C1 SCL for display and IO expander

IO Expander Notes

text
P0 - User indicator LED output
P1 - Audio amplifier enable (Low=enable output, high=shutdown amplifier)
P2 - ADC Input Select (Low=Microphone preamp out, High=QSD channel out)
P3 - TX band select 0
P4 - TX band select 1
P5 - RX band select 0
P6 - RX band select 1
P7 - Transmit PA enable (active low)

Wiring Notes

  • TXRX board I_PLUS (J4:1) -> Audio Breakout INL_PLUS (J4:1)
  • TXRX board I_MINUS (J4:2) -> Audio Breakout INL_MINUS (J4:2)
  • TXRX board Q_PLUS (J4:3) -> Audio Breakout INR_PLUS (J4:4)
  • TXRX board Q_MINUS (J4:5) -> Audio Breakout INR_MINUS (J4:3)
  • Microphone input is connected to the INL_PLUS/INL_MINUS pins on the audio breakout board.

Hardware Notes

Instrumentation Amplifiers on Receive Board

See Horowitz and Hill (3rd ed, section 5.16, figure 5.88) for a description of the instrumentation amplifier configuration used on the receive board. Gain for this amplifier is controlled determined by 1 + 2 Rf / Rg. Notice that the feedback path is tapped after a 47 ohm resistor to set the output impedance of the stage.

Assuming Rf is 520, Rg is 100, the theoretical gain is about 11.

Random

dBm = 30 + 20 * log(Vrms/sqrt(Z0))

Research

Consider the PCM1863 ADC?

Consider the TS5A4624 analog switch (logic high = 2.4V w/ 5V supply)

Consider PCF8574A IO expander: https://www.ti.com/lit/ds/symlink/pcf8574a.pdf?ts=1728869550852&ref_url=https%253A%252F%252Fwww.mouser.com%252F

RF Transistor: https://www.nxp.com/docs/en/data-sheet/BFU590G.pdf

References

PCM1804 Datasheet PCM5100 Datasheet

Steps to Build CMSIS-DSP

The library gets built once in a parallel project:

text
    cd ~/pico
    mkdir CMSISDSP
    cd CMSISDSP
    git clone https://github.com/ARM-software/CMSIS-DSP.git        
    git clone https://github.com/ARM-software/CMSIS_6.git
    cp $PICO_SDK_PATH/external/pico_sdk_import.cmake .

Then setup the CMakeLists.txt shown below and build:

text
    mkdir build
    cd build
    # IMPORTANT! pico2 build enables the generation of FPU instructions
    cmake -DPICO_BOARD=pico2 ..
    make -j4

What the CMakeLists.txt looks like:

text
cmake_minimum_required (VERSION 3.6)

# Pull in Pico SDK (must be before project)
include(pico_sdk_import.cmake) 

set(HOME $ENV{HOME})
set(CMSISDSP ${HOME}/pico/CMSISDSP/CMSIS-DSP)
set(CMSISCORE ${HOME}/pico/CMSISDSP/CMSIS_6/CMSIS/Core)

# Define the project
project (cmsis-dsp VERSION 0.1)

# Initialise the Pico SDK
pico_sdk_init()

add_subdirectory(${CMSISDSP}/Source bin_dsp)

target_compile_options(CMSISDSP PUBLIC 
    -Wsign-compare
    -Wdouble-promotion
    -Ofast -ffast-math
    -DNDEBUG
    -Wall -Wextra  -Werror
    -fshort-enums 
    #-fshort-wchar
)

Example of referencing the built CMSIS-DSP library in a client project:

text
set(HOME $ENV{HOME})
target_include_directories(main PRIVATE
  ${HOME}/pico/CMSISDSP/CMSIS-DSP/Include
  ${HOME}/pico/CMSISDSP/CMSIS_6/CMSIS/Core/Include
)
target_link_libraries(main
  pico_stdlib
  ${HOME}/pico/CMSISDSP/build/bin_dsp/libCMSISDSP.a
)

License

SDR2 Rig - Copyright (C) Bruce MacKinnon KC1FSZ, 2025

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.

FOR AMATEUR RADIO USE ONLY. NOT FOR COMMERCIAL USE WITHOUT PERMISSION.

Parts

98
QtyValueFootprintReferences
1210kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR1, R2, R8, R9, R43, R44, R45, R46, R47, R48, R49, R50
90.1uFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC42, C45, C46, C49, C50, C53, C54, C63, C65
710uFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC47, C48, C55, C56, C57, C58, C64
747Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR5, R6, R7, R17, R18, R19, R20
650Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR51, R52, R53, R54, R55, R56
40.022uFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC59, C60, C61, C62
42.2kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR41, R42, R57, R58
433nFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC3, C4, C5, C6
44.7nCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC13, C14, C15, C16
4470Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR13, R14, R15, R16
4LM4562Package_SO:SOIC-8_3.9x4.9mm_P1.27mmU2, U3, U41, U42
4MountingHoleMountingHole:MountingHole_3.5mmH1, H2, H3, H4
30.1uCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC2, C19, C20
20Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR70, R71
20.47uFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC7, C8
2100Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR11, R12
21000pFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC43, C44
2100pFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC51, C52
210nCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC17, C18
2SN74CBT3253Package_SO:SOIC-16_3.9x9.9mm_P1.27mmU1, U43
2TestPointTestPoint:TestPoint_Pad_1.5x1.5mmTP1, TP2
2Trifilar FT37-43bruce-footprints:FT37-43 TrifilarTR1, TR41
12.2uCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC1
14.7uFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC41
1CX3225SB25000D0FFFCCbruce-footprints:OSCCC320X250X60NY1
1Conn_01x02Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ3
1Conn_01x04Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ1
1Conn_01x05Connector_PinHeader_2.54mm:PinHeader_1x05_P2.54mm_VerticalJ2
1Conn_01x08Connector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_VerticalJ4
1Si5351A-B-GTPackage_SO:MSOP-10_3x3mm_P0.5mmU4

More from brucemack/sdr2

6
  • 2 layers68 × 41 mmTx-1, the printed circuit board in 3D

    Tx-1

    brucemack/sdr2

    This is a homebrew SDR rig with no dependency on external computers/soundcards/etc.

    55 partsGPL-3.0
  • 2 layers60.3 × 46.5 mmKc1fsz rx6, the printed circuit board in 3D

    Kc1fsz rx6

    brucemack/sdr2

    This is a homebrew SDR rig with no dependency on external computers/soundcards/etc.

    54 partsGPL-3.0
  • 2 layers76.3 × 41.5 mmAudio breakout, the printed circuit board in 3D

    Audio breakout

    brucemack/sdr2

    This is a homebrew SDR rig with no dependency on external computers/soundcards/etc.

    46 partsGPL-3.0
  • 2 layers50 × 80 mmUtil-1, the printed circuit board in 3D

    Util-1

    brucemack/sdr2

    This is a homebrew SDR rig with no dependency on external computers/soundcards/etc.

    46 partsGPL-3.0
  • 2 layers25 × 70 mmBpf-1, the printed circuit board in 3D

    Bpf-1

    brucemack/sdr2

    This is a homebrew SDR rig with no dependency on external computers/soundcards/etc.

    31 partsGPL-3.0
  • 2 layers34.8 × 29 mmKc1fsz rx7, the printed circuit board in 3D

    Kc1fsz rx7

    brucemack/sdr2

    This is a homebrew SDR rig with no dependency on external computers/soundcards/etc.

    18 partsGPL-3.0

Similar boards

  • 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 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
  • 4 layers85 × 56 mmRadiohead, the printed circuit board in 3D

    Radiohead

    mpvano/radiohat2

    Software and Documentation for the Radiohat2 Project

    175 parts2MIT
  • 2 layers101.6 × 137.4 mmOpenxcvr, the printed circuit board in 3D

    Openxcvr

    dawsonjon/OpenXcvr

    Cost Effective HF transceiver based on max1000 FPGA module

    155 parts38MIT
  • 4 layers100 × 174.6 mmRf switchboard, the printed circuit board in 3D

    Rf switchboard

    Erhannis/rf_switchboard

    KiCAD pcb; whole heap of rf-related modules so I can figure out what works and how.

    467 parts
  • 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 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 layers100 × 100 mmENGR357-receiverDesign, the printed circuit board in 3D

    ENGR357-receiverDesign

    jaronbrown/SDR_Receiver_Design

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

    132 parts1

Questions

How big is the Txrx-1 PCB?

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

What parts does the Txrx-1 use?

98 parts, built around the LM4562NA, SN74CBT3253D, SI5351A-B-GT and CX3225SB25000D0FFFCC. 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 Txrx-1 KiCad files?

From the brucemack/sdr2 repository on GitHub, at the commit this page was made from: the board is hw/txrx-1/txrx-1.kicad_pcb and its schematic hw/audio-breakout/adc.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Txrx-1 design in my own project?

Its repository publishes it under the GPL-3.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).