The sensord is a Linux Daemon program to interface the SensorBoard to XCSoar using NMEA Sentences
The measured values are processed by sensord and sent to variod and finally to XCSoar using NMEA data sentences. Here is an Overview about the General operation principle.
Sensors –> [i2c bus] –> sensord –> [NMEA over TCP port 4353] –> variod –> [NMEA over TCP port 4352] ←→ XCSoar
Sensor | Sensortype | I2C Adr. | Quantity measured | Remarks |
---|---|---|---|---|
MS5611 | absolute | 0x77 | TEK-pressure | TEK probe |
MS5611 | absolute | 0x76 | static pressure | static port |
AMS5915 | differential | 0x28 | dynamic pressure | static port and total pressure |
MPU-9150 | Motion Processor | 0x68 | Yaw, Pitch, Roll | in preparation |
ADS1110 or ADS1100 | AD-Converter | 0x48 | Battery Voltage | image 16108 + xcsoar-testing_git-r8.0 |
DS18B20 | External Temperature | 0x18 | Temperature | in preparation, via 1 wire Bus Master |
-v print version information -c [filename] Config file for sensor compensation -d[n] set debug level. n can be [1..2]. default=1 -r [filename] record measurement values to file -p [filename] use values from file instead of measuring -s use second order temperature compensation for MS5611
The default configuration file is /opt/conf/sensord.conf
#Section for static pressure sensor # Unit: Pa #format: static_sensor [offset] [linearity] #Example: static_sensor 1.5 1.3 static_sensor 0.0 1.0 #Section for tek pressure sensor # Unit: Pa #format: tek_sensor [offset] [linearity] #Example: tek_sensor 1.5 1.3 tek_sensor 0.0 1.0 #Section for dynamic pressure sensor # Unit: Pa #format: dynamic_sensor [offset] [linearity] #Example: dynamic_sensor 1.5 1.3 dynamic_sensor 0.0 1.0 #Output value config output_POV_E output_POV_P_Q output_POV_V #Vario parameter #format: vario_config [x_accel] vario_config 0.3 #Voltage Sensor parameter #format: voltage_config [division_factor] voltage_config 736
The default values for the Voltage Sensor are:
The sensor readings can be compensated using two values. The values are stored in a file for the moment. For a future version the values should be stored in the EEPROM on the sensor board, because they are dependent on the sensors mounted on the board. This will improve the interchangeability on board level.
P = linearity * P_meas + offset P = final calculated pressure P_meas = pressure measured from sensor linearity = correction factor for linearity offset = correction factor for offset Values are floating point decimal.
The full range of NMEA-strings used by the Openvario-Project can be found here: NMEA-Definition
The source code of the whole program is hosted in a git repository. To clone the repository, use the following command:
git clone http://git-ro.openvario.org/sensord.git
Navigate to variod
Go back to Overview
Go to Setup Guide