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
Open-hardwareScience
Built withRaspberry Pi
- difficulty
- ●●●●●
- time
- a weekend-plus
- license
- TAPR-OHL-1.0 (hardware), GPL-3.0 (software), CC-BY-SA-3.0 (docs)
- repo
- repo ACTIVE175 stars
●●●●● · a weekend-plus · TAPR-OHL-1.0 (hardware), GPL-3.0 (software), CC-BY-SA-3.0 (docs) · 175 stars · repo ACTIVE
WHAT YOU’LL NEED
Jump to section
COMPAREE VERDICT
un0rick is a single-channel open-hardware ultrasound board that does the genuinely hard part of an ultrasound machine: firing a high-voltage pulse (25, 50 or 75 V) 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. Prebuilt FPGA bitstreams and a Python library are provided, 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 non-destructive testing, not a medical scanner. The thing most likely to go wrong is the board bring-up itself if you assemble it: surface-mount, mixed-signal layout and a high-voltage pulser. If you have never reflowed a PCB or debugged mixed-signal hardware, buy the assembled board. If you have, and you want to understand ultrasound acquisition at the hardware level, the files are here.
IN THE REPO
GOOD TO KNOW
- —Hardware files for the v1.1 board: Upverter design, PDF schematic, Gerbers, drill and pick-and-place files, and a BOM.
- —A bill of materials is in the hardware folder for v1.1; the board is mostly surface-mount and needs reflow.
- —Prebuilt FPGA bitstreams are provided (built with Lattice's tools; the README says an IceStorm port is coming), plus Verilog for USB control and a Python library for acquisition.
- —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.
Parts to buy
3 itemsFrom our check of the build. Exact quantities and part numbers are in the creator’s BOM.
Can I build this?
Build at your own risk. Projects involve tools, electronics and sometimes mains voltage — follow the creator’s safety notes.
More builds like this
All projectsGallery
Start here
Navigation into the creator’s own docs — we don’t rewrite the guide, we route you to the source.
- 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.Order the main board PCB (v1.1 Gerbers) plus the BOM including the FPGA, ADC, VGA and pulser, and a transducer with an SMA connector(Surface-mount assembly required — plan reflow or hand-soldering time accordingly.)
- 3.Download the prebuilt FPGA bitstream for your board version and the Python library (Use the prebuilt bitstream first; only rebuild the gateware if you need to change it)
- 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
- If you build the board yourself, it is dense surface-mount with a high-speed ADC and FPGA timing paths — unless you have reflowed and debugged mixed-signal boards before, buying the assembled board from the creator saves a lot of time.
- Prebuilt bitstreams spare you the FPGA toolchain; if you want to modify the gateware, check which toolchain the current sources need - the README says Lattice's tools so far.
- 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 - it is a development kit for teaching, research and non-destructive testing, and it is not certified for any diagnostic use.
- 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?
No. The board can be controlled over USB (with its own tutorial, USB gateware and the un0usb Python module) or from a Raspberry Pi through the 20x2 header (pyUn0 library); it has also been tested with an M5Stack microcontroller. The creator recommends a Raspberry Pi W, which then acts as the board server.
How hard is the FPGA gateware to modify?
You do not have to: prebuilt bitstreams for each board version are in the repo. Changing acquisition timing means working in Verilog on the iCE40; the README says the binaries were built with Lattice's tools so far, with an open IceStorm port planned.
Can I order a pre-assembled board?
Yes. The creator sells the assembled board on Tindie (around 489 dollars) and takes orders by email; building it yourself from the Gerbers and BOM is also possible.
Community builds
No community builds yet — be the first, we feature the best ones.
Discussion1
FROM THE COMPAREE TEAM
The board digitises each echo at tens of millions of samples per second and stores it in FPGA-controlled RAM before the Pi even sees it. What would you aim this at first?
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.
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.
CompareeTEAM1mo agoedited
Practical notes from our verification: the repository has the hardware files for each board version (Gerbers and a CSV BOM for v1.1, with the design on Upverter and as PDF), the FPGA bitstreams, Verilog for USB control, and a Python library for Raspberry Pi and USB control, plus a separate documentation site. The board can be driven over SPI from a Raspberry Pi, over USB, or even from a microcontroller such as an M5Stack. The documented example is a single-element piezo in water with a reflector a few centimetres away — moving on to real imaging is left to you. The hard part, if you assemble it yourself, is board bring-up: mixed-signal layout, fine-pitch parts and a high-voltage pulser at 25 to 75 V. If you would rather skip that, the author sells assembled boards on Tindie. The README also states clearly that this is not a medical ultrasound scanner but a development kit for teaching, research and non-destructive testing. Correction (4 October 2026): we re-checked this page line by line against the project's own repository, documentation and videos, and fixed errors in earlier versions.