Skip to content

ZTaylor39/echomods

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

What is this project?

This project has a specific target of providing a low-cost, open source technological kit to allow scientists, academics, hackers, makers or OSHW fans to hack their way to ultrasound imaging - below 500$ - at home, with no specific equipment required. For complementary sources of information, you can visit:

  • the github repo, for the source files, raw data and raw experiment logs;
  • the online manual/book for a easily readable and searchable archive of the whole work;
  • the hackaday page, where I tried to blog day-to-day experiments in a casual format.

Disclaimer: though an engineer, this project is the first of its sort, I never did something related. Bear with us, and the discovery process, but I'm happy to learn on the way =)

Disclaimer #2: ultrasound raises questions. In case you build a scanner, use caution and good sense!

Disclaimer #3: Beware! Though I am one of echopen's cofounders, this personnal pet-project lives in the echopen community, and is not a project in the scope of the echopen's association.

What are the arduino-like ultrasound module ?

Creating modules to facilitate ultrasound hacking : the principles of the echOmods is to enable a full chain of ultrasound image processing and hardware control.

We have chosen to use a module approach to make sure that each key component inside ultrasound image processing can easily be replaced and compared with another module, while providing logical logic blocks and corresponding interfaces for these modules to communicate. There's a module for high-voltage pulsing, one for the transducer, one for the analog processing, one for data acquisiton, ... and many more!

What images does it give ?

What does it look like?

The modules sit on a breadboard, and communicate through the tracks laying below. The configuration represented below show the Basic dev kit.

What does it cost?

echOmods emulated

uC pings emulator and streams feedback

  • This is the module which emulates the signal coming from the analog processing chain. (silent) -- get for 35$ (Where? Get from Adafruit)
  • The acquisition heart of the echOmods (croaker) -- get for 35$ (Where? Get from Adafruit)
  • Mogaba, the power supply (mogaba) -- get for 5$ (Where? Anywhere, or eg Amazon?)
  • The motherboard of the echomods (doj) -- get for 5$ (Where? Anywhere for stripboard)
  • Goblin: a TGC-Envelop-ADC module (goblin) -- get for 150$ (Where? Custom made, get the Gerbers, or contact @kelu124)

Total cost of the set: 230$

Wireless Dev Kit

The default setting for the sets

  • Simply the servo and transducer module (cletus) -- get for 80$ (Where? Recycling a transducer from ebay, servo from anywhere (Amazon?))
  • The acquisition heart of the echOmods (croaker) -- get for 35$ (Where? Get from Adafruit)
  • Mogaba, the power supply (mogaba) -- get for 5$ (Where? Anywhere, or eg Amazon?)
  • Goblin: a TGC-Envelop-ADC module (goblin) -- get for 150$ (Where? Custom made, get the Gerbers, or contact @kelu124)
  • Tobo: the HV-pulser (tobo) -- get for 120$ (Where? Custom made, get the Gerbers, or contact @kelu124)

Total cost of the set: 390$

The Beaglebone version, along with an hacked probe

Some stuff, unexpensive to buy, to build a ultrasound testing kit, totalling less than 500$.

  • Retrohacking the ATL Access 3 probe (retroATL3) -- get for 75$ (Where? Recycling a probe from ebay)
  • This is the module to get high-speed (40Msps) signal acquisition. (toadkiller) -- get for 79$ (Where? A bundle at 169$ from Groupgets or as a standalone at 79$ )
  • Mogaba, the power supply (mogaba) -- get for 5$ (Where? Anywhere, or eg Amazon?)
  • Goblin: a TGC-Envelop-ADC module (goblin) -- get for 150$ (Where? Custom made, get the Gerbers, or contact @kelu124)
  • Tobo: the HV-pulser (tobo) -- get for 120$ (Where? Custom made, get the Gerbers, or contact @kelu124)
  • The motherboard of the echomods (doj) -- get for 5$ (Where? Anywhere for stripboard)
  • One-eye, the controler (oneeye) -- get for 10$ (Where? from Adafruit)

Total cost of the set: 444$

[](@autogenerated - invisible comment)

Ultrasound hardware structure

To produce an image, the modules have to create a high voltage pulse, which excites a transducer. Echoes coming from the body are amplified using a TGC + LNA, which cleans the analog signal, which itself gets digitalized.

The diagram is represented below:

The modules organization

Graph

A recap of our modules

ThumbnailImage Name In Out
sleepy: The aim of this echOmod is to encase the whole modules object in a neat case, making it transportable.
  • None
  • None
tobo: The aim of this echOmod is to get the HV Pulse done.
  • ITF-A_gnd
  • ITF-B_5v
  • ITF-I_pulse_on
  • ITF-J_pulse_off
  • ITF-S_3_3v
  • ITF-mET_Transducer
  • ITF-R_reserved
  • ITF-mET_SMA
  • ITF-mET_Transducer
