Same problem. Any progress in this?
It is still a project and I want to have it done before this summer but I have not any new info since I am short on time lately. I now have a scope but I need to find time to understand how to use it and then start pocking around on the sonar circuit. Someone also PM me about this. This is encouraging knowing others are also interested.
I reversed engineer almost all the circuit except the LCD part but I am stuck at tracing the signal toward the transducer and back. It is hard because it is AC and simple continuity testing is not enough for tracing it (everything seem connected to everything in that part of the circuit!).
I am looking for the PIN on which the signal arrive and to the components require to transform it to DC and make it proportionnal to depth. If I found this place, then I am very confident that I will be able to move on to interfacing it with a microcontroller.
The sonar is trigger base. The IC's trigger a pulse (discharge a capacitor i think) into the transducer and listen for the echo. This need to be sync somehow. Then the receiving IC transform the echo, I hope that this transformation involve a conversion to DC and then to depth.
Hello, I'm also working on this project. I think that serial connections should output some useful data to outside. I do have small oscilloscope but don't have that fishfinder equipment yet. I can guide you how to check that serial output from your oscilloscope to see if there any useful data coming out from it. waiting your answer. if you need to pm me, use this email: email@example.com Thank you.
With the auto mode on my scope, I can see a signal. After playing around, I am confident that I found the transmitted pulse and the echo. Time between the pulse and echo should correspond to twice the depth and the time between pulse and echo do decrease when the sonar get closer to the bottom of my test bucket. The echo also vanish when I disconnect the sonar from the circuit and the pulse stay visible.
I loose the signal around the IC. I am not certain why. It most probably change and I can’t set the scope right?
The scope can be set to AC vs DC vs Gnd coupling. Could this be usefull in my case? Now it is on DC.
According to the scope the frequency is 200 khz. This is good for a 200 khz sonar! Is there a way to modify the scope monitoring frequency? For example, if I set it to 100 khz, then the signal should disappear? Is this how it is suppose to work? When it get into frequency, I get lost. It also confuse me a lot when it get into modulation / demodulation of the signal. Sending a modulated signal from a place to another and then demodulating it to something useful... Do you think this is the case in a echo sounder circuit? In other word, Should I look for a different/demodulated signal/frequency around the IC?
To arduinozone, I email you and I would be glad to try the scope on the serial interface as you suggest. My oscilloscope is a GA1102CAL.
Pulse (every sec)
Zoom on the trigger Pulse and ascending slope to the echo
Closeup of the trigger pulse
Pulse and returning echo
After playing around, I am confident that I found the transmitted pulse and the echo.
It would be helpful if you would post of clear photo of the fishfinder board, with the traces or pins marked, where you found those signals.
It is the same signal on the same spot off the circuit (just different zoom). It's on the + pin of the transducer. The two last pictures are different because I disconnect the sounder to stop any echo reception. It confirm that the pulse is produce by the circuit (not the transducer) and also isolated the pulse from the echo for me to kow what is what! This is why we only see the echo on the last picture.
I am almost done with handwriting the complete schematic. I will have to clean it but I will post it soon.
There is really only 3 pin of the uC that interact with the sounder. One pin act as a trigger. I isolated the signal with the oscilloscope. The uC send a PWM of 20 short pulse. Those end up grounding the variable inductor coil through a cascade of 3 transistors. This grounding discharge a capacitor and the current passing in the grounded inductor produce the pulse like we can see in the pictures from my previous post. The uC trigger such pulse at a frequency of 2.5 hz (one pulse every 400ms).
The pulse and the echo reach the second variable inductor but get transform during this step and reach the IF amplifier. From the 16 IF amplifier pins, only 3 are connected. This IC output a RSSi signal from someting that look like a differential amplifier (one pin is the pulse + echo) and send it directly to the uC. I hope the RSSI signal is directly proportionnal to depth, time of the echo or something of this kind?
My hand drawing is hard to post in good quality (sorry for that). I tried to comment them using power point. I hope it do not become to confuse.
The first image show what is connected between the microcontroller and the Transducer related IC. As can be seen, there is really only a few pins connected for both chip (disregarding the LCD part). Grey box are pin that are not connected (not even on ground).
The sounder signal end up in one input of the IF amplificator on the IC AA32416. The ouptut of this amplifier is not connected! Instead, the output is taken from the RSSI internal circuit. This signal is then transfered to pin 1 of the microcontroller.
This image show the PWM trigger circuit. This trigger a pulse every 400 ms. This pulse is transmitted to the water. There is not much more to say about it.
This image show the "echo receiving" circuitry. The pulse and echo can be measure by the scope on the small blue circle (among other) and ultimately get transformed in the variable inductor on the rigth side. The transformed signal is then feed to the IF amplifier and transformed to RSSI signal. On the top left, the pin 2 of the microcontroller seem to do something. The oscilloscope see a signal in sync with the square pulse but I don't know if it is an output or an input in this case? It look like a fully on fully off signal / not PWM.
One last thing, I could not identify the capacitors value. This is why none are shown. For all other aspect, I am almost 100% certain of the schematic. Can someone help understanding the circuit especially from the last picture?
That is really helpful information! But the question remains: how does the schematic relate to the actual board? Please post a clear picture of yours, with key points marked.
Here is a photo of the board I have (Portable Fish Finder from Venterior), which is probably a different design, as it has an LM2901 quad comparator.
Looks like the yellow case, and the large electrolytic cap are the same!
I think I found how it work.
The rssi signal from the IF amplifier is some sort of Enveloppe of the echogram. It create a serie of valley and peak of +/-760 mv. Time between the first peak and the second peak and all the others varie according to the distance x 2 (x2 because it take twice the time for the wave to go down in the water and bounce back as expected).
Based on this, the question is :
Is there a function in arduino that can monitor the RSSI signal and found peak and valley in it? Maybe it should be call frequence or period of the ondulation? The signal is in the pictures below.
RSSI signal in yellow.
Zoom on the pulse and first few echos
Is there a function in arduino that can monitor the RSSI signal and found peak and valley in it?
No, but you can write one. Look up "peak search algorithm".
From the shape and amplitude of the echo pulse you can deduce some features of the object that reflected the signal (size, hardness, etc.) That analysis is presumably how the fish finder determines the difference between solid bottom, fish, aquatic plants, etc.
The echo signal shape also depends on the signal frequency and the transducer, so if you want to implement that capability yourself, you would need to do some experiments in the real world, with known objects and see what type of echo signal is returned.
But what do you want to do with the fish finder?
I will look into peak search algorithm.
I already write a small "algorithm" that find max value of consecutive voltage data in arduino. It could be a good start.
I don't need to see fish. I just want the depth value. The idea is to build a smaller board (minimum part) and have this sounder hookup on a floating platform. I can then ping the bottom from time to time and see if depth have change (it's in reservoir were water level do change). This would save me from installing a pressure sensor at a fix depth and having a communication cable floating around.
I also plan to mount the sounder on a ROV to know when i get close (too close) to the bottom or obstacle in a lake). The idea here is to combine a pressure sensor and the sounder to know at all time the position relative to the surface and the bottom.
I also wanted to play with it just for challenge! I did made some interesting progress here...
I am interested to understand the shape of echoes. Can you tell me more about it?
One other interesting point. The fish finder return 0.6m in my water bucket although it is really at 17 cm. When I measure the distance between pulse and echo on the scope, I obtained 232 uS (avg). which give about 17.2 cm with a speed of sound of 1480 m/s. This suggest that the algorithm may not be optimized in this circuit?
That result suggests that the MCU code is optimized to find fish, rather than report the depth of a shallow bucket.
To measure depth, all you need to know is whether a valid echo from the bottom has been captured, and convert the travel time into depth.
Please post a link to where you bought that particular fishfinder. It is obviously a completely different design that the one I have.
I find it here :
Does someone have a idea about what Pin 2 of the MCU do? The schematic is on the echo receiving schematic post earlier. I know it output a square signal in sync with the trigger.
Is there a way to measure the capacitor values? I read the same value all over the board. It look like I read the result of the global parrallel capacitance. I read 18 pF.
You have to remove capacitors from the circuit to measure them. You can use smd tweezers like these to make the measurement.
Follow up on this...
I build a simple triggering circuit with a mosfet and esp32. Then I cut the trace between the fishfinder microcontroller and the pulse triggering system to stop it from sending pulses. I hook my ESP32 and mosfet and succesfully trigger pulses at the exact ferquency as the original microcontroller. Value on the scope also remain the same.
So, I can trigger pulse with my simple easy to build side circuit!
Now, I would really need help to received and analyse the echo to estimate distance.
I only want the time between pulse and echo so maybe a peak detector could work? But I also saw average peak, rms peak and from my oscilloscope measurement, the actual setup seem to rely on the full enveloppe of the signal (RSSI). Which to choose?
I am not sure in which direction I should go.
Also most of the schematic I found are design for rail to rail (like the one in the picture) to operate but I would like to use a 0 - 5v opamp more compatible with arduino like MCP6002 for example. The echo swing below 0volt but I think I can use the positive peak only. Do you think that biaising pin 3 and 5 to 0.5VCC in the schematic from the picture would be enough for 0-5 volts operation? How to calculate the output capacitor value for 200 khz signal?
It is really the last piece before having the full solution. If I reach it, I plan to summarize the info and make it available for the forum.
Thank you in advance for any input and help.
If you just want to measure distance, it is sufficient to detect the positive peak of the echo, or at least an appropriately chosen positive level. A comparator would work for that.
I imagine that the fish finder analyzes the entire echo envelope to determine what size and sort of object is returning the signal, that is, to distinguish between fish, vegetation, solid bottom and of course, shipwrecks with treasure chests.
The peak to peak voltage of the pulse is 190v. Will a 5 volt mcp6002 opamp support that?