Gaggle Logo

Bluetooth Devices

Profile Page > Equipment > Tap a Bluetooth Device

Gaggle can connect to a variety of Bluetooth devices, like variometers and fuel sensors. By connecting a Bluetooth device you can use it to report pressure values, gps values, and climb rate values for Gaggle to use.

Gaggle supports the following protocols when communicating with Bluetooth devices:

  • $D, $PDGFTL1: Digifly format
  • $LK8EX1: BlueFly and other variometers
  • PRS, _PRS: General barometer format
  • $BFV, $BFX: BlueFly format
  • $GPGGA, $GPRMC: GPS Information
  • $LXWP0, $LXWP1, $LXWP2, $LXWP3, $PLXVF: XCTracer and a few other devices
  • $POV: Open Vario format
  • $XCTRC: XCTracer

Gaggle has support for many of the popular variometers used by pilots like SkyBean, BlueFly, DigiFly, LebipBip, and more. If we don’t support a device yet then please get in touch, and we will look at adding support for you.

Blueooth Screen 1

Bluetooth Screen 2

Connecting a Bluetooth Device

To connect a new Bluetooth Variometer you can tap the “Connect New Device” button. If you haven’t done so already, give the needed permissions for Gaggle to use your phones Bluetooth. If Gaggle has Bluetooth permissions then you will see a list of all the Bluetooth devices nearby (make sure your variometer is on and waiting for a bluetooth connection). Tap the name of the variometer that you want to connect to and Gaggle will connect. Gaggle automatically find the type of device that you are connected too, and you are now ready to use your variometer to go fly.

A note on bluetooth connections: Gaggle will only connect to your variometer when it needs too, this means that a connection will only be made after you start a flight recording and not before. Gaggle wil also automatically retry connections if they fail. If you are using a Bluetooth variometer while flying and the connection is lost, like when the device shuts off, then Gaggle will gracefully fall back to the internal sensors of the phone after about 5 seconds until the connection to the device can be restored. You will be able to see if the Bluetooth connection is active when the Bluetooth indicator appears on the Altitude Instrument Widget.

See your Bluetooth variometer’s details

Tapping on a Bluetooth device brings up its detail page. On this page you can see:

Device Info: This provides basic information for the device like the Manufacturer, Model Number, and Name. Incoming Data: If your device is on and Gaggle has established the bluetooth connection then all the raw data, like GPS coordinates, barometric pressure, climb rate, and anything else being transmitted by your device is displayed here.

From this screen you can also choose which of the sensor values Gaggle must use. For the settings that are toggled on, the values received from your Bluetooth Device will be used instead of the internal values from your phone when recording your flight (Gaggle will still fall back to the internal sensors if the bluetooth connection fails).

Gaggle can use the following information from GPS devices:

  • GPS - GPS Location, Speed, and Altitude.
  • Variometer - The raw variometer information sent from the device.
  • Pressure - The barometric pressure reported by the device.
  • Fuel Sensor - The current fuel reading reported by sensors.

Integrating your own Bluetooth Device

For the technical inclined building their own Bluetooth devices, here are the details for the NMEA sentences that Gaggle supports that you can use to send data. You can use these sentences to send data to Gaggle from your own custom devices.

PRS & _PRS

The PRS sentence is used to send the barometric pressure to Gaggle. The sentence is in the format:

$PRS,03F2
$PRS,{pressure:hPa encoded as hex}

Where 03F2 is the current barometric pressure in hPa encoded as a hex value.



