# Variometer

 Wishes warning! This article or section documents one or more OpenMoko Wish List items, the features described here may or may not be implemented in the future.

## Contents

### Variometer

The variometer signal is simply the derivative of the barometer signal. It gives a much more accurate vertical speed signal than is possible with GPS.This kind of measurement is used by the free flying community (hanggliding, paragliding, ballooning). A device that allows teams of pilots to share position and speed (with accurate vertical speed) data would be lots of fun. Variometer Reference

#### Hardware

It could be best to filter and differentiate the analog pressure signal and then digitize. Another possibility is to differentiate the height in software. A robust solution is to compute a linear regression of a sliding window of height samples. The height samples can be computed using integer arithmetic by a pressure->altitude lookup table followed by interpolation. Maybe it's even possible to add detail based on the accelerometers.

References to applicable transducers:

#### Hardware solution

##### Signal Conditioning

The absolute pressure signal needs to be:

1. Differentiated
2. Filtered
• Operational amplifiers in the following configuration:

See the signal conditioning example in this Application Note
It might be best to use a single chip solution if we can find the right fit e.g.: Max1464

The software solution can simply be done in the variometer application with some very simple math.

##### A/D

We would need two A/D channels:

1. Absolute Pressure - 12 bit minimum (assuming a operating range of 0 - 12000 meter 12 bits would give resolution of 2.9304 m)
2. Differential Pressure - 10 bit minimum (assuming a range of +-20m/s 10 bits would give a resolution of 0.0391 m/s)

#### Driver Code

The driver code samples the input channels and converts the input values from pressure to altitude:

The relationship between static pressure and pressure altitude is defined in terms of the properties of the International Standard Atmosphere. Up to 36,090 ft this can be expressed as:

$z =\left (1-\left(\frac{P_{ind}}{101.325}\right)^{0.190263} \right ) \times \frac{87.828}{0.00198122}$

Where:

• z = pressure altitude (meter)
• $P_{ind}$ = static pressure (kPa)

These values are provided to listeners in multiple applications. The sample rate should be application adjustable to conserve power.

#### Application code

Applications can use the altitude data or combine the data with GPS and accelerometer data. Commonly Kalman filter/observer techniques are used to combine data from multiple sensor types into a robust(with respect to sensor noise), high accuracy estimate of position and speed in 3 axis.

References:

##### Variometer Code

Combine measurements as described above. Apply knowledge about the aircraft dynamics to increase accuracy:

• Total Energy compensation
• Relative Netto Compensation - use accelerometer data to sense when glider is turning in a thermal

User Interface

• Display speed data in ergonomic manner.
• Display speed for pilots in group.
• Visual and audible guidance to pilot with best climb rate (given reasonable proximity)
• Possible integration with mapping application

#### Server Based Services

Auto discovery service

• Pilots with Openmoko based variometers can choose to publish their status on a central service.
• Based on location - the system will notify pilots of the presence of others that can participate in group flying.

#### Freerunner

Maybe it is possible to do that on the Freerunner ?

Connection :

• SPI or I2C (or through the debug board connector ?)
• HID device (ex: Oak USB Sensor Atmospheric Pressure [toradex.ch])
##### Personal tools
 Wishes warning! This article or section documents one or more OpenMoko Wish List items, the features described here may or may not be implemented in the future.

### Variometer

The variometer signal is simply the derivative of the barometer signal. It gives a much more accurate vertical speed signal than is possible with GPS.This kind of measurement is used by the free flying community (hanggliding, paragliding, ballooning). A device that allows teams of pilots to share position and speed (with accurate vertical speed) data would be lots of fun. Variometer Reference

#### Hardware

It could be best to filter and differentiate the analog pressure signal and then digitize. Another possibility is to differentiate the height in software. A robust solution is to compute a linear regression of a sliding window of height samples. The height samples can be computed using integer arithmetic by a pressure->altitude lookup table followed by interpolation. Maybe it's even possible to add detail based on the accelerometers.

References to applicable transducers:

#### Hardware solution

##### Signal Conditioning

The absolute pressure signal needs to be:

1. Differentiated
2. Filtered
• Operational amplifiers in the following configuration:

See the signal conditioning example in this Application Note
It might be best to use a single chip solution if we can find the right fit e.g.: Max1464

The software solution can simply be done in the variometer application with some very simple math.

##### A/D

We would need two A/D channels:

1. Absolute Pressure - 12 bit minimum (assuming a operating range of 0 - 12000 meter 12 bits would give resolution of 2.9304 m)
2. Differential Pressure - 10 bit minimum (assuming a range of +-20m/s 10 bits would give a resolution of 0.0391 m/s)

#### Driver Code

The driver code samples the input channels and converts the input values from pressure to altitude:

The relationship between static pressure and pressure altitude is defined in terms of the properties of the International Standard Atmosphere. Up to 36,090 ft this can be expressed as:

$z =\left (1-\left(\frac{P_{ind}}{101.325}\right)^{0.190263} \right ) \times \frac{87.828}{0.00198122}$

Where:

• z = pressure altitude (meter)
• $P_{ind}$ = static pressure (kPa)

These values are provided to listeners in multiple applications. The sample rate should be application adjustable to conserve power.

#### Application code

Applications can use the altitude data or combine the data with GPS and accelerometer data. Commonly Kalman filter/observer techniques are used to combine data from multiple sensor types into a robust(with respect to sensor noise), high accuracy estimate of position and speed in 3 axis.

References:

##### Variometer Code

Combine measurements as described above. Apply knowledge about the aircraft dynamics to increase accuracy:

• Total Energy compensation
• Relative Netto Compensation - use accelerometer data to sense when glider is turning in a thermal

User Interface

• Display speed data in ergonomic manner.
• Display speed for pilots in group.
• Visual and audible guidance to pilot with best climb rate (given reasonable proximity)
• Possible integration with mapping application

#### Server Based Services

Auto discovery service

• Pilots with Openmoko based variometers can choose to publish their status on a central service.
• Based on location - the system will notify pilots of the presence of others that can participate in group flying.

#### Freerunner

Maybe it is possible to do that on the Freerunner ?

Connection :

• SPI or I2C (or through the debug board connector ?)
• HID device (ex: Oak USB Sensor Atmospheric Pressure [toradex.ch])