

Ultr4rick
High-end version of the pic0rick
- Size
- 120 × 80 mm
- Copper layers
- 4
- Thickness
- 0.58 mm
- Parts
- 269
- Nets
- 221
- Pads
- 926
- Tracks, vias
- 2,975, 222
- Pours
- 1,032
- Routed
- Yes
- KiCad
- KiCad 10.0 (file 20260206)
- Created
- 31 Jul 2026
- Updated
- 2 Nov 2026
Overview
Ultr4rick is an open-source printed circuit board by kelu124, from the kelu124/ultr4rick repository on GitHub. It is a 4-layer board of 120 × 80 mm with 269 parts on 221 nets, routed with 2,975 tracks and 222 vias.
It is built around the MD1213K6-G, BWU.FL-IPEX1 and TC6320TG-G, with the 0402CG220J500NT, CC0402KRX5R6BB475 and BAV99 among its other parts. Its parts include 107 capacitors, 74 resistors, 15 ICs, 7 diodes and 6 inductors.
Main components
12MD1213K6-G
QFN-12-EP(4x4)-40℃~+85℃ 0V~300mV 2 2A 2A 3V~5V 4.5V~13V 550uA 6ns 6ns 7ns 7ns MOSFET QFN-12-EP(4x4) Gate Drivers ROHSMicrochip TechnologyGate DriversBWU.FL-IPEX1
SMD1 1.25mm 2mm 50Ω 6GHz Board Side IPEX Inner pin SMD Coaxial Connectors (RF) ROHSBAT WIRELESSCoaxial Connectors (RF)TC6320TG-G
SOIC-8-55℃~+150℃ 1 N-Channel + 1 P-Channel 110pF 1V 200V 23pF 2A 8Ω@10V SOIC-8 MOSFETs ROHSMicrochip TechnologyMOSFETs0402CG220J500NT
040222pF 50V C0G ±5% 0402 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHSGuangdong Fenghua Advanced Tech (FH)Multilayer Ceramic Capacitors MLCC - SMD/SMTCC0402KRX5R6BB475
040210V 4.7uF X5R ±10% 0402 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHSYAGEOMultilayer Ceramic Capacitors MLCC - SMD/SMTBAV99
SOT-231 Pair Series Connection 1.25V@150mA 100V 215mA 250mW 4A 4ns 500nA@80V SOT-23 Switching Diodes ROHSNexperiaSwitching DiodesCONUFL001-SMD-T
SMD-40℃~+90℃ 1 50Ω 6GHz Board Side Male Pin SMD Coaxial Connectors (RF) ROHSTE ConnectivityCoaxial Connectors (RF)KT-0603R
0603-40℃~+85℃ 1.6mm x 0.8mm square LED 1.8V~2.4V 120° 20mA 300mcd 40mW 615nm~630nm 645nm Discrete Diode Red Water Clear 0603 LED Indication - Discrete ROHSHubei KENTO ElecLED Indication - DiscreteSS320
SMA(DO-214AC)Schottky DiodeshongjiachengTS-1088-AR02016
SMD,4x3mm-30℃~+80℃ 1.6N 100,000 cycles 12V 2mm 3.9mm 3mm 50mA Black Round Button SMD(SMT) Tab SPST Surface Mount,Vertical Without Bracket SMD,4x3mm Tactile Switches ROHSXUNPUTactile Switches0603L100SLYR
0603-40℃~+85℃ 1.8A 120mΩ 1A 300ms 40mΩ 50A 600mW 6V 0603 Resettable Fuses ROHSLittelfuseResettable Fuses1N4148W
SOD-123150mA 1A 1V@50mA 1uA@75V 400mW 4ns 75V Independent SOD-123 Switching Diodes ROHSSTMicroelectronicsSwitching Diodes
README
README.mdultr4rick
Ultr4rick is an open ultrasound pulse-echo board, the higher-power successor to pic0rick. It is built around an RP2350B and has:
- a 10-bit, 60 MS/s ADC (AD9215) behind an AD8331 variable-gain front end, with gain set by an MCP4812 DAC;
- a bipolar HV pulser driven by two logic lines (A = negative, B = positive, A+B = damping), fed by a SEPIC HV supply;
- a MAX14866 16-channel HV mux;
- a uSD slot, an LP5562 RGB LED driver on I2C, and USB.
The firmware can compute the Hilbert envelope (and A-law compression) of each 4096-sample capture on the board.
The board
The KiCad renders are in hardware/Ultr4rick_F.png and
hardware/Ultr4rick_B.png. The photos are described in
docs/images/README.md.
Acquisition examples
Pulse-echo on the mux: each element in turn on TX and RX with set_one_mux(k), raw ADC trace (top) and on-board
Hilbert envelope (bottom). Elements 2 and 4 show echo trains: about every 13 µs on element 2 and every 20 µs on element 4. From
python/example_dsp.ipynb, section 13.