Where 1013.25 is the current barometric pressure in hPa.
```plaintext
_PRS,03F2
_PRS,{pressure:hPa encoded as hex}

Where 03F2 is the current barometric pressure in hPa encoded as a hex value.

BFV & BFX

Bluefly variometers use the BFV sentence to send the barometric pressure, vario, temperature, battery, and pitot differential pressure to Gaggle. The sentence is in the format:

$BFV,101325,0,25,100*00
$BFV,{pressure:Pa},{vario:cm/s},{temp:deg C},{battery:%},{pitotDiffPressure:Pa}*{checksum}

Where 101325 is the current barometric pressure in Pa, 0 is the current vario in cm/s, 25 is the current temperature in degrees Celsius, 100 is the current battery percentage, and 00 is the checksum.

$BFX,101325,0,25,100,0,12.5*00
$BFX,{pressure:Pa},{vario:cm/s},{temp:deg C},{battery:%},{pitotDiffPressure:Pa},{volts:V}*{checksum}

Where 101325 is the current barometric pressure in Pa, 0 is the current vario in cm/s, 25 is the current temperature in degrees Celsius, 100 is the current battery percentage, 0 is the current pitot differential pressure in Pa, 12.5 is the current battery voltage, and 00 is the checksum.

PDGFTL1

Digifly variometers use the PDGFTL1 sentence to send the barometric pressure, vario, temperature, battery, and pitot differential pressure to Gaggle. The sentence is in the format:

$PDGFTL1,1013.25,1013.25,0,0,0,0,0,0,0*00
$PDGFTL1,{qne:hPa},{qnh:hPa},{vario:cm/s},{nettoVario:cm/s},{airSpeed:km/h},{groundEfficiency:0-100},{windSpeed:km/h},{windDirection:0-360},{mainLithiumVoltage:V},{backupBatteryVoltage:V}*{checksum}

Where 1013.25 is the current QNE pressure in hPa, 1013.25 is the current QNH pressure in hPa, 0 is the current vario in cm/s, 0 is the current netto vario in cm/s, 0 is the current air speed in km/h, 0 is the current ground efficiency in 0-100, 0 is the current wind speed in km/h, 0 is the current wind direction in 0-360, 0 is the current main lithium voltage in V, 0 is the current backup battery voltage in V, and 00 is the checksum.

$D,0,1013.25,0,0,24.5*00
$D,{vario:cm/s},{pressure:hPa},{ignored},{ignored},{temperature:deg C}*{checksum}

Where 0 is the current vario in cm/s, 1013.25 is the current pressure in hPa, 0 field is ignored, 0 field is ignored, 24.5 is the current temperature in degrees Celsius, and 00 is the checksum.

EMS

Engine monitoring systems can use the EMS sentence to send the fuel level to Gaggle. The sentence is in the format:

$EMS,101325,0.04,0.50,0.75,1.25,1.25,1.25,1.25,849.50*00
$EMS,{pressure:hPa},{fuelFlow:l/ph},{tankLevel:ltr},{totalFuelUsed:ltr},{ambientTemperature:C},{headTemperature:C},{exhaustTemperature:C},{waterTemperature:C},{engineRPM:rpm}*{checksum}

Where 101325 is the current pressure in hPa, 0.04 is the current fuel flow in l/ph, 0.50 is the current tank level in ltr, 0.75 is the total fuel used in ltr, 1.25 is the current ambient temperature in C, 1.25 is the current head temperature in C, 1.25 is the current exhaust temperature in C, 1.25 is the current water temperature in C, 849.50 is the current engine RPM in rpm, and 00 is the checksum.

FLAU & FLAA

Flarm devices can use the FLAU sentence to send the GPS location, altitude, and speed to Gaggle. The sentence is in the format:

$FLAU,0,1,2,1,1,0,2,0,0,5A77B1*00
$FLAU,{rx:count},{tx:status},{gps:status},{power:status},{alarmLevel:level},{relativeBearing:deg},{alarmType:type},{relativeVertical:m},{relativeDistance:m},{id:hex}*{checksum}

Where 0 is the current count of devices, 1 is the current transmission status, 2 is the current GPS status, 1 is the current power status, 1 is the current alarm level, 0 is the current relative bearing in degrees, 2 is the current alarm type, 0 is the current relative vertical separation in meters, 0 is the current relative distance in meters, 5A77B1 is the current ID in hex, and 00 is the checksum.

$FLAA,1,0,0,0,1,0,0,0,0,0*00
$FLAA,{alarmLevel:level},{relativeNorth:m},{relativeEast:m},{relativeVertical:m},{idType:type},{id:hex},{track:deg},{turnRate:deg/s},{groundSpeed:m/s},{climbRate:m/s},{acftType:type}*{checksum}

Where 1 is the current alarm level, 0 is the current relative north in meters, 0 is the current relative east in meters, 0 is the current relative vertical in meters, 0 is the current ID type, 0 is the current ID in hex, 0 is the current track in degrees, 0 is the current turn rate in degrees per second, 0 is the current ground speed in m/s, 0 is the current climb rate in m/s, and 0 is the current aircraft type, and 00 is the checksum.

GRMZ

Garmin devices can use the GRMZ sentence to send the GPS location, altitude, and speed to Gaggle. The sentence is in the format:

$PGRMZ,500,3*00
$PGRMZ,{altitude:ft},{fixMode:mode}*{checksum}

Where 500 is the current altitude in feet, and 3 is the current fix mode, and 00 is the checksum.

GPGGA, GLGGA, GAGGA, GNGGA

GPS devices can use the GPGGA sentence to send the GPS location, altitude, and speed to Gaggle. The sentence is in the format:

$GPGGA,123519,4807.038,N,01131.000,E,1,08,0.9,545.4,M,46.9,M,,*42
$GPGGA,{utcTime},{latitude},{northSouthIndicator},{longitude},{eastWestIndicator},{positionFixIndicator},{satellitesUsed},{horizontalDilutionOfPrecision},{mslAltitude},{unitsOfMSL},{geoidalSeparation},{ageOfDifferentialCorrection},{differentialRefStationId}*{checksum}

Where 123519 is the current UTC time, 4807.038 is the current latitude, N is the current north/south indicator, 01131.000 is the current longitude, E is the current east/west indicator, 1 is the current position fix indicator, 08 is the current satellites used, 0.9 is the current horizontal dilution of precision, 545.4 is the current MSL altitude, M is the current units of MSL, 46.9 is the current geoidal separation, M is the current age of differential correction, and 42 is the current differential reference station ID, and 00 is the checksum.

GPGSA

GPS devices can use the GPGSA sentence to send the GPS location, altitude, and speed to Gaggle. The sentence is in the format:

$GPGSA,A,3,04,05,,09,12,,,24,,,,,2.5,1.3,2.1*39
$GPGSA,{modeMa},{mode1},{prn1},{prn2},{prn3},{prn4},{prn5},{prn6},{prn7},{prn8},{prn9},{prn10},{prn11},{pdop},{hdop},{vdop},{systemId}*{checksum}

Where A is the current mode MA, 3 is the current mode 1, 04 is the current PRN 1, 05 is the current PRN 2, 09 is the current PRN 3, 12 is the current PRN 4, 24 is the current PRN 5, 2.5 is the current PDOP, 1.3 is the current HDOP, 2.1 is the current VDOP, and 39 is the current system ID, and 00 is the checksum.

GPRMC

GPS devices can use the GPRMC sentence to send the GPS location, altitude, and speed to Gaggle. The sentence is in the format:

$GPRMC,123519,A,4807.038,N,01131.000,E,022.4,084.4,230394,003.1,W*6A
$GPRMC,{utcTime},{status},{latitude},{northSouthIndicator},{longitude},{eastWestIndicator},{speedOverGround},{trackMadeGood},{date},{magneticVariation},{eastWestIndicator},{checksum}

Where 123519 is the current UTC time, A is the current status, 4807.038 is the current latitude, N is the current north/south indicator, 01131.000 is the current longitude, E is the current east/west indicator, 022.4 is the current speed over ground, 084.4 is the current track made good, 230394 is the current date, 003.1 is the current magnetic variation, W is the current east/west indicator, and 6A is the checksum.

HFM

Custom devices can use the HFM sentence to send the fuel level to Gaggle. The sentence is in the format:

$HFM,0.50,25,20*00
$HFM,{fuelLevel:ltr},{tankTemp:C},{airTemp:C}*{checksum}

Where 0.50 is the current fuel level in ltr, 25 is the current tank temperature in degrees Celsius, 20 is the current air temperature in degrees Celsius, and 00 is the checksum.

IBPPG

Insight paramotor sensors can use the IBPPG sentence to send the fuel level to Gaggle. The sentence is in the format:

$IBPPG,5000,0,700,100,200,25,12.5,0,A,1,100,0,0,C,0*00
$IBPPG,{rpm:RPM},{rpmMax:RPM},{probeValue:mV},{cht:C},{tempMax:C},{airTemp:C},{battery:V},{needle:deg},{needleAdjustment:A/M/0},{cutOn:1/0},{hourMeter:hours},{hourMeterMin:minutes},{totalHourMeter:hours},{temperatureUnit:C/F},{mark:0/1}*{checksum}

Where 5000 is the current RPM, 0 is the current RPM max, 700 is the current probe value in mV, 100 is the current CHT in degrees Celsius, 200 is the current temp max in degrees Celsius, 25 is the current air temp in degrees Celsius, 12.5 is the current battery voltage in V, 0 is the current needle position in degrees, A is the current needle adjustment, 1 is the current cut on, 100 is the current hour meter in hours, 0 is the current hour meter min in minutes, 0 is the current total hour meter in hours, C is the current temperature unit, F is the current temperature unit, and 00 is the checksum.

LK8EX1

LK8EX1 variometers use the LK8EX1 sentence to send the barometric pressure, vario, temperature, battery, and pitot differential pressure to Gaggle. The sentence is in the format:

$LK8EX1,101325,0,25,100,12.5*00
$LK8EX1,{pressure:hPa},{vario:cm/s},{temp:deg C},{battery:%},{volts:V}*{checksum}

Where 101325 is the current barometric pressure in hPa, 0 is the current vario in cm/s, 25 is the current temperature in degrees Celsius, 100 is the current battery percentage, 12.5 is the current battery voltage, and 00 is the checksum.

LXWP0, LXWP1, LXWP2, LXWP3, PLXVF

XCTracer variometers use the LXWP0, LXWP1, LXWP2, LXWP3, and PLXVF sentences to send the barometric pressure, vario, temperature, battery, and pitot differential pressure to Gaggle. The sentences are in the format:

$LXWP0,0,0,0,0,0,0,0,0,0,0,0,0,0,0*00
$LXWP0,{loggerStored},{speed},{pressureAltitude},{vario1},{vario2},{vario3},{vario4},{vario5},{vario6},{heading},{windDirection},{windSpeed}*{checksum}

Where 0 is the current logger stored, 0 is the current speed, 0 is the current pressure altitude, 0 is the current vario1, 0 is the current vario2, 0 is the current vario3, 0 is the current vario4, 0 is the current vario5, 0 is the current vario6, 0 is the current heading, 0 is the current wind direction, 0 is the current wind speed, and 00 is the checksum.

$LXWP1,0,0,0,0,0*00
$LXWP1,{instrumentId},{serialNumber},{softwareVersion},{hardwareVersion},{license}*{checksum}

Where 0 is the current instrument ID, 0 is the current serial number, 0 is the current software version, 0 is the current hardware version, 0 is the current license, and 00 is the checksum.

$LXWP2,0,0,0,0,0,0,0*00
$LXWP2,{macCready},{ballast},{bugs},{polarA},{polarB},{polarC},{audioVolume}*{checksum}

Where 0 is the current macCready, 0 is the current ballast, 0 is the current bugs, 0 is the current polarA, 0 is the current polarB, 0 is the current polarC, 0 is the current audio volume, and 00 is the checksum.

$LXWP3,0,0,0,0,0,0,0,0,0,0,0,0,0*00
$LXWP3,{altimeterOffset},{scMode},{varioFilter},{telFilter},{teLevel},{varioAverage},{varioRange},{scTab},{scLow},{scSpeed},{smartDiff},{gliderName},{timeOffset}*{checksum}

Where 0 is the current altimeter offset, 0 is the current SC mode, 0 is the current vario filter, 0 is the current tel filter, 0 is the current TE level, 0 is the current vario average, 0 is the current vario range, 0 is the current SC tab, 0 is the current SC low, 0 is the current SC speed, 0 is the current smart diff, 0 is the current glider name, 0 is the current time offset, and 00 is the checksum.

$PLXVF
$PLXVF,{time},{accelerometerX},{accelerometerY},{accelerometerZ},{gyroscopeX},{gyroscopeY},{gyroscopeZ},{magnetometerX},{magnetometerY},{magnetometerZ},{temperature},{pressure},{humidity},{battery},{voltage}*{checksum}

Where 0 is the current time, 0 is the current accelerometer X, 0 is the current accelerometer Y, 0 is the current accelerometer Z, 0 is the current gyroscope X, 0 is the current gyroscope Y, 0 is the current gyroscope Z, 0 is the current magnetometer X, 0 is the current magnetometer Y, 0 is the current magnetometer Z, 0 is the current temperature, 0 is the current pressure, 0 is the current humidity, 0 is the current battery, 0 is the current voltage, and 00 is the checksum.

—RPM & —CHT

Custom devices can use the —RPM and —CHT sentences to send the engine RPM and chamber temperature to Gaggle. The sentences are in the format:

$--RPM,S,1,1000,0,A*00
$--RPM,{source},{engineOrShaftNumber},{speed},{propellerPitch},{status}*{checksum}

Where S is the current source, 1 is the current engine or shaft number, 1000 is the current speed, 0 is the current propeller pitch, A is the current status, and 00 is the checksum.

$--CHT,25,A*00
$--CHT,{chamberTemperature},{status}*{checksum}

Where 25 is the current chamber temperature, A is the current status, and 00 is the checksum.

OV

Custom devices can use the OV sentence to send the oxygen level to Gaggle. The sentence is in the format:

$OV,P,1013.25,E,0.0,T,273.15*00
$OV,{typeIdentifier},{value},{typeIdentifier},{value},{typeIdentifier},{value}*{checksum}

Where P is the current type identifier for pressure, 1013.25 is the current pressure value, E is the current type identifier for variometer, 0.0 is the current variometer value, T is the current type identifier for temperature, 273.15 is the current temperature value, and 00 is the checksum.

XCTRC

XCTracer variometers use the XCTRC sentence to send the GPS location, altitude, speed, heading, climb rate, pressure, and battery to Gaggle. The sentence is in the format:

$XCTRC,2021,1,1,0,0,0,0,0,0,0,0,0,0,0,0*00
$XCTRC,{year},{month},{day},{hour},{minute},{second},{centisecond},{latitude},{longitude},{altitude},{speed},{heading},{climbRate},{pressure},{battery}*{checksum}

Where 2021 is the current year, 1 is the current month, 1 is the current day, 0 is the current hour, 0 is the current minute, 0 is the current second, 0 is the current centisecond, 0 is the current latitude, 0 is the current longitude, 0 is the current altitude, 0 is the current speed, 0 is the current heading, 0 is the current climb rate, 0 is the current pressure, 0 is the current battery, and 00 is the checksum.