cletus: The aim of this module is to interface the transducer and the servo, aka the physical parts, to the analog part of the modules chain.
  • ITF-A_gnd
  • ITF-B_5v
  • ITF-N_cc_motor_pwm
  • ITF-S_3_3v
  • ITF-mET_Transducer
  • ITF-mET_Piezo
  • ITF-mET_Piezo
  • ITF-mET_Transducer
doj: Getting a motherboard: that's fitting all the modules in an easy way, with an easy access to all tracks.
oneeye: The module aims at making a microcontroler, for the moment the ArduinoTrinketPro, usable with the motherboard and the set of modules.
  • ITF-A_gnd
  • ITF-B_5v
  • ITF-S_3_3v
  • ITF-G_gain_control
  • ITF-I_pulse_on
  • ITF-J_pulse_off
  • ITF-N_cc_motor_pwm
croaker: The aim of this echOmod is to receive the signal and process it.
  • ITF-A_gnd
  • ITF-B_5v
  • ITF-E_signal_envelope
  • ITF-I_pulse_on
  • ITF-J_pulse_off
  • ITF-mED-TFT-Screen
  • ITF-mED-OLED-Screen
  • ITF-mEC-WiFi-UDP-Stream
retroATL3: The aim of this echOmod is to get the mechanical movement of the piezos. Salvaged from a former ATL3.
  • ITF-A_gnd
  • ITF-F_12V
  • ITF-N_cc_motor_pwm
  • ITF-mET_Transducer
  • Motor
  • Tri-Piezo Head
  • Motor
  • ITF-mET_Transducer
  • Tri-Piezo Head
toadkiller: The aim of this echOmod is to simulate the enveloppe (or maybe soon the raw signal) that would come from the piezo and analog chain.
  • ITF-A_gnd
  • ITF-B_5v
  • ITF-S_3_3v
  • ITF-E_signal_envelope
  • WiFi UDP Stream
  • ITF-mED-TFT-Screen
  • ITF-I_pulse_on
  • ITF-J_pulse_off
  • ITF-N_cc_motor_pwm
goblin: The aim of this echOmod is to get the signal coming back from a transducer, and to deliver the signal, analogically processed, with all steps accessible to hackers.
  • ITF-A_gnd
  • ITF-B_5v
  • ITF-S_3_3v
  • ITF-G_gain_control
  • ITF-C_amplified_raw_signal
  • ITF-E_signal_envelope
  • ITF-R_reserved
  • ITF-mET_SMA
  • ITF-C_amplified_raw_signal
  • ITF-E_signal_envelope
  • ITF-mEG_SPI
silent: The aim of this echOmod is to simulate a raw signal that would come from the piezo and analog chain.
  • ITF-A_gnd
  • ITF-B_5v
  • ITF-J_pulse_off
  • ITF-R_reserved
mogaba: The aim of this echOmod is to get 3.3V and 5V done.
  • ITF-mEM_Alimentation
  • ITF-F_12V
  • ITF-A_gnd
  • ITF-B_5v
  • ITF-F_12V
  • ITF-S_3_3v

Progress on building the modules

Module-wise

Note that the 'BONUS!' represents something that could be done, and does not count as a strict TODO.

Name of module ToDo Done Progress
sleepy
  • Choose the design once the modules are done
  • Get to work with Arthur
  • Checking Arthur availability
33%
tobo
  • Writing specs
  • HV7360 has been updated
  • Sending microcircuits to Edgeflex
  • Agreeing on the strips/tracks
  • Defining the ICs to use to pulse
  • Getting schematics
  • Publishing schematics
  • Receive the module
  • Test it with different transducers
  • Publish the sources in KiCAD
100%
cletus
  • Choose the servo (>100Hz)
  • Do the structure of the holder (3D design?)
  • Get a 3.5MHz piezo
33%
doj
  • Having the list of strips accessible
  • Design
  • Assemble it
  • Test it
100%
oneeye
  • First test with Arduino Trinket
100%
croaker
  • Replace the work done by OneEye by Croaker.
  • Get better total ADC speed with an iterleaved move
  • Choose the platform (BBB, RPi0, STM32, ... ?) : that'll be a Feather WICED
  • Getting some images
  • Getting images onto a screen
60%
retroATL3
  • BONUS! Get RealTime acquisition
100%
toadkiller
  • Enhance the BBB to transform it into a ultrasound server
  • Do the quick check up
  • Acquire some data
  • Post some data
75%
goblin
  • BONUS! Plug it to a RPi0 or BBB or RPi or else.
  • BONUS! or test it with the EMW3165.
  • Publish the sources in KiCAD (@Sofian maybe?)
  • Check the power consumption
  • Specs to write
  • Agreeing on the strips
  • Check if 5V and 3.3V are stable
  • Defining the ICs to use
  • Getting schematics
  • Send microcircuits to Edgeflex
  • Receive the module
88%
silent 100%
mogaba
  • BONUS! benchmark power supplies
  • Manage to feed it 12V
  • Bring power to it through the 12V ITF-F_12V track
  • Test if 12V OK
  • Find supplier
100%

Shopping list

Here's a couple of things we're working on, for which you could help as well.

  • Boosting the 6Msps croaker acquisition

  • Choose the design once the modules are done (in sleepy)

  • Get to work with Arthur (in sleepy)

  • Choose the servo (>100Hz) (in cletus)

  • Do the structure of the holder (3D design?) (in cletus)

  • Replace the work done by OneEye by Croaker. (in croaker)

  • Get better total ADC speed with an iterleaved move (in croaker)

  • BONUS! Get RealTime acquisition (in retroATL3)

  • Enhance the BBB to transform it into a ultrasound server (in toadkiller)

  • BONUS! Plug it to a RPi0 or BBB or RPi or else. (in goblin)

  • BONUS! or test it with the EMW3165. (in goblin)

  • Publish the sources in KiCAD (@Sofian maybe?) (in goblin)

  • BONUS! benchmark power supplies (in mogaba)

A recap of our retired modules

ThumbnailImage Name In Out
elmo: The aim of this echOmod is to get be the microcontroller heart
  • ITF-A_gnd
  • ITF-B_5v
  • ITF-E_signal_envelope
  • WiFi
  • Screen
  • ITF-G_gain_control
  • ITF-I_pulse_on
  • ITF-J_pulse_off
  • ITF-N_cc_motor_pwm
kina: The aim of this echOmod is to acquire the enveloppe of the signal and stream it. Designed for slow (~64 lines / s) acquisitions.
  • ITF-A_gnd
  • ITF-B_5v
  • ITF-S_3_3v
  • ITF-E_signal_envelope
  • ITF-I_pulse_on
  • ITF-mEC-WiFi-UDP-Stream
  • ITF-mED-TFT-Screen
  • ITF-I_pulse_on
  • ITF-J_pulse_off
  • ITF-N_cc_motor_pwm
retro10PV: The aim of this echOmod is to get the mechanical movement of the piezos. Salvaged from a former ATL10PV.
  • ITF-A_gnd
  • ITF-F_12V
  • ITF-N_cc_motor_pwm
  • ITF-mET_Transducer
  • Motor
  • Tri-Piezo Head
  • Motor
  • ITF-mET_Transducer
  • Tri-Piezo Head

Interfaces table for the motherboard

Name Title Amplitude
ITF-A_gnd Ground [0V]
ITF-B_5v 5V alimentation [5V, 5V]
ITF-C_amplified_raw_signal Amplified raw signal [0V, 2.5V]
ITF-D_amplified_filtered_signal Amplified filtered signal [0V, 2.5V]
ITF-E_signal_envelope Signal envelope [0V, 2.5V]
ITF-F_12v 12V alimentation [12V, 12V]
ITF-G_gain_control Amplifier gain [0V, 1V]
ITF-H_neg_12v -12V alimentation [-12V, -12V]
ITF-I_pulse_on Pulse on [0V, 3.3V-5V]
ITF-J_pulse_off Pulse off [0V, 5V]
ITF-K_pulse_redpitaya Pulse info for Redpitaya [0V, 3.3V]
ITF-L_18v_alimentation 18V external alimentation [15V, 20V]
ITF-M_abs_angle Absolute tranducer position
ITF-N_cc_motor_pwm CC motor pwm [0V, 5V]
ITF-N_stepper_b2 Stepper motor B2 signal [-5V, 5V]
ITF-O_cc_motor_encoder CC motor incremental encoder [0V, 5V]
ITF-O_stepper_b1 Stepper motor B1 signal [-5V, 5V]
ITF-P_stepper_a1 Stepper motor A1 signal [-5V, 5V]
ITF-Q_stepper_a2 Stepper motor A2 signal [-5V, 5V]
ITF-R_reserved reserved track
ITF-S_3_3v 3.3V alimentation [3.3V, 3.3V]

License

echOmods

The echOmods project and its prototypes are open hardware, and working with open-hardware components.

Licensed under TAPR Open Hardware License (www.tapr.org/OHL)

Copyright Kelu124 ([email protected] / [email protected] ) 2015-2018

Based on

The following work is base on a previous TAPR project, Murgen - and respects its TAPR license.

Copyright Murgen and Kelu124 ([email protected] , [email protected] / [email protected] ) 2015-2018

[](@autogenerated - invisible comment)

About

Ultrasound processing modules and building blocks

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 84.5%
  • KiCad Layout 10.2%
  • HTML 3.1%
  • Assembly 0.9%
  • Other 0.4%
  • Python 0.4%
  • Other 0.5%