[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Paparazzi-devel] FRSky radio XML configuration

From: Jamie Furtner
Subject: [Paparazzi-devel] FRSky radio XML configuration
Date: Thu, 23 Aug 2012 00:06:15 -0600
User-agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:14.0) Gecko/20120713 Thunderbird/14.0


I'm creating a RADIO.XML file for a FrSky CPPM signal (from a D4FR RX) and I've got a few questions. I've got an oscilloscope trace of the CPPM output and have uploaded it here:, and I'm using the scope for measurements - zoomed in more when needed to get more precision.

The overall width of the entire CPPM frame is 18ms, with each channel being between 1000 and 2000 microseconds in length. This does mean that if all channels are maxed no synchronization is actually possible (as all pulses are 2000 us in length). I'm forcing channel 8 in the TX to always be the minimum to work around that potential problem with the CPPM frame. In the sample frame I captured, the first channel begins in the first division and is in the max position, channels 2, 3 and 4 are in the neutral position, and channels 5 to 8 are in the minimum position.

If it matters: I'll be using the RXs in a Quadshot and the TX is a Turnigy 9X with ER9X flashed onto it.

Here's my XML file - I took the example on the wiki and changed the values based on my measurements:
<?xml version="1.0"?>
<radio name="FrSkyCPPM" data_min="1000" data_max="2000" sync_min="2200" sync_max="10300" pulse_type="POSITIVE"> <channel ctl="A" function="THROTTLE" min="2000" neutral="1500" max="1000" average="0"/>
    <!-- reversed in TX -->
    <!-- left stick up/down -->
<channel ctl="B" function="ROLL" min="1000" neutral="1500" max="2000" average="0"/>
    <!-- right stick left/right -->
<channel ctl="C" function="PITCH" min="1000" neutral="1500" max="2000" average="0"/>
    <!-- right stick up/down -->
<channel ctl="D" function="YAW" min="1000" neutral="1500" max="2000" average="0"/>
    <!-- left stick left/right-->
<channel ctl="E" function="MODE" min="1000" neutral="1500" max="2000" average="1"/>
    <!-- left middle 3-pos switch -->
<channel ctl="F" function="GAIN1" min="1000" neutral="1500" max="2000" average="0"/>
    <!-- left slider prop channel -->
<channel ctl="G" function="GAIN2" min="1000" neutral="1500" max="2000" average="0"/>
    <!-- right slider prop channel -->
<channel ctl="H" function="SWITCH1" min="1000" neutral="1500" max="2000" average="1"/>
    <!-- switch (channel 8) -->
    <!-- DISABLED - no ch9
<channel ctl="I" function="UNUSED" min="1050" neutral="1500" max="2100" average="1"/>

Here are my questions:
- I think the pulse_type is POSITIVE - as in normally high and the high-low transition is what signals the next channel. Is that right based on the trace? - Is it better to be slightly low or slightly high on the min and max values? What happens if my min is 1000 us and the complete pulse width (measured based from low to low) that is captured is 990 microseconds?
- Is the XML generally correct? Any glaring, obvious mistakes?
- What's the average attribute for? Why does the sample on the wiki have channel E and H with average=1?

If it looks good then I'll try the XML file in Paparazzi and flash the controller for the Quadshot tomorrow.

Please let me know if I'm missing anything or if more information is needed.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]