This release modifies the Antenna Test screen to allow better servo setup for other antenna platforms/servos. Schedules an additional Mavlink message to support the display of some parameters on the 3DR OSD. Adds servo reverse defines. Adds an option to use VFR Hud altitude (derived from baro alt) instead of GPS altitude for antenna pointing.
I've also added a pdf which describes how to add configure Ardustation 2 for other antenna mounts/servos.
Available here:
YouTube video demonstrating the antenna test screen:
https://www.youtube.com/watch?v=woa-6Slzbjg
Please be sure to download the zip file to a empty folder and to only use the library folder contained in the distribution. Do not merge this library folder with either the ACM or APM library folders. This software should be compiled with Arduino 1.0.3 or Arduino 1.0.1. Do not use the earlier versions as indicated in the Ardustation wiki.
Please let me know if you have any issues with this release.
Heino R. Pull heyno@heino.com
Replies
Hi Heino
sorry for being silent for a while, but have hard times in my life...
Anyway i thought little bit about how to inform Ardustation about its attitude for continuous panning and
i realized that there is simple magnetic compass like HMC5883L - Triple Axis Magnetometer. Could be this
compass connected to Ardustation 2 and the firmware somehow modified to get the attitude feedback from this compass?
I still don't have satisfactory solved the feedback from gray-code position encoder, more precisely - converter from physical media to digital line and how to communicate with Ardustation.
But prehaps if Ardustation can connect via I2C interface with this compass I then found solution for my issue with attitude feedback.
What do you thing about it?
You could add code to master a couple of I2C slaves, and it is possible with some external wires on the Ardustation (need to add pull up resistors for I2C), but it will be tough to debug with the limited debugging features of the Ardustation. If I were to try it I would be sure to have a logic analyzer available and be careful of the limited ram.
I just consider another option - adapt your code (Ardustation2_APM_ACM_2.0.20_Mavlink1.0) to ASM, from JDrones.
I mean mainly the antenna tracker code, which is vital for me, others could stay from origin - LCD display driving routines, etc... As i seen in another thread jdrones ASM has problems with antenna tracking - not tested or uncertain if even usable?
The advantage is obvious - more serial ports and lot mooore RAM.
Do you thinks is it possible just to take your code and adapt it for ASM from jdrones?
It is possible, but there are a few differences that need some work - such as the switch input - which is quite a bit different and the LCD which is larger, and has graphic modes. It would definitely be a better choice - particularly since 3DR has discontinued the original Ardustation. I have not followed the ASM for at least 5 months now so I don't know the current status, but JDRONES had at one point hired an engineer to port the antenna tracking stuff over and they have indicated in the past that they were working on major antenna tracking projects - some quite large ones.
It is really possible, just more work than just a few tweaks in the source code.
Ok I'm flat out trying to figure out how to achieve just 360 degrees from a set of 6 turn Winch servos I have that go 2160 degrees, apparently 1500 to 1900 usec pulses. Or are they completely unsuited for this application? I got them because they are waterproof and rated at 40Kg torque, Metal gear, etc.
For a start does it mean that the servo will turn 5.4 degrees per step up in usec pulses? (2160/400usec - i.e. the pulse range according to the servo specs) Because even when I set those as per below:
#define SERVO_MAX 1900 //Range of servos pitch and roll
#define SERVO_MIN 1500
The servos still do more than 360 when I use antenna test and pan only about 90 degrees. so is there some sort of Divide by ratio somewhere I need to set to divide the standard result of full rotation by 4 or 6 or something...?
Heino, I finally got that servo city gearbox installed and its working perfect! Well except when I preset the antenna location instead of using the home feature. When I do that, it points correctly but it never pitches up even when I fly right over it or just higher in general. I have it set to 250M altitude and my HUD shows I'm at 300M but it's pointed horizontal. When I use the home button by placing the copter near it then it works. Not sure why that is happening. Is there a problem with the fixing of the altitude? Or maybe it's not in meters?
If anyone is interested I can post video of it working and how I installed the gearbox. I put the pan servo and gear box on the panning part of the tracker so I don't have to deal with the pan servo wire getting tangled.
Could it be added a function for PAN to show the ardustation the exact direction of 0,90,180,270 degr of the servo travel to increase precision .
Today my servo was moving in another movie prior to the plane position .180 degr was ok but the rest .... terrible(the entire travel was 360).
Prior (2.19 ) things was better
Heino, I've been doing some testing today and am really not sure what is going on. The antenna test works perfect. I get a full turn from 0-360 using 1859 and 2090. I'm setting my home location and altitude using this part in the code:
void RestoreHomePosition()
{
eeprom_busy_wait();
Latitude_Home=-22.hidden; //steve
eeprom_busy_wait();
Longitud_Home=-43.hidden; //steve
eeprom_busy_wait();
Altitude_Home=256; //steve
eeprom_busy_wait();
}
void clearline()
{
lcd.setCursor(0,3);
lcd_print_P(PSTR(" "));
}
void SetAntennaPosition()
{
It always worked well since I never move my tracker but today I noticed it wasn't pitching up at all, even if I went up 30 meters. So I tried setting the home location using the copter and the button on the tracker and the pitch started working but the pan was still over shooting.
Is it possible there is a problem in setting the home location like I'm doing? It always worked well with my other rmrc tracker. I get my exact GPS position using google earth.
About the panning this is what I'm doing to test. I don't have a large enough flat area to do it by walking around so I just fly out about 50 meters, engage loiter and then pick up the tracker and position it towards the copter. Then I fly to the left and right to see how the tracker tracks the 180°, keeping about 40 meters out from the tracker. With the rmrc tracker this method never gave me a problem. Also I noticed that the further I fly out, the more it over shoots. For example I can be a bit to the left where it's position is just a little overshot and as I fly straight out, it starts panning to the left the more I fly out instead of continued to point at it. I didn't try to go too far out but that is what I saw.
What I can't understand is how the antenna test can be perfect but the tracker really over shoots by a lot. In the antenna test I'm just trying to set the pan limits so it moves exactly 360° right? On the antenna test it tracks very good from 0-360 using 1859 and 2090. It seems very linear to me visually. I know you said the algorithm is not used in the antenna test. Does that mean there could be a problem in the algorithm relating to using a 360° servo?
Heino,
I finally had some good weather to do some more testing. I'm using 2.0.20 and this pan servo.
http://www.servocity.com/html/hs-785hb_3_5_rotations.html
What I'm seeing is that it's panning more than it should. For example if I set the copter with the tracker and press the home button and then flight out, it's ok until I go to the left or right. It pans in the right direction but instead of panning 10° it pans about 2 to 3 times that angle.
In the antenna test it moves the 360° correctly but in flight it's tracking it right. It's overshooting. Is that a possible bug in the code or could be something particular about my servo? I think that if it's passing the antenna test correctly then it should track correctly right?
An LA is a logic analyzer - such as this:
https://www.sparkfun.com/products/8938
or this:
http://www.usbee.com/zx.html
(which is what I use).
It traces logic signals and displays the resulting data in various ways. It time tags each sample and allows basic triggering.