Paparazzi UAS  v5.18.0_stable
Paparazzi is a free software Unmanned Aircraft System.
telemetry_transparent_frsky_x module

Telemetry using pprzlink protocol over FrSky X SmartPort serial link

Downlink messages are sent on dataID 0x5015. Uplink is not implemented yet.

Use the sw/tools/opentx-lua/sp2ser.lua script to receive these messages on the TX and forward them to the USB port. The 'datalink' script can read the pprzlink stream as a regular serial port.

The data rate is very limited (max ~160 bytes/s). The limitation comes from the FrSky X protocol which can send at most 4 bytes of telemetry every 9ms. Set CC2500_TELEMETRY_SENSORS (from radio_control_cc2500_frsky) to SENSOR_NONE to maximize pprzlink throughput. Use a suitable telemetry conf for this low data rate.

Example for airframe file

Add to your firmware section:

<module name="telemetry_transparent_frsky_x"/>

Auto-loaded modules

The following modules are automatically loaded (just as if you had added them in the airframe file)

  • module__telemetrynps
  • module__telemetrysim

Module functions

Init Functions

These initialization functions are called once on startup.

Event Functions

These event functions are called in each cycle of the module event loop.

Files

Header Files

The following headers are automatically included in modules.h

Source Files

Raw telemetry_transparent_frsky_x.xml file:

<!DOCTYPE module SYSTEM "module.dtd">
<module name="telemetry_transparent_frsky_x" dir="datalink" task="datalink">
<doc>
<description>
Telemetry using pprzlink protocol over FrSky X SmartPort serial link
Downlink messages are sent on dataID 0x5015.
Uplink is not implemented yet.
Use the sw/tools/opentx-lua/sp2ser.lua script to receive these messages
on the TX and forward them to the USB port. The 'datalink' script can
read the pprzlink stream as a regular serial port.
The data rate is very limited (max ~160 bytes/s). The limitation comes
from the FrSky X protocol which can send at most 4 bytes of telemetry
every 9ms. Set CC2500_TELEMETRY_SENSORS (from radio_control_cc2500_frsky)
to SENSOR_NONE to maximize pprzlink throughput. Use a suitable telemetry
conf for this low data rate.
</description>
</doc>
<autoload name="telemetry" type="nps"/>
<autoload name="telemetry" type="sim"/>
<header>
<file name="pprz_dl.h"/>
<file name="frsky_x.h" dir="subsystems/datalink"/>
</header>
<init fun="datalink_frsky_x_init()"/>
<init fun="pprz_dl_init()"/>
<event fun="pprz_dl_event()"/>
<makefile>
<file name="frsky_x.c" dir="subsystems/datalink"/>
</makefile>
<makefile target="!fbw|sim|nps|hitl">
<define name="DOWNLINK"/>
<define name="PERIODIC_TELEMETRY"/>
<define name="USE_FRSKY_X_SERIAL"/>
<define name="DOWNLINK_DEVICE" value="frsky_x_serial"/>
<define name="PPRZ_UART" value="frsky_x_serial"/>
<define name="DOWNLINK_TRANSPORT" value="pprz_tp"/>
<define name="DATALINK" value="PPRZ"/>
<file name="pprz_dl.c"/>
<file name="downlink.c" dir="subsystems/datalink"/>
<file name="datalink.c" dir="subsystems/datalink"/>
<file name="telemetry.c" dir="subsystems/datalink"/>
<file name="pprz_transport.c" dir="pprzlink/src"/>
<file name="frsky_x.c" dir="subsystems/datalink"/>
</makefile>
<makefile target="ap" firmware="fixedwing">
<file name="fixedwing_datalink.c" dir="$(SRC_FIRMWARE)"/>
<file name="ap_downlink.c" dir="$(SRC_FIRMWARE)"/>
</makefile>
<makefile target="ap|fbw" firmware="fixedwing">
<file name="fbw_downlink.c" dir="$(SRC_FIRMWARE)"/>
</makefile>
<makefile target="ap" firmware="rotorcraft">
<file name="rotorcraft_datalink.c" dir="$(SRC_FIRMWARE)"/>
<file name="rotorcraft_telemetry.c" dir="$(SRC_FIRMWARE)"/>
</makefile>
<makefile target="ap" firmware="rover">
<file name="rover_datalink.c" dir="$(SRC_FIRMWARE)"/>
<file name="rover_telemetry.c" dir="$(SRC_FIRMWARE)"/>
</makefile>
</module>