Idle vs. pulsed capture at gain 50, pulse 96/6000/96 ns: the excitation at 0.9 µs, the receiver recovering until
about 6 µs, and the envelope computed on the board. From python/example_dsp.ipynb, section 15.

Repository layout
| Path | Contents |
|---|---|
docs/ | Documentation: start here (introduction, setup and first acquisitions, firmware, Python library, repository map) |
hardware/ | KiCad project of the v2 board: schematic sheets per subsystem, PCB, gerbers, renders |
firmware/ | Pico SDK C firmware for the RP2350B. Pin map in firmware/PINMAP.md, history in firmware/CHANGELOG.md |
python/ | ultr4rick host library, example script and notebooks. See python/Readme.md |
requirements.txt | Python dependencies for python/ |
TODO.md | Hardware changes planned for the next revision |
LICENSE.md, LICENSES/ | Licenses per part of the repository |
Quick start
Build the firmware (Pico SDK 2.3.0, arm-none-eabi-gcc, CMake + Ninja):
cd firmware
export PICO_SDK_PATH=$HOME/.pico-sdk/sdk/2.3.0
./build.sh -DPICO_TOOLCHAIN_PATH=/usr
# dist/ultr4rick-v<ver>-ultr4rick.uf2 stdio text REPL
# dist/ultr4rick-v<ver>-ultr4rick-dsp.uf2 on-board DSP + binary framesFlashing:
- Get the board into BOOTSEL. Either send
reboot-dfuover the serial port, or hold BOOTSEL while plugging it in. - Copy the UF2 onto the
RP2350drive that appears.
Drive it from Python:
python3 -m venv .venv && .venv/bin/pip install -r requirements.txt
cd python && ../.venv/bin/python example_dsp.py # status, DSP self-test, captures
../.venv/bin/jupyter lab # example_dsp.ipynb, example_acquisition.ipynb, ...from ultr4rick.device import Ultr4rick
from ultr4rick import dsp
probe = Ultr4rick() # finds the board by USB ID
print(probe.status()["raw"])
print(dsp.check_selftest(probe.selftest()))
frame = probe.read_fft() # 4096-sample Hilbert envelopeSafety: the pulser generates high voltage. The firmware boots with it disarmed. Only arm it (
pulser arm/Ultr4rick.arm_pulser()) with a transducer connected, and disarm it afterwards.
License
- Hardware (
hardware/): TAPR Open Hardware License v1.0 - Firmware (
firmware/) and Python (python/): GPL-3.0-or-later - Documentation (
docs/and the Markdown files): CC BY-SA 4.0
See LICENSE.md for the details and the third-party code.
Parts
269| Qty | Value | Footprint | References |
|---|---|---|---|
| 21 | 100nF | Capacitor_SMD:C_0402_1005Metric | C56, C57, C59, C63, C64, C65, C66, C68, C84, C101, C102, C103, C105, C107, C109, C111 +5 |
| 15 | 100nF | EasyEDA:C0402 | C13, C16, C30, C31, C33, C34, C35, C36, C37, C38, C39, C40, C41, C45, C49 |
| 14 | 2.2uF | EasyEDA:C0805 | C2, C3, C4, C5, C6, C7, C8, C21, C22, C23, C24, C25, C26, C27 |
| 13 | 10K | Resistor_SMD:R_0402_1005Metric | R47, R48, R49, R50, R51, R52, R53, R54, R58, R59, R62, R73, R74 |
| 9 | 200Ω | EasyEDA:R0402 | R18, R19, R20, R21, R22, R23, R24, R25, R26 |
| 8 | 1k | EasyEDA:R0603 | R79, R80, R81, R82, R84, R85, R86, R87 |
| 8 | BWU.FL-IPEX1 | EasyEDA:IPEX-SMD_BWIPX-1-001E | U18, U19, U20, U21, U26, U27, U28, U29 |
| 5 | ~ | Inductor_SMD:L_0603_1608Metric | FB7, FB8, FB9, FB10, FB11 |
| 4 | 100Ω | EasyEDA:R0402 | R7, R43, R45, R46 |
| 4 | 10nF | EasyEDA:C0603 | C69, C76, C77, C78 |
| 4 | 10nF | Capacitor_SMD:C_0402_1005Metric | C60, C61, C67, C72 |
| 4 | 4.7uF | EasyEDA:C0402 | C17, C32, C42, C48 |
| 4 | MountingHole_Pad | MountingHole:MountingHole_2.2mm_M2_Pad | H1, H2, H3, H4 |
| 3 | 10uF | EasyEDA:C0603 | C100, C104, C110 |
| 3 | 1KΩ | EasyEDA:R0402 | R39, R41, R44 |
| 3 | 1kΩ | EasyEDA:R0402 | R28, R36, R57 |
| 3 | 1nF | Capacitor_SMD:C_0402_1005Metric | C85, C88, C90 |
| 3 | 1uF | Capacitor_SMD:C_0402_1005Metric | C58, C62, C98 |
| 3 | 2.2kΩ | EasyEDA:R0402 | R29, R30, R31 |
| 3 | 220nF | EasyEDA:C0402 | C52, C53, C54 |
| 3 | 22Ω | EasyEDA:R0402 | R2, R33, R34 |
| 3 | 4.7uF | Capacitor_SMD:C_0402_1005Metric | C108, C115, C116 |
| 3 | 510Ω | EasyEDA:R0402 | R38, R40, R42 |
| 2 | 0Ω | EasyEDA:R0402 | R14, R35 |
| 2 | 0Ω | Resistor_SMD:R_0402_1005Metric | R77, R78 |
| 2 | 1.0mm | PCM_SparkFun-Connector:TestPoint-1.0mm | TP1, TP2 |
| 2 | 1.2Ω | EasyEDA:L0805 | FB1, FB2 |
| 2 | 100R | Resistor_SMD:R_0402_1005Metric | R60, R65 |
| 2 | 100k | EasyEDA:R0603 | R3, R12 |
| 2 | 100nF | EasyEDA:C0805 | C9, C14 |
| 2 | 100nF | EasyEDA:C0603 | C28, C29 |
| 2 | 100pF | EasyEDA:C0402 | C19, C20 |
| 2 | 10k | EasyEDA:R0402 | R1, R13 |
| 2 | 10uF | EasyEDA:C0402 | C50, C51 |
| 2 | 10uF | Capacitor_SMD:C_0402_1005Metric | C55, C94 |
| 2 | 10uH | EasyEDA:L0805 | L2, L5 |
| 2 | 120Ohm 3 A | Inductor_SMD:L_1206_3216Metric | FB5, FB6 |
| 2 | 15pF | EasyEDA:C0402 | C46, C47 |
| 2 | 18R | EasyEDA:R0603 | R88, R89 |
| 2 | 1mH | EasyEDA:IND-SMD_L6.0-W6.0_SWPA6045S | L3, L4 |
| 2 | 2.2uF | EasyEDA:C1206 | C1, C15 |
| 2 | 22pF | EasyEDA:C0402 | C113, C114 |
| 2 | 4.7uF | EasyEDA:C0603 | C43, C44 |
| 2 | 47uF | EasyEDA:C1206 | C10, C11 |
| 2 | 4u7 | Capacitor_SMD:C_0402_1005Metric | C96, C97 |
| 2 | 4u7 | EasyEDA:C0402 | C92, C93 |
| 2 | 5K1 | Resistor_SMD:R_0402_1005Metric | R70, R71 |
| 2 | 8.5Ω | EasyEDA:L0603 | FB3, FB4 |
| 2 | BAV99 | Package_TO_SOT_SMD:SOT-23 | D4, D5 |
| 2 | CONUFL001-SMD-T | EasyEDA:IPEX-SMD_3P-L2.6-W2.6-LS3.0 | RF4, RF5 |
| 2 | Conn_01x01_Pin | Connector_PinHeader_2.54mm:PinHeader_1x01_P2.54mm_Vertical | J17, J18 |
| 2 | KT-0603R | EasyEDA:LED-SMD_L1.6-W0.8-R-RD | LED1, LED2 |
| 2 | MD1213K6-G | EasyEDA:QFN-12_L4.0-W4.0-P0.80-BL-EP1.7 | IC1, IC3 |
| 2 | SMA_Edge | PCM_SparkFun-Connector:SMA_Edge_8mm | J1, J2 |
| 2 | SN74LVC2G04DBVT | EasyEDA:SOT-23-6_L2.9-W1.6-P0.95-LS2.8-BR | U7, U8 |
| 2 | SS320_C18199172 | EasyEDA:SMA_L4.3-W2.6-LS5.0-RD | D1, D3 |
| 2 | TC6320TG-G | EasyEDA:SOIC-8_L4.9-W3.9-P1.27-LS6.0-BL | IC2, IC4 |
| 2 | TS-1088-AR02016 | EasyEDA:SW-SMD_L3.9-W3.0-P4.45 | SW1, SW2 |
| 1 | 0.1Ω | EasyEDA:R0402 | R8 |
| 1 | 1.8kΩ | EasyEDA:R0402 | R27 |
| 1 | 100nF | EasyEDA:C1206 | C12 |
| 1 | 100pF | EasyEDA:C0603 | C112 |
| 1 | 100uH | EasyEDA:IND-SMD_L8.0-W8.0 | L1 |
| 1 | 10R | Resistor_SMD:R_0402_1005Metric | R72 |
| 1 | 10nF | EasyEDA:C0402 | C70 |
| 1 | 12K | Resistor_SMD:R_0402_1005Metric | R67 |
| 1 | 12MHz | EasyEDA:OSC-SMD_4P-L3.2-W2.5-BL_SIT8008BI | U5 |
| 1 | 18nF | Capacitor_SMD:C_0402_1005Metric | C73 |
| 1 | 1A | Fuse:Fuse_0603_1608Metric | F1 |
| 1 | 1K | Resistor_SMD:R_0402_1005Metric | R56 |
| 1 | 1N4148W T4 | EasyEDA:SOD-123_L2.8-W1.8-LS3.7-RD | D2 |
| 1 | 1Ω | EasyEDA:R0402 | R6 |
| 1 | 2200pF | EasyEDA:C0402 | C18 |
| 1 | 22pF | Capacitor_SMD:C_0402_1005Metric | C79 |
| 1 | 280R | Resistor_SMD:R_0402_1005Metric | R63 |
| 1 | 3.3kΩ | EasyEDA:R0402 | R32 |
| 1 | 3.3uH | EasyEDA:IND-SMD_L2.0-W1.6_AOTA-B201610S3R3-101-T | L6 |
| 1 | 330k | EasyEDA:R0603 | R5 |
| 1 | 330Ω | EasyEDA:R0402 | R37 |
| 1 | 33Ω | EasyEDA:R0402 | R17 |
The 235 most common of 269 parts.
Similar boards
- 4 layers200 × 100 mm

- 4 layers87.1 × 78.2 mm

- 4 layers52 × 27 mm

- 6 layers90 × 89 mm

Modular processing board
igorwolfs/modular-processing-hw
MCU Breakout board with Hirose BM28B connector
177 parts1 - 4 layers82.1 × 80.2 mm

Seguidor de linhas 4camada2-2026-1
wvianna/mcp-kicad-vscode
Workspace que combina um servidor MCP para automação de design de PCB com KiCad e o projeto de hardware (placa de circuito impresso) desenvolvido com ele.
97 parts - 4 layers81.2 × 100.2 mm

- 4 layers30.2 × 32.7 mm

- 4 layers52.8 × 22.9 mm

Questions
How big is the Ultr4rick PCB?
It measures 120 × 80 mm and has 4 copper layers, 0.58 mm thick.
What parts does the Ultr4rick use?
269 parts, built around the MD1213K6-G, BWU.FL-IPEX1, TC6320TG-G and 0402CG220J500NT. 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 Ultr4rick KiCad files?
From the kelu124/ultr4rick repository on GitHub, at the commit this page was made from: the board is hardware/Ultr4rick.kicad_pcb and its schematic hardware/DAC+AFE.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Ultr4rick design in my own project?
Its repository states no licence, so its author keeps all rights: ask kelu124 before reusing the design.


