YOU CAN BUILD THE BOARD THAT LOOKS INSIDE SOLID OBJECTS WITH SOUND

A development board that fires a high-voltage pulse into a piezo crystal and catches the echo microseconds later, built from published schematics and driven from a Raspberry Pi.

by kelu124

FULL CAD BOM FIRMWARE DOCS

Open-hardwareScience

difficulty
●●●●●
time
a weekend-plus
license
TAPR-OHL-1.0 (hardware), GPL-3.0 (software), CC-BY-SA-3.0 (docs)
repo
repo ACTIVE173 stars

WHAT YOU’LL NEED

  • 3D printer + filamentprintable parts — files are in the repo
  • Electronic partsfull list with part numbers in the repo BOM
  • Dev board / microcontrollerruns the project firmware

Partner

Show off your buildRecord and edit your build video by editing the transcript, not the timeline.Try Descript
1

COMPAREE VERDICT

un0rick is a single-channel open-hardware ultrasound board that does the genuinely hard part of an ultrasound machine: firing a 25 volt pulse into a piezo element, then catching the returning echo with a variable-gain amplifier and a 65 megasample-per-second ADC, all coordinated by a Lattice iCE40 FPGA that writes every sample into static RAM before a Raspberry Pi or USB host reads it out. The acquisition is fully programmable down to pulse width and a 200 microsecond time-gain compensation curve, which is what stops deep echoes from disappearing into noise. The gateware builds with IceStorm, the Python library handles control, and the documented example is a single-element piezo in water aimed at a reflector a few centimetres away. This is a development kit for learning how ultrasound works and for looking inside objects, not a medical scanner. The thing most likely to go wrong is the board bring-up itself: surface-mount assembly with a mixed-signal layout, FPGA toolchain configuration, and timing-critical analog paths all in one weekend. If you have never reflowed a PCB or debugged an FPGA, this will consume more than one Saturday. If you have, and you want to understand ultrasound acquisition at the hardware level, every file you need is here.

NOT IN THE REPO

  • Full KiCAD schematics and PCB layout for the main board and the Raspberry Pi interface.
  • Bill of materials with Digi-Key and Mouser part numbers, though some components are surface-mount and require reflow.
  • FPGA gateware builds with IceStorm open-source toolchain; Python library for acquisition and control is included.
  • Documentation covers hardware bring-up, software setup, and a water-tank reflector test; no medical imaging guide.
  • Hardware under TAPR Open Hardware License 1.0, software under GPLv3, documentation under CC BY-SA 3.0. All three permit commercial use with attribution.
  • The author states explicitly that this is not a medical ultrasound scanner and is intended for teaching and non-medical imaging only.

Can I build this?

Printnothing required
BuyPCB fabrication (main board and Raspberry Pi interface), complete BOM from Digi-Key or Mouser including Lattice iCE40HX4K FPGA, AD8331 variable-gain amplifier, AD9200 65 Msps ADC, SRAM, passives, connectors, and a single-element ultrasound transducer; Raspberry Pi or USB-capable controller
Toolsreflow oven or hot-air station for surface-mount assembly, multimeter, oscilloscope for analog path verification, Linux host for IceStorm FPGA toolchain, Python environment
SkillsSMD soldering and reflow, mixed-signal PCB debugging, FPGA toolchain setup, basic Python; this is a bench project for someone who has built and debugged boards before
Timea weekend-plus — PCB assembly half a day assuming competent reflow, FPGA and software bring-up another half day, analog path tuning and first acquisition easily another session
Cost$$ — dominated by PCB fabrication and the FPGA, ADC, and transducer; expect $80–150 depending on quantities and shipping
Safety25 volt pulser — treat as a bench electronics project, no exposed mains voltage but high-speed switching and analog signal paths require care; the author explicitly forbids medical or diagnostic use

Build at your own risk. Projects involve tools, electronics and sometimes mains voltage — follow the creator’s safety notes.

A desktop 3D printer that prints in full colorPartner · Kickstarter
A desktop 3D printer that prints in full color

HeyGears G1: 10M+ colors and transparent parts in one print, plus UV printing on flat objects. Figures, parts and labels — no painting.

See how it prints

Gallery

upload://cmssyfb8811q5pd1z671o8t6d/upload-25c93458.jpg
upload://cmssyfb8811q5pd1z671o8t6d/upload-c2e8b175.jpg
upload://cmssyfb8811q5pd1z671o8t6d/upload-d1d4a74c.jpg
upload://cmssyfb8811q5pd1z671o8t6d/upload-2b700a0d.jpg
upload://cmssyfb8811q5pd1z671o8t6d/upload-e6744335.jpg
upload://cmssyfb8811q5pd1z671o8t6d/upload-631020ac.jpg
upload://cmssyfb8811q5pd1z671o8t6d/upload-c9a81932.jpg
upload://cmssyfb8811q5pd1z671o8t6d/upload-f762627f.jpg

