Forum Rule: Always post complete source code & details to reproduce any issue!
Page 1 of 2 1 2 LastLast
Results 1 to 25 of 32

Thread: Hydrophone amplifier and sampling

  1. #1

    Hydrophone amplifier and sampling

    Hey all,

    Looking for some advice on sampling some raw voltages from a hydrophone (eventually trying to do some TDOA / beamforming with 4 of them).

    Here is my tentative plan (hydrophone-> amp->recombine balanced signal -> strip DC and bias -> sample)

    Im using an Aquarian Audio AS-1, in initial tests seems to be a great high impedance phone: https://www.aquarianaudio.com/as-1-hydrophone.html

    That connects to my pre-amp via unbalanced BNC cable. It runs through the OPA1642 opamp by Texas Instrument. Powered by phantom power. Im using the circuit from this instructables but may need to modify it slightly for phase shift reasons. https://www.instructables.com/OPA-Ba...d-and-a-Figur/

    Post preamp stage shows +- 700mV or so on the oscope with me clinking a coffee cup full of water and the phone submerged.

    The signal runs across the balanced XLR cable and into a circuit based on this link. https://www.diyrecordingequipment.co...assembly-guide. I am slightly worried about the phantom power going into this Op-Amp. I may need to put DC blocks.

    This should recombine the signal into an unbalanced line. I will then run it through a 100uF DC block and then bias the voltage for the ADC to sample (maybe I need another buffer stage?)

    Currently, I have an ISR sampling the channels (up to 4), stuffing the results into a circular buffer, then whenever the circular buffer has enough data (512 bytes block size ) to fill a block of data, I write to an SD card.

    I have an Eagle Circuit drafted.(warning its ugly). Will link the code I am using shorty for the teensy side. Just looking for some feed back on things that might go wrong if any one has some ideas. Digikey order is in and I am planning on building it this weekend.

    Eagle Schematic
    https://drive.google.com/file/d/1J4B...ew?usp=sharing
    Last edited by lightningmar; 02-04-2021 at 06:51 PM.

  2. #2
    Senior Member
    Join Date
    Jul 2014
    Posts
    3,117
    I know there are some users on this forum with experience using hydrophones, so I would comment only on TDOA
    (BTW, I would TDOA not call beamforming, but this is not relevant)
    In order to do TDOA, you need to sample the 4 channels synchronously. Valid also for beamforming. So, using a system where each channel has own ISR is a source of trouble, except for very low sampling frequencies. BTW, what is your desired bandwidth?

    However, I'm confused, your schematic indicates a MCP3008 (a 8-channel 10bit ADC with fs of 200kHz). First, I would consider 10 bit resolution not adequate for most underwater sensing systems. Also, why an ISR for each channel if you use MCP3008?

  3. #3
    You are completely right. I should of put TDOA/Beamforming.

    I am hoping I can account for the 1 to 2 microseconds between samples in post processing. Another error in my above post (what I get for trying to post something between meetings at work). The one ISR would sample each of them sequentially. I'm not partial to the MCP3008. I just happened to have one in my spare parts bin. Any recommendations on an ADC converter that is high resolution and can sample multiple channels in one clock cycle?

    Code added to this repo: https://github.com/julianblanco/audi...n/src/main.cpp

  4. #4
    Senior Member
    Join Date
    Jul 2014
    Posts
    3,117
    Quote Originally Posted by lightningmar View Post
    I'm not partial to the MCP3008. I just happened to have one in my spare parts bin. Any recommendations on an ADC converter that is high resolution and can sample multiple channels in one clock cycle?
    Is your desired sampling only 5 kHz?
    OK, I note, you are not using an ISR for each channel, but one ISR for all channels, and sample the channels sequentially in the Timer-driven ISR.
    If you stick with this complexity and program is working, I would not change.
    However, if you wanted to go faster and do some processing, then you should consider
    - Using a ADC the multiplexes the data (TDM format)
    - for underwater application use an ADC of at least 16 bit
    - Use DMA to transfer data data to memory (not necessarily faster but reduces the number of ISRs and allows use of CPU for other tasks).

    comment on underwater noise
    ambient background noise is typically 1/f (better -17 dB/decade) which means that if no conditioning, than ADC will be driven mostly by very low frequencies. If ADC dynamic range is limited to, say, 10 bits (60 dB) then there is little chance to see any week signal that is above, say, 1 kHz.
    two work arounds:
    a) use 24 bit ADC witch gives you, say, 20 bit (or 120 dB) dynamic range
    b) use a 10-30 kHz single pole high-pass filter to equalize the ambient noise.
    (or combine both)
    method b can easily be done if you replace the coupling capacitors (47u in your schematic) by much lower values (say 1-10 nF). The exact value depends on residual circuit (e.g. ADC input impedance)

  5. #5
    Senior Member
    Join Date
    Jul 2014
    Posts
    3,117
    Quote Originally Posted by WMXZ View Post
    method b can easily be done if you replace the coupling capacitors (47u in your schematic) by much lower values (say 1-10 nF). The exact value depends on residual circuit (e.g. ADC input impedance)
    wanted to say 0.1 to 1 uF

  6. #6
    My physicist friend who asked for my help with the project wants at least 10kHz. I think 40kHz would be optimal.

    I've tried the Cirrus CS42448 before 6 24 bit A/D converters IIRC. But I was never able to get the chip to initialize when connecting with my teensy. I didnt see any bridges under the microscope but maybe when I did my hot air rework i nuked the chip.

    Ultimately, id like to increase the dynamic range, but in the short term i will try the high pass filter.

    Really appreciate your comments!

  7. #7
    Senior Member
    Join Date
    Jul 2020
    Posts
    900
    The choice of the OPA1642 is good I think, it has JFET inputs so its current noise shouldn't be an issue with that fairly high
    reactive impedance (19k at 1kHz - about 8nF of piezo transducer I presume). The OPA1642 has low quiescent current draw
    too which will help with phantom powering.

  8. #8
    Senior Member
    Join Date
    Jul 2014
    Posts
    3,117
    Quote Originally Posted by MarkT View Post
    The choice of the OPA1642 is good I think, it has JFET inputs so its current noise shouldn't be an issue with that fairly high
    reactive impedance (19k at 1kHz - about 8nF of piezo transducer I presume). The OPA1642 has low quiescent current draw
    too which will help with phantom powering.
    The 5.1 nV/sqrt(Hz) voltage noise is acceptable for most LF application. Obviously, the good old time with sub-nV/sqrt(Hz) FETs are gone. Also, one may need protection diodes on the input, so that a dropping hydrophone (extreme voltage spikes) does not kill the preamp.

    Edit: As it may be of general interest:
    the selected hydrophone (AS1) has a sensitivity of 40uV/Pa

    quietest spectral ambient noise at 1 kHz (Sea state 0, no shipping, deep water) is 10 uPa (20dB//uPa) (1Hz BW)
    So, in order to be ambient noise limited and not pre-amp limited, pre-amp voltage noise must be less than 0.4 nV
    In other words: the 5 nV pre-amp noise corresponds to a spectral ambient noise of 125 uPa (42 dB//uPa) (still 1Hz BW).
    Depending of the application this may, however, be acceptable (costal water, lot of ship traffic etc, are not quiet scenarios)
    Last edited by WMXZ; 02-06-2021 at 07:17 AM.

  9. #9
    Some really good content on this thread. Thanks all! I am a friend of the OP helping with this project (but not the smart physicist one). We are shooting for a 4 element array with 75cm spacing between elements. For proof of concept we might try a 1000hz source signature (small illegal fishing boat). Goal would be to collect all for channels synchronized with decent SNR across 0 to 10kHZ band. I know this is a little out of date but I have been using this wenz curve chart for ballpark estimation of the ambient noise.

    Click image for larger version. 

Name:	wenzcurve.jpg 
Views:	20 
Size:	172.7 KB 
ID:	23616

  10. #10
    Senior Member
    Join Date
    May 2019
    Posts
    114
    Some comments:

    For low noise you can try J309,LSK170,LSK489,INF3601. J309 is 35 cents and will be much lower capacitive load too. Look in The Art Of Electronics 3rd edition for a 1nV/sqHz preamp example and more info on low noise jfets.

    I use OPA1654 as my default go to piano. It has 3.8nV/sqHz at 10 kHz.

    A 24bit audio adc will give you a maximum of 108dB dynamic range.

    With 75cm spacing you reach special aliasing soon. 10kHz won’t be useful for beamdorming at that spacing. Maybe aim for 100 to 1000Hz.

    Are you planning to do beamforming signal processing on the teensy or offline?

  11. #11
    Senior Member
    Join Date
    May 2019
    Posts
    114
    PS

    I don’t understand the unit on that Y axis. Shouldn’t that be dB re 1uPa/sqHz. ?

  12. #12
    Senior Member
    Join Date
    Jul 2014
    Posts
    3,117
    Q: are you planning to process the array coherently? (75 cm = lambda/2 @ 1kHz)

  13. #13
    Senior Member
    Join Date
    Jul 2014
    Posts
    3,117
    Quote Originally Posted by tschrama View Post
    Some comments:

    For low noise you can try J309,LSK170,LSK489,INF3601. J309 is 35 cents and will be much lower capacitive load too. Look in The Art Of Electronics 3rd edition for a 1nV/sqHz preamp example and more info on low noise jfets.
    can you source these JFETs? esp.LSK170, LSK489. OK, J309 on Mouser is 4,60 Euro.

  14. #14
    Senior Member
    Join Date
    Jul 2014
    Posts
    3,117
    Quote Originally Posted by tschrama View Post
    PS

    I don’t understand the unit on that Y axis. Shouldn’t that be dB re 1uPa/sqHz. ?
    It says spectral level. Forgive Urick (most likely source) that he does not stick to scientific correct notation

  15. #15
    Asking my friend about the units on the chart. Starting off, I plan to do it offline in post processing. Eventually I would like to do it on the teensy or a companion computer if I need more horse power

    Yes, the array will be rigid and we plan to sample coherently.

    Yes. I can source the j309 https://www.mouser.com/ProductDetail...BlAKFMwA%3D%3D.

  16. #16
    Senior Member
    Join Date
    Jul 2014
    Posts
    3,117
    Quote Originally Posted by tschrama View Post
    With 75cm spacing you reach special aliasing soon. 10kHz won’t be useful for beamforming at that spacing.
    but TDOA still works, but otherwise you are right.

  17. #17
    If we add another element at at a random spacing we should be able to get around the aliasing right?

  18. #18
    Senior Member
    Join Date
    May 2019
    Posts
    114
    OMG, did you see that price?

    You can get those in SMD for 38cts/piece, or 10cts/piece per 1000. But try the opamp first, opa1642 or 1654, opa134 etc...

  19. #19
    Ill keep that in mind! The first version it might be easier to work with thru hold stuff. Then once we bench test I plan to design a PCB for it.

  20. #20
    Senior Member
    Join Date
    May 2019
    Posts
    114
    Ad743, AD745 are fast enough for 1kHz sounds, LT1113, LT1792 and the newer ADA4817 are low noise candidates from Analog Devices. The sub 1nV preamp in TAOE is in figure 3.3.4 page 152.

  21. #21
    Senior Member
    Join Date
    May 2019
    Posts
    114
    You mean, creating a sparse sampled array? Sorry, dont know much about that.

  22. #22
    Senior Member
    Join Date
    Jul 2014
    Posts
    3,117
    Quote Originally Posted by tschrama View Post
    OMG, did you see that price?

    You can get those in SMD for 38cts/piece, or 10cts/piece per 1000. But try the opamp first, opa1642 or 1654, opa134 etc...
    However J309 is 10nV/sqrt(Hz) not to be compared with LSK170

  23. #23
    Senior Member
    Join Date
    May 2019
    Posts
    114
    1.5nV. Got one on my bench now. Read TAOE

  24. #24
    Senior Member
    Join Date
    Jul 2014
    Posts
    3,117
    Quote Originally Posted by tschrama View Post
    1.5nV. Got one on my bench now. Read TAOE
    believe you, but as datasheet says 10nV, would you mind to describe your measurement setup that resulted in 1.5 nV.

  25. #25
    Senior Member
    Join Date
    May 2019
    Posts
    114
    Datasheet has no noise data (except for a 100Hz quote, which is useless because 1/f is a bit high on this part). The Spice model is pretty accurate too, and it has a low source-resistance. From source-resistance and transductance you can ballpark the noise. But all this is a bit off topic don’t you think. Just build the preamp, limit the bandwidth, short the input, measure the output with a RMs meter or scope.

    (tried to send you a private ,message, to talk about the analog side of things, but ur preferences are set to not receive private messages)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •