Arducopter Mavlink telemetry to FrSky Taranis.
This project was created to get telemetry data from the APM down to my Taranis radio. Using an Arduino Pro mini we can read Mavlink data from the APM and translate this to the FrSky hub telemetry protocol. This means that this will only work with FrSky receivers that support the old telemetry protocol, D4R-II, D8R-XP etc. A S.Port implementation for the X8R will be implemented as soon as someone hacks the protocol.
Download the latest hex for arduino pro mini here
Data currently sent to the Taranis is:
- Alt: Altitude from ARM point
- Rpm: Throttle out
- Fuel: Battery remaining
- T1: APM mode
- T2: Sat fix and count. 38 means 3d fix and 8 sats, 04 means no fix and 4 sats
- Spd: GPS speed over ground in knots
- Dist: -
- GAlt: GPS Altitude
- Cell: -
- Cels: Battery voltage
- Vfas: -
- Curr: Battery current
- Cnsp: mAh used totalizer (calculated value in the Taranis)
- Powr: Power (calculated value in the Taranis)
- AccX: Attitude pitch
- AccY: Attitude roll
- AccZ: Attitude yaw
- Hdg: Heading
How to connect
There are two ways to connect your arduino pro mini to the APM. Either by enabling the UART2 port on the APM or by sharing the TX line with the 3DR radio.
Using UART2 port
This way you dont have to connect with the 3dr radio to get the mavlink data going. The Arduino will make a mavlink rate request to the APM. This is done by modifying system.pde around line 149 to look like this(AC 3.1RC7).
//#if CONFIG_HAL_BOARD != HAL_BOARD_APM2 // we have a 2nd serial port for telemetry on all boards except // APM2. We actually do have one on APM2 but it isn't necessary as // a MUX is used hal.uartC->begin(map_baudrate(g.serial3_baud, SERIAL3_BAUD), 128, 128); gcs3.init(hal.uartC); //#endif
Precompiled 3.1 for quads can be found here
Be aware that enabeling uart2 on the APM will add more processor load to the already cogged CPU. Alt hold and auto modes can be affected by this hack. As of AC 3.1 a lot of improvements has been made to lower the load on the APM by the dev team. Running a extra mavlink port should work but do this at your own risk!
Sharing UART0 with 3DR radio
This way you always have to connect with the 3dr radio to get data to the Taranis but you dont have to modify the code and build arducopter yourself. Here is one way to connect the arduino to the uart0 port to share the TX line with the 3dr radio. you can also split the TX line from the telemetry port of the APM.