
Tx-1
brucemack/sdr2
This is a homebrew SDR rig with no dependency on external computers/soundcards/etc.

This is a homebrew SDR rig with no dependency on external computers/soundcards/etc.
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.
This is a homebrew SDR rig with no dependency on external computers/soundcards/etc.

One-time setup of make process:
git submodule update --init
mkdir build
cd build
cmake -DPICO_BOARD=pico2 ..Command used to flash code to board:
~/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"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 expanderP0 - 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)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.
dBm = 30 + 20 * log(Vrms/sqrt(Z0))
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
PCM1804 Datasheet PCM5100 Datasheet
The library gets built once in a parallel project:
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:
mkdir build
cd build
# IMPORTANT! pico2 build enables the generation of FPU instructions
cmake -DPICO_BOARD=pico2 ..
make -j4What the CMakeLists.txt looks like:
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:
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
)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.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 12 | 10k | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R1, R2, R8, R9, R43, R44, R45, R46, R47, R48, R49, R50 |
| 9 | 0.1uF | Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | C42, C45, C46, C49, C50, C53, C54, C63, C65 |
| 7 | 10uF | Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | C47, C48, C55, C56, C57, C58, C64 |
| 7 | 47 | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R5, R6, R7, R17, R18, R19, R20 |
| 6 | 50 | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R51, R52, R53, R54, R55, R56 |
| 4 | 0.022uF | Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | C59, C60, C61, C62 |
| 4 | 2.2k | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R41, R42, R57, R58 |
| 4 | 33nF | Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | C3, C4, C5, C6 |
| 4 | 4.7n | Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | C13, C14, C15, C16 |
| 4 | 470 | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R13, R14, R15, R16 |
| 4 | LM4562 | Package_SO:SOIC-8_3.9x4.9mm_P1.27mm | U2, U3, U41, U42 |
| 4 | MountingHole | MountingHole:MountingHole_3.5mm | H1, H2, H3, H4 |
| 3 | 0.1u | Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | C2, C19, C20 |
| 2 | 0 | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R70, R71 |
| 2 | 0.47uF | Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | C7, C8 |
| 2 | 100 | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R11, R12 |
| 2 | 1000pF | Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | C43, C44 |
| 2 | 100pF | Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | C51, C52 |
| 2 | 10n | Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | C17, C18 |
| 2 | SN74CBT3253 | Package_SO:SOIC-16_3.9x9.9mm_P1.27mm | U1, U43 |
| 2 | TestPoint | TestPoint:TestPoint_Pad_1.5x1.5mm | TP1, TP2 |
| 2 | Trifilar FT37-43 | bruce-footprints:FT37-43 Trifilar | TR1, TR41 |
| 1 | 2.2u | Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | C1 |
| 1 | 4.7uF | Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | C41 |
| 1 | CX3225SB25000D0FFFCC | bruce-footprints:OSCCC320X250X60N | Y1 |
| 1 | Conn_01x02 | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | J3 |
| 1 | Conn_01x04 | Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical | J1 |
| 1 | Conn_01x05 | Connector_PinHeader_2.54mm:PinHeader_1x05_P2.54mm_Vertical | J2 |
| 1 | Conn_01x08 | Connector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_Vertical | J4 |
| 1 | Si5351A-B-GT | Package_SO:MSOP-10_3x3mm_P0.5mm | U4 |

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

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

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

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

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

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

Dizzerin/Software-Defined-Radio
Quadrature sampling down converter software defined radio

pricna/Software-Defined-Radio-Receiver
Software Defined Radio receiver created for Engineering Electronics II at Walla Walla University.



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

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

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…

jaronbrown/SDR_Receiver_Design
The microPython module to control the SI5351, si5351.py, was provided by https://github.com/thaaraak/Tinypico-Radio/tree/master.
It measures 70 × 100 mm and has 4 copper layers, 1.6 mm thick.
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.
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.
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).