Hacker News new | past | comments | ask | show | jobs | submit login

> A computer that can run a MHz frequency transducer is easy and cheap these days, e.g. a raspberry pi’s GPIO pins can run that frequency.

This is ridiculous. Transmitting needs a good amount of energy for a high number of channels (several dozen, and quite often > 100), and at a high frequency. And if you are driving a 10MHz transducer, you will for ex drive it with a 80MHz numeric signal (at least when using a low number of levels, which you often wants to in order to keep an high efficiency for the relatively high power TX)... Citing a raspberry GPIO pin to do that shows that guy does not know what he is talking about.

Reception is also not trivial at all, if you want a decent quality. You also sample at a rate > to the centre frequency.

Of course you might be able to construct an amateur toy low-end ultrasound machine, but it would be of no clinical value (and of limited value for a lot of other purposes too). Also without extensive measurements, you should not use your resulting machine on any living thing...




Power isn't a problem, because at that frequency any kind of amplifier can be used. Overall IO speed usually is for the simple fact that very few chips are specifically designed for that kind of thing, but it isn't impossible. AM335, FPGA and many DSP chips will handle that level of processing for <$20. The Raspberry Pi can't be used, but you could use a Beaglebone black if you tried hard enough (although it is also a poor choice). Regardless direct sampling ADC at 80 MHz or less is far from an impossible task.

In the end I would say the writer is right and you are wrong. He is painting with an extremely broad brush but his guesses are dead on the money. You should look at the links he provides at the bottom, there are exceptionally good DIY and open source ultrasonic machines.

Making the transducer is very, very difficult but he doesn't pretend it isn't.


> direct sampling ADC at 80 MHz or less is far from an impossible task

The Sonix linked below has 32 40MHz 10bit ADC channels, which is a factor of 64 off from the 80 MHz figure if one were to assume 8 bit, and places us firmly into the realm of several-hundred-dollar ADCs.

Not impossible, but I'm pretty sure that's where much of the cost is hidden.


That kind of figures is better than nothing but is exactly what I had in mind between toy systems and what good quality ones are able to provide. 80MHz is actually not mandatory but 40MHz starts to be really on the low end side, I think, but for low frequency probes that should still be quite good. Of course if you stick to simple B-mode you can get something visible with pretty much anything. 32 channels seems to start to be quite low, though, but yeah, better than nothing.

If you start to drive your TX path with "small" (depending on the number of channels) FPGA or CPLD, yeah this is more possible than with a raspberry pi GPIOs, this is even how some good ultrasound machines are build (depending on the volume)

In the end the cost of the hardware will be not far from the production cost of a "conventional" ultrasound machine. Because that industry has "low" volumes and very high R&D costs (especially for machines intended for diagnostic use), the difference between production cost and market price is very high. If you can eliminate part of that difference because you operate in another context, that's one way to drive the price down.

So yes, it should be possible to build one with limited capabilities for a few k$ per unit. (Spending various amount of money on R&D, depending what you're doing precisely.)


> Because that industry has "low" volumes and very high R&D costs (especially for machines intended for diagnostic use), the difference between production cost and market price is very high.

This is true, but this is only half of the story : the market price is also high because the elasticity of the demand for medical devices is really low. The hospitals charge a lot of money to their customers and their willingness to pay is also high.

I've developed software for customers working in the legal industry and it's the same kind of market: these people pay a lot for really simple stuff because they have money and want to get things done.


Hm, on the buyer side, it depends on the country but in some it is actually very competitive. So smaller players have a hard time to survive simply because of their lower volumes but similar R&D costs... Plus an ultrasound exam is not too expensive in some (most?) countries.


10 bit, 32 channel, 80 Msample ADC is <$300 [1] at prototype quantities, and <$150 at production quantities. 12 bit, 64 channel, 80 Msample ADC could be done with 4 of these [2] for $620.

An AM5716 or 5726 would be $30-$40 (although buying one is a little trickier). Thats 7-8 processors in one, plus 1-2 DSPs. Plenty of power to handle all the processing required. Even a 128 channel device should only be ~$2000 in parts (minus the transducer). One with limited capabilities should be <$500 (again, minus transducer). Much less if you make a few more compromises in the ADCs.

We can make SDRs for incredibly low prices nowadays, the only real difference between that and ultrasound is the number of channels. The only reasons ultrasound machines cost more than 5 grand are economic inefficiencies. The engineering has been solid for a long while now.

[1]: http://www.digikey.com/product-detail/en/linear-technology/L...

[2]: http://www.digikey.com/product-detail/en/texas-instruments/A...


You probably don't need 10bit, but yeah, 32 channels is needed. I wonder how did older machines did that, if it was done using analog processing

I wonder if there's an equivalence to 'synthetic aperture radar' on Ultrasound. then maybe you don't need 32 channels


Very old machine did some analog processing. Then it switched to digital on dedicated hardware. New machines can do all the processing in software, running on conventional hardware.

There is all kind of fun stuff that you can do with ultrasound, and some are similar to 'synthetic aperture radar'. However, 32 channel is still quite low. Lots of probes for humans are commonly using ~100 channels.


Do they actually sample the baseband digitally?

I would expect that they are looking at the return as an amplitude modulated and phase-shifted signal at the carrier frequency. They remove the carrier frequency and then look at the (much slower) modulation frequency.

I'm not sure what you gain from looking directly at the carrier frequency...


The relative bandwidth in ultasound is immense conpared to radar etc where a relatively narrow bandwidth is used. As an example one of our probes in university days was something like from 5 to 30MHz. Doesn't save much if we would mix it down that 5. Instead of 60MHz ADC we would need 50MHz. Not worth it.


You don't necessarily need the baseband (I'm not even sure if you ever need it) & depending on the mode you can tune the amount of bandwidth needed.


Do you actually need to do baseband sampling? It might be cheaper to bandpass and downconvert the received signal with an analog network first.


You need the phase information. Actually, that might be a better way of simplifying the information to be sampled - a set of phase comparators.


Phase information is preserved when down converting. But resolution certainly will depend on bandwidth. I read that ultrasound propagation delay is ~650 ns / mm... this is something like 500 KHz for 1 mm (using rise-time * bandwidth = .35 approximation).


It's definitely one of the most expensive parts, but its still a factor of 100 cost difference in parts to product. Even assuming there are 10 parts that all cost a few hundred dollars each (processor, memory, transducer, ADC, amplifier), thats still a 90% profit margin before r&d and other overhead. It's very high.


You don't need to sample at the carrier frequency for doppler measurement though. Time of Flight... I don't think so either.


> Citing a raspberry GPIO pin to do that shows that guy does not know what he is talking about.

Agreed, but I wouldn't rule out the possibility that a crazy individual with sufficient hardware and software signal processing experience could make it work, where "work" allows for a significant tradeoff or two compared to a modern commercial machine.

DAC is probably the easy part -- use a LFSR and maybe some jellybean filters to get spectral content where you need it. 10MHz is slow enough that you could probably phase it in software if you handwrote everything in bare-metal assembly, paid attention to interrupts and DRAM, etc, etc. At first I thought you'd need a coprocessor (and in that case it might as well be a proper Spartan 6) but perhaps it can be done with a dedicated core. ADC is the probably the harder part. You can't kick the can down the road anymore. Both cost and value are tightly coupled to 2^(bit depth)*(sample rate). If you try to make a shitty ADC out of GPIO pins, you just wind up with a shitty ADC, you can't really hide the flaws and play up the strengths like you did with the DAC.

Or maybe I had it backwards and you could use a good DAC and some sort of sigma-delta like trick to make the shitty GPIO - ADC work.

Fun stuff to think about, but I suspect the real innovation will happen when someone in hardware realizes that DAC/ADC/FPGA technology has slowly and surely advanced far enough that they can do to the ultrasound market what the DS1054Z did to the oscilloscope market.


For our first child, I was considering building a DIY ultrasound machine, since I had several friends doing their final MSc project on ultrasound hardware and software. I came as far as setting up a shopping list, where I assumed a high-end laptop and Matlab with all toolboxes for free, together with some code from my friends. Still I ended up north of $3k for hardware, and several hundred projected work-hours. A lot of the cost comes from needing 50-100 transducers to get a useable image.

OTOH, the single transducer doppler ultrasound devices that's used in early pregnancy to hear the baby heartbeat can be had for $30 on ebay.


> A lot of the cost comes from needing 50-100 transducers to get a useable image.

For-parts ultrasound arrays (which are usually broken because of obsolescence, frayed wires, cracked cases, bent connectors, etc, rather than destroyed ceramics) cost tens of dollars on ebay. But I agree with your overall point: hardware hacking ain't cheap. A $3k bench is north of desperation territory but still a fraction of what entry-level EEs get at the company I work for, and we're not in any line of business that would be considered "performance" by test equipment standards.


> a 10MHz transducer, you will for ex drive it with a 80MHz numeric signal

Nope, they basically use a series of pulses at 10 MHz and rely on the frequency response of the transducer to turn it into a nice wave packet.

Source (look at pulseShape):

http://www.ultrasonix.com/wikisonix/index.php/Texo_Parameter...


