Summer Milestone, playing with modules

@kelu124

July 20, 2016

Objective

The objective of this project is to propose an open-source, low-cost dev-kit ultrasound imaging to allow scientists, academics, hackers, makers or OSHW fans to hack their way to ultrasound imaging.

What are modules?

The modules are breadboard compatible functionnal elements of any ultrasound imaging systems. They have in common 19 'public' interfaces available on a motherboard to easily access and understand the signal processing logic.

They are listed on the echomod repo

What specs?

We aren't doing live imaging for doctors, rather.. building a cheap, open, system. Therefore, we could use the following (more details in the specs detailed in the Worklog:

  • 3MHz ultrasound: travels fasts, has a low enough frequency to avoid using too quick elements (ADC, processing, ...)
    • This gives a depth from 2cm to 15cm.
    • 15 cm back and forth at 1500m/s is 200us.
  • Using a single element imposes motors. Our target framerate is 1 image / s
  • We're sweeping. We will target an easy 64 lines / image

More details on specs

  • 1 image per second at 64 lines per image gives 15.6ms between lines. That requires a simple servo.
  • For a slow ADC (12bit, 2Msps) - 200us is 400 points is 5600 bits is 700 bytes.
  • Roughly -- 5600 bits per 10ms is 560,000 bits/s is 70kbytes/s .. which is clearly fine with WiFi UDP (or TCP ?) streaming.
  • We'll try to use only 3.3V and 5V - standard voltages.

High priority modules

  • tobo: the HV and pulser module. PCB made.
  • cletus: interface the transducer and the servo, aka the physical parts, to the analog part of the modules chain.
  • goblin: getting the signal coming back from a transducer, and to deliver the signal, analogically processed. PCB made.
  • silent: emulating an enveloppe signal. Dev toolbox.
  • mogaba: getting 3.3V and 5V done.

Lower priority modules

  • sleepy: encasing the whole modules object in a neat case, making it transportable.
  • doj: the motherboard itself.
  • Toadkiller: PRUDAQ BBB Board : that's a 2x10Msps (or up to 40Msps) board for the BBB. Could be u seful for the retroATL3.
  • Hannin: a Wifi module, based on the EMW3165 - a rough UDP-streaming ADC. For slow acquisition.

Retired modules

Those are retired modules. However, they contain useful info.

  • retroATL3: hacking a ATL3. Rotative probe with 3MHz element.
  • retro10PV: hacking a ATL10PV. Rotative probe with 5, 7.5 and 10MHz elements.

Along with a real time, high speed DAC (BBB-PRUDAQ ?), retroATL3 could be up and running again.

Proposed Set 1a: slow speed

Proposed Set 1b: slow speed, wireless

Proposed Set 2: Emulated signal

Proposed Set 3: High Speed acquisition

Documentation

Documentation here is key. A website that builds itself based on proper, simple and un-redondant information is needed... and this repo / presentation is a proof it's on the way ;)

Acquisition

Having played with acquisition, it appears that the BitScope is excellent for 5Msps acquisition - with Xms delays between transfers to PC. Need real time. Options are as follows:

Display

Displays are key to see if each line behaves as it should - and of course for us to check if it works. The displays should be part of each module. Several possibilities

  • Getting the image displayed on a TFT
  • Maybe line by line on the 128x64 OLED screen (using the EMW3165 ?) (@TODO)

Planning

  • Critical path: pulser
    • Aug 10th: starting the work =)
    • Aug 10th: high priority: getting a US pulser emulator (@TODO)
    • Aug 15th: getting and debugging Tobo, the pulser
    • End of August: tested PRUDAQ BBB Board
  • medium priority: small DAC
  • Low priority:
    • Aug 15th: having played with PRUDAQ BBB Board - maybe with Goblin and retroATL3

Community

Two main steps:

  • Interfacing with echopen -> how to push the modules ?
  • Pursuing the documentation effort and community visibility with hackaday.

Conclusion

Two outputs scheduled:

  • A working dev-kit
  • An efficient (err, lazy) way of documenting. Only one place to edit information, will be updated everywhere, even in this presentation!

Pending Work

  • Publishing automatically a presentation/ppt of the modules.. will need some inputs from the /include/ folder =)
  • Getting a US pulser emulator (silent) : Teensy, Feather Wiced?
  • Graph the different modules - and see to what functional block each belongs
    • Within, create sets for graphing
  • Transcribing murgen, tobo and goblin to kicad
  • Finding a good "Todo" list.

Q&A

Ping me @kelu124 / kelu124@gmail.com !

Names

  • ToadKiller for the Beaglebone with PRUDAQ BBB Board (to test with retroATL3)
  • Beaglebone with direct access to tobo (to test with retroATL3 - high prio) (cf Derek Molloy) -> Code to be put in tobo
  • Doj for the motherboard
  • Hannin for the EMW3165 module