Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
User Guide: FrSKY S.PORT telemetry
Note: this S.Port module applies to "D16" mode telemetry. If you are using D8 mode (i.e. Sensor Hub) then see this article for the Sensor Hu module. Different receivers either use D8 or D16 mode, so make sure you check what your receiver uses. E.g. D4R-SB uses D16.
FrSKY S.PORT telemetry module enables your board to send UAVO data to any FrSky receiver equipped by SmartPort.
Get the module working
Making the connection
- Make hardware connection between receiver S.PORT and FC. It differs flight controller to flight controller depending on used MCU.
STM32F3 based controllers (like Sparky) can be connected directly from the TX pin on the flight controller to the receiver S.Port pin.
For other controllers, you'll need following inverting circuit:
Configuring and enabling module
- Map used UART to FrSKY SPort Telemetry in Board settings.
- Enable FrSky S.PORT telemetry module in Modules settings.
- Restart flight controller.
Here is a video demonstrating binding a X8R module in D16 mode and connecting telemetry to the mainport of Sparky.
Data sent by module
Following table is overview of all data sent by the module. OpenTx Name is equal to caption you will see on your OpenTX radio (e.g. Taranis) telemetry page.
|Alt||Altitude relative to home location.|
|Cell||Battery voltage divided by cell count. You have to have Battery module enabled and propperly configured.|
|Cnsp||Consumed battery power in mAhs. This is not sent by module, but calculated by OpenTX itself by integrating Curr.|
|T2||GPS dilution of precision
Bits 0-7 = hDop * 100, max 255 (hDop = 2.55)
Bits 8-15 = vDop * 100, max 255 (vDop = 2.55)
|T1||GPS status. Leftmost digit encodes GPS state as follow:
1 - No GPS
2 - No fix
3 - 2D fix
4 - 3D fix
5 - 3D fix and home location is set
Rightmost digits encodes number of satellites in use.
Example: Value 511 means GPS has 3D fix, home location is set and 11 satellites are in use.
|Fuel||Battery capacity remaining in percents.|
|Dist||Distance from home. This is not sent by this module, but calculated by OpenTX itself by subtracting current GPS coordinates from the first valid coordinates received.|
|AccXYZ||You can select in ModulesSettings->FrskyAccelData what you want to be sended. You can select between:
Accels - raw accelerometer values(default)
NEDAccels - acceleraction in Earth frame of reference
NEDVelocity - vehicle velocities in all axis
AttitudeAngles - roll, pitch, yaw attitude angles
|GAlt||GPS altitude. Please note OpenTX subtracting offset from this which is equal to GAlt firstly received. This is true for displaying, but not true for logging where un-altered MSL value is logged.|
|Spd||Horizontal ground speed.|
|GPSTime||GPS time and date.|
|ASpd||True airspeed. You have to have Airspeed module enabled and propperly configured to make it work|
|RPM||This value is currently used to provide feedback about FC arming state and flight mode. Leftmost digit encodes arm state as follow:
1 - Disarmd
2 - Armed
Rightmost digits encodes flight mode number. To make it work propperly, you have to set propeller blade count to 1 in OpenTX settings.
|Board||Supported||External inverter needed|
Successfuly tested with version 2.0.8 and 2.1.0. Some older versions had some bugs regarding telemetry.
All receivers with SmartPort should be supported. I've tested this only with X8R though.
More sensors on one S.PORT
SmartPort is enginered as bus, so theoretically it's possible to connect more sensors to it parallel with your TauLabs FC. We also have positive reports from some users this really works in practice. TauLabs uses fixed sensor ID 0x1B, so your sensors must have different IDs assigned (it can be changed by FrSky Servo Channel Changer). With newer OpenTx(>=2.1.0) there is no longer problem with telemetry items duplicity, so battery voltage can be monitored by both your flight controller and FLVSS sensor and you can distinguish them in OpenTx!