Start here

Navigation into the creator’s own docs — we don’t rewrite the guide, we route you to the source.

  1. 1.Read the documentation in the GitHub repository and verify the BOM against current supplier stock. (Some components may have moved to newer variants; check footprints before ordering PCBs.)
  2. 2.Order PCBs for the main board and Raspberry Pi interface, plus the full BOM including the FPGA, ADC, transducer, and passives.(Surface-mount assembly required — plan reflow or hand-soldering time accordingly.)
  3. 3.Set up the IceStorm FPGA toolchain on a Linux host and clone the repository. (The gateware builds with open-source tools; Windows users will need WSL or a VM.)
  4. 4.Assemble the board, flash the FPGA, connect the Raspberry Pi, and run the Python library test with a transducer in water.(The documented example is a single-element piezo aimed at a reflector; start there before moving to real targets.)

Resources

Documentation, files and community threads for this build — we link straight to the original sources and never rehost the creator’s files.

KNOWN ISSUES

  • The board is surface-mount and includes a mixed-signal layout with high-speed ADC and FPGA timing paths — if you have never debugged an analog acquisition chain or reflowed a dense board, this will take longer than a weekend.
  • The IceStorm FPGA toolchain runs on Linux; Windows users need WSL or a virtual machine, and the build process is not one-click.
  • The documented example uses a single-element transducer in a water tank; moving to real objects or multi-element arrays requires understanding the physics and is not covered in the repository.
  • The TAPR Open Hardware License permits commercial use but requires attribution and publication of modifications; read the full license before adapting the design.
  • This is explicitly not a medical ultrasound scanner — using it for diagnostic purposes is unsafe, unlicensed, and forbidden by the author.
  • Some BOM components may have been updated or gone end-of-life since the design was published; verify part numbers and footprints before ordering PCBs.

Can I use this to scan a person?

No. The author states plainly that this is not a medical ultrasound scanner and is not safe or licensed for diagnostic use. It is a development kit for learning and for imaging non-biological objects.

What is the resolution and penetration depth?

The documented example uses a single-element transducer in water with a reflector a few centimetres away. Resolution and depth depend entirely on the transducer frequency and the target material; the repository does not provide imaging performance specs.

Do I need a Raspberry Pi or can I use something else?

The board can be controlled over USB or from a microcontroller such as an M5Stack, but the documented setup and Python library assume a Raspberry Pi. Other controllers will require adapting the software.

How hard is the FPGA gateware to modify?

The gateware is open-source and builds with IceStorm, but modifying acquisition timing or adding features requires understanding Verilog and the iCE40 architecture. The existing code is a working starting point, not a tutorial.

Can I order a pre-assembled board?

No commercial vendor is listed in the repository. You will need to fabricate and assemble the PCBs yourself or use a board house that offers assembly services.

Community builds

No community builds yet — be the first, we feature the best ones.

Discussion1

FROM THE COMPAREE TEAM

The board samples at 65 million times a second and writes every echo into FPGA-controlled RAM before the Pi even sees it. What would you aim this at first?

CompareeTEAM9d ago

Practical notes from our verification: the repository includes full KiCAD files, a BOM with supplier part numbers, and Python acquisition code, but there is no official video walkthrough and the documented example stops at a reflector in water — moving to real imaging is left to the builder. The FPGA gateware builds with IceStorm on Linux; the toolchain setup is straightforward if you have done it before, but it is not a one-click process. The single biggest challenge is not the code, it is the board bring-up: mixed-signal layout, reflow assembly, and analog path tuning all before you see your first echo. The author's honesty about the non-medical scope is the most important sentence in the repository.

kelu124

kelu124 built un0rick as part of a long-running project to make ultrasound imaging accessible outside hospital budgets. It extends his earlier echOmods work, which explored modular ultrasound hardware for teaching and research. The design is deliberately single-channel and non-medical, published under open licenses to support experimentation rather than clinical use.

GitHub

Star the project on GitHub

DISCLAIMER

  • Comparee is not the author of the projects featured here. All rights to each project belong to its creator — every page links to the original source, and we never host creators’ files.
  • Information is provided without warranty and may become outdated as projects evolve. Prices are indicative bands only — always check the creator’s parts list for current costs.
  • Building and operating any project is at your own responsibility. Protective equipment, safe workshop practice and compliance with local regulations are the builder’s responsibility.