Hi Antti, this is a brilliant design. I got inspired by your video some years ago and built a similar setup using 2 diversity receivers. The Quanum RC 540R does the guidance job with two 16-turn helical antennas. I added a small SD-card reader/writer for data logging and could fit it into the Quanum as well. The 2nd receiver, placed about 10 inches besides the Quanum, is an FR632 with one identical 16-turn antenna, pointing exactly in between the two guidance antennas, and a 4-leaf antenna for close range reception. I didn't care for vertical guidance. My construction is quite heavy and therefore using a big servo. Both diversity receivers feed their best signal into an Eagle Eyes FPV Station by Eagle Tree and the station outputs the better image of the two receivers for viewing/recording. Obviously, this is for long range operations. Your software was of great help and a good starting point. I adapted and expanded it a lot, up to the memory limits of the arduino. This works like a charm. Good image on 5.8 GHz up to a distance of 15.1 km (9.4 miles). This was the battery range limit of my small styrofoam model aircraft. Using a running average for the RSSI signals gave me very precise antenna guidance even at very low signal strengths.
Wow sounds pretty serious and awesome :D Do you have videos of your setup? Also it would be interesting to check what you have done in the code, have you published it somewhere?
@@AnttiVainik I had a big thread about the project on a German speaking forum, which unfortunately was closed down, loosing all contents. But you can find an image of the tracker and my version of your Arduino software by going to the 'euroconnection' URL with the TLD (Top level domain) for Switzerland.
Wow, awesome and cheap solution for an antenna tracker. I was looking for a good diversity receiver, when I stumbled upon your video. It made the decision much easier! Bought this receiver and built the antenna tracker with the components you mentioned. Works like a charm! Changed the code a bit to my likings, but it's basically your idea. Thanks man!
@@TheZolon you can recreate this by getting just plain receivers....power them...and set your quad copter VTX to those RX default channel...if you want to spend more time on this then you need secondary Arduino which will search for signal using RSSi....its not hard...just time consuming
Super Tracker !! I use it with one FR632 Diversity receiver. I have found MAX_RSSI=240 and MIN_RSSI=120 okay for FR632. I have also modified the SERVO_DIRECTION= -1 for my servo (an old HITEC HS-300). The servo is mounted verticaly and above, a plate with onboard the FR632 and the box containing the Arduino Leonardo and the step down converter (12V to 5V). Thank you very much for the arduino code.
Hi, do you still fly with this? Have you encountered any problem so far? I want to build one for my long range setup and I want to know if it's reliable. Thanks
Thanks for this vid, very helpful on the build layout. If you had completed this how to with a piece on the Arduino setup it would have been perfect. Many people are left with questions if they are new to Arduino. Setting rssi min/max for example, serial monitor shows servo output, not rssi, so i've hit a wall with that.
Hi Antti, I made two of them, one for the Quanum540 which worked first go and one for the FR632 which needed calibrating and is now working. Thanks for your work. Robert
Hello Antti I built your antenna tracker and it is fantastic. I will be adding a second Rx. and a third antenna in the center. If I adjust the outside antenna the one in the middle will be on the aircraft all the time. It is absolutely amazing and so simple to build with all of your instructions and even included the sketch code. I modified the code slightly to suit my needs. Billy Bones
Well done mate! I'm very happy to hear of your success. OpenSource rules! If you ever record a video, please share the link, so I can put it in the description.
I am not into antenna trackers, but there is one thing you can do to every servo: open it up and remove the pin, that blocks is from turning 360°/infinite. Same way you can use a servo as a winch on a truck. But I have no idea of this will work with the controller on the tracker.
I have been looking at this idea very closely and its very good. Do you have a schematic that shows the analogue circuitry for the RSSI? It appears as if the RC540r uses a receiver very similar to the common RX5808 found in a lot of FPV receivers but the one in the RC540r is slightly different, maybe a custom module? I would like to see the circuit and see if it can be used with the RX5808 receiver module. Can you help?
Have you thought about using the half overlord for a pan and tilt system? If the rssi and antenna setup would overlap enough it could probably maintain a strong signal without breakups and stay close to the mainlope even while crossing the station. I would like to build a similar systems like yours in the future with the half-ol, am just not solid yet in programming... Thanks for your design!
Terve, Antti! Great solution 👍Thanks for sharing it with us. I hope you get to develop it further with tilt function as well (in between your new parenting "hobby" tasks ☺). In my FPV plane I have two VTX transmitters. One with LHCP and the other with RHCP antennas at opposite 45" angle. Giving a better omnidirectional TX coverage. VTX frequencies are individual/different. The Quanum diversity RX supports individual frequencies. I intend to use two of the Quanum Diversity reciever for my ground station. Do you have a suggestion on how to potentially modify your solution to track dual VTX in the plane. Including tilt of antenna tracker. I think such a solution (dual VTX) will have a significant boost to video quality and stability. Especially when low TX power (25mW). I hope you will find some time for the RC and FPV hobby again, but good luck with the parental role ☺ Kind regards, Torgeir
Hi Torgeir, and thanks Which Quanum diversity RX do you mean, the RC540? About tracking dual frequencies, I think current code might work unmodified. A potential problem might be having 2 different nullpoints (and in general 2 different of everything, vtx antenna etc). Imagine this situation, you are in a turn and one antenna reaches nullpoint -> rssi drops, the other antenna is at 90° and has perfect allignment -> very good rssi. Now tracker thinks the plane is moving left/right and starts wondering off. This situation is kind of comparable to multipathing, but in this case, one of the channels could "stay down" for a long time, which gives time for tracker to wonder off. Multipathing interference is much faster, and can be dealt with filtering. Anyways I'm just guessing here. This should be tested in practice.
How to deal with all those problems? One way is to use 2 or 3 rx for aiming and one just for reception. But now you end up with 5 video receivers + antennas and its not so super simple anymore :/
Antti Vainik Hi Antti! Thanks for your reply. Yes, I have the 40ch (32+8) version. I have thought of using one to track the plane as you do (on one frequency) and use the other diversity receiver for video (on two different frequencies). What I then miss is a receiver for omnidirectional antenna when flying near or over the groundstation. I see your point related to potentially issue tracking on two different frequencies with your current setup. Anyhow - I'm curious to test your setup but need to order the components. Looking forward to learn more of your progress with your solutoons. Hope you will get some time for this hobby inbetween parrenting ☺
Hi I have a problem installing the hardware in Arduino. Either I did not do it right or the file was too big ... (Sketch uses 7,786 bytes (24%) of program storage space. Maximum is 32,256 bytes. Global variables use 506 bytes (24%) of dynamic memory, leaving 1,542 bytes for local variables. Maximum is 2,048 bytes.)
thrilleex at this point you might as well get a 4 way diversity receiver. With 3 patch antennas you should be able to get your left-right and up-down tilts, and with the fourth you could put a cloverleaf for proximity
Very nice!!congratulation!! Its possible to put the receiver in a vertical position and the antennas with different tilt angle? I think you will have a better result if not have tilt movement. Its correct? Thanks and sorry for my bad English
Can anyone help I'm trying to wire this together and the power comes from the xt60 up through the 5v step down, then where does it go connect directly to the servo connectors? How does the power connect into the arduino?
I have a Boscam RX-LCD5800 diversity video receiver, it has very similar electronic components to yours, almost identical actually. Do you think the rssi solder pad is the same pin as yours? Is there any way I could know?
Many receivers use same/similar receiver modules. Open your receiver and see if there's a module inside. You can then do a google image search "5.8ghz receiver module". There are plenty of images that show the RSSI pin.
@@AnttiVainik ok I've got my rssi pins covered, but I can't flash the Arduino for the life of me. I'm not sure what I'm doing wrong. "An error occurred while uploading the sketch" any help will be much appreciated. The TH-cam videos are not very helpful. Edit: Arduino flashed with timer.h Last question, what's powering the Arduino during use? The regulator out arduino and servo power are soldered together at the board?
I'm just in the process of building this and have a comment about uploading the file to the Arduino. For several hours I have been trying to get this working on a Windows 10 PC with no experience of Arduino. So for the uninitiated, after you install the software (It seems Arduino doesn't like the software installed in the default installation path, I ended up only getting it to work when installing it in the root of the hard disk eg c:\arduino) you have to upload the timer library into the libraries folder under that. You also can't have odd characters like - in the folder or name. So in other words, extract the timer-master zip file into a folder named timer under arduino\libraries.
Awesome mate just in the process of building one so you have to same antennas on both receivers or could you have a helical and a clover leaf or say a 3 turn helical and a 5 turn one
You must have two directional antennas. Cloverleaf is omnidirectional, it has same amplification in every direction, with clover the tracker wont be able to tell which direction your vtx is.
Currently I'm using regular 180 degrees servo, naturally that rules out the other 180 degrees. It's possible to use 360 deg servo, but I was in a hurry and wanted to test current setup asap. Say you're flying clock wise in a circle starting from 12 o'clock. Servo hits its limit at 3 o'clock, you continue to 6 o'clock, 9 o'clock now tracker could swing 180 degrees, but it really doesn't know where the target is. I would imagine it would pick up direction again when your quad is closing 12 o'clock. Google for "helical antenna radiation pattern" you will see that helical antenna has quite erratic pattern towards back and sides, so I really don't know how it's going to behave. I'll try that the next time I go flying.
True. Also tracking with steppers would be very precise. Servos are easier, everybody has them and everybody knows how they work. Just wanted to keep it simple.
hi antti .. my graduation project discussion will be tomorrow and i have a problem .. when i use 2 helical antennas the values of rssi never change .. i test the 2 helical and they work ..but when i use 2 omnidirectional the rssi values change ... i use RD945 diversity receiver and i can't find a solution .. I'd be grateful if you help me.
Hard to say without seing your project, but one dumm mistake i've done is mix sma and rp-sma connectors. If there is absolutely no signal from one antenna, that could be the case.
I want to use this with 2 1.3ghz rx. There shouldn't be an issue as long as I can wire the Rssi to the arduino correct. Also would I be able to use a brushed/brushless motor instead of a servo? Thanks again for posting this.
I LOVE this idea man thank you so much! I was wondering if one could use a small stepper instead of a servo to get better longevity and full 360 degree coverage by the antenna?
Absolutely NOT. This tracker is relative, it does not know where your drone is. If tracker looses lock, it may not recover. I't's only good for proximity flying.
Hi, Got the set up all built and looking forward to using the idea. Only have had one issue so far which is that the servo isnt responding. I have it set on pin5 and powered from 5v. Ive tried a couple of different servos with no luck. Ive included the timer and servo libraries....any ideas???
Hi. If it slowly ticks to max position it means that, arduino is working and performing calculations, analog measurements are measuring rssi values that are very close to each other (slow movement). I'm assuming you have vtx on an rx is set to corresponding channel. The next thing I would do, is check out debugging information via serial monitor (Tools/Serial Monitor in the IDE while everything is on and connected) Is it possible, you soldered RSSI measurements to wrong pins in vtx? If you cant figure it out, contact me at firstname.lastname at gmail.com
@@zxrd2753 Buenas, lo has resuelto tu? Yo estoy igual jajajaja, no se mueve el servo pero en el monitor veo que va variando poco a poco de un lado a otro...
@@Minerillo_FPV estoy a la espera de probarlo en el campo, en casa no funciona, pero mi servo si se mueve muy despacio hacia la antena dominante hasta que llega a los 180 grados y ahí se queda. si tapo la antena con la mano si gira al lado contrario, yo tengo el fr632, estoy seguro que es algún problema de calibración de los offsets o algún otro.
Very good project, but I have a doubt, I can do with 2 rx of video or it has to be the diversity? I understood that the logic would have to be diversity because in it has the signal that says to the board which antenna is stronger, and from what it has given to understand is that it is exactly that signal that informs the board the best atena that you use for tell arduino how the signal is, but I do not understand how he knows which way to go, when you answer here I buy the receiver, because I depend on your answer if I can use 2 simple receivers or it has to be really diversity. Thank you.
I just want to clarify one thing. Diversity is a way of choosing better signal and switching it to the (video)output. For RSSI tracking you don't need video diversity, you just need two video receivers with RSSI output (Arduino has nothing to do with video). All Arduino is doing here, is measuring two RSSI voltages from two receivers and turning servo towards better one. That being said, you can take two identical receivers, connect their RSSI pins to Arduino and start tracking. Now you connect the display to one of the receivers, and all you see is video from that receiver, there won't be diversity swithing. Is that a problem? Not necessarily. You have to keep in mind that usually you have one directional antenna and one omnidirectional. When you fly out of directional beam, diversity switches to omnidirectional antenna. But in our case you have two directional antennas which are constantly pointing at the VTX, so video signal is almost equally good (or bad) on both channels, no need to switch around. Of course this is in ideal conditions only. Sorry long explanation, I hope it answers your question.
Does anyone know where the pin outs are for fat shark modules cause I’m curious if you could do this with rapid fire or true d or a combination of both!
great and good working! I also made one with your code and two helical antennas. it works quite well. only problem I have is tracking close to the receiver. it starts moving away from the drone. Do you have an idea what to do?
the replacement camera for the 110 says it is 12v, I measured the voltage at the camera connector and got 4.5. What voltage camera should I use for an upgrade. any camera you would recommend? I measured that voltage with the camera unplugged, is that ok, didn't seem to blow anything up. thanks for all the info, I ordered a couple of those cloverleaf antennas last week, would like to do both antena and camera mods, couldn't figure out how to adjust the focus till just now watching your video, so thanks for too. i'll try focusing it first but my main problem is picture breakup and those flashing colors you spoke of. that little 110 sure flies good though don't it?
don't know how that could happen. guess I didn't notice the video had changed. your tracker is pretty cool though, saved your video for a future project. (after I get my camera working)
Following... My servo keeps on turning, my RSSI_MIN is 120 & MAX is 400. I tried different values from 0-50, 60-200 etc. but still the same... I am using RD945 diversity receiver.
Thanks, I have succeeded in making the receiver using the D58-2 signal. Unfortunately, China can not find MG Servo 1.8kg TGY-9025MG steering gear, I use the GS-9025MG 9g GOTECK alternative to complete. Currently relatively stable, consult whether it can speed up the antenna rotation speed? :)
I'm glad to hear you have made one! It doesn't really matter which servo you use, any 9g servo is fine. To increase speed you need to change these lines. The simplest way is to assign a fixed value: // move towards stronger signal if (avgRight > avgLeft) { ang = 2 * (SERVO_DIRECTION * -1); } else { ang = 2 * (SERVO_DIRECTION); } But that will make tracker to rotate at constant speed at all times. A better way would be to use exponential curve: ang = pow(float(avgRight / avgLeft), 10) * (SERVO_DIRECTION * -1); You will have to experiment to find a good exponent value. 10 might be a good value to start with. Let me know how it goes.
Wow! see the news, thank you for sharing. I'm going to download the update as soon as possible test results. These days after the snow to test, eager to see the effect. I am from advertising related work, before flying four axis aircraft never touched the microcontroller technology, this time without your help must not complete the production, thanks again. Expect more perfect results.
In fact, many previous concerns about the RSSI device on the TH-cam, this is the first time in your help to achieve production, feeling very cool, ha :)
Nice tracker! I am also building a tracker with both right/left and up/down tracking for a senior design project. However, I've been running into some electrical noise issues. I've been reading about 0.4 volts with no signal source. Do you know what your RSSI voltage is when no signal source is present?
Actually yes, if you look at my arduino source you'll find RSSI_MAX=400 and RSSI_MIN=120. On a 5V arduino it means (400/1024)*5=1.95V at max rssi and (120/1024)*5V=0.59V at min rssi (plus minus some offset)
Ok thanks for the reply! I think I'll probably go with an averaging filter, subtract out biases, and implement a threshold voltage in order to get as clean and accurate a signal as possible.
You could build this with any diversity receiver right? As long as you can get the RSSI out of it? I am thinking of building it with 5808-based diversity receiver.
Yes, you need to flash it. The instructions are in github (link in the description). This project uses Timer.h, you will need to download this library from github as well and import it in Arduino IDE (links and instructions in github README.md)
hello antti, my tracker position is reversing, it should be left and right, but my drone moves to the left to the right tracker and vice versa. how to solve that problem ...
If you are too lazy to modify the source code, you can just bend the antennas pointing inwards (cross eyed) or flip the receiver upside down, this should have same effect.
Hi well done awesome project, have you made any updates to the Arduino code or is their just this one the original one? It works really good I found if it looses me, it struggles to search/find me again, in the code is it suppose to search left to right if the signal is lost to search for the signal again? Is it possible to add that in Thankyou
You'll need two directional antennas! As the name suggests Omnidirectional antenna can't tell which way stroner signal is. Current setup & firmware are good for flying in "front" of you, not behind or above.
With the second servo for tilt, it will be a real good solution, hope the software become compatible soon. Thanks for the fast reply and this good job.
I got 2 small biological drones, they have endless batteries, never stop buzzing and require 24/7 maintenance. The last project I did took 2 years to complete (3d modeling, printing, arduinos, rf-modules and writing code) Every time I had a couple of hours, it took 1 hour to remember what I was doing. I've noticed that some other rc guys on youtube have experienced same fate. So I'm doing well, just taking care of my little drones. Best wishes to you.
I watched the video of how to include an Arduino library... So if I understand, we have ONE "Timer" library which has everything we need for the Arduio part of the project. The Arduino will run ONE library at a time, that being the one that is loaded, correct? So that once the Timer library is loaded the Aruino is then all set? Thanks, Bill
Hi Bill. Once the Timer library is loaded the Arduino is all set, correct! If you look at the code you will see lines like #include and #include those are all libraries and you can have as many as you need. With #include we tell our project to use a library. Before you can do that you need *import* the library into IDE (downloading a .ZIP file). Now all your projects can use that library. I hope this clears things up.
Thanks for that, it really helps. And it`s great to now have that essential *obvious* step explained, that the libraries have to be imported first, so that timer.h can build correctly.
Thanks... OK, so to calibrate the RSSI values, first of all, where do we see the values displayed? Then, do we iteratively edit the values and recompile and upload the sketch, then repeat as necessary? Thanks, Bill
Sorry for the delay. In simple-rssi-antenna-tracker.ino sketch uncomment (remove //) //Serial.print("RAW RSSI: "); //Serial.print(avgLeft); //Serial.print(", "); //Serial.print(avgRight); Then upload the sketch and open /Tools/Serial monitor or press CTRL+SHIFT+M. Now you should see RAW RSSI values. See what they are with video transmitter off and on and assign those values to RSSI_MAX and RSSI_MIN.
Just a quick question. I tried this on the quanum 2.4 version, and I'm not sure if the RSSI pins are the same as this one. How would you tell which one is for the RSSI signal?
The rssi 2.4 pins are arranged laterally, not the same as the 5.8 (4th pin), just pick up the RX name written on it and find the datasheet. I did and it worked with these same code parameters but I will try to refine the settings. Good luck.
Basically any receiver will do. All you need is 2 measurable RSSI outputs. The voltage range might be different than of RC540R, but that is easily compensated in code. I heard someone is using FR632 and Yang (in comments below) is using D58-2 receiver.
if I use two video receptor of diversity, can i do the tracking in pan and tilt using the same program? can i use an arduino uno and a servo of 20 kg/cm?
Sure Arduino Uno will work, and I think pinout should be the same. 20kg/cm is ok, even though its quite big, I'm using 1.8kg/cm. Make sure your 5V regulator can supply enough current for your servo. Funny, I never thought you could use two diversity receivers, but it should work :D just turn one of them 90° for tilt. Cool!
Yes, you need to find #define RSSI_MAX/MIN values. Uncomment debug section in code, and use serial monitor to find raw values. I think RC540 max rssi voltage is around 2V. // raw rssi values, use these for RSSI_MIN and RSSI_MAX //Serial.print("RAW RSSI: ");
Wow, well done. I love taht thing you built. Thanks for sharing! I think that tracker would work a lot better with 3 antennas. I'm not sure if the tilt is really needed then... For that you would need 5 antennas.
Sorry this is an old video but there is not a lot of information on this diversity unit. What diversity lovely do you have set and what diversity time please? My thanks in advance.
Antti Vainik Hiya, I couldn't find the field test with rcmodels However thats fantastic to see some figures, thank you so very much for taking time to reply. I will enter those figures asap and start to enjoy flying using diversity. Respect. .
If I disconnect the servo potentiometer to make the servo spin through 360degrees, will the arduino code still work? Am trying to build it right now, just figuring out how to arduinoify for the first time
It won't work. Sorry it's not that simple. 1. Servo.h library will limit motion to 0-180deg. 2. You really need a servo that is ment to move 360deg. 3. You would need to do some changes in tracker code.
Antti Vainik thanks for the reply- its been a while but Ive decided to add a separate servo pot which is geared down so that it turns through 360° and your code still works. Thanks for your work, the setup has been working great for the past 7 or 8 months or so by the way!
At line 122: timer.every(50, mainLoop); timer calls function mainLoop() every 50 milliseconds and at the next line function measureRSSI() is called every 5ms. So we take 10 rssi measurements, average them and then move servo. Does this answer your question?
Hi Jose, void loop() is called over and over again, as the name suggests. We call timer.update() inside loop(), that's how timer counts time. void setup() is used to create and initialize objects. TH-cam is full of Arduino tutorial, probably in your own language too. th-cam.com/users/results?search_query=arduino+programing+for+beginners
Hi, very cool tracker. I want to build one but the arduino source code link is dead and the HK servo link is dead. So cannot build one since no Arduino code. Can you re-post please?
Hello! I have some issues about RSSI. Follow your instruction, I used fr632 to out rssi RFA (left) and rssi RFB (right). But the raw value of rssi RFA is alway low than rssi RFB, so how can I calibrate it? Thanks so much for your help
I heard from another guy that FR632 RSSI_MAX is about half of default value. You can see raw value by uncommenting //Serial.print("RAW RSSI: "); section in the code and turn on serial monitor.
AWESOME!! Will it go 360 degrees? If you fly behind it will it turn all the way around? or because the servo will only go left and right limited distances?
Great little tracker ! That's all you need. Gives the finger to all the expensive "super-trackers", that maybe look better in theory, but doesn't really perform much better in the field. Question? I see a lot of commenters suggest to expand(doesn't get/want simple) on this and make it tilt and add a close range(!) antennas etc. - am I right your two antennas will get a strong signal from any direction at close range ? and therefore also performs well without tilt ?
Hi. There is no simple answer, but you are right. In the video I'm using 3-turn helicals, which have about 75 degree wide beam angle. Imagine antennas pointing 45 degrees up, now you are covering "almost" whole vertical axis. Of course in practice its not going to work like that, with tracker or without. You will always get bad signal near the ground and directly above your head.
I see. If you present the video/send them a prototype, hobbyking or some RC manufacturer will surely produce this one. Once (before they were all over the place) I said to a cctv factory in Chenzen - just chatting through Alibaba - that I needed a particular PTZ cam with 3G module. One week later they had made it for me, and kept selling this dome camera with a telephone module inside until those things started to show up in better intergrated designs.
Exactly. RC540R runs on ARM processor, so it could do tracking by itself, without Arduino hacks. And if Quanum had made it firmware upgradable with usb port, it would have been the most popular and hackable receiver on the market.
You really should try to make them do that. It's all about talking to the right person. If you don't make money - patenting is not really big in China as you know - at least you'd do something good for the other FVP guys out here(that don't know programming/tinkering). How does it work with 4-5 turns, or other more Dbi directional antennas ?
Preferably yes. With 3 rssi values pan & tilt is quite straight forward, no trickery required. With 2 rssi values pan is easy but for tilt you would have to move the tracker up, take a measurement, move down take a measurement, then compare which one was better and move back that way again. So that would make tilt tracking slower. Still I think its doable.
Just an idea, but I think some pilots fly higher altitude (long range) and some mostly horizontal speed (fpv racing). So there is some tracking speed priority either in tilt or pan, depending on how they fly, so maybe they can configure the antenna to match their flying style and configure it in the software as such. So, even though double sampling might make the tracker slower but usually only one axis is priority, at least in my experience.
I dont understand with FPV taking off the way it has why more less expensive trackers have not been released. I dont have $500 plus to shell out for any of the premade trackers out not to mention I'm wanting one that I can use for both Analog and HDZero tracking. If anyone had run across any resources please feel free to share....
yeah I feel the same. The sentinel antenna tracker from virtual pilot somehow puts your GPS coordinates to your vtx video so it doesn't need any additional stuff on your model which I like, although I didn't get how it should be set up since it's not natively supported by betaflight, but it's also too expensive at about £90 and you need a 3d printer to make it which I don't have.
@@flat-earther The Sentinel AAT can also be setup to track drones without a gps unit by tracking the telemetry channel of a CRSF RX. It can also do both analog and hdzero so yeah it's the one I went with..
@@flat-earther correct the Sentinel AAT kit can be configured to track the telemetry channel of a crsf rx so no gps units needed but can be configured for gps tracking as well
@@flat-earther I should add that the faster proximity no gps tracking setup does require the FC firmware to also be modified as it hides the tracking/telemetry data in the OSD of Betaflight/Inav/Ardupilot/Kiss GUI which is what the AAT decodes for positioning. The setup is really no big deal as the user community for the tracker has ballooned and there is even a gethub of latest firmware for damn near all major makes of FC's. Personally I'm still in the assembly stages with mine as I'm making mine with a swappable top to quickly go from analog to hdzero and am even ingratiating an Insta360 go mount into the antenna array so I can have FPV and LOS recordings of my flights.
No, it's supposed to work with any diversity receiver as long as you can figure out where the 2 rssi signals are (if you don't have access to them, you can't do this project) to link them to arduino inputs.
If it's diversity (2 receivers like this linked and compared) you can but you may have to scale rssi value on the arduino code. Some people have done it, have a look at other comments.
I haven't tried flying behind concrete walls :) This tracker (or any other) is not a miracle device which will allow you to do so, sorry. But since you ask, I'm guessing that flying behind any massive obstacles would create a lot of multipathing. That means the rssi will be jumping up and down quite rapidly. Most likely those drops are going to 'reach' antennas slightly at different time, which will confuse the tracker and make it very twitchy. This tracker works best for long range FPV in wide open areas.
No difference which one you use RC540 or RF632. In any case you will have to do the calibration: find RSSI_MIN/MAX values and RSSI_OFFSET_RIGHT/LEFT. Read the comments in the code for all #define's you'll get a picture what can you tweak.
The video receiver outputs signal strength - RSSI as analog voltage, somewhere between 0 - 3V, Arduino converts that voltage to a numeric value between 0-1024. We need to know exactly what value represents 0% and 100% RSSI. That is #define RSSI_MAX/MIN. This is because every receiver is going to output different voltage. By changing RSSI_MAX/MIN you can find values that match your receiver. Obviously RSSI_MIN is when vtx is off and RSSI_MAX is when vtx is on, and very close. Then there is #define RSSI_OFFSET_RIGHT/LEFT. The two receivers inside your FR623 are going to be slightly different, one is going to be slightly better and it will output better RSSI all the time. This will cause the tracker to miss the target by some offset. I'm kind of repeating here what already says in the comments. How to find all these values? Connect Arduino to the computer, in the Arduino IDE open Tools/Serial monitor. A window opens where you can see left/right RSSI values etc. Now adjust RSSI_MAX/MIN in the code -> save & upload -> check Serial monitor again -> rinse and repeat. You dont really need to know much about Arduino, just read the comments in the code, change some #define values save & upload and see what happens. You'll be a programmer in no time ;)
Hello Antti your antenna tracker looks fantastic. I will be putting one together. I have the sketch code that you used but need to know which library file that you used for the Arduino. Have you continued with the development by adding pitch yet?
I haven't had the time to develop pitch tracking, also partially because tracker works "fine" with horizontal only, unless you fly really really high. If you are referring to Timer.h the download link and installation instruction are mentioned in README.md
Thanks for the quick reply Antti. I have the software ready to program the Arduino. Where did you connect the power lead and ground for the servos? Almost ready to start the build. Thanks Bill
Hi, it says: tracking IS relative. A GPS tracker knows its own location and targets location, from that it can calculate exact angle where to point. RSSI tracker has no idea where it or the target are. It only knows that signal is stronger "to the left" so it turns that way, if the signal gets stronger to the right after turning, it turns the other way, and so on. Because directional antennas have messed up radiation patterns (google for helical antenna radiation pattern) it's kind of hard to tell why RSSI is 50%, is if because the target is far away, or is it because the target is in antennas side lobe a hundred feet away. Basically, tracker never knows if it's pointing in the best possible direction.
i very confused with how to set it all up you have you're file and timer file. im just confused to where to unzip them in the program and how to do so. is it possibly to upload a small video or explain a little ore for someone who's never used one of these boards before thanks in advance.
Check out this video. Use method 2. Importing a .zip file library. th-cam.com/video/K1cIWCBKaUY/w-d-xo.html You are not the first one who is confused about Timer.h I'll have to think of a better way.
The process goes like this: 1. download simple-rssi-antenna-tracker and open it in Arduino IDE 2. download Timer-master.zip and import it in Arduino IDE. Sketch/Include Library/Add .ZIP Library... 3. connect your Arduino to computer and click on Upload button. You are done. When you click on Upload button, Arduino IDE combines functionalities of Timer.h and simple-rssi-antenna-tracker.ino and installs the result on Arduino. Answer to your question, you are installing both. Before step 3. you actually have to do some some settings in simple-rssi-antenna-tracker.ino. Read comments above #define tags, and fill in values for your receiver. The most important ones are RSSI_MAX/MIN and RSSI_OFFSET_RIGHT/LEFT
Hmmm..I havent tried. If the difference isn't too big, like 3 and 5 turns, I guess it could work. In theory it would result in offset towards the weaker antenna. In the code there is RSSI_OFFSET_RIGHT/LEFT, you could use those values to compensate for offset.
Hi Arthur Ironically I never tested max range. Back then I didn't have anything with RTH. Now I have a Z-84 with iNav, but i'ts winter again, and flying is really challenging.
Arduino doesn't do that. You set channel manually from vrx menus. Arduino doesn't need to know what channel you are on, it just monitors rssi levels and turns servo left or right. Does this answer your question?
yes sure...i started from your code to built one tracker using two RX5805 modules...so now I shall understand how to set the channel on the VRX...thanks a lot
Okay now I understand :) well done! There is no support for changing channels at the moment. But it should be pretty easy, just connect some pins from Arduino to vrx ch1, ch2 and ch3 and set them in code. What kind of interface are you using to interface with arduino, buttons?
Hello Antti, I just order the Rx from HK as they have free shipping at the moment and tried programming a nano and it seemed to take the sketch, as i dont have the RX to test do you think theres any reason the nano wont work ? it moved the servo by touching A0 and A1 with fingers. cheers Brett
If the servo moves by touching analog inputs then it's working, congratulations. You could wire a couple of potentiometers to A0 and A1 to simulate RSSI signal. Then you can go and play around with #define values to understand how everything works, while waiting for the RX.
hello sir Im interested to build your tracker sir i have question is it possible to used 2 pcs 1.2ghz vrx? or is work in 1pc 1.2ghz vrx only? thanks you
All video receiver discussed here have 2 built-in receivers, but you can use 2 separate ones, as long as they have RSSI output. So the question is, do you know a 1.2GHz receiver with RSSI output?
Tilt is not as critical as pan, unless you fly 1km high, right above your head. I'd say you could get good reception kilometers away just by bending antennas slightly upward. Adding tilt with only 2 antennas is going to be tricky, I didn't think it thought initially, but I'm going to try. Is it going to happen soon, I don't know. Its winter time here in Finland, it gets dark around 4pm and its cold. I'm hoping people will pick up this project and do more testing.
Hi Antti, this is a brilliant design. I got inspired by your video some years ago and built a similar setup using 2 diversity receivers. The Quanum RC 540R does the guidance job with two 16-turn helical antennas. I added a small SD-card reader/writer for data logging and could fit it into the Quanum as well. The 2nd receiver, placed about 10 inches besides the Quanum, is an FR632 with one identical 16-turn antenna, pointing exactly in between the two guidance antennas, and a 4-leaf antenna for close range reception. I didn't care for vertical guidance. My construction is quite heavy and therefore using a big servo. Both diversity receivers feed their best signal into an Eagle Eyes FPV Station by Eagle Tree and the station outputs the better image of the two receivers for viewing/recording. Obviously, this is for long range operations. Your software was of great help and a good starting point. I adapted and expanded it a lot, up to the memory limits of the arduino. This works like a charm. Good image on 5.8 GHz up to a distance of 15.1 km (9.4 miles). This was the battery range limit of my small styrofoam model aircraft. Using a running average for the RSSI signals gave me very precise antenna guidance even at very low signal strengths.
Wow sounds pretty serious and awesome :D Do you have videos of your setup? Also it would be interesting to check what you have done in the code, have you published it somewhere?
@@AnttiVainik I had a big thread about the project on a German speaking forum, which unfortunately was closed down, loosing all contents. But you can find an image of the tracker and my version of your Arduino software by going to the 'euroconnection' URL with the TLD (Top level domain) for Switzerland.
i need to see your work thats good
Thanks for putting this YT video together, I have built one and it works pretty good
Wow, awesome and cheap solution for an antenna tracker. I was looking for a good diversity receiver, when I stumbled upon your video. It made the decision much easier! Bought this receiver and built the antenna tracker with the components you mentioned. Works like a charm! Changed the code a bit to my likings, but it's basically your idea. Thanks man!
Johan Meijer What did you change? And could i use those codes?? Thanks!
I'm gonna need that code cowboy
Sorry for the late reply, but here it is: www.dropbox.com/s/l0u19iy3yhyqd2k/AntennaTracker.ino?dl=0
@@captainKts photos.app.goo.gl/fZ4noDLT8fdmpufT9
@@johanmeijer85 hi bro, can u help me edit this code to using the 360 degree servo, thanks. plz
Antti. How would you update this tracker in 2019?
Or 2020 now as I can't find that receiver.
@@TheZolon Given the Git hasn't been touched in 4 years, i'd say there are no planned updates either XD
@@TheZolon using for example the realacc rx5808 you can easily find the rssi pin.
@@TheZolon you can recreate this by getting just plain receivers....power them...and set your quad copter VTX to those RX default channel...if you want to spend more time on this then you need secondary Arduino which will search for signal using RSSi....its not hard...just time consuming
Oh great, just what I need, another project to fuel my antisocial tendencies as of late. Good job guys!
Super Tracker !! I use it with one FR632 Diversity receiver. I have found MAX_RSSI=240 and MIN_RSSI=120 okay for FR632. I have also modified the SERVO_DIRECTION= -1 for my servo (an old HITEC HS-300). The servo is mounted verticaly and above, a plate with onboard the FR632 and the box containing the Arduino Leonardo and the step down converter (12V to 5V). Thank you very much for the arduino code.
ailehorten how did you measured the max and min rssi for your rx?
@@emmanuelgoncalves8332 do you know now?
I have built this tracker and it works very well. Thank you so much for this!!!!
I'm very glad to hear. It would be interesting to see a video or a photo of your version, please share if you take any.
Hi, do you still fly with this? Have you encountered any problem so far? I want to build one for my long range setup and I want to know if it's reliable. Thanks
Thanks for this vid, very helpful on the build layout. If you had completed this how to with a piece on the Arduino setup it would have been perfect. Many people are left with questions if they are new to Arduino. Setting rssi min/max for example, serial monitor shows servo output, not rssi, so i've hit a wall with that.
If we could increase the servo speed then you could use 15 turn helical antenna to track precisely with really narrow sensitivity.
Hi Antti, I made two of them, one for the Quanum540 which worked first go and one for the FR632 which needed calibrating and is now working. Thanks for your work.
Robert
Cool! And good work! If you ever film them in action, It would be interesting to see it.
Hey Robert, greetings...if i can trouble you can you help me with doing this with the FR632 reciever please. What kind of tuning did you have to do?
Hello Antti I built your antenna tracker and it is fantastic. I will be adding a second Rx. and a third antenna in the center. If I adjust the outside antenna the one in the middle will be on the aircraft all the time. It is absolutely amazing and so simple to build with all of your instructions and even included the sketch code. I modified the code slightly to suit my needs. Billy Bones
Well done mate! I'm very happy to hear of your success. OpenSource rules! If you ever record a video, please share the link, so I can put it in the description.
I will make a video when I add the third antenna. Will let you know when I do. Billy Bones
I'm new to fpv. Wow. Nice. I was also thinking about making a diverity 5 helix antenna . This can be my backup :)
Great work.
Hello, can you tell me the maximum range to follow the drone for the antenna tracker?
Works amazing.. Now waiting for the tilt :P
what other resiver use this discontinued
I dont understand one detail, the servo that you use rotate only 180º then you dont cover never the 360º. Its right this?
I am not into antenna trackers, but there is one thing you can do to every servo: open it up and remove the pin, that blocks is from turning 360°/infinite. Same way you can use a servo as a winch on a truck. But I have no idea of this will work with the controller on the tracker.
Is vertical axis tracking coming anytime soon? Would be interested in that update.
I have been looking at this idea very closely and its very good. Do you have a schematic that shows the analogue circuitry for the RSSI? It appears as if the RC540r uses a receiver very similar to the common RX5808 found in a lot of FPV receivers but the one in the RC540r is slightly different, maybe a custom module? I would like to see the circuit and see if it can be used with the RX5808 receiver module. Can you help?
What happens if the signal drops out ,does the tracker go crazy trying to find the signal ?
Cheers
Have you thought about using the half overlord for a pan and tilt system?
If the rssi and antenna setup would overlap enough it could probably maintain a strong signal without breakups and stay close to the mainlope even while crossing the station.
I would like to build a similar systems like yours in the future with the half-ol, am just not solid yet in programming...
Thanks for your design!
How can I put the code on the arduino board?
It always indicates a wrong translation to me!
So, how do you find the RRSI pin in the RECEIVER module? how did u know it was the 4th pin?
I am new to electronics but I assume the 5v regulator connects to the power and ground on the Arduino?
I want to try to make one really but what type of the board should I get?
Terve, Antti! Great solution 👍Thanks for sharing it with us. I hope you get to develop it further with tilt function as well (in between your new parenting "hobby" tasks ☺). In my FPV plane I have two VTX transmitters. One with LHCP and the other with RHCP antennas at opposite 45" angle. Giving a better omnidirectional TX coverage. VTX frequencies are individual/different. The Quanum diversity RX supports individual frequencies. I intend to use two of the Quanum Diversity reciever for my ground station.
Do you have a suggestion on how to potentially modify your solution to track dual VTX in the plane. Including tilt of antenna tracker. I think such a solution (dual VTX) will have a significant boost to video quality and stability. Especially when low TX power (25mW).
I hope you will find some time for the RC and FPV hobby again, but good luck with the parental role ☺
Kind regards, Torgeir
Hi Torgeir, and thanks
Which Quanum diversity RX do you mean, the RC540?
About tracking dual frequencies, I think current code might work unmodified. A potential problem might be having 2 different nullpoints (and in general 2 different of everything, vtx antenna etc). Imagine this situation, you are in a turn and one antenna reaches nullpoint -> rssi drops, the other antenna is at 90° and has perfect allignment -> very good rssi. Now tracker thinks the plane is moving left/right and starts wondering off.
This situation is kind of comparable to multipathing, but in this case, one of the channels could "stay down" for a long time, which gives time for tracker to wonder off. Multipathing interference is much faster, and can be dealt with filtering.
Anyways I'm just guessing here. This should be tested in practice.
How to deal with all those problems? One way is to use 2 or 3 rx for aiming and one just for reception. But now you end up with 5 video receivers + antennas and its not so super simple anymore :/
Antti Vainik Hi Antti! Thanks for your reply. Yes, I have the 40ch (32+8) version.
I have thought of using one to track the plane as you do (on one frequency) and use the other diversity receiver for video (on two different frequencies). What I then miss is a receiver for omnidirectional antenna when flying near or over the groundstation.
I see your point related to potentially issue tracking on two different frequencies with your current setup.
Anyhow - I'm curious to test your setup but need to order the components.
Looking forward to learn more of your progress with your solutoons. Hope you will get some time for this hobby inbetween parrenting ☺
Hi I have a problem installing the hardware in Arduino.
Either I did not do it right or the file was too big ...
(Sketch uses 7,786 bytes (24%) of program storage space. Maximum is 32,256 bytes.
Global variables use 506 bytes (24%) of dynamic memory, leaving 1,542 bytes for local variables. Maximum is 2,048 bytes.)
Can you just build two of these , mount one sideways and then create/print a contraption for each servo so they move the whole device ?
thrilleex at this point you might as well get a 4 way diversity receiver. With 3 patch antennas you should be able to get your left-right and up-down tilts, and with the fourth you could put a cloverleaf for proximity
Very nice!!congratulation!! Its possible to put the receiver in a vertical position and the antennas with different tilt angle? I think you will have a better result if not have tilt movement. Its correct? Thanks and sorry for my bad English
Can anyone help I'm trying to wire this together and the power comes from the xt60 up through the 5v step down, then where does it go connect directly to the servo connectors? How does the power connect into the arduino?
got a. D58-4 it has Tracker output, do I only need the Arduino board for mounting?
I have a Boscam RX-LCD5800 diversity video receiver, it has very similar electronic components to yours, almost identical actually. Do you think the rssi solder pad is the same pin as yours? Is there any way I could know?
Many receivers use same/similar receiver modules. Open your receiver and see if there's a module inside. You can then do a google image search "5.8ghz receiver module". There are plenty of images that show the RSSI pin.
@@AnttiVainik ok I've got my rssi pins covered, but I can't flash the Arduino for the life of me. I'm not sure what I'm doing wrong. "An error occurred while uploading the sketch" any help will be much appreciated. The TH-cam videos are not very helpful.
Edit: Arduino flashed with timer.h
Last question, what's powering the Arduino during use? The regulator out arduino and servo power are soldered together at the board?
Can I use fat shark receiver?
I'm just in the process of building this and have a comment about uploading the file to the Arduino. For several hours I have been trying to get this working on a Windows 10 PC with no experience of Arduino.
So for the uninitiated, after you install the software (It seems Arduino doesn't like the software installed in the default installation path, I ended up only getting it to work when installing it in the root of the hard disk eg c:\arduino) you have to upload the timer library into the libraries folder under that. You also can't have odd characters like - in the folder or name. So in other words, extract the timer-master zip file into a folder named timer under arduino\libraries.
Good video...
Btw Why havent you got another servo for vertical track?
Will this work with non diversity receiver?
Awesome mate just in the process of building one so you have to same antennas on both receivers or could you have a helical and a clover leaf or say a 3 turn helical and a 5 turn one
You must have two directional antennas. Cloverleaf is omnidirectional, it has same amplification in every direction, with clover the tracker wont be able to tell which direction your vtx is.
Cool project. As configured, how would the tracking behave if you were to fly a complete circle around your antenna?
Currently I'm using regular 180 degrees servo, naturally that rules out the other 180 degrees. It's possible to use 360 deg servo, but I was in a hurry and wanted to test current setup asap. Say you're flying clock wise in a circle starting from 12 o'clock. Servo hits its limit at 3 o'clock, you continue to 6 o'clock, 9 o'clock now tracker could swing 180 degrees, but it really doesn't know where the target is. I would imagine it would pick up direction again when your quad is closing 12 o'clock.
Google for "helical antenna radiation pattern" you will see that helical antenna has quite erratic pattern towards back and sides, so I really don't know how it's going to behave. I'll try that the next time I go flying.
Antti Vainik you could also use a stepper motor. They are just as easy to program using an arduino
True. Also tracking with steppers would be very precise. Servos are easier, everybody has them and everybody knows how they work. Just wanted to keep it simple.
hi antti .. my graduation project discussion will be tomorrow and i have a problem .. when i use 2 helical antennas the values of rssi never change .. i test the 2 helical and they work ..but when i use 2 omnidirectional the rssi values change ... i use RD945 diversity receiver and i can't find a solution .. I'd be grateful if you help me.
Hard to say without seing your project, but one dumm mistake i've done is mix sma and rp-sma connectors. If there is absolutely no signal from one antenna, that could be the case.
I want to use this with 2 1.3ghz rx. There shouldn't be an issue as long as I can wire the Rssi to the arduino correct. Also would I be able to use a brushed/brushless motor instead of a servo?
Thanks again for posting this.
I LOVE this idea man thank you so much! I was wondering if one could use a small stepper instead of a servo to get better longevity and full 360 degree coverage by the antenna?
Have you done anything about this matter?
Could you kindly add TILT function in the code?
Very cool and look forward to a more perfect design.
I want to track drone which can be 200 km away from me. Is it Possible to do this using RC540R diversity video receiver. Thanks
Absolutely NOT. This tracker is relative, it does not know where your drone is. If tracker looses lock, it may not recover. I't's only good for proximity flying.
What's your pid for your tracker ? :)
Hi, Got the set up all built and looking forward to using the idea. Only have had one issue so far which is that the servo isnt responding. I have it set on pin5 and powered from 5v. Ive tried a couple of different servos with no luck. Ive included the timer and servo libraries....any ideas???
By no response I mean it just slowly ticks round to its max position then binds...
Hi. If it slowly ticks to max position it means that, arduino is working and performing calculations, analog measurements are measuring rssi values that are very close to each other (slow movement). I'm assuming you have vtx on an rx is set to corresponding channel. The next thing I would do, is check out debugging information via serial monitor (Tools/Serial Monitor in the IDE while everything is on and connected)
Is it possible, you soldered RSSI measurements to wrong pins in vtx? If you cant figure it out, contact me at firstname.lastname at gmail.com
@@TopperDanny¿Resolviste el problema? lo mismo me pasa a mi
@@zxrd2753 Buenas, lo has resuelto tu? Yo estoy igual jajajaja, no se mueve el servo pero en el monitor veo que va variando poco a poco de un lado a otro...
@@Minerillo_FPV estoy a la espera de probarlo en el campo, en casa no funciona, pero mi servo si se mueve muy despacio hacia la antena dominante hasta que llega a los 180 grados y ahí se queda. si tapo la antena con la mano si gira al lado contrario, yo tengo el fr632, estoy seguro que es algún problema de calibración de los offsets o algún otro.
Very good project, but I have a doubt, I can do with 2 rx of video or it has to be the diversity? I understood that the logic would have to be diversity because in it has the signal that says to the board which antenna is stronger, and from what it has given to understand is that it is exactly that signal that informs the board the best atena that you use for tell arduino how the signal is, but I do not understand how he knows which way to go, when you answer here I buy the receiver, because I depend on your answer if I can use 2 simple receivers or it has to be really diversity. Thank you.
I just want to clarify one thing. Diversity is a way of choosing better signal and switching it to the (video)output. For RSSI tracking you don't need video diversity, you just need two video receivers with RSSI output (Arduino has nothing to do with video). All Arduino is doing here, is measuring two RSSI voltages from two receivers and turning servo towards better one.
That being said, you can take two identical receivers, connect their RSSI pins to Arduino and start tracking. Now you connect the display to one of the receivers, and all you see is video from that receiver, there won't be diversity swithing. Is that a problem? Not necessarily. You have to keep in mind that usually you have one directional antenna and one omnidirectional. When you fly out of directional beam, diversity switches to omnidirectional antenna. But in our case you have two directional antennas which are constantly pointing at the VTX, so video signal is almost equally good (or bad) on both channels, no need to switch around. Of course this is in ideal conditions only.
Sorry long explanation, I hope it answers your question.
If I use 360 servo will it spin
Does anyone know where the pin outs are for fat shark modules cause I’m curious if you could do this with rapid fire or true d or a combination of both!
great and good working! I also made one with your code and two helical antennas. it works quite well. only problem I have is tracking close to the receiver. it starts moving away from the drone. Do you have an idea what to do?
the replacement camera for the 110 says it is 12v, I measured the voltage at the camera connector and got 4.5. What voltage camera should I use for an upgrade. any camera you would recommend? I measured that voltage with the camera unplugged, is that ok, didn't seem to blow anything up.
thanks for all the info, I ordered a couple of those cloverleaf antennas last week, would like to do both antena and camera mods, couldn't figure out how to adjust the focus till just now watching your video, so thanks for too. i'll try focusing it first but my main problem is picture breakup and those flashing colors you spoke of. that little 110 sure flies good though don't it?
Camera, cloverleaf? I'm guessing you commented on wrong video.
don't know how that could happen. guess I didn't notice the video had changed.
your tracker is pretty cool though, saved your video for a future project. (after I get my camera working)
No problems, just thought to tell so you could get the answer to your question eventually :)
Will this work on my 1.3GHZ receiver from readymaderc as well? As long as I know where the RSSI pin is?
Did you have to use a longer screw for your servo? I dont really understand how the servo attaches to the GoPro style bottom plate.
It's a normal servo screw. Do you know those round servo "arms" that come with every servo, basically it's the same thing.
Awesome. Could you please advise me how did you find out RSSI_MIN and RSSI_MAX values in the arduino code?
Following... My servo keeps on turning, my RSSI_MIN is 120 & MAX is 400. I tried different values from 0-50, 60-200 etc. but still the same... I am using RD945 diversity receiver.
@@arielalvarez76 i also use RD945 what is the RSSI_MIN &RSSI_MAX you use ?
@@arielalvarez76 Bro is RSSI Pin is 4th from right?
Thanks, I have succeeded in making the receiver using the D58-2 signal. Unfortunately, China can not find MG Servo 1.8kg TGY-9025MG steering gear, I use the GS-9025MG 9g GOTECK alternative to complete. Currently relatively stable, consult whether it can speed up the antenna rotation speed? :)
I'm glad to hear you have made one! It doesn't really matter which servo you use, any 9g servo is fine.
To increase speed you need to change these lines. The simplest way is to assign a fixed value:
// move towards stronger signal
if (avgRight > avgLeft) {
ang = 2 * (SERVO_DIRECTION * -1);
}
else {
ang = 2 * (SERVO_DIRECTION);
}
But that will make tracker to rotate at constant speed at all times.
A better way would be to use exponential curve:
ang = pow(float(avgRight / avgLeft), 10) * (SERVO_DIRECTION * -1);
You will have to experiment to find a good exponent value. 10 might be a good value to start with.
Let me know how it goes.
Nice job mate pls share the Arduino code thnx!!
Hi Yang, you wanted more speed. I added exponential and sigmoid tracking. Check out new code on Github.
Wow! see the news, thank you for sharing. I'm going to download the update as soon as possible test results. These days after the snow to test, eager to see the effect. I am from advertising related work, before flying four axis aircraft never touched the microcontroller technology, this time without your help must not complete the production, thanks again. Expect more perfect results.
In fact, many previous concerns about the RSSI device on the TH-cam, this is the first time in your help to achieve production, feeling very cool, ha :)
Nice tracker! I am also building a tracker with both right/left and up/down tracking for a senior design project. However, I've been running into some electrical noise issues. I've been reading about 0.4 volts with no signal source. Do you know what your RSSI voltage is when no signal source is present?
Actually yes, if you look at my arduino source you'll find RSSI_MAX=400 and RSSI_MIN=120. On a 5V arduino it means (400/1024)*5=1.95V at max rssi and (120/1024)*5V=0.59V at min rssi (plus minus some offset)
Ok thanks for the reply! I think I'll probably go with an averaging filter, subtract out biases, and implement a threshold voltage in order to get as clean and accurate a signal as possible.
Can this be done with a non diversity rx?
You could build this with any diversity receiver right? As long as you can get the RSSI out of it? I am thinking of building it with 5808-based diversity receiver.
Pretty much yes. You need 2 separate receivers and 2 rssi signals, the you can do it.
Could someone please confirm that the required arduino model does have to be flashed prior to use? Thank you!
Yes, you need to flash it. The instructions are in github (link in the description). This project uses Timer.h, you will need to download this library from github as well and import it in Arduino IDE (links and instructions in github README.md)
hello antti, my tracker position is reversing, it should be left and right, but my drone moves to the left to the right tracker and vice versa. how to solve that problem ...
In the source code there is #define SERVO_DIRECTION 1, just change it to -1. It will reverse servo direction, simple as that.
If you are too lazy to modify the source code, you can just bend the antennas pointing inwards (cross eyed) or flip the receiver upside down, this should have same effect.
amazing...thank you antti ... it worked. Good luck. I'm waiting for the next video
@@AnttiVainik RSSI_OFFSET_RIGHT and
RSSI_OFFSET_LEFT ,
filled with what number.....
If the tracker doesn't have constant offset in either direction, you can ignore this value.
Hi well done awesome project, have you made any updates to the Arduino code or is their just this one the original one? It works really good I found if it looses me, it struggles to search/find me again, in the code is it suppose to search left to right if the signal is lost to search for the signal again?
Is it possible to add that in
Thankyou
Great sharing !!
Must we use two directional antenna or one cloverleaf for fly over and behind is possible ?
thank you.
You'll need two directional antennas! As the name suggests Omnidirectional antenna can't tell which way stroner signal is. Current setup & firmware are good for flying in "front" of you, not behind or above.
With the second servo for tilt, it will be a real good solution, hope the software become compatible soon. Thanks for the fast reply and this good job.
Could i use patch antenna’s?
These tracker work with another receiver? Like RC832?
Why you stopped doing videos? Hope you are well.
I got 2 small biological drones, they have endless batteries, never stop buzzing and require 24/7 maintenance. The last project I did took 2 years to complete (3d modeling, printing, arduinos, rf-modules and writing code) Every time I had a couple of hours, it took 1 hour to remember what I was doing. I've noticed that some other rc guys on youtube have experienced same fate. So I'm doing well, just taking care of my little drones. Best wishes to you.
I watched the video of how to include an Arduino library...
So if I understand, we have ONE "Timer" library which has everything we need for the Arduio part of the project.
The Arduino will run ONE library at a time, that being the one that is loaded, correct?
So that once the Timer library is loaded the Aruino is then all set?
Thanks,
Bill
Hi Bill. Once the Timer library is loaded the Arduino is all set, correct!
If you look at the code you will see lines like #include and #include those are all libraries and you can have as many as you need. With #include we tell our project to use a library. Before you can do that you need *import* the library into IDE (downloading a .ZIP file). Now all your projects can use that library. I hope this clears things up.
Thanks for that, it really helps. And it`s great to now have that essential *obvious* step explained, that the libraries have to be imported first, so that timer.h can build correctly.
No problem. After you have uploaded the sketch, the next thing is to calibrate rssi min and max values. Dont hesitate to contact me.
Thanks... OK, so to calibrate the RSSI values, first of all, where do we see the values displayed?
Then, do we iteratively edit the values and recompile and upload the sketch, then repeat as necessary? Thanks, Bill
Sorry for the delay. In simple-rssi-antenna-tracker.ino sketch uncomment (remove //)
//Serial.print("RAW RSSI: ");
//Serial.print(avgLeft);
//Serial.print(", ");
//Serial.print(avgRight);
Then upload the sketch and open /Tools/Serial monitor or press CTRL+SHIFT+M. Now you should see RAW RSSI values. See what they are with video transmitter off and on and assign those values to RSSI_MAX and RSSI_MIN.
Hello Antti, can I use a ATmega328P Nano? How do I wire it? It doesn't have 5, etc. Instead it has D2 to D13.
Don Sales yes, the pins are the same mostly. Just look up a pinout
Just a quick question. I tried this on the quanum 2.4 version, and I'm not sure if the RSSI pins are the same as this one. How would you tell which one is for the RSSI signal?
The rssi 2.4 pins are arranged laterally, not the same as the 5.8 (4th pin), just pick up the RX name written on it and find the datasheet. I did and it worked with these same code parameters but I will try to refine the settings. Good luck.
what about servo 360 degree or ??
And the power and ground leads from the servos connect to the power and ground on the Arduino?
Did you ever get the answer to this question?
Could you use any diversity reciever for this or does it have to be this one specifically? great job by the way.
Basically any receiver will do. All you need is 2 measurable RSSI outputs. The voltage range might be different than of RC540R, but that is easily compensated in code. I heard someone is using FR632 and Yang (in comments below) is using D58-2 receiver.
@@AnttiVainik how do you know what pin is rssi output on the RX?
if I use two video receptor of diversity, can i do the tracking in pan and tilt using the same program? can i use an arduino uno and a servo of 20 kg/cm?
Sure Arduino Uno will work, and I think pinout should be the same. 20kg/cm is ok, even though its quite big, I'm using 1.8kg/cm. Make sure your 5V regulator can supply enough current for your servo.
Funny, I never thought you could use two diversity receivers, but it should work :D just turn one of them 90° for tilt. Cool!
Any adjustment in code or calibration needed to use the FR632 instead? I think max voltage for best RSSI is 1v for the FR632.
Yes, you need to find #define RSSI_MAX/MIN values. Uncomment debug section in code, and use serial monitor to find raw values. I think RC540 max rssi voltage is around 2V.
// raw rssi values, use these for RSSI_MIN and RSSI_MAX
//Serial.print("RAW RSSI: ");
Excellent! Thanks a lot for sharing.
Hi, what is the values that you find to fr632? Can you share?
I checked in serial with FR632, RSSI% 5 , 44
Wow, well done. I love taht thing you built. Thanks for sharing!
I think that tracker would work a lot better with 3 antennas.
I'm not sure if the tilt is really needed then...
For that you would need 5 antennas.
Sorry this is an old video but there is not a lot of information on this diversity unit. What diversity lovely do you have set and what diversity time please?
My thanks in advance.
Hi, DIVERSITY_TIME=1 and DIVERSITY_LVL=1. I got my values from RCModelRevievs. Cheers.
Antti Vainik
Hiya, I couldn't find the field test with rcmodels
However thats fantastic to see some figures, thank you so very much for taking time to reply. I will enter those figures asap and start to enjoy flying using diversity. Respect.
.
If I disconnect the servo potentiometer to make the servo spin through 360degrees, will the arduino code still work? Am trying to build it right now, just figuring out how to arduinoify for the first time
It won't work. Sorry it's not that simple. 1. Servo.h library will limit motion to 0-180deg. 2. You really need a servo that is ment to move 360deg. 3. You would need to do some changes in tracker code.
Antti Vainik thanks for the reply- its been a while but Ive decided to add a separate servo pot which is geared down so that it turns through 360° and your code still works. Thanks for your work, the setup has been working great for the past 7 or 8 months or so by the way!
hi, i'm really interested about this 360 mod, do you have some photo? and if you want to share the code will be very appreciated =)
Hi, can you explain the operation of the library timer please
Do you mean what it is used for in this project?
yes, I do not understand how this library works
At line 122: timer.every(50, mainLoop);
timer calls function mainLoop() every 50 milliseconds
and at the next line function measureRSSI() is called every 5ms. So we take 10 rssi measurements, average them and then move servo. Does this answer your question?
And the timer.update, what does? How did it work in void setup and void loop, I do not understand how it works
Hi Jose, void loop() is called over and over again, as the name suggests. We call timer.update() inside loop(), that's how timer counts time. void setup() is used to create and initialize objects.
TH-cam is full of Arduino tutorial, probably in your own language too. th-cam.com/users/results?search_query=arduino+programing+for+beginners
Hi, very cool tracker. I want to build one but the arduino source code link is dead and the HK servo link is dead. So cannot build one since no Arduino code. Can you re-post please?
Hi, I just checked all links and they are all valid! Can you google for "simple-rssi-antenna-tracker" at the moment, Github link is 3rd from the top.
Thanks for that! I was using my iPhone and for some reason the link was giving a 404, but now in the actual browser it works ;)
Question????? Is the timmer file the only file i have to compile and up load this os my first arduino project.. please anyone
hi, i am not sure why my servo keep spinning round and round. Anyone help please..
Hello!
I have some issues about RSSI. Follow your instruction, I used fr632 to out rssi RFA (left) and rssi RFB (right). But the raw value of rssi RFA is alway low than rssi RFB, so how can I calibrate it? Thanks so much for your help
In the code there are RSSI_OFFSET_LEFT and RSSI_OFFSET_RIGHT. Assign positive offset value to RSSI_OFFSET_LEFT, find value where A and B are equal.
Thanks so much for your help! It's work fine.
I cannot wait until the weekend to test it :)
Hello Huy Le, when you used fr632, did you need to change the value rssi max and rssi min in the code?
I heard from another guy that FR632 RSSI_MAX is about half of default value. You can see raw value by uncommenting //Serial.print("RAW RSSI: "); section in the code and turn on serial monitor.
and rssi min?
AWESOME!! Will it go 360 degrees? If you fly behind it will it turn all the way around? or because the servo will only go left and right limited distances?
This one uses regular 180 degree servo, so it won't go around.
Great little tracker ! That's all you need. Gives the finger to all the expensive "super-trackers", that maybe look better in theory, but doesn't really perform much better in the field. Question? I see a lot of commenters suggest to expand(doesn't get/want simple) on this and make it tilt and add a close range(!) antennas etc. - am I right your two antennas will get a strong signal from any direction at close range ? and therefore also performs well without tilt ?
Hi. There is no simple answer, but you are right. In the video I'm using 3-turn helicals, which have about 75 degree wide beam angle. Imagine antennas pointing 45 degrees up, now you are covering "almost" whole vertical axis. Of course in practice its not going to work like that, with tracker or without. You will always get bad signal near the ground and directly above your head.
I see. If you present the video/send them a prototype, hobbyking or some RC manufacturer will surely produce this one. Once (before they were all over the place) I said to a cctv factory in Chenzen - just chatting through Alibaba - that I needed a particular PTZ cam with 3G module. One week later they had made it for me, and kept selling this dome camera with a telephone module inside until those things started to show up in better intergrated designs.
Exactly. RC540R runs on ARM processor, so it could do tracking by itself, without Arduino hacks. And if Quanum had made it firmware upgradable with usb port, it would have been the most popular and hackable receiver on the market.
You really should try to make them do that. It's all about talking to the right person. If you don't make money - patenting is not really big in China as you know - at least you'd do something good for the other FVP guys out here(that don't know programming/tinkering). How does it work with 4-5 turns, or other more Dbi directional antennas ?
Great Work!!
Trying to build one myself.
Thank you
Does the pan and tilt funktion need more than two rssi values?
Preferably yes. With 3 rssi values pan & tilt is quite straight forward, no trickery required. With 2 rssi values pan is easy but for tilt you would have to move the tracker up, take a measurement, move down take a measurement, then compare which one was better and move back that way again. So that would make tilt tracking slower. Still I think its doable.
Thanks!
Just an idea, but I think some pilots fly higher altitude (long range) and some mostly horizontal speed (fpv racing). So there is some tracking speed priority either in tilt or pan, depending on how they fly, so maybe they can configure the antenna to match their flying style and configure it in the software as such. So, even though double sampling might make the tracker slower but usually only one axis is priority, at least in my experience.
I dont understand with FPV taking off the way it has why more less expensive trackers have not been released. I dont have $500 plus to shell out for any of the premade trackers out not to mention I'm wanting one that I can use for both Analog and HDZero tracking. If anyone had run across any resources please feel free to share....
yeah I feel the same.
The sentinel antenna tracker from virtual pilot somehow puts your GPS coordinates to your vtx video so it doesn't need any additional stuff on your model which I like, although I didn't get how it should be set up since it's not natively supported by betaflight, but it's also too expensive at about £90 and you need a 3d printer to make it which I don't have.
@@flat-earther The Sentinel AAT can also be setup to track drones without a gps unit by tracking the telemetry channel of a CRSF RX. It can also do both analog and hdzero so yeah it's the one I went with..
@@battano oksy.
when you said _track drones without a gps unit_ do you mean the drone does not have a gps unit?
@@flat-earther correct the Sentinel AAT kit can be configured to track the telemetry channel of a crsf rx so no gps units needed but can be configured for gps tracking as well
@@flat-earther I should add that the faster proximity no gps tracking setup does require the FC firmware to also be modified as it hides the tracking/telemetry data in the OSD of Betaflight/Inav/Ardupilot/Kiss GUI which is what the AAT decodes for positioning. The setup is really no big deal as the user community for the tracker has ballooned and there is even a gethub of latest firmware for damn near all major makes of FC's. Personally I'm still in the assembly stages with mine as I'm making mine with a swappable top to quickly go from analog to hdzero and am even ingratiating an Insta360 go mount into the antenna array so I can have FPV and LOS recordings of my flights.
Hello, its possible use only the VRX like RX5805?
No, it's supposed to work with any diversity receiver as long as you can figure out where the 2 rssi signals are (if you don't have access to them, you can't do this project) to link them to arduino inputs.
The RX5808 has a rssi pin, I can do it?
k50.kn3.net/D/6/A/5/0/9/9D1.jpg
If it's diversity (2 receivers like this linked and compared) you can but you may have to scale rssi value on the arduino code. Some people have done it, have a look at other comments.
You can do it if you have two of them; in fact I'd guess that's exactly what's inside the RC540R, and Antti's tapped the two RSSI pins
How about trees and concrete wals?
I haven't tried flying behind concrete walls :) This tracker (or any other) is not a miracle device which will allow you to do so, sorry.
But since you ask, I'm guessing that flying behind any massive obstacles would create a lot of multipathing. That means the rssi will be jumping up and down quite rapidly. Most likely those drops are going to 'reach' antennas slightly at different time, which will confuse the tracker and make it very twitchy.
This tracker works best for long range FPV in wide open areas.
Thanks for your answering!
Hey mate I just realised I am using the fr632 receiver what changes do I need to make in the code / programming thanks
No difference which one you use RC540 or RF632. In any case you will have to do the calibration: find RSSI_MIN/MAX values and RSSI_OFFSET_RIGHT/LEFT. Read the comments in the code for all #define's you'll get a picture what can you tweak.
Thanks , I'm new to arduino I don't understand the calibration etc could you explain very simply cheers
The video receiver outputs signal strength - RSSI as analog voltage, somewhere between 0 - 3V, Arduino converts that voltage to a numeric value between 0-1024. We need to know exactly what value represents 0% and 100% RSSI. That is #define RSSI_MAX/MIN. This is because every receiver is going to output different voltage. By changing RSSI_MAX/MIN you can find values that match your receiver. Obviously RSSI_MIN is when vtx is off and RSSI_MAX is when vtx is on, and very close.
Then there is #define RSSI_OFFSET_RIGHT/LEFT. The two receivers inside your FR623 are going to be slightly different, one is going to be slightly better and it will output better RSSI all the time. This will cause the tracker to miss the target by some offset. I'm kind of repeating here what already says in the comments.
How to find all these values? Connect Arduino to the computer, in the Arduino IDE open Tools/Serial monitor. A window opens where you can see left/right RSSI values etc. Now adjust RSSI_MAX/MIN in the code -> save & upload -> check Serial monitor again -> rinse and repeat.
You dont really need to know much about Arduino, just read the comments in the code, change some #define values save & upload and see what happens. You'll be a programmer in no time ;)
Almost forgot...I made some changes in the code. Download the newest version github.com/andreiva/simple-rssi-antenna-tracker/archive/master.zip
Antti Vainik Is it possible to pan / tilt with this project?
Hello Antti your antenna tracker looks fantastic. I will be putting one together. I have the sketch code that you used but need to know which library file that you used for the Arduino. Have you continued with the development by adding pitch yet?
I haven't had the time to develop pitch tracking, also partially because tracker works "fine" with horizontal only, unless you fly really really high. If you are referring to Timer.h the download link and installation instruction are mentioned in README.md
Thanks for the quick reply Antti. I have the software ready to program the Arduino. Where did you connect the power lead and ground for the servos? Almost ready to start the build. Thanks Bill
Both, servo and arduino are fed from the 5V regulator. I soldered servo +5V and GND to the arduino, which in turn is soldered to the reg.
What does it mean by "tracking is not relative?" Thanks!
Hi, it says: tracking IS relative. A GPS tracker knows its own location and targets location, from that it can calculate exact angle where to point. RSSI tracker has no idea where it or the target are. It only knows that signal is stronger "to the left" so it turns that way, if the signal gets stronger to the right after turning, it turns the other way, and so on. Because directional antennas have messed up radiation patterns (google for helical antenna radiation pattern) it's kind of hard to tell why RSSI is 50%, is if because the target is far away, or is it because the target is in antennas side lobe a hundred feet away. Basically, tracker never knows if it's pointing in the best possible direction.
Wow super cool You make it look so easy. So then could this work with other rx possibly?
As long as you can get two RSSI values. All it's doing is comparing those strengths and moving accordingly
i very confused with how to set it all up
you have you're file and timer file.
im just confused to where to unzip them in the program and how to do so.
is it possibly to upload a small video or explain a little ore for someone who's never used one of these boards before
thanks in advance.
Check out this video. Use method 2. Importing a .zip file library. th-cam.com/video/K1cIWCBKaUY/w-d-xo.html
You are not the first one who is confused about Timer.h I'll have to think of a better way.
Antti Vainik thanks, so is the timer,h zip the only one we are installing or do I then install your file as well?
The process goes like this:
1. download simple-rssi-antenna-tracker and open it in Arduino IDE
2. download Timer-master.zip and import it in Arduino IDE. Sketch/Include Library/Add .ZIP Library...
3. connect your Arduino to computer and click on Upload button. You are done.
When you click on Upload button, Arduino IDE combines functionalities of Timer.h and simple-rssi-antenna-tracker.ino and installs the result on Arduino. Answer to your question, you are installing both.
Before step 3. you actually have to do some some settings in simple-rssi-antenna-tracker.ino. Read comments above #define tags, and fill in values for your receiver. The most important ones are RSSI_MAX/MIN and RSSI_OFFSET_RIGHT/LEFT
What exactly is the timer.h for? Is this necessary for the project? Thanks ;)
Yes it's quite necessary. Timer is responsible for scheduling and synchronizing tasks: RSSI measurement, calculations and servo movement.
Can I use antennas of different turns?
Hmmm..I havent tried. If the difference isn't too big, like 3 and 5 turns, I guess it could work. In theory it would result in offset towards the weaker antenna. In the code there is RSSI_OFFSET_RIGHT/LEFT, you could use those values to compensate for offset.
Looks great, but would have been more impressive if you had mounted the video camera on top of the tracker.
Dennis Stockwell Great idea! I have a zoomable lens, that should look good.
Hi there Antti. Do you have any adea about the range of this setup?
Cheers Arthur
Hi Arthur
Ironically I never tested max range. Back then I didn't have anything with RTH. Now I have a Z-84 with iNav, but i'ts winter again, and flying is really challenging.
Looking forward to your experiment with the Z-84. Good choice for a wing :)
hello Andrey, one question: on the code I don't see any info in how about to set the channel where to take the RSSI
Hi, what do you mean by channel? Do you mean Arduino pin?
hello!! I mean the VRX channel and band
Arduino doesn't do that. You set channel manually from vrx menus. Arduino doesn't need to know what channel you are on, it just monitors rssi levels and turns servo left or right. Does this answer your question?
yes sure...i started from your code to built one tracker using two RX5805 modules...so now I shall understand how to set the channel on the VRX...thanks a lot
Okay now I understand :) well done! There is no support for changing channels at the moment. But it should be pretty easy, just connect some pins from Arduino to vrx ch1, ch2 and ch3 and set them in code. What kind of interface are you using to interface with arduino, buttons?
Hello Antti, I just order the Rx from HK as they have free shipping at the moment and tried programming a nano and it seemed
to take the sketch, as i dont have the RX to test do you think theres any reason the nano wont work ? it moved the servo by touching A0 and A1 with fingers.
cheers
Brett
If the servo moves by touching analog inputs then it's working, congratulations. You could wire a couple of potentiometers to A0 and A1 to simulate RSSI signal. Then you can go and play around with #define values to understand how everything works, while waiting for the RX.
hello sir Im interested to build your tracker sir i have question is it possible to used 2 pcs 1.2ghz vrx? or is work in 1pc 1.2ghz vrx only? thanks you
All video receiver discussed here have 2 built-in receivers, but you can use 2 separate ones, as long as they have RSSI output. So the question is, do you know a 1.2GHz receiver with RSSI output?
Killer video! Taking notes, thxs!!
Very cool!! Are you adding tilt support soon?
Tilt is not as critical as pan, unless you fly 1km high, right above your head. I'd say you could get good reception kilometers away just by bending antennas slightly upward.
Adding tilt with only 2 antennas is going to be tricky, I didn't think it thought initially, but I'm going to try. Is it going to happen soon, I don't know. Its winter time here in Finland, it gets dark around 4pm and its cold. I'm hoping people will pick up this project and do more testing.
Antti Vainik hi, maybe you try with Second diversity. With 3x helix and 1 cloverleaf. Use only 3 helix for rssi tracking.