I need to create a digital controller for a underwater ROV I am making for my Vocational class I take. I have created a prototype of what I want, but I'm kind of unsure of its effectiveness. It sends 10 signals over a single wire from the transmitter to the receiver. Ideally, I want to make this capable of being wireless, but unfortunately, neither wifi nor 2.4 frequencies work, and I dont have any money to put into a nice 750Mhz one. So, I created it in a way that, should I find or make one, it can easily be adapted.

I created a device that sends 10 signals using 3904 transistors at the outputs of a 4017 decade counter, then I provided a clock signal from a 555 IC, tieing together the transistors' outputs into one line. On the other side, the receiver, I used the 4017 decade counter, set at the same clock signal as the transmitter, to decode it by having the one line from the transmitter connect to the collector of ten 3904s. Then, the decade counter to have each output connected to the base of the 3904 on the receiver. It then outputs this signal through the receiving 3904's emitter. I am working with limited supplies. Some things I need to know are:

  • How fast can I set my clock frequency without having problems?
  • Can anyone see why something like this might have problems?
  • Has anyone ever tried this before? And did they have problems?

Also, if anyone has a 750Mhz circuit diagram laying around, can you pass it on?

Thanks in advance,


  • 1
    \$\begingroup\$ Using a 4017 decade counter at the receiver to decode several independent signals from 1 wire is, in fact, a common RC servo control technique. \$\endgroup\$ – davidcary Dec 3 '14 at 5:02
  • \$\begingroup\$ If your signals are all digital, you might look for a SERDES (SERializer/DESerializer) IC. It sounds like that's what you're trying to rig up. I don't know much about SERDES products, so maybe someone else can chip in. \$\endgroup\$ – Adam Haun Dec 3 '14 at 6:02
  • \$\begingroup\$ You cannot transmit RF underwater; radio waves do not propagate in water. You'll have to ether use a tether or use optics for short-range or acoustics for long range. \$\endgroup\$ – alex.forencich Dec 3 '14 at 7:24
  • \$\begingroup\$ I commend your inventiveness, but I feel obliged to point out: microcontrollers were invented for a reason. \$\endgroup\$ – markt Dec 3 '14 at 7:49
  • \$\begingroup\$ Is all of the data communications supposed to occur underwater, or what? \$\endgroup\$ – EM Fields Dec 3 '14 at 8:02

In practice, you'll need more than you realize. What you've tried to make is called an analog multiplexer. Rather than reinvent the wheel, you might try a commercial unit. Since you want 10 channels, the Analog Devices AD426 will do what you want, and it has 16 channels just in case you need more than 10.

What you'll need is 3 pairs of wires. First is your data line. Second is the clock which you generated with the 555. Third is a sync signal, which lets the receiver know which channel is which.

If you don't send the clock, then the two clocks (send and receive) will drift with respect to each other. And this is A Bad Thing.

If you don't send a sync, you won't know which channel is which, which is Another Bad Thing.

So, you'd use a 74HC74160 or 74HC161 as a counter, and send its "ripple carry" signal as sync, and the receive counter would use an inverted version of the sync to reset the receive counter. The multiplexer should have an op amp buffer on the output, and the receiver may need a termination resistor, which will affect your choice of op amp buffer.

Driving and receiving the clock and sync over long distances will take special driver chips and terminators to get a clean version of the signals. If you just try to drive the wires directly, you will not believe the amount of ringing you get at the receiver, and it will very definitively not work.

It is possible to combine the clock and sync into one pair, but you don't seem likely to have the skills for that, so I'd stick with the separate lines. It's even possible to do everything over one pair, but this would involve phase-locked loops and even more expertise.

Speed will be limited by various factors, but with care you might get 1 MHz over 100 meters or more.


An alternative to rolling your own from discrete logic is to just capture the signals and transmit them in a more readable / extensible format up the wire by using a small microcontroller & a suitable protocol like RS-485. At the other end you could use a similar micro or a USB-to-RS485 dongle ($5 from eBay) to transmit & receive.

This gives you a bit more flexibility, the micro can send data packets with more information, error-checking such as checksum/CRC with very little effort.

RS485 is well proven & widely used over poor wiring & long distances (kilometres).


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.