Troubleshooting a Depth Sounder with a Propeller
I'm partners in a 26' sailboat. We recently had it out of the water for repairs, but now it's back in. One of the partners expressed a desire to use the boat and anchor it close to shore. Well, it might be a good idea to make sure the depth sounder still works, I thought. It didn't.
It's an ancient unit with 1960's technology -- the kind with a rotating neon light. I got it to the point where the rotor would rotate and the light would come on at zero depth, but it didn't show an echo. This could be due to three things:
- The echo receiver electronics are bad.
- The transducer is bad.
- The transducer cable is bad.
To eliminate #1, I built a small circuit on the Propeller Activity Board that I could use to insert an echo into the depth sounder after a delay from the unit's output ping. This ping consists of several AC cycles at 200 kHz and several hundred volts P-P. So I had to clamp that down to 3.3V so the Prop could deal with it safely. Here's the circuit I used:
The way this works is that the Prop waits for a pulse from the depth sounder, then waits another 15 ms (about 30' of water). At this point it changes the port to an output which impresses a 200 kHz, 0.5 ms "return" ping onto the connector. This ping comes from a free-running counter in NCO mode.
Here's the program:
CON _clkmode = xtal1 + pll16x _xinfreq = 5_000_000 PUB start ctra := %00100 << 26 frqa := $a3d9b9 repeat waitpeq(1, 1, 0) waitpne(1, 1, 0) waitcnt(cnt + clkfreq * 15 / 1000) dira~~ waitcnt(cnt + clkfreq / 2000) dira~ waitcnt(cnt + clkfreq / 1000)
At the depth sounder end, through the 22 pF cap, this "echo" is about 100 mV P-P. Thankfully, the unit was able to pick it up, as the photo shows:
So that eliminates any issues with the electronics. Unfortunately the cable and transducer are going to be more difficult to troubleshoot.