If you want nice stuff on a probe with an analog center freq of 10MHz, you can do PWM (in various forms) with an higher freq. Now 10MHz is not be the lowest probe freq avail, it depends on the usage. Higher freq gives better resolution, but has a worse penetration.


I think you are missing the point.

A 10MHz transducer will be resonant at 10MHz. If you drive it with a square wave at 10MHz, it will naturally respond best at frequencies that are 10MHz, and will very poorly respond to frequencies that are not 10MHz. Thus, a 10MHz square wave driving a 10MHz transducer will produce a pretty good 10MHz sine wave sound signal. This does depend on how sharp the resonance is of the transducer, but it shouldn't be that hard.

Ignoring that, creating a 10MHz RF sine wave isn't that hard using classical analog techniques: wifi chips in modern computers create a 5MHz carrier wave that can be amplified and doubled with some cheap off the shelf parts.


You typically do short pulses in most modes. You can use some form of PWM to apodize on the edges, when needed.


> You also sample at a rate > to the centre frequency

To be clear, a sampling rate that is only greater than the center frequency isn't very useful. You need the well known nyquist rate, twice the maximum frequency to avoid aliasing

https://en.wikipedia.org/wiki/Nyquist%E2%80%93Shannon_sampli...


This is not strictly true. You can reproduce a band-limited signal as long as the bandwidth of this signal is smaller than half the sampling frequency.

For example, a signal that only has energy in the range of 9MHz to 11MHz has a center frequency of 10MHz, but a Bandwidth of 2 MHz. You could sample, and reconstruct, the signal perfectly with a sample-rate higher than 4 MHz. Any content between DC and 9MHz that would be present would distort the sampled waveform, though, and create artifacts.

https://en.wikipedia.org/wiki/Undersampling

Of course, nowadays most often one just uses a very fast ADC, and one can then choose a suitable sub-band by decimation (in a FPGA or ASIC), a kind of digital frequency filtering.

Undersampling was often used in older RF gear (and, maybe it still is for reaching the hightest frequencies? I don't know what's the current state of the art).


Yes.

This is essentially like using a mixer in RF circuits. I'm pretty sure it's still used in many variations. Generally speaking you can't go high enough in sample rate to allow every RF signal (in the GHz possibly) to be sampled directly. It's always some sort of frequency shifting + filter. The key is to filter out frequencies out of the band before sampling and the band does not need to start from DC (0Hz).


Note the "to avoid aliasing" in the comment you are responding to.


You can also embrace aliasing if you are kind of crazy. Look for "compressed sensing" stuff. Although I'm unsure if this would be useful for anything on ultrasound systems.


Compressed sensing really isn't the same thing - and to do it properly you need random sampling. Still it's interesting stuff !


Not sure why downvotes. Parent is describing exactly the issues with undersampling that grandparent wanted to avoid.


Your actual sampling rate will be higher than the Nyquist if you are trying to process data from an array, as the sampling rate required to detect phase shifts depends on the sampling period (which is determined by how quickly you want to 'move' the array).


> Citing a raspberry GPIO pin to do that shows that guy does not know what he is talking about

I think it's pretty clear that he doesn't, but it's not like he's claiming to be an expert.


An RPi costs about $30. A cheap FPGA Dev board with enough I/O capability to drive a transducer array costs about $300, and requires someone familiar enough with Verilog/VHDL/etc to actually program the thing. I'd guess he's off overall by at least an order of magnitude in any of his cost estimates, even if all the labor is free.

I'm sure such a device can be made much more cheaply than existing solutions, but the author doesn't seem to have a realistic idea of the difficulty.


Also the FPGA is not sufficient. You need something with both power capabilities and a decent freq capability, to drive pulses with some decent energy. On dozen of channels.


I think you do something like using a BeagleBone with its PRUs to handle moving all the data somewhere fast enough in combination with a cheap FPGA to drive the transducer(s) and do a little initial signal processibg to reduce the data rate a little.

This is a little more complex but the cost is going to be of the same order of magnitiude as a Pi


The AM335x isn't designed for data acquisition like this. I should know: I'm doing a project right now with 16 Msamples running through a beaglebone. The PRUs don't really like to write directly to memory very much, and hacky methods are required to prevent segfaults. There are other chips with officially supported DSPs that work much, much better for this sort of thing.


Wouldn't you normally mix down on the receive side for better SNR? Doppler should be pretty negligible, so if your LO tracks the output the receive side could probably be an audio ADC.

Power on the output side is the big one for sure, however. Also I'm not sure the transducers cited are anywhere near big enough.


Mixing is only useful when the change in the signal is slow. In ultrasound you're operating around single wavelengths so you can't mix down.


FMCW systems would be slowly changing around the central wavelength. It wouldn't work for pulsed systems, though - I'm not sure what's more common.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: