This repository contains the work in progress on the WULPUS PRO ultrasound platform, a successor of the WULPUS Project
WULPUS PRO is a compact base platform for an ultra low power ultrasound sensing, featuring the following specifications:
- 16 channels (time-multiplexed)
- 30 V unipolar excitations with programmable frequency (100 kHz - 10 MHz)
- Indirect and Direct Bias (-30 V up to 30 V) for CMUT transducers
- 30.8 dB Programable-Gain Amplifier + 80 dB external VGA
- Programmable linear Time Gain Compesation Profiles
- Optional Envelope Extractor, runtime configurable
- 8 Msps Analog-to-Digital converter (12 bit resolution)
- SPI (8 MHz) host MCU interface
- Compactness and light weight (40 x 20 mm footprint)
- Ultra-Low Power consumption of <25 mW
Work in progress.
This repository has the following folders:
-
fw
, containing the firmware source code, namely:- source code for the nRF52832 MCU of the nRF52 DK, located at
fw/nrf52/ble_peripheral/US_probe_nRF52_firmware
- source code for the nRF52840 USB dongle, located at
fw/nrf52/peripheral/US_probe_dongle_firmware
- source code for the MSP430 ultrasound MCU, located at
fw/msp430
- source code for the nRF52832 MCU of the nRF52 DK, located at
-
sw
, containing the Python code for the WULPUS Pro Graphical User Interface -
hw
, containing the CAD source files for- WULPUS PRO Acquisition PCB (located at
hw/wulpus_pro_acq_pcb_dev_board
) - WULPUS adapter PCB for polyCMUT transducer (located at
hw/wulpus_polycmut_adapter
)
- WULPUS PRO Acquisition PCB (located at
-
docs
, containing the project documentation (Work in Progress)
WULPUS PRO build up on the top of the original WULPUS platfrom. Therefore, please refer to the original WULPUS User Manual for assembly instructions, example measurements and GUI overview.
To build and run your own instance of the WULPUS PRO platform, follow the steps below:
Produce the WULPUS PRO acquisition development board using the design files in:
hw/wulpus_pro_acq_pcb_dev_board
- (Optionally)
hw/wulpus_polycmut_adapter
Assemble the PCB using the provided schematics and BOMs.
Use the following pin mapping to connect the WULPUS PRO acquisition board to the nRF52 DK:
Signal | nRF52 DK Pin | WULPUS PRO Connector Pin |
---|---|---|
SPI_SS |
P0.04 | X3.4 |
SPI_CLK |
P0.29 | X3.3 |
SPI_MISO |
P0.30 | X3.1 |
SPI_MOSI |
P0.31 | X3.2 |
Data_ready |
P0.24 | X4.2 |
BLE_conn_ready |
P0.25 | X4.3 |
Navigate to fw/msp430/
and follow instructions to:
- Set up Code Composer Studio
- Compile the firmware
- Flash the MSP430 MCU
Go to fw/nrf52/
to:
- Set up Segger Studio and nRF Connect SDK
- Compile and flash:
- nRF52832 DK (
ble_peripheral
) - nRF52840 USB dongle (
peripheral
)
- nRF52832 DK (
- Install Miniconda
- Go to the
sw
folder (containsrequirements.yml
) - Open terminal (Anaconda Prompt on Windows), run:
conda env create -f requirements.yml conda activate wulpus_env jupyter notebook
To start a measurement with WULPUS PRO, follow these steps:
-
Plug in the USB dongle and power the nRF52 DK via USB.
-
Check the dongle connection (green LED should light up).
If not, press the reset button on the nRF52 DK, then try again. -
Only after confirming dongle connectivity, power the WULPUS PRO board (via connector or debug pin headers).
-
Open a Conda terminal, activate the environment:
conda activate wulpus_env
-
Then navigate to the
sw/
folder and openwulpus_pro_gui.ipynb
. Follow the notebook instructions to begin acquisition.
The WULPUS Pro system was developed at the Integrated Systems Laboratory (IIS) at ETH Zurich by:
- Sergei Vostrikov (PCB design, Firmware, Software, Open-Sourcing)
- Federico Villani (PCB design, Component selection)
- Cédric Hirschi (Firmware, Software)
- Andrea Cossettini (Supervision, Project administration)
- Luca Benini (Supervision, Project administration)
Thanks to all the people who contributed to the WULPUS Pro platform:
- Sebastian Frey (Design review)
The following files are released under Apache License 2.0 (Apache-2.0
) (see sw/LICENSE
):
sw/
The following files are released under Solderpad v0.51 (SHL-0.51
) (see hw/LICENSE
):
hw/
The fw/msp430/
and fw/nrf52/
directories contain third-party sources that come with their own
licenses. See the respective folders and source files for the licenses used.
In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.