AvNav server configuration
Introduction
Linux/Raspberry/Windows
When starting, the AvNav server reads its configuration from an XML file avnav_server.xml.
This file is typically located at /home/pi/avnav/data on the Raspberry, or at $HOME/avnav otherwise. On Windows, the file is in the user profile in the avnav folder.
Entries in this file allow for extensive customization of the AvNav server's behavior. In the normal case, you do not need to edit this file directly; instead, you can edit the Server Configuration within AvNav. Details on individual functional units can be found under Configuration Linux/Windows.
Android
On Android, the AvNav server configuration is stored in the app's user data. Normally, this cannot be viewed on Android—therefore, only the adjustment of the configuration within AvNav is available here. In principle, the Android version's server largely has the same functions as the other versions. However, the names of the individual functional units differ in some cases. Details on the functional units can be found under Configuration Android.
Configuration within AvNav
In AvNav, the corresponding server behavior can be adjusted in various areas.
Server Settings Routes
If the server tab is not directly visible, you can access it via the button or by swiping.
In the server area, the server components (handlers) required for the respective function are listed (in the example: Router). If you can edit this handler, the corresponding button is available.
This opens a dialog for the settings.
Editing a handler
The parameters that can be edited here correspond to the properties of the nodes in the avnav_server.xml file on Linux and Windows.
When the settings are saved with , they take effect immediately. On Linux/Raspberry/Windows, they are saved in the avnav_server.xml, and on Android, in the user data.
Connections page
All incoming and outgoing (NMEA) connections can be configured via
->
New connections can also be created there. See also the Details on connections.
Server page
For an overview of all server functions, you can use the page
->
.
All server settings
After opening, only the functional units (handlers) that are not visible on other pages are initially displayed. All are displayed via .
New handlers can be added via , provided they support it. Usually, these are handlers for new connections.
Description of functional units (Linux/Windows)
Initial value and error handling
If the avnav_server.xml file does not yet exist at the first start, it is created from a template—suitable for the Raspberry
or other
systems. This template is the file /etc/avnav_server.xml on the Raspberry Pi. If this file does not yet exist, a file from the package is used as a template.
If AvNav is started from the command line using the "avnav" command, a template can be specified with the -t option.
When updating the AvNav software, this file is generally not changed. However, it may be necessary to add new entries for new functions. If so, this will be pointed out in the Release Notes.
With every successful start, AvNav writes a copy of this file with the extension .ok. If parsing the XML file fails on the next start, AvNav reads the .ok file instead. This function is intended to prevent the next start from potentially failing after a change that AvNav might make itself in some situations.
If AvNav cannot start due to configuration errors, you should completely remove the avnav_server.xml and then restart. AvNav will then start again from a "clean" template.
Special values
In the following descriptions, the "online" column indicates whether the parameters can be changed directly within AvNav.
If parameters need to be changed that are not directly editable, the avnav-update-plugin should be used to edit the file directly in the browser.
The plugin can be reached on the ->.
If you make changes to the avnav_server.xml directly via an editor, AvNav must be restarted afterward.
If AvNav runs as a system service, you do this with the command
However, it is recommended to start AvNav from the command line first after a change to see if there are any serious errors. The command sequence is then
The -e option prevents the avnav_server.xml.ok from being loaded in case of an error. The key combination ^C aborts the running AvNav.
NMEA filter
At various points, filters can be specified that influence which NMEA data can pass through and which cannot.
Comma-separated NMEA messages can be specified here. To make them independent of talker IDs, the 2 characters after a $ are ignored.
A filter for $GPRMC looks like this: $RMC. If the filter is preceded by a ^, it is negated, so ^$RMC means: no RMC records. AIS data can be matched with the filter "!" or "!AIVDM".
Examples:
!- only all AIS messages^!- no AIS messages$RMC,$RMB- RMC and RMB records!,$RMC- all AIS messages and RMC records^$APB,^$RMB- no APB and no RMB records
BlackList
A blacklist contains names of input channels (handlers) whose data should not be output on the respective interface. Multiple entries are separated by a comma.
Functional units (handlers)
Inside the configuration, there are entries for the individual handlers.
Basically, there are 3 categories of such handlers:
- Components that may only occur exactly once, but must be in the
avnav_server.xml - Components that usually do not need to be in the
avnav_config.xml, only if something special is to be configured
Examples: AVNAlarmHandler, AVNChartHandler,... - Components that can appear one or more times in the
avnav_server.xml. These are, in particular, the input and output channels. If no such entry exists, the function is not available.
There are some properties that appear on multiple components; an explanation for these is provided here.
| Name | Description | Example |
|---|---|---|
| enabled | Many handlers can be switched on or off on the server/status page with this parameter | on |
| name | Name of an input or output channel. This is displayed on the status page and can also be used in the blackList parameter for filtering | nmea0183tosignalk |
| filter | NMEA filter | |
| readFilter | For combined readers/writers: filter for the input side. See filter | |
| blackList | List of channel names whose data should not be sent out. Note the spelling (uppercase L) | nmea0183tosignalk |
| priority (since 20220421) | All NMEA input channels have a priority field. This influences which value wins if the same values are decoded by multiple channels. The default priority is 50; it can be changed up or down. The SignalK integration has a default priority of 40. | 50 |
The most important components with their parameters are listed below. If parameters are not described here but perhaps appear in a template, they should be left as they are there.
AVNConfig
Basic configuration and system time, category 2 (1x, optional)
| Name | Online | Description | default/template |
|---|---|---|---|
| settimecmd | A command called to set the system time. The parameter is a timestamp in UTC as required for date -u | set only with the avnav-raspi package | |
| settime (from 203304xx) | X | If on, set the system time (settimecmd must also be set) | on |
| maxtimeback | X | maximum time the system time is set backward before all internal data is deleted (s) | 5 |
| systimediff | X | maximum time deviation of the system time from the GPS time before the system time is reset (s) | 5 |
| settimeperiod | X | time (in s) before the system time is set again | 3600 |
| ntphost (from 20220421) | X | An NTP server. This is queried if no valid GPS time is available and settime is active | pool.ntp.org |
| switchtime (from 20220421) | X | time (in s) to wait at least after setting the time before switching from GPS to NTP or back. This time is also used to wait for a valid GPS time after startup | 60 |
| expiryTime | X | time (in s) for how long received NMEA data remains valid | 30 |
AVNAisWorker
AIS configuration, category 2 (1x, optional)
| Name | Online | Description | default/template |
|---|---|---|---|
| ownMMSI | X | MMSI of your own boat, this is filtered out of the AIS data | |
| aisExpiryTime | X | time (in s) for how long received AIS data remains valid | 1200 |
AVNDecoder
Decoder, category 2 (1x, optional)
| Name | Online | Description | default/template |
|---|---|---|---|
| decoderFilter | X | Filter for the decoder |
AVNQueue
The internal NMEA queue. Category 2 (once, optional).
| Name | Online | Description | default/template |
|---|---|---|---|
| maxList | X | max. number of NMEA records in the queue | 300 |
| maxAge | X | max. age (in s) of an entry in the queue. Older entries are deleted. This prevents data from being sent out too slowly. | 3 |
AVNHttpServer
The internal HTTP server. Category 2 (once, optional).
The parameters cannot be changed within AvNav. In addition to the parameters for AVNHttpServer, there are some deeper entries that can repeat multiple times. Normally, however, no changes should be necessary here (Directory, MimeType).
Except for the Http Port, normally no changes should be required.
Parameters for AVNHttpServer
| Name | Description | default/template |
| httpPort | the port on which the HTTP server accepts requests | 8080 |
| httpHost | The bind address, you can restrict this to a specific network, for example | 0.0.0.0 |
Parameters for Directory
These values are mostly overwritten by the call (parameter -u for avnav) and should not be changed.
| Name | Description | default/template |
| urlpath | the URL (without /) | |
| path | the real path on the system |
Parameters for MimeType
Mime types for file extensions are configured here. If a custom application might need something special here, you can add it.
| Name | Description | default/template |
| extension | Name extension (e.g., .avt) | |
| type | Mime type (e.g., text/plain) |
AVNBlueToothReader
Reading from Bluetooth devices with a serial profile. Category 3 (once possible, optional)
Only possible if the device has a Bluetooth device.
| Name | online | Description | default/template |
| maxDevices | X | maximum number of simultaneously connected Bluetooth devices | 5 |
| deviceList | X | Comma-separated list of Bluetooth device IDs. If set, only these devices will be connected. | |
| filter | X | filter for NMEA data | |
| name | X | ||
| enabled | X | ||
| priority | X |
AVNSerialReader
Reading from serial devices. Category 3 (multiple, optional). This reader should only be used for devices connected directly via hardware (UART); for devices connected via USB, the AVNUsbSerialReader is responsible.
| Name | online | Description | default/template |
| name | X | Channel name for use in a blackList and for display | internally generated name |
| port | X | Device name, e.g., /dev/ttyAMA0 | |
| baud | X | Baud rate. If minBaud is also specified, this is the maximum baud rate used for automatically determining the baud rate | 4800 |
| minbaud | X | Minimum baud rate used for automatic detection. If not set or 0, automatic detection is switched off | |
| timeout | X | Timeout (in s) after which the device is closed and reopened without data | 2 |
| bytesize | X | serial byte size | 8 |
| parity | X | Parity | N |
| stopbits | X | Number of stop bits | 1 |
| xonxoff | X | Use xon/xoff protocol (0: off) | 0 |
| rtscts | X | RTS/CTS use (0: off) | 0 |
| numerrors | X | Number of errors after which the device is closed and reopened. | 20 |
| autobaudtime | X | Time (in s) spent attempting to detect a newline in the data (during automatic baud rate detection) | 5 |
| filter | X | NMEA filter, see filter | |
| enabled | X | ||
| priority | X |
AVNSerialWriter
Output via a serial device. Also combined input and output.
Category 3 (optional)
Only for direct serial devices, not for USB converters (use AVNUsbSerialReader for that)
| Name | online | Description | default/template |
| name | X | Channel name | |
| combined | X | if "true", then input and output simultaneously | false |
| readFilter | X | Filter for the input direction. The "filter" parameter refers to the output direction! | |
| blackList | X | blackList, comma-separated list of channel names whose data should not be output. | |
| .... | all parameters from AVNSerialReader |
AVNUsbSerialReader
Handles serial devices connected via USB. Category 3 (once, optional).
This worker searches for all devices connected via USB. It tries to open those with a serial profile, automatically set the baud rate, and then read NMEA data. This means such devices are normally recognized completely automatically by AvNav.
You can define rules for individual devices to handle them specifically. An ID that identifies the corresponding USB socket is used as identification for a device. You can determine this ID most easily by observing the Connections page when plugging in the device.
The parameters are divided into 2 parts:
- Attributes for the entry itself
- Underlying entries of type UsbDevice
Example
<AVNUsbSerialReader maxDevices="5" allowUnknown="true" baud="38400" minbaud="4800">
<UsbDevice usbid="1-1.2.1:1.0" baud="38400" minbaud="4800" filter="$RMC"/>
</AVNUsbSerialReader>
Parameters for AVNUsbSerialReader
| Name | online | Description | default/template |
| maxDevices | X | maximum number of simultaneously connected USB devices | 5 |
| allowUnknown | X | only if this entry is "true" are devices included that are not explicitly configured with UsbDevice | true |
| ... | X | all parameters from AVNSerialReader except port. These are set for devices not explicitly configured. |
Parameters for UsbDevice
| Name | online | Description | default/template |
| usbid | X | USB port identification e.g. "1-1.2.1:1.0", required | |
| type | X | Type of device reader, writer, combined, ignore. Set ignore if the device is not to be used | reader |
| ... | all parameters from AVNSerialReader if type = "reader" (except port, which is set internally) | ||
| ... | all parameters from AVNSerialWriter, if the type is combined or writer (except port, which is set internally) |
AVNUdpReader
Opens a UDP port and processes incoming data there. Category 3 (optional, multiple).
| Name | online | Description | default/template |
| name | X | Channel name for use in blackList and for display | internally calculated |
| port | X | UDP port | |
| host | X | Bind address for the port. This allows reception to be restricted to localhost, for example. | 0.0.0.0 |
| minTime | X | if set: waiting time (in s) before another data record is received. This can be used to limit the data rate if necessary. | 0 |
| filter | X | Filter for NMEA data | |
| enabled | X | ||
| priority | X | ||
| stripLeading | X | Remove all characters before $ or ! in a line. | off |
| joinMulticast | X | Joins a Multicast group, which enables the reception of multicast messages. | off |
| multicastAddr | X | Multicast address. This enables the reception of multicast messages on this address. | 224.0.0.1 |
AVNUdpWriter
Sends NMEA data via UDP. Category 3 (optional, multiple)
| Name | online | Description | default/template |
| name | X | Channel name | internally calculated |
| port | X | UDP destination port | 2000 |
| host | X | UDP destination address | localhost |
| filter | X | Filter for NMEA data that is sent | |
| broadcast | X | must be set to true if the data is to be sent as a broadcast | false |
| blackList | X | BlackList for channel names whose data should not be sent | |
| enabled | X |
AVNSocketWriter
An output that waits for connections on a port and outputs NMEA data to them (TCP server). Category 3 (multiple, optional).
| Name | online | Description | default/template |
| name | X | Channel name | internally calculated |
| port | X | the listener port | |
| address | X | if set, bind to this address (otherwise any: 0.0.0.0) | |
| filter | X | Filter for NMEA data | |
| read | X | if true, data is also read from the socket | false |
| priority | X | only if read is active | |
| readFilter | X | if also read, NMEA-filter for the input direction | |
| blackList | X | BlackList: Comma-separated list of channel names for which no data is output | |
| minTime | X | minimum time (in s) between 2 sent messages. This can be used to limit the data rate. | 0 |
| avahiEnabled | X | if switched on, the service is announced via avahi as _nmea-0183._tcp | off |
| avahiName | X | the name for the Avahi service | avnav-server |
| enabled | X | ||
| sendOwn | X | send received data on the same connection | off |
AVNSocketReader
An input that connects to a TCP server and reads data from there (TCP client). Category 3 (multiple, optional)
| Name | online | Description | default/template |
| name | X | Channel name | internally calculated |
| port | X | TCP port to which a connection is established | |
| host | X | TCP destination address to which a connection is established | |
| timeout | X | Connection timeout in s | 10 |
| minTime | X | Minimum time between 2 received messages | 0 |
| filter | X | Filter for NMEA data | empty |
| writeOut | X | send NMEA data on this connection | off |
| writeFilter | X | Filter for sent NMEA data | empty |
| blackList | X | Comma-separated list of source names whose data is not sent | empty |
| enabled | X | ||
| priority | X | ||
| stripLeading | X | Remove all characters before $ or ! in a line. | off |
| sendOwn | X | send received data on the same connection | off |
AVNNmea0183ServiceReader
This handler is very similar to the AVNSocketReader. But instead of configuring host and port, the name of the service is configured here. AvNav searches the network for MDNS/Bonjour/Avahi services of type _nmea-0183._tcp. When the entry is made via the web interface, AvNav offers the list of found services for selection. With this handler, a connection can also be re-established if, for example, the IP addresses change.
| Name | online | Description | default/template |
| serviceName | X | The name of the service (AvNav offers a list) | -- |
| timeout | X | Connection timeout in seconds | 10 |
| minTime | X | minimum time between 2 received messages. | 0 |
| filter | X | Filter for NMEA data | empty |
| writeOut | X | send NMEA data on this connection | off |
| writeFilter | X | Filter for sent NMEA data | empty |
| blackList | X | Comma-separated list of source names whose data is not sent | empty |
| sendOwn | X | send received data on the same connection | off |
| name | X | ||
| priority | X | ||
| enabled | X |
AVNBME280Reader
Reader for the BME280 sensor via I2C. Category 3 (optional)
Writes MDA and XDR data records.
Only visible if the python3-smbus package is installed.
| Name | online | Description | default/template |
| name | X | Channel name | internally calculated |
| addr | X | I2C address of the sensor | 0x77 |
| interval | X | Time between 2 NMEA data records in s | 5 |
| writeXdr | X | Write XDR if true | true |
| writeMda | X | Write MDA if true | true |
| namePress | X | XDR transducer name for air pressure | Barometer |
| offsetPress | X | add this value (in hPa) to the measured pressure | 0 |
| nameHumid | X | XDR transducer name for humidity | Humidity |
| nameTemp | X | XDR transducer name for temperature | TempAir |
| enabled | X | ||
| priority | X |
AVNBMB180Reader
Reader for the BMP180 sensor via I2C. Category 3 (optional)
Writes MDA and XDR data records.
| Name | online | Description | default/template |
| name | X | Channel name | internally calculated |
| addr | X | I2C address of the sensor | 0x77 |
| interval | X | Time between 2 NMEA data records in s | 5 |
| writeXdr | X | Write XDR if true | true |
| writeMda | X | Write MDA if true | true |
| namePress | X | XDR transducer name for air pressure | Barometer |
| offsetPress | X | add this value (in hPa) to the measured pressure | 0 |
| nameTemp | X | XDR transducer name for temperature | TempAir |
| enabled | X | ||
| priority | X |
AVNSenseHatReader
Reader for the "SenseHat" add-on board via I2C. Category 3 (optional)
Writes MDA and XDR data records.
Requires the python3-sense-hat package
| Name | online | Description | default/template |
| name | X | Channel name | internally calculated |
| interval | X | Time between 2 NMEA data records in s | 5 |
| writeXdr | X | Write XDR if true | true |
| writeMda | X | Write MDA if true | true |
| namePress | X | XDR transducer name for air pressure | Barometer |
| offsetPress | X | add this value (in hPa) to the measured pressure | 0 |
| nameHumid | X | XDR transducer name for humidity | Humidity |
| nameTemp | X | XDR transducer name for temperature | TempAir |
| nameRoll (from 20220421) | X | XDR transducer name for roll | Roll |
| namePitch (from 20220421) | X | XDR transducer name for pitch | Pitch |
| enabled | X | ||
| priority | X |
AVNTrackWriter
Writing tracks in GPX format and in a simple ASCII format. Category 2 (once, optional)
| Name | online | Description | default/template |
| interval | X | minimum distance in s between writing 2 entries | 10 |
| mindistance | X | minimum distance in m between 2 track points | 50 |
| trackdir | X | Directory for tracks | |
| cleanup | X | Maximum length of the internally maintained track in hours. Track data continues to be written to files, but the app can get a maximum of this time (backwards) as a track. | 25 |
| writeFile | X | Write a track file. If switched off, recording only in memory. | on |
AVNRouter
Managing routing data (waypoints, routes, anchor alarm). Calculation of data for autopilots. Category 2 (once, optional).
| Name | online | Description | default/template |
| name | X | Channel name (used for AP data) | internally calculated |
| routesdir | Directory for routes | ||
| interval | X | Interval (in s) between RMB data records | 5 |
| computeRMB | X | calculate an RMB data record if a waypoint is active | true |
| computeAPB | X | calculate an APB data record | false |
| useRhumbLine | X | use the rhumb line mode for routes | false |
| nextWpMode | X | Selection of the next waypoint advancement mode in a route (late, 90, early) | late |
| nextWpTime | X | The waiting time after the waypoint alarm (in seconds) until advancement to the next waypoint (only nextWpMode = early) | 10 |
AVNNmeaLogger
Writes NMEA logs to the track directory. Category 3 (once, optional).
| Name | online | Description | default/template |
| maxfiles | X | Number of files (1 per day) that are kept | 100 |
| filter | X | Filter for NMEA data | "$RMC,$DBT,$DBP" |
| interval | X | Minimum time in s before a record of the same type is written again | 5 |
| enabled | X |
AVNImporter
Imports charts that still need to be converted. Category 2 (once, optional)
| Name | online | Description | default/template |
| filesettle | X | Time in s waited after finding a file in the import directory before the converter starts | 30 |
| dirsettle | X | Time in s waited after finding a directory in the import directory before the converter starts | 10 |
| scanInterval | Time (in s) between 2 automatic scans of the import directory. 0: no automatic scan (but is triggered upon uploading) | 0 | |
| enabled | X |
AVNWpaHandler
Configuration of external WLAN connections to the Raspberry. (Legacy: not for versions from Debian Trixie). Category 3 (once, optional)
| Name | Description | default/template |
| wpaSocket | the control connection to wpa_supplicant | /var/run/wpa_supplicant/wlan-av1 |
| ownSsid | own SSIDs, these are hidden | avnav,avnav1,avnav2 |
| firewallCommand | if configured, external access can be enabled via a WLAN | sudo -n $BASEDIR/../raspberry/iptables-ext.sh wlan-av1 |
AVNCommandHandler
Executing commands, e.g., for alarms. Category 2 (once, not necessary).
The AVNCommandHandler itself has no parameters. However, various commands can be configured, which are then addressed by name. The default configuration is:
Parameters for Command
| Name | Description | default/template |
| name | Name of the command | |
| command | Command to execute | |
| repeat | Number of repetitions | 1 |
AVNAlarmHandler
Management of alarms. Category 2 (once, not necessary).
The default configuration is:
<AVNAlarmHandler>
<Alarm name="waypoint" category="info" repeat="1"/>
<Alarm name="connectionLost" category="info" repeat="1"/>
<Alarm name="anchor" category="critical" repeat="20000"/>
<Alarm name="gps" category="critical" repeat="20000"/>
<Alarm name="mob" category="critical" repeat="2"/>
</AVNAlarmHandler>
As of version 20220421, existing alarm entries in avnav_server.xml should be deleted unless a special command is to be entered there.
This allows sounds to be defined via the sound selection for the category.
If special commands are to be triggered with alarms, they can, however, be explicitly set in the avnav_server.xml.
<AVNAlarmHandler>
<!-- legacy way of configuring alarms - still supported but not recommended, use category at least and optionally parameter -->
<Alarm name="gps" category="critical" command="gpsAlarm" parameter="$BASEDIR/../sounds/anchorAlarm.mp3" repeat="20000"/>
<!-- with the next line we configuer a special command that will be called when we receive a "sinking" notification from SignalK
the sound is determined by the category - and this is also the parameter that the command will receive -->
<Alarm name="sk:sinking" command="sinkingAlarm" category="critical" repeat="2"/>
</AVNAlarmHandler>
Parameters for Alarm
| Name | Description | default |
| name | Name of the alarm | empty, required |
| category | Category (info, critical) | empty |
| command | Command to be executed (must be configured in AVNCommandHandler) | empty |
| autoclean | Switch off the alarm when the command has finished | off |
| sound | The name of a sound file - if specified, this is used (relative names refer to the internal sound directory or to the user directory). If not set, the sound is determined from the category or, if not set, from the 'parameter' | empty |
| repeat | Number of command (and sound) repetitions | 1 |
| parameter | If specified, this parameter is passed to the command. If neither sound nor category are set, the name is interpreted as the path to a sound file. |
Parameters for AlarmHandler
| Name | online | Description | default/template |
| infoSound | X | Name of an MP3 file for the sound in the info category. Can be selected from a list of built-in sounds and files in the user directory (uploadable via download page) | waypointAlarm.mp3 |
| criticalSound | X | Name of an MP3 file for the sound in the critical category. Can be selected from a list of built-in sounds and files in the user directory (uploadable via download page) | anchorAlarm.mp3 |
| defaultCommand | X | Command for alarms that have not explicitly defined a command. This command must be configured in the AVNCommandHandler. | sound |
| stopAlarmPin | X | Only on Raspberry Pi: If set (board numbering), a low on this GPIO pin switches off alarms. As of version 2025xxxx there is a separate plugin "resetAlarm" a configuration must take place there. An existing setting will be migrated during installation. | empty |
AVNPluginHandler
Management of plugins. Category 2 (once, optional).
The AVNPluginHandler manages plugins that can be installed in different directories. There are 3 directories in which plugins are searched:
- builtin: /usr/lib/avnav/server/plugins
- system: /user/lib/avnav/plugins
- user: $DATADIR/plugins
In addition to the parameters for the plugin handler itself, the respective plugins can expect parameters. The name for the plugin results from the category and the plugin directory. Example:
<AVNPluginHandler>
<builtin-canboat enabled="true" allowKeyOverwrite="true" autoSendRMC="30" sourceName="canboatgen"/>
</AVNPluginHandler>
Parameters for AVNPluginHandler
| Name | Description | default/template |
| builtinDir | Directory for built-in plugins, not changeable | /usr/lib/avnav/server/plugins |
| systemDir | Directory for plugins installed as separate packages | /usr/lib/avnav/plugins |
| userDir | Directory for user plugins | $DATADIR/plugins |
Parameters for builtin-canboat
| Name | online | Description | default/template |
| enabled | X | Only if true, the plugin is active | off |
| allowKeyOverride | X | Must be set if date and time are to be read from canboat | off |
| port | X | canboat json port | 2598 |
| host | X | Host for the n2kd | localhost |
| autoSendRMC | X | if no RMC is seen in the NMEA data stream for this time (in s), but valid position data + time from canboat are present: send RMC (is important for date/time on NMEA0183) | 0 (off) |
| readPos | X | Read the position from PGN 129025 and COG/SOG from PGN 129026 | on |
| sourceName | X | Channel name used for RMC | plugin-Name |
| timeInterval | X | minimum time between 2 NMEA2000 time values before they are saved (seconds) | 0.5 |
| timePGNs | X | PGNs used for setting the time | 126992,129029 |
Parameters for system-resetAlarm (only with the avnav-raspi-base package)
| Name | online | Description | default |
| gpio | X | GPIO pin (board numbering) to which a button for resetting alarms is connected | -- |
| lowActive | X | If set, the input is L-active, i.e., alarms are reset with a low at this input | true |
| pullUpDown | X | If set, a pull-up or pull-down resistor is activated for the input so that only an external button needs to be connected. | true |
AVNChartHandler
Management of charts. Category 2 (once, must not be included)
| Name | Description | default/template |
| period | Time interval between 2 read processes for the chart directory (seconds) | 30 |
| upzoom | Number of zoom levels above the highest existing level | 2 |
AVNUserHandler
Management of user files. Category 2 (once, must not be included)
| Name | Description | default/template |
| interval | Time interval between 2 read processes for the directory (seconds) | 5 |
AVNImagesHandler
Management of user images. Category 2 (once, must not be included)
| Name | Description | default/template |
| interval | Time interval between 2 read processes for the directory (seconds) | 5 |
AVNUserAppHandler
Management of configured UserApps. Category 2 (once, must not be included)
This handler is somewhat special. Initially, no configurations are to be found here, but configurations can be created via the WebApp. Manual modification is not recommended.
AVNAvahiHandler
Controls the registration of AvNav with Avahi (MDNS/Bonjour).
| Name | online | Description | default/template |
| serviceName | X | The name that becomes visible in Tools. This is not the host name you use in avnav.local, for example! | avnav |
| maxRetries | X | Number of repetitions if the chosen name is already taken. Repetitions append a "-nn" suffix to the name. | 20 |
| timout | X | Timeout when connecting to the avahi daemon (in s) | 10 |
| enabled | X |
AVNSignalKHandler
For a description, see the SignalK documentation.
Description of functional units (Android)
Some parameters appear in multiple handlers:
| Name | Description | default |
| enabled | activates/deactivates this handler | depends on handler |
| name | Name for the handler. This can be used in blacklists. | empty |
| port | TCP or UDP port | |
| filter/readerFilter/ sendFilter | This is an NMEA filter. Here you can define which NMEA data should be allowed through. Multiple filters are separated by a comma (,). For data records starting with the dollar sign ($), the next two characters are ignored (the talker ID). A filter for all RMC records looks like this, for example: $RMC Only for all AIS data: ! All RMC and RMB records: $RMC,$RMB If the filter is to be negated, a ^ must be placed in front of the expression. ^$RMB,^$APB | empty |
| blacklist | a comma-separated list of names. NMEA data from these sources are not sent. | |
| priority | If this handler reads (or creates) data, it is potentially read by the decoder and written into the internal memory of AvNav. If multiple handlers provide the same data (e.g., position), it must be decided which of them should be written to the internal memory. This setting is used for this purpose. Data with higher priority wins. | |
| queueAge | AvNav has an internal queue that receives data and passes it on to the outputs. If an output is too slow, it may not be able to forward all incoming data immediately, and this data remains in the queue for a longer time. If the data is older than the time set here (in ms), it is deleted from the queue. | 3000 |
The available "handlers" and their parameters. Only the specific parameters are described.
Decoder
| Parameter | Description | default |
|---|---|---|
| ownMMSI | own MMSI, this is hidden in the AIS display | empty |
| posAge | allowed age for the GPS position (in sec), after this time the entry is deleted if no new GPS data was received | 10 |
| nmeaAge | allowed age for NMEA data (in sec) that does not contain position data | 600 |
| aisAge | allowed age for AIS data (in sec) | 1200 |
Route
| Parameter | Description | default |
|---|---|---|
| computeRMB | generate NMEA-RMB data records when routing is active. | on |
| computeAPB | generate NMEA-APB data records when routing is active | on |
| useRhumbLine | set the routing mode to rhumbLine | off |
| nextWpMode | set the waypoint advancement mode - late/early/90 | late |
| nextWpTime | in "early" mode, the time (in s) after the waypoint alarm until advancement to the next waypoint | 10 |
Track
| Parameter | Description | default |
|---|---|---|
| interval | Interval (in sec) for writing the track as a "gpx" file. | 300 |
| distance | Minimum distance (in m) before a new track point is written | 25 |
| minTime | Minimum time (in sec) before a new track point is written | 10 |
| length | Length of the displayed track in hours (h). | 25 |
Logger
NMEA logger
WebServer
| Parameter | Description | default |
|---|---|---|
| port | the TCP port on which the server accepts connections. | 8080 |
| external | If active, other devices can also connect (otherwise only on your own device). Note: This parameter should be activated with caution and only in trusted networks. Within the app, there is no further protection! | off |
| mdnsEnabled | makes the service known via "mDNS" (Bonjour). | on |
| mdnsService | The name under which the app is accessible via mDNS/Bonjour. | avnav-android |
InternalGPS
The GPS of the device.
MDNSResolver
The handler for resolving and announcing "mDNS" (Bonjour/Avahi) services.
Remote Channel
The handler for remote control.
TcpReader
| Parameter | Description | default |
|---|---|---|
| ipAddress | The IP address or the host name for the server that should be contacted. This can also be an mDNS name such as avnav.local. | --- |
| port | The IP port to which a connection should be established. | --- |
| sendOut | If activated, NMEA data is also sent. Otherwise, it is only received. | off |
| readTimeout | Mark the connection as inactive if no data has been received after the set time (sec). | 10 |
| writeTimeout | Close the connection if an NMEA data record could not be written within the set time (sec). | 5 |
| connectTimeout | Timeout for establishing the connection (in sec, 0 = system default) | 0 |
| closeOnTimeout | Close the connection and open it again when the readTimeout is reached. | on |
| stripLeading | removes all characters in a received line before a ! or $ | off |
TcpWriter
A TCPWriter provides NMEA data to other applications.
| Parameter | Description | default |
|---|---|---|
| port | The port on which the server accepts connections | --- |
| externalAccess | If active, other devices can also connect. Otherwise, only apps on the same device can connect. | off |
| writeTimeout | Close the connection if an NMEA data record could not be written within the set time (sec). | 5 |
| readData | If active, AvNav also receives NMEA data via an established connection | off |
| stripLeading | removes all characters in a received line before a ! or $ (only if readData is active) | off |
| sendOwn | Send data received on the same connection (only visible if readData is active). Normally you should not switch this on because you can easily create loops. | on |
| mdnsEnabled | make the service known via mDNS on the network (type: _nmea-0183._tcp) | off |
| mdnsService | The name under which this server is accessible via mDNS |
UdpReader
A UDP reader receives data from other apps/systems.
| Parameter | Description | default |
|---|---|---|
| port | the UDP port on which data is received | --- |
| externalAccess | if active, data from other devices can be received, otherwise only within the same device. | off |
| readTimeout | show the connection as inactive if no data has been received for the set time (sec). | 10 |
| stripLeading | removes all characters in a received line before a ! or $ | off |
Important note: Due to restrictions of the Android system, UDP messages to a broadcast address cannot be received if the device goes into standby mode (screen off). Messages directly to the IP address of the device continue to be received even in standby. Therefore, if such broadcast UDP senders are to be used, the device must remain active. However, you can use the Dim button in AvNav to dim the backlight and reduce power consumption. See also GitHub issue #510.
UdpWriter
A UDP writer sends NMEA data via UDP to another app.
| Parameter | Description | default |
|---|---|---|
| ipaddress | the IP address or the host name of the target computer. An mDNS name like "avnav.local" can also be used. | --- |
| port | The target port to which data should be sent | --- |
| broadcast | Send the data as broadcast, the IP address must then be a valid broadcast address. | off |
NMEA0183Service
An NMEA0183 service works essentially like a TcpReader.
However, the target address and port are not specified here. Instead, the name of an (mDNS) service (type: _nmea-0183._tcp) is selected from a list of available services. If, for example, a SignalK server or an AvNav server (> 20210415) is present on the network, they announce their NMEA outputs in this way on the network.
The advantage is that even when changing networks, access will normally work again and connections can thus be automatically re-established.
| Parameter | Description | default |
|---|---|---|
| service | the name of the service (selection from the list of found ones) | --- |
| sendOut | send NMEA data on this connection | |
| readTimeout | Mark the connection as inactive if no data has been received after the set time (sec). | 10 |
| writeTimeout | Close the connection if a record could not be written within the set time (sec) | 5 |
| connectTimeout | Timeout for establishing the connection (in sec, 0 = system default) | 0 |
| closeOnTimeout | Close the connection and open it again when the readTimeout is reached. | on |
UsbConnection
AvNav becomes active when a USB device is connected, if this has been activated in the settings. It is therefore sensible to start AvNav first and then connect the USB device. The device can then be configured directly so that AvNav is always allowed to access this device. AvNav then immediately starts the dialog for configuring the device.
| Parameter | Description | default |
|---|---|---|
| device | The connected USB device, more precisely: the connection of the device, selection from a list | --- |
| baud rate | The baud rate | 9600 |
| flowControl | none | xon/xoff |
| sendOut | send NMEA data on this connection | off |
| readTimeout | Mark the connection as inactive if no data has been received after the set time (sec). | 10 |
Bluetooth
For connecting to a Bluetooth GPS, for example. The device must first be connected via the Android device's Bluetooth settings ("pairing").
| Parameter | Description | default |
|---|---|---|
| device | The Bluetooth device. During setup, all devices that are already known are offered; only then is an attempt made to reach the device. | --- |
| sendOut | send NMEA data on this connection | off |
| readTimeout | Mark the connection as inactive if no data has been received after the set time (sec). | 10 |


