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.
YouTube video demonstrating the antenna test screen:
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 firstname.lastname@example.org
just thought about the ardustation and my PIC gray code feedback. Is it possible to use FTDI instead of i2c communication line? I mean it would be perhaps simpler.
Next point - i need get telemetry data also to my android device. So how can i connect at the same time 3dr radio module to ardustation and android device? Is it sufficient with simple Y line where Tx won't be used as for ardustation only for android? I hope so since ardustation just reads MAVlink protocol, shouldn't send some data up, or i'm i wrong?
FTDI is really a usb to serial converter - so you're using a serial port and there is only one hardware port on the ATMEGA328. You could use software serial - at around 9600 baud as a second serial port, but you're using the data as part of a control loop and I think your servo control loop would not work well at all getting position back at 9600 baud.
The Ardustation does do 2 way serial - if you use it to start the Mavlink feed or do parameter adjustment. However, antenna pointing doesn't require sending data to the host so Y should work. I use Xbees and I have multiple Xbees running at the same time so I can use multiple GCS without Y the cable.
Hi Heino, earlier I had asked about getting either the 3:1 or the 3:8:1 gear and you said you had to look into the servo timing.
3:1 gives 420°
3.8:1 gives 332°
I'm thinking that the 332° can stretch to 360° by adjusting the limits in Ardustation or do you think it's better to go with 3:1?
Sorry I haven't had a chance to reply. According to the spec sheet, the servo can give you 3.5 turns. I assuming that the 332 degree calculation takes into account the 3.5 turns. If you try to stretch to a little more than 332 you'll run into the continuous motion mode of the servo. I don't have the servo so I'm hesitant to recommend either one but I would figure out the endpoints to get 360 using the 3.8 ratio and see what happens on your servo. I suspect it will free run. If that is the case then go with the 420 which would be guaranteed to not free run by the spec sheet.
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.
That's cool that the gearbox is working. As far as the altitude setting using home vs your fixed value - I checked the APM copter code and it does a barometer calibration each time the copter is powered up and then computes the altitude based on the difference in pressure from the calibrated ground pressure value. Therefore, the altitude is always above ground level as opposed to mean sea level. So the value for the tracker should be 0 meters (instead of 250 meters). Try that and see if it works. I wasn't sure what you're reading when you say (HUD) - is this an OSD value or from the logs?
Also, if it works using the antenna home position, then you can just leave that in EEPROM and power up each day with the same value and not use loaded numeric values for lat/lon/alt.
Ahhhh that makes sense! Now when I fly with my planes I will have to use the save home function. HUD was what I was reading on the mission planners HUD and also the mavlink stream to my minimosd. It shows real altitude and ASL altitude also. I've always used this fixed position because my antenna NEVER moves. I was mostly flying planes when I was testing it before so didn't notice the zero altitude problem. Later I will post some video of it working.
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...?
The code setup implies an rotation multiplication that I don't know how to take it out from the code.It should work ok after that.
Hi Leigh. If the servo does a full 2160 degrees from 1500 to 1900 usec, then to get 360 degree turn you need:
400 usec / 6 = 66 usec for 360 degree rotation. so the min value would be 1700 - 33 to 1700 +33. (Min 1667, max 1733) You need to be on the right servo output, if it is limited to 90 degrees then you need to move the servo to the other connector.
If these numbers are right, you will get very poor performance since the resolution on the Ardustation PWM is only 4 usec, So it would take 4 usec steps before you would see any movement or about a resolution of 21 degrees. (5.4 * 4). This is very rough and linearity would be poor around the full 360 degrees. To get full accuracy, you would need as much usec range as possible and the 6 turn servo would not work very well. It is best to look at gearing to reduce the 6 rotations to 1 rotation. That would maximize resolution and you would have more torque available also.
That was pretty much where I was thinking I might have to go, I saw exactly what you mention about the poor resolution as it stood when I would use the Antenna Test interface and move 10 degrees it would in fact move 30 degrees.
Maybe I'll have to sort out a 6:1 gear reduction box. Maybe some high tensile worm gears and with over 240kg of torque I'll be able to use a roof mounted Doppler radar...haha.
All good - I think I will use these ones for another Arduino application with slip rings and Laser light and just get a couple of Hitec 485s - No use re-inventing the wheel (in this instance at least!)
Thanks for your help Heino - will have a play with the figures you gave anyway just for my own further clarity to understand how it is working. I can see straight away looking at those calculations where I was missing something reading through earlier posts.
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?