What's new -
A totally reworked 4 channel system. You can now capture 4 channels with .5µs accuracy and output throttle and rudder with 4µs accuracy.
New throttle output is more reliable and has a more standard 0 - 100 definition so config files will make more sense. This also makes Mega config files more compatible.
Channel 4 output has two modes
- one for Rudder correction which will output a % of Aileron to the Rudder. (.2 is the default) This mode will allow you to override the rudder so you can land in Stabilize mode and steer the plane on the ground.
- one for programmatic control of Channel 4 - Great for dropping eggs or snapping photos.
To switch modes, edit your config file: CH4_RUDDER = 1 for Rudder control, 0 for programmatic control
To control the rudder action in flight with the AP, set ADVERSE_ROLL to a value from 1.0 to -1.0. Moving the rudder stick will override the action, just like the Pitch and Roll Controls.
Jason
Replies
In the SVN repository rev1310 deleted the Ardupilot2xplanes.exe file and as of rev1319 perl scripts and xml files have been updated or added, but no executable.
Will the executable in rev1309 support the ch4 functionality at that rev level? I just want to try to do some testing in Xplane. I realize the SVN is a work in progress, and perhaps Michael hasn't gotten to the executable yet. So if rev1309 will support ch4 in Xplane, then I'll stick with that for now.
Thanks,
Nathaniel
Is this intended for rudder as primary control surface, with aileron slaved to rudder, or tthe other way around? Can Aileron be the primary control surface, with rudder slaved?
BTW Great work the pace of development is astounding. I should be getting into the field in a week or two to start tuning and testing. The X-Plane mode is fantastic, I've had a great time testing functions in HIL simulation. Thanks also to Michael for the C# serial interface for X-plane.
Nathaniel
I added my standard minor updates and it compiles!
freeRAM call is sweet!
but airspeed needs a fix in Sensors tab change, as a computed negative value causes errors
//airspeed = sqrt((float)airpressure / AIRSPEED_RATIO);
airspeed = sqrt(abs((float)airpressure / AIRSPEED_RATIO)); //mjc
I added to Servos tab a minimal movement of servos in event of a power glitch in air, stopping at center of travel
void demo_servos_air() // mjc short movement if power glitch or reset in Airvoid demo_servos()
{
//int temp = servo_out[CH_THROTTLE];
//servo_out[CH_THROTTLE] = 0;
no_throttle();
delay(30);
OCR1A = 1530 * 2; // mjc just a bit up
OCR1B = 1530 * 2;
delay(100);
OCR1A = 1500 * 2;
OCR1B = 1500 * 2;
delay(200);
OCR1A = 1470 * 2; // mjc just a bit down
OCR1B = 1470 * 2;
delay(100);
OCR1A = 1500 * 2;
OCR1B = 1500 * 2;
set_servo_mux(false);
delay(30);
//servo_out[CH_THROTTLE] = temp;
//update_throttle();
}
In System tab, add these line to use demo_servos_air:
// Makes the servos move +- 3° three times, signals ready to fly //mjc
// -----------------------
demo_servos_air(); //mjc
delay (400);
demo_servos_air();
delay (400);
demo_servos_air();
I also changed,
// Makes the servos move +-45° twice on ground //mjc
// -----------------------
demo_servos();
delay (1000); // mjc
demo_servos(); // mjc
While testing this release, I found a problem when,
In FBW-B mode, CH-2 has no movement,
Evelon mixing is on and airspeed sensor is enabled,
In Manual mode servo movement seems coarse compared to "Stabilize and FBW-B modes?
Thanks again, we will be able to troubleshoot faster now as we know when Memory is low.
Yes, you can. It took some work, but I have a nice solution now.
Pins 11 and 13 are the input. You can specify which input is the throttle (I would use 11 for throttle.)
You may need to cut the line to the LED for pin 13, I know a lot of people have issue with that pin.
CH4 Output is on Analog 4 - this pin wasn't being used. You'll need to connect this pin with a jumper to CH4 Mux In.
Jason
Does this mean I can get 4 channel control from the original Ardupilot board? I'll need to solder a few more jumpers then?