I want to make a robot that can track the direction of the transmitter that is controlling it, for example to aim a camera at the transmitter. The robot vehicle will be controlled by a 2.4ghz NRF24L01+ link from within about 40 meters away.

I found this page which uses antenna switching to accomplish something quite similar: http://www.robowarner.com/robot/rdfbotarduino However, as he points out "This project requires a transmitter that outputs a clean, unmodulated waveform."

Thankfully, I can mostly grasp the concept of how that particular example works, but what I don't understand is how this same type of RDF was used in wartime to locate signal sources that not only were not outputting clean waveforms, they were doing their best to remain hidden.

So there must be another variant on this method that does not rely on the source signal being of a certain type, right? It would be great if I could just do antenna switching with my receiving NRF24L01+ and do the same kind of phase comparison, but I guess that ain't gonna work (would it also screw up the communication?).

Any ideas about a good way to proceed? I suppose I could transmit a second, clean waveform, from the transmitter as well, but it would be nice if there was some way to avoid doing that.

(Bonus marks if you can tell me why that guy is switching the antennas four times before taking a reading... is once not enough?)

  • \$\begingroup\$ I suspect that the clean-transmission is just a whole lot simpler to detect & differentiate than a highly complex transmission is - a vast amount of money will have been spent on equipment for wartime applications, so they'd be doing a lot more sophisitcated detection than most of us can afford to do. \$\endgroup\$ – TDHofstetter Aug 22 '14 at 2:22

I don't know which war you might be thinking of, but in general that kind of direction-finding involves techniques other than TDOA.

The TDOA technique works with the cheap FM walkie-talkies because the antenna switching causes a phase shift in the received signal, which can be decoded by the FM detector. (The two are closely related — phase is simply the integral of frequency.)

The technique requires a "clean" (unmodulated) carrier, because any modulation introduced in the transmitter would also appear at the speaker output of the receiver, confusing the algorithm that's looking for changes that are synchronous with the antenna switching.

Based on a preliminary look at the nRF24L01+ datasheet, it doesn't appear that the same antenna-switching trick will work with this chip. It does all of the protocol processing internally, and simply doesn't provide the low-level access to the signal that you'd need for the TDOA technique. Yes, if anything, you'll simply degrade the communications.

Bonus marks if you can tell me why that guy is switching the antennas four times before taking a reading... is once not enough?

The problem is that everything is AC coupled, and you need multiple cycles in order to allow the transient effects to die out. The antenna switching is driven by a capacitor, which converts the 0-to-5V control signal from the micro into a ±2.5V signal to drive the PIN diodes. Also, the audio path through the receiver is AC-coupled, which means that the output associated static changes in carrier phase dies out over time. For both of these reasons, you need multiple cycles of switching in order to get an unambiguous result.

|improve this answer|||||
  • \$\begingroup\$ Thanks Dave. It sounds like I might be better off using a RSSI based method like this: rcgroups.com/forums/showthread.php?t=1337608 I really like the way TDOA is not affected by signal strength, and is more accurate, so I didn't want to give up on it too soon. \$\endgroup\$ – iforce2d Aug 22 '14 at 14:45

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.