Skip to the content
2 layers50 × 80 mmUtil-1, the printed circuit board in 3D

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

Size
50 × 80 mm
Copper layers
2
Thickness
1.6 mm
Parts
46
Nets
27
Pads
148
Tracks, vias
214, 46
Pours
2
Routed
Yes
KiCad
KiCad 8.0 (file 20240108)
Created
3 Jan 2025
Updated
2 Jun 2025

Overview

Util-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 2-layer board of 50 × 80 mm with 46 parts on 27 nets, routed with 214 tracks and 46 vias.

It is built around the MAX4466EXK+T and TS5A3159ADBVRE4. Its parts include 13 capacitors, 10 resistors, 9 connectors, 6 ICs and 1 diode.

Main components

2

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

46
QtyValueFootprintReferences
410ubruce-footprints:CPOL_0805_2012Metric_Pad1.18x1.45mm_HandSolderC1, C2, C5, C6
41kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR4, R5, R6, R9
4MountingHoleMountingHole:MountingHole_4mmH1, H2, H3, H4
30.1uFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC8, C10, C13
3Conn_01x02Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ1, J4, J6
21MResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR7, R8
220kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR1, R3
2Conn_01x06Connector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_VerticalJ3, J5
2TS5A3159ADBVRPackage_TO_SOT_SMD:SOT-23-6U5, U6
10.01uFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC9
10.39uFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC3
11.0uFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC4
1100Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR2
1100kbruce-footprints:POT_3362PRV1
1100pFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC12
110uFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC11
122kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR10
13.3VConnector_PinHeader_2.54mm:PinHeader_2x06_P2.54mm_VerticalJ8
15VConnector_PinHeader_2.54mm:PinHeader_2x06_P2.54mm_VerticalJ7
1BATTConnector_PinHeader_2.54mm:PinHeader_2x06_P2.54mm_VerticalJ9
1Conn_01x03Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ2
1FerriteBeadInductor_SMD:L_0805_2012Metric_Pad1.15x1.40mm_HandSolderFB1
1MAX4466EXKPackage_TO_SOT_SMD:SOT-353_SC-70-5_HandsolderingU4
1NCCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC7
1NCP1117-3.3_SOT223Package_TO_SOT_SMD:SOT-223-3_TabPin2U3
1NCP1117-5.0_SOT223Package_TO_SOT_SMD:SOT-223-3_TabPin2U2
1RedLED_SMD:LED_0805_2012Metric_Pad1.15x1.40mm_HandSolderD1
1TestPointTestPoint:TestPoint_Pad_2.5x2.5mmTP1
1~Package_SO:SOIC-8_3.9x4.9mm_P1.27mmU1

More from brucemack/sdr2

6
  • 4 layers70 × 100 mmTxrx-1, the printed circuit board in 3D

    Txrx-1

    brucemack/sdr2

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

    98 partsGPL-3.0
  • 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 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 layers27.9 × 20.6 mmMonitorswitch, the printed circuit board in 3D

    Monitorswitch

    HenrykRichter/RaddSwi

    Monitorswitch addon for Matze Flickerfixer

    14 parts3
  • 2 layers82 × 62.5 mmEnergy meter, the printed circuit board in 3D

    Energy meter

    BBBSnowball/energy-monitor

    Energy meter with GD32V and a current transformer

    112 parts
  • 2 layersMic, the printed circuit board in 3D

    Mic

    DaBiggestSeal/BOARD-mic

    A microphone board, for board-design skills

    38 partsMIT
  • 4 layers196.5 × 100 mmDonkeyDrift MUS4, the printed circuit board in 3D

    DonkeyDrift MUS4

    DonkeyDrift/Hardware

    Hardware for DonkeyDrifter

    263 partsApache-2.0
  • 8 layers40 × 94 mmFD MAIN-01, the printed circuit board in 3D

    FD MAIN-01

    Fairank/FieldDock

    Compact iPhone companion hardware: editable PCB, mechanical CAD and portable firmware. Engineering prototype; original work available for noncommercial use.

    424 parts
  • 4 layers100 × 100 mmTankervision pdb, the printed circuit board in 3D

    Tankervision pdb

    ikeefe12/tankervision-pdb

    Four-layer KiCad power distribution board for the TankerVision robot: USB-C PD / barrel-jack input, supercapacitor-backed rail for clean Jetson shutdown, and four firmware-controlled protected output ports.

    452 parts
  • 2 layers80 × 60 mmEEE3088F 2025, the printed circuit board in 3D

    EEE3088F 2025

    TTembe/EEE3088F_2025

    This repository contains the schematic, PCB layout, firmware, and documentation for the Power Subsystem of a maze-solving Micro-Mouse robot, developed as part of the EEE3088F course at the University of Cape Town.

    69 parts
  • 4 layers70 × 54.5 mmInt debugger, the printed circuit board in 3D

    Int debugger

    TUDSSL/DIPS

    This is the official public repository for DIPS: Debugger for Intermittently-Powered Systems. The repository consists of all components that make DIPS: - Hardware - Debugger Firmware - Emulator Firmware - Emulator Host…

    224 parts

Questions

How big is the Util-1 PCB?

It measures 50 × 80 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Util-1 use?

46 parts, built around the MAX4466EXK+T and TS5A3159ADBVRE4. 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 Util-1 KiCad files?

From the brucemack/sdr2 repository on GitHub, at the commit this page was made from: the board is hw/util-1/util-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 Util-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).