Radio Homing Robot DIY

How to Make a Simple Autonomous Homing Robot

(A fun project to build on your Boe-Bot, or make your own chassis)

tdoa botcut outsmall

How it Works (My Science Fair Project)

The Radio Direction Finding (RDF) method I use in this project is detailed here at Joe Leggio’s site. (If the link is broken, please contact me!)

 

Parts List

  •     Two walkie-talkies  (I used Cobra Microtalks, Model# CX80)
  •     Microcontroller with an analog to digital converter (I have used the PIC12F675 and Arduino Micro)
  •     Robot chassis and motors  (I used the Parallax Boe-Bot with its original servomotors)
  •     5-9 volt battery  (You can use the original battery on the Boe-Bot if you want)
  •     25 microfarad electrolytic capacitor  (The capacitors and resistors do not need to be exact values, similar ones are fine)
  •     Two .001 microfarad ceramic capacitors
  •     100 ohm, .25 watt resistor
  •     10 Kilo-ohm, .25 watt resistor
  •     Two 1 Kilo-ohm, .25 watt resistors
  •     ~390 picofarad ceramic capacitor  (exact size doesn’t really matter)
  •     Four 1N4007 diodes (Don’t know exactly why, but it HAS to be this model)
  •     1 microhenry inductor
  •     “F” screw connectors, male and female + a nut that fits the male connector
  •     Coaxial cable, preferably something you can solder to. 75 or 50 ohms impedance (the regular TV stuff would work, but doesn’t seem to accept solder)
  •     Wood or plastic to mount the antennas on
  •     Soup can that will hold the walkie-talkie board. (optional, but helps improve accuracy)
  •     Solder
  •     Glue (I use hot glue)
  •     Perf board (to mount circuit, do free form if you want)
  •     Thicker wire that can hold its shape, like house wiring,
  •     Wires, for breadboard/circuit use
  •     Non-momentary switch
  •     Two momentary pushbuttons




Build the Transmitter

This project requires a transmitter that outputs a clean, unmodulated waveform.

You will get the best results by modifying your walkie talkie, but it is optional, you can use an unmodified one if you want.

WARNING: I assume no responsibility for any legal troubles. Check your laws regarding radio transmissions before continuing!

This transmitter will output a blank signal that will override all others in its range and frequency.

no_mic_walkietalkieweb

1. Take the cover off the walkie-talkie 2. Remove the microphone, desoldering is pretty easy.

hold_switch_walkietalkieweb

Add a switch. 3. Solder wires to the two pads on the talk switch 4. Solder wires to your non-momentary switch

walkietalkie_switch

You’re done with the transmitter! It should show “TX” on the screen when the switch is in one position, and just show the channel in the other position. If you tune another walkie-talkie to the same frequency, you should hear nothing. You might hear a beep when you turn the switch off (stop transmitting).

 

Build the Robot

Schematic (Click to view larger):

schematic

Generic Schematic

schematic

Arduino specific Schematic

Make the Antenna

Antenna Schematic

antenna_tdoa_colored_schematicnewFor the the average walkie talkie (462-467 Mhz)
1/4 wavelength~ 7.5 inches         1/2 wavelength ~ 11.5 inches

The blue and red wires are the actual antennas, made of  thicker wire. The parts must be as symmetrical as possible for better accuracy.

1N4007 diodes are the only diodes I have found to work, due to their unique internal structure

Where specified, coax is required. This will not work with normal wires. The red and blue wires can’t be coax.

Mount the parts any way you want, as long as the mounting does not interfere with signal. I recommend using plastic. Mine are SMT chip tubes.

antenna_closeup_center

Center close up

antenna_mount

Edge close up

antenna_tdoa

Finished Antenna

Make the Circuitry

interface_board

Here is the finished circuit, built from the schematic above (either Arduino or Generic). The “F” connector is for the antenna.

modded_circuit

Here is the walkie-talkie board. Remove the PTT switch so you don’t accidentally transmit into the antenna array and microcontoller. Remove the original antenna (desolder). Solder longer wires to ground, power and the red speaker wire. Power is where the positive battery terminal connects to the circuit.

walkietalkiecircuit2

Solder the antenna and ground wires from the circuit you made to the walkie-talkie board. The antenna wire from your circuit connects to where the original walkie-talkie antenna was. I added a diode between the power-in connection and the power wire. This prevents the circuit from receiving backwards power if you accidentally reverse the polarity of your power source.

circuits_back

Make sure the F connector is on securely! I covered mine in glue after soldering it to the circuit. You can try the circuit now. Just screw on the antenna, mount it upright, and program the microcontroller.

Optional, But Highly Recommended

Mount the receiving walkie talkie in a can!

walkietalkie_control

Solder some momentary pushbuttons to a piece of circuit board to use as a button extension. Solder wires between them and their corresponding pads on the walkie-talkie board.

can_cut

Cut/drill a hole in the can. It should be just large enough for the F connector.

circuits_in_the_can

Install circuitry in can. Insulate the circuits from the metal! The pushbutton board should mount outside the can to control the walkie-talkie. Label your wires before you close the can.

can_finished_top

Use a nut to hold in the F connector. If your circuitry is glued/mounted together well enough, the F connecter can be the only support. Label the wires before you put the bottom on the can. Mine are: Blue= ground, Red= power, White= speaker out, Black/white= switching waveform in. Mount the pushbutton board somewhere easy to get to.

finished_can_bottom

Mount the can lid onto the can, allowing the wires to come out. I held it on with rubber bands, but you can solder it if you want.

 

Connections

For Generic Microcontroller (PIC12F675 connections shown below)

Antenna Waveform Out
Connects to positive side of 25uF capacitor
 pin 2
 Walkie Talkie Speaker
Connects to the positive side of the speaker inside the walkie talkie.
 Analog pin 3
Calibrate In
To calibrate you will temporarily connect this pin to ground
(more on this later)
 pin 4
 Servo PWM Out 1
Connect to a continuous rotation servo on one side of the robot.
 pin 7
 Servo PWM Out 2
Connect to a continuous rotation servo on the other side of the robot.
 pin 5

 

For Arduino

schematicweb

Antenna Waveform Out
Connects to positive side of 25uF capacitor
 Digital pin 8
 Walkie Talkie Speaker
Connects to the positive side of the speaker inside the walkie talkie.
 Analog pin A1
Calibrate In
Leave disconnected.
To calibrate you will temporarily connect this pin to ground
(more on this later)
 Digital pin 11
 Servo PWM Out 1
Connect to a continuous rotation servo on one side of the robot.
 Digital pin 9
 Servo PWM Out 2
Connect to a continuous rotation servo on the other side of the robot.
 Digital pin 10

 

Arduino and BASIC code download

(right click, “save link as” to download)

Great Cow Graphical  BASIC – HomingRobot.gcb

Arduino Micro – homingbot_robowarnerV1.ino

Time to calibrate!

 Here is the Arduino and circuitry mounted on a Boe-Bot chassis. I'm pointing to the calibration wire, which is currently connected.

First connect calibration wire (pin 11 on Arduino) to ground.

Second, position the transmitter a few feet away from the antenna assembly, with the assembly facing it, as shown in the picture. Make sure all antennas are facing upwards. Click on picture for larger one.

Second, position the transmitter a few feet away from the antenna assembly, with the assembly facing it, as shown in the picture. Make sure all antennas are facing upwards.
Click on picture for larger one.

Third, flip the switch on the transmitter so it is now transmitting. Quickly (you have 9 seconds) turn robot and receiving walkie talkie on and set to the same channel as the transmitter. Back away to prevent interference. Wait about 30 seconds. Calibration is now complete! Disconnect the calibration pin from ground.

Third, flip the switch on the transmitter so it is now transmitting. Quickly (you have 9 seconds) turn robot and receiving walkie talkie on and set to the same channel as the transmitter. Back away to prevent interference. Wait about 30 seconds. Calibration is now complete! Disconnect the calibration pin from ground.

playing_with_antenna

You can try out the antenna before you mount it on a robot. Just plug the Arduino into your computer and open Serial Monitor. The value on the left corresponds to the direction of the transmitter. The value on the right is the calibrated center.





Troubleshooting

Here is an oscilloscope view of the circuit. The yellow waveform is the antenna switching signal on digital pin 8, which is outputted from the Arduino. The blue waveform is the walkie talkie speaker signal on analog pin A1, which is outputted from the walkie talkie into the Arduino. Notice the blue line is relatively straight, this means the antenna assembly is facing the transmitter. If you don't have an oscilloscope, connect a small speaker to digital pin 8 and ground. You should hear a low, noisy tone. If you left the walkie talkie speaker on, you should hear almost nothing coming from it now.

Here is an oscilloscope view of the circuit.
The yellow waveform is the antenna switching signal on digital pin 8, which is outputted from the Arduino.
The blue waveform is the walkie talkie speaker signal on analog pin A1, which is outputted from the walkie talkie into the Arduino.
Notice the blue line is relatively straight, this means the antenna assembly is facing the transmitter.
If you don’t have an oscilloscope, connect a small speaker to digital pin 8 and ground. You should hear a low, noisy tone.
If you left the walkie talkie speaker on, you should hear almost nothing coming from it now.

 When the antenna is not facing the transmitter, the blue waveform changes. This time the antenna is facing the opposite direction from the above picture. Notice how the blue is "low" in this picture where the yellow waveform ended. If you left the walkie talkie speaker on, you should hear a low, noisy tone coming from it.

When the antenna is not facing the transmitter, the blue waveform changes. This time the antenna is facing the opposite direction from the above picture.
Notice how the blue is “low” in this picture where the yellow waveform ended.
If you left the walkie talkie speaker on, you should hear a low, noisy tone coming from it.

drivers0

When the antenna is not facing the transmitter, the blue waveform changes. Notice how it is “high” in this picture where the yellow waveform ended. If you left the walkie talkie speaker on, you should hear a low, noisy tone coming from it.

Here is the Arduino Serial monitor. The value on the left corresponds to the direction of the transmitter. The value on the right is the calibrated center. These numbers to the left show the antenna facing the transmitter.

Here is the Arduino Serial monitor. The value on the left corresponds to the direction of the transmitter. The value on the right is the calibrated center.
These numbers to the left show the antenna facing the transmitter.

 The left values here are abnormally low, most likely because the transmitter is not transmitting.

The left values here are abnormally low, most likely because the transmitter is not transmitting.

Mount it on the Boe-Bot

I soldered a couple bent paper clips to the can. They are bent to fit an Erector set piece.

I soldered a couple bent paper clips to the can.
They are bent to fit an Erector set piece.

Antenna/can mount, screwed onto Boe-Bot chassis. I built mine out of Erector set pieces.

Antenna/can mount, screwed onto Boe-Bot chassis. I built mine out of Erector set pieces.

Complete!

Homing Robot

41 thoughts on “Radio Homing Robot DIY

    1. It’s possible, as far as I know. It would be much more difficult though. With my robot, it is only looking for the right frequency. The walkie-talkies I’m using just work on their set frequency, nothing fancy like encoding or digitizing the audio. Wifi, to my knowledge, has many devices running on the same frequency, thus making it a requirement that each signal be interpreted, to see where it came from. I can’t see myself building a wifi homing bot anytime soon, sorry. Cool idea though! Try googling wifi tdoa, there’s a few random articles out there.

    2. Saw another idea recently that might answer your idea, it was a drone with a android phone that would track MAC addresses, which are unique to each device. It used signal strength though, not TDOA like my robot above uses. I don’t think the drone was finished, it was just a concept. Don’t ask me how to do it, I have no idea! 🙂

    1. Sorry for the wait, I just heard about it from some fellow students. It wasn’t a published paper or anything.

    1. I have not attempted it, due to the much higher complexity. One, because cell phones are everywhere, along with cell towers, there would be a large amount of interference. Even my robot has interference issues around walls and such.
      Two, if I understand correctly, cell phones jump around inside a range of frequencies to find the one with least interference, which would be confusing to follow.
      A cellular homing bot might be possible using a directional antenna that faked a cell tower, thus seeing if the phone would connect and measuring the signal strength to it. Just an idea, I have no intention of attempting it.

  1. My idea was to detect RF emitters such as a cell phone and WiFi networks. Once an emitter is detected, I should be able to locate it and indicate it’s position . Cell phones usually transmit em signals at 800MHZ while WiFi network is at 2.4 MHZ. I had an idea of using an autonomous vehicle which will automatically move towards the signal source once detected and stop when it reaches the maximum signal strength. I would love to design an antenna for the aforementioned radio frequencies but just not sure if that I will be able to finish that given that I have 2 months to complete the project, what do you think? Will value your opinion…

    Thank you a lot for the response …highly appreciated

    1. Using Time Difference of Arrival like in my article would not work very well due to the interference of the many devices on those frequencies. Using signal strength (like you mention) would be the easier way.
      Though I’m still not sure exactly how you would do this with cell phones, it would be relatively simple with wifi. Any wifi device (phone, laptop, etc) shows the strengths of the nearby networks. While 3 or 4 bars is pretty useless for a tracking bot, it is possible to get the actual Dbm signal strength from most devices.
      What you could do is use a ESP8266 wifi module (very popular with arduino community) and connect it to a directional antenna (like a “cantenna”), then rotate the assembly around while refreshing the wifi strength. Because the antenna is directional, the signal strength would be highest when the antenna is pointed at the source. Then simply drive forward while checking strength, if it keeps increasing, keep going forward.
      This method is the easiest way to find wifi routers I can think of. If you have some microcontroller experience you should definitely be able to do this. The internet is your friend!
      Man, I didn’t even think about this earlier, now I might want to build it! 🙂

  2. Oh wow! what a great idea :)….thanks a lot but I am a final year student doing BSc Computer engineering and want to do this project for academic purposes. I have to pass the project in order for me to finish my degree. This project is to be submitted by the end of October, do you think i will be able to deliver a working project by then? Can we please talk privately…

    Thanks for the response….highly appreciated

    1. I don’t know your full experience, but if you know how to program microcontrollers (like the arduino), can understand electronics datasheets, and are willing to do some internet reading, you should definitely be able to finish a wifi homing robot before October. I have not attempted to build something like this (yet), but based on my understanding it should be entirely possible. Refer back to my previous comment for my thoughts on how to build it.
      As for cellular homing I have no experience, and cannot offer much advice.
      Also, your email address doesn’t exist, returns an error when I tried to email you.

  3. Hello Warner,
    Thank you very much I really appreciate it. Well, I have some microcontroller experience (like PIC16f690, at mega and Raspberry pi) . About the email, m sorry there was a typo there but I corrected it already. Is it possible for me to use the same antenna measures and components you used for your homing robot? any calculations done?

    I really thank God for you. God bless you and elevate you in your field.

  4. Rather than clocking the antenna switching output for only four cycles before taking a speaker sample, do you think it would be possible to continuously switch the antennas, and use a ‘sample and hold’ amplifier to sample the speaker voltage for only the relevant period, i.e. for approximately 500us after the falling antenna edge? This would insure performance is maximized (it clearly takes several cycles before the speaker response is peaked) and provide you with an directional output that the microcontroller could sample at any time (asynchronously); and the antenna switching could then be done using an independent oscillator. IDK how reliable this method would be, but it would only take a couple of 555s (astable for the antenna switching, bistable for the sample enable pulse), and a mosfet and opamp (for sample and hold) to implement it. I plan to try this next semester (since it would help to have a scope 🙂 ), but just thought ide ask your thoughts on it first. Regardless, thanks for this entire writeup, it does a great job explaining how to implement tdoa without getting too bogged down in antenna theory.

    1. I’m glad you enjoy the project! 🙂 This is my most popular page on my website, and gets views all around the world.
      I like your idea, and it sounds like it would work to me. You’re exactly right that it takes multiple cycles to get a good output. The reason I do it the way I do is mainly a limitation of the weak PIC microcontroller I used on the first version of this project. It could only do one thing at a time, and I didn’t explore using additional parts. With the Arduino or other more powerful microcontrollers I think you could set either a PWM output or make an interrupt routine that accomplishes a steady output. Or use the interrupt routine with one 555 timer outputting the steady ant. switching waveform.
      Your idea takes the load off the microcontroller, which is cool because then the antenna assembly could be easily tacked on top off any project.
      Thanks for the insightful comment. I haven’t worked on this project for awhile due to college, so it is definitely time for an upgrade.

  5. correction: meant to say ‘monostable’ mode for a 500us pulse to enable sample collection (triggered on each falling antenna edge).
    schematic of proposed circuit (drawn in text, hope the formatting remains intact, sorry if it doesn’t) :
    +12v⌽
    ┍⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼┯⎼⎼⎼⎼┯⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼┯⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼┯⎼⎼⎼⎼┯⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼┥
    ⌇ 15kΩ ⌈⎺8⎺⎺⎺4⎺⌉ ⌇ 4.7kΩ ⌈⎺8⎺⎺⎺4⎺⌉ ⌈⎺⎺⎺⎺⎺7⎺⎺⎺⎺⎺⌉ mcu. out⚲
    ┍⎼⎼┿⎼⎼⎼⎼⎼⎼⎼⎼┥7 IC1 | ⚲ant. out ┝⎼⎼⎼⎼⎼⎼⎼⎼┥7 IC2 | ⚲spk. in | 741 2┝⎼⎼⎼⎼⎼⎼┯⎼⎼⎼⎼⎼⎼┙
    ⊻ ⌇ 15kΩ | 555 | | | | 555 | e-mos | ┍⎼⎼⌁⌁⎼⎼┥3 IC3 6┝⎼⎼⎼⎼⎼⎼┥
    ┕⎼⎼┿⎼⎼⎼⎼⎼⎼⎼⎼┥2 3┝⎼┸⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼┥2 3┝⎼⎼⎼⎼┥┇⍇╏ | 10kΩ ⌊⎽1⎽⎽⎽4⎽⎽⎽5⌋ |
    ┝⎼⎼⎼⎼⎼⎼⎼⎼┥6 | ┝⎼⎼⎼⎼⎼⎼⎼⎼┥6 | n ch. ┝⎼⎼┙ | ┝→⌇ 10kΩ |
    ╪100nF⌊⎽5⎽⎽⎽1⎽⌋ ╪100nF ⌊⎽5⎽⎽⎽1⎽⌋ ╪100nF -12v⌽ | pot. |
    | 10nF╪ | | 10nF╪ | | ⌊⎽⎽⎽⎽⎽⎽⌋ ⌇ 10kΩ
    ┕⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼┷⎼⎼⎼┷⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼┷⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼┷⎼⎼⎼┷⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼┷⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼┥

    The diode (far left) gives a 50% D.C. and T=2*0.693*15k*100n≈2ms for IC1 to feed the antenna circuit and IC2.
    IC2 outputs a pulse of T=1.1*4.7k*100n≈500us every time IC1 goes low. This is fed to the mosfet gate and allows
    the 100nf cap (far right) to follow the speaker input for the duration of the pulse. The opamp is configured as a
    voltage follower and so outputs the same voltage. When the pulse ends, the mosfet DS resistance becomes
    almost as high as the opamp input resistance, and so the capacitor cant discharge (it does but very slowly).
    This holds the input voltage at the stored value, thus the output stays held at the speaker voltage until the next sample.
    The opamp output can then be fed to a microcontroller’s analog input and sampled for direction finding at any time.
    The 10k load resistor on the mcu output is only their as best practice and could probably be omitted seeing as
    the opamp isn’t operating at vhf so impedance matching isn’t necessary (anyway rout is closer to 100 then 10k).
    The 10k pot. is used adjust the offset bias, allowing you to set the output voltage when facing the transmitter
    to the middle of your analog input pins voltage range. If you wanted to make the gain adjustable, this would allow you
    to get the best precision from your adc by filling its range; currently it just helps to minimize the need for calibration.

  6. Thanks for the response and sorry again, I swear that looked perfect until I hit post comment. Apparently wordpress automatically removes extra spaces, and the comment textbox is wider than the posts so I should have hit return 3 words sooner :/

    1. Thanks for your schematic and explanation! If you want you can send a screenshot or picture to me via email, warner at robowarner.com Probably be easier to read haha.

  7. Is there a simple way to take the walkie talkie homing concept and combine with a cantenna? The custom antenna has me scared off. I took apart my Cobra microTalk walkie talkies (took the microphone off of one) but not sure what I should be monitoring to grab a signal strength from it. The receiving walkie talkie’s speaker output shows 0V when the transmitting walkie talkie is off and when it is on. I can get a little voltage out of it if I touch its stock antenna which seems to make it think that someone is transmitting sound.

    1. Thanks for your question! My homing bot project relies on the angle from the antenna, by comparing the difference in phase from the two antennas. Signal strength plays no part anywhere. It works the same right next to the transmitter as it does father away. (unless you have multipath interference, with signals bouncing off metal objects) A cantenna based design relies on signal strength, as you mentioned. I have never attempted to get signal strength info from a walkie talkie, so I can’t help much there. My design simply uses the audio signal from the speaker on the walkie talkie. Study my oscilloscope pictures in the troubleshooting section above, the blue line is simply the audio straight from the speaker. In fact, if the robot isn’t facing the antenna, you can hear a loud buzz if you leave the speaker connected. Audio is an AC signal, so I am specifically measuring one instant of the waveform, as you can see in the pictures.
      You won’t be able to get signal strength from the speaker connection on the average walkie talkie or radio, as the signal has already gone through several stages of amplification. You would have to find a connection somewhere on the circuit after the tuner, but before the signal gets amplified. As I mentioned, I have no idea off the top of my head, and I believe it would be much more difficult than figuring out my antenna design.
      If you still want to do a signal strength based design, I suggest looking for some sort of radio (maybe ham?) that measures signal strength. Or you could try a ESP8266 wifi board and track wifi sources, as the board outputs signal strength for each source in dBm increments.
      Hope I helped somewhat, feel free to keep asking questions about the project, good luck! 🙂

      1. Thanks for taking the time to look at it. I may have to try building your antenna and circuit to see if it will do what I need.

        Maybe I should step back and give you a broader scope of my intentions. Indoor tracking system for controlling video camera(s) at my daughter’s dance recitals. I have been running cameras for the last 4 years and miss out on the performance.

        Pixio has something similar to what I am looking for but only moves 1 axis. https://www.youtube.com/watch?v=uTFJA_xW_KY. Their system seems to use radio beacons. I assume that it is somehow determining time of flight to each beacon and triangulating. Sounds pretty cool but I would think the processing speed would have to be super fast.

        SoloShot3 has an indoor accessory but the range limit is pushing the boundary and it has been delayed since 2015 so who knows if it will ever become available. I am not sure how the indoor portion works but I believe the outdoor standard usage is based on GPS which may be cool for other uses. There isn’t much info available especially for the indoor portion.

        Do you have any suggestions on what methodology would be best suited for a DIY project by a simple BSME?

        1. PIXIO’s system looks interesting. It did mention triangulation on their website, as well as GPS. My suspicion is that it uses some form of augmented (or RTK?) GPS, which allows for centimeter precision by using base stations. I don’t think it uses time of flight, but I’m not sure.
          One thing to be aware of is that my radio homing system as shown on my website has lots of interference issues. Mainly multipath interference from a signal bouncing off a wall. There is definitely room for improvement, but be aware there are some issues.
          I would keep an open mind towards the different technology while you research for your project. GPS, augmented GPS, IR/light based systems, signal strength, maybe even facial recognition with OpenCV? I’m currently quite busy with college at the moment, so I’m sorry I can’t offer more right now.

  8. hi sir, i’m really amaze on the accuracy of the robot and i’m working on this for my project. can I ask for some questions?
    1. can i use any walkie- talkie? if yes would it affect or change anything on the functionality?
    2. I would like to use DC motors insted of servo motor. would it still work properly?

    1. You should be able to use any FM walkie talkie with a reasonably high frequency, but not too high (between 300 MHz and 700MHz). Most consumer walkie talkies use the FRS Frequency of ~460Mhz. Also, it should not have any encryption or privacy. Just a plain signal. Channels are fine. If you use a different frequency than 460 MHz, you will have to change the antenna dimensions. It is listed on the picture as 1/4 wavelength and 1/2 wavelength. Use a web calculator to find this with your frequency. You will have to calibrate no matter what, so as long as the antenna is built correctly it should work.

      Any motor is fine. You will have to add some sort of driver circuit to power the motors, as the microcontroller can’t power them directly from the I/O pins. Also the program will need some minor tweaks, just follow the if statements and add your motor control code under the ones for forward, turn, and turn other direction.
      Good luck! 🙂

      1. I’m planning to use 22 Channels Walkie Talkie T-667 it has 462MHz frequency. And i’m planning to add utrasonic sensors on it. And I have more questions sir.
        1. I’m using ultasonic sensors because I’m adding some features on it , not just homing robot but also “path planner” so distance sensors are needed and because ultrasonic sensors are using RF signals, would it affect the signals from the walkie talkies?
        2. If I have some trouble on the calibration can I still ask for help from you sir? can i email you? or can i chat u on Facebook or just on this blog of yours? this would be my final project for my thesis sir. I’m a graduating student taking computer engineering and THANK YOU VERY MUCH sir for sharing your idea.

        1. That walkie talkie should be fine. Sounds like a similar one to mine.
          The ultrasonic sensors shouldn’t be a problem. Even having two walkie talkies on different frequencies works. As long as nothing is transmitting on the same frequency you are good.
          Keep in mind you still have to worry about other RF problems, like multipath interference from the signal bouncing off the walls or ground.
          Feel free to keep asking questions here, or simply reply that you would like to email, and I’ll use your email that you entered when you commented. No need to post your email publicly.
          Sounds like a cool project, hope you can get it working!

          1. Hi sir, I really find it hard to get a good reading on my receiver. everything is doing fine sir but it is not that accurate. Can I have any advice from you sir?

          2. Hello! Glad to hear you built the project! TDOA radio direction finding has interference from things that reflect or block radio waves. Even regular walls can reflect radio waves and cause multipath interference. Multipath interference is where multiple copies of a signal are hitting the antenna at one time, which is very confusing for a direction finding robot! My project is very simple, and should work well in large open spaces. It does not have any type of interference blocking. With more effort, you could try making a more advanced robot that ignores weak duplicate signals to avoid the multipath interference. I have not done this, I don’t know how to either! Sorry. 🙁
            If the robot is still acting weird in an open space, the ground could be reflecting radio signals. If this is the case, try raising the height of the receiver and transmitter antennas.
            If that doesn’t help, make sure you have calibrated the center properly as shown in my video on this page. All the antenna dimensions given are important, and must match your transmitter frequency. You could also try adding shielding to the center components on the robot, like the walkie talkie and middle part of the antenna. Hope my tips help! Happy building!

          3. I have calibrated it once then after that I already remove the EEPROM library and declare the calibrated center as what my exact calibrated center was when I was still using EEPROM to read the speakers input. So that I won’t calibrate it every time I’ll change something on my code. Yes on an open field it is accurate. okay sir I now understand why this is not that accurate but to be honest your Idea was so cool. It’s really hard to find a direction finder but you have made it this easy. Thank you so much sir. You have really helped me so much sir.

  9. I am planning to build a homing device from scratch. Your article gave me hope. Can you clarify :-
    1. Why is your project limited to FM frequency only. Is their a problem in using any other arbitrary frequency.
    2. Will a reflector around the Antenna help in shielding from signal bouncing of walls.

    1. Glad to help!
      1. To clarify, FM is Frequency Modulation, a type of radio wave. Any frequency can be FM. The design should work with any frequency, however you need to keep a few things in mind. The lower the freq, the larger the antenna. As shown in the pictures, the height is a half wavelength and the width is a quarter wavelength. My given dimensions are for the walkie talkie frequency. You also need to pick a frequency that won’t interfere with other things. As the transmitter has to be on constantly, you shouldn’t pick an important frequency as you will overpower it. (and get in MASSIVE trouble if you are in a high population area and pick a government or official frequency)

      2. The design relies on a pure radio wave, see my science fair page for more. When the signal bounces off walls it causes copies of the signal to interfere with the original pure wave. A reflector would do the same thing as a wall, and would most likely cause the robot to not work at all. Unless you have some breakthrough design that I’ve never heard of, a reflector will not work.
      Good luck building!

  10. Hello,
    I’m a student in the Practical electrical engineering and I’m interested in making this project.
    Can you please explain in details the RLC circuit between the arduino and the antenna? Is it an impedance adapter? How to calculate such thing ?
    Can you please explain in details how exactly the switching between the antennas happens and how it interprets the change in phase ?

    1. Hello and thanks for your interest in the project! The circuit on the antenna was not designed by me, it is actually found on http://theleggios.net/wb2hol/projects/rdf/tdoa1.htm , which is linked at the top of my page here.
      I believe it is a simple low pass filter on the Arduino side, and a high pass filter on the antenna/walkie-talkie side. I am not sure why the inductor is needed, as I haven’t had the time to mess with the circuit recently. I built it over 6 years ago, before I even knew how to calculate RLC circuits! I was just following the design on theleggios site.
      You don’t want high frequencies from the Arduino to interfere with the antenna, and you also can’t connect the Arduino output directly to the input of the walkie-talkie, as it would drown out the signal from the antenna.
      In the end, while I see the reasoning behind the part choices, I am not exactly sure why the circuit is the way it is, I did not design it from scratch. Basically, it allows the low frequency switching signal and high freq. radio signal to be sent on the same wire.
      Basically, the Arduino sends a regular square wave through the antenna array. This causes one or the other antenna to be blocked from receiving radio signals, as the DC passed from the Arduino shorts out that side of the antenna. This is what the diodes are used for. When the DC signal is high, one side is blocked, low the other side is blocked. If the robot is facing the transmitter, the two pieces of radio signal coming in will line up and replicate the signal from the transmitter, which is an empty carrier wave in my case. If the transmitter is on one side of the antenna, the receiving walkie-talkie will get a clip of one part of the radio signal, and another clip of another part, as the Arduino sends the switching frequency. This is interpreted by the walkie-talkie as noise, because it is an FM receiver. FM is frequency modulation, so sound is transmitted by varying the carrier wave. My simple code just looks at the voltage on the speaker output of the walkie-talkie right after sending the switching frequency. This is shown more in the Troubleshooting section on this page. You can also read more in my science fair project about this robot, which is linked near the top of this page. Hope this helps! Happy learning! 🙂

    1. I’m not exactly sure, as most of the parts were used and free. 🙂
      But I’m sure you can build the whole thing new for less than $70. The walkie-talkie radios are the most expensive part. You can use pretty much any microcontroller and robot chassis.

        1. All depends on how resourceful you are and how you decide to make the robot. I buy most of my parts off ebay, so I build things quite cheap. If you bought name brand parts it would probably go over $100. If you build a better chassis it might go over as well. I think it should be easy to build my version for under $100 USD.

  11. Hi, very good project.
    Can I do this to point to UHF digital TV. I am making a project to put a antenna inside the vessel, When the vessel move or turn the system must be able to mantain apointed to the Digital tv signsl on the Land.

    1. Sorry for the late reply. I just realized I was no longer receiving notifications from my website.
      I do not know how to accomplish using TDOA for actively broadcast signals (mine uses a blank carrier signal from the transmitter). I would assume it is possible, but will be much more difficult compared to looking for the change in a blank carrier wave. Broadcast signals are constantly changing with the video being transmitted, but with a blank carrier wave the signal is only different if the receiver is off center. Much easier to read with a weak microcontroller.
      Good luck with your project!

  12. Hi Warner,
    I appreciate your work very much and this idea of you will literally help us in building our project which is a Smart Dextrose Holder which is also a basic human following robot, I was just confused regarding with the two codes that you’d provide in this website are we going to use both PIC and Arduino or just a basic Arduino will do the function of a human following robot?, I would like also to ask about the specific distance range of that certain prototype to follow the paired walkie talkie?

    I’m hoping for your fast response and once again thank you for sharing this idea.

    1. You can use either the PIC or Arduino, I provided both so you have more options. I’d recommend using the Arduino version, as it should be easier to modify the code.
      My range was about 50-100 feet outside in an open field. Keep in mind that this project is sensitive to radio interference and nearby objects that reflect radio waves.

Leave a Reply

Your email address will not be published. Required fields are marked *