%C%############################################################# %C%# # %C%# Configuration file for Dire Wolf # %C%# # %L%# Linux version # %W%# Windows version # %M%# Macintosh version # %C%# # %C%############################################################# %R% %R% %R% The sample config file was getting pretty messy %R% with the Windows and Linux differences. %R% It would be a maintenance burden to keep most of %R% two different versions in sync. %R% This common source is now used to generate the %R% two different variations while having only a single %R% copy of the common parts. %R% %R% The first column contains one of the following: %R% %R% R remark which is discarded. %R% C common to both versions. %R% W Windows version only. %R% L Linux version only. %R% M Macintosh version and possibly others (portaudio used). %R% %C%# %C%# Consult the User Guide for more details on configuration options. %C%# %C%# %C%# These are the most likely settings you might change: %C%# %C%# (1) MYCALL - call sign and SSID for your station. %C%# %C%# Look for lines starting with MYCALL and %C%# change NOCALL to your own. %C%# %C%# (2) PBEACON - enable position beaconing. %C%# %C%# Look for lines starting with PBEACON and %C%# modify for your call, location, etc. %C%# %C%# (3) DIGIPEATER - configure digipeating rules. %C%# %C%# Look for lines starting with DIGIPEATER. %C%# Most people will probably use the given example. %C%# Just remove the "#" from the start of the line %C%# to enable it. %C%# %C%# (4) IGSERVER, IGLOGIN - IGate server and login %C%# %C%# Configure an IGate client to relay messages between %C%# radio and internet servers. %C%# %C%# %C%# The default location is "direwolf.conf" in the current working directory. %L%# On Linux, the user's home directory will also be searched. %C%# An alternate configuration file location can be specified with the "-c" command line option. %C%# %C%# As you probably guessed by now, # indicates a comment line. %C%# %C%# Remove the # at the beginning of a line if you want to use a sample %C%# configuration that is currently commented out. %C%# %C%# Commands are a keyword followed by parameters. %C%# %C%# Command key words are case insensitive. i.e. upper and lower case are equivalent. %C%# %C%# Command parameters are generally case sensitive. i.e. upper and lower case are different. %C%# %C% %C% %C%############################################################# %C%# # %C%# FIRST AUDIO DEVICE PROPERTIES # %C%# (Channel 0 + 1 if in stereo) # %C%# # %C%############################################################# %C% %C%# %C%# Many people will simply use the default sound device. %C%# Some might want to use an alternative device by chosing it here. %C%# %W%# When the Windows version starts up, it displays something like %W%# this with the available sound devices and capabilities: %W%# %W%# Available audio input devices for receive (*=selected): %W%# * 0: Microphone (C-Media USB Headpho (channel 2) %W%# 1: Microphone (Bluetooth SCO Audio %W%# 2: Microphone (Bluetooth AV Audio) %W%# * 3: Microphone (Realtek High Defini (channels 0 & 1) %W%# Available audio output devices for transmit (*=selected): %W%# * 0: Speakers (C-Media USB Headphone (channel 2) %W%# 1: Speakers (Bluetooth SCO Audio) %W%# 2: Realtek Digital Output(Optical) %W%# 3: Speakers (Bluetooth AV Audio) %W%# * 4: Speakers (Realtek High Definiti (channels 0 & 1) %W%# 5: Realtek Digital Output (Realtek %W%# %W%# Example: To use the microphone and speaker connections on the %W%# system board, either of these forms can be used: %W% %W%#ADEVICE High %W%#ADEVICE 3 4 %W% %W% %W%# Example: To use the USB Audio, use a command like this with %W%# the input and output device numbers. (Remove the # comment character.) %W%#ADEVICE USB %W% %W%# The position in the list can change when devices (e.g. USB) are added and removed. %W%# You can also specify devices by using part of the name. %W%# Here is an example of specifying the USB Audio device. %W%# This is case-sensitive. Upper and lower case are not treated the same. %W% %W%#ADEVICE USB %W% %W% %L%# Linux ALSA is complicated. See User Guide for discussion. %L%# To use something other than the default, generally use plughw %L%# and a card number reported by "arecord -l" command. Example: %L% %L%# ADEVICE plughw:1,0 %L% %L%# Starting with version 1.0, you can also use "-" or "stdin" to %L%# pipe stdout from some other application such as a software defined %L%# radio. You can also specify "UDP:" and an optional port for input. %L%# Something different must be specified for output. %L% %M%# Macintosh Operating System uses portaudio driver for audio %M%# input/output. Default device selection not available. User/OP %M%# must configure the sound input/output option. Note that %M%# the device names can contain spaces. In this case, the names %M%# must be enclosed by quotes. %M%# %M%# Examples: %M%# %M%# ADEVICE "USB Audio Codec:6" "USB Audio Codec:5" %M%# %M%# %W%# ADEVICE - 0 %W%# ADEVICE UDP:7355 0 %L%# ADEVICE - plughw:1,0 %L%# ADEVICE UDP:7355 default %M%# ADEVICE UDP:7355 default %M%# %L% %L% %C% %C%# %C%# Number of audio channels for this souncard: 1 or 2. %C%# %C% %C%ACHANNELS 1 %C%#ACHANNELS 2 %C% %C% %C%############################################################# %C%# # %C%# SECOND AUDIO DEVICE PROPERTIES # %C%# (Channel 2 + 3 if in stereo) # %C%# # %C%############################################################# %C% %C%#ADEVICE1 ... %C% %C% %C%############################################################# %C%# # %C%# THIRD AUDIO DEVICE PROPERTIES # %C%# (Channel 4 + 5 if in stereo) # %C%# # %C%############################################################# %C% %C%#ADEVICE2 ... %C% %C% %C%############################################################# %C%# # %C%# CHANNEL 0 PROPERTIES # %C%# # %C%############################################################# %C% %C%CHANNEL 0 %C% %C%# %C%# The following MYCALL, MODEM, PTT, etc. configuration items %C%# apply to the most recent CHANNEL. %C%# %C% %C%# %C%# Station identifier for this channel. %C%# Multiple channels can have the same or different names. %C%# %C%# It can be up to 6 letters and digits with an optional ssid. %C%# The APRS specification requires that it be upper case. %C%# %C%# Example (don't use this unless you are me): MYCALL WB2OSZ-5 %C%# %C% %C%MYCALL N0CALL %C% %C%# %C%# Pick a suitable modem speed based on your situation. %C%# 1200 Most common for VHF/UHF. Default if not specified. %C%# 300 Low speed for HF SSB. %C%# 9600 High speed - Can't use Microphone and Speaker connections. %C%# %C%# In the simplest form, just specify the speed. %C%# %C% %C%MODEM 1200 %C%#MODEM 300 %C%#MODEM 9600 %C% %C%# %C%# These are the defaults should be fine for most cases. In special situations, %C%# you might want to specify different AFSK tones or the baseband mode which does %C%# not use AFSK. %C%# %C%#MODEM 1200 1200:2200 %C%#MODEM 300 1600:1800 %C%#MODEM 9600 0:0 %C%# %C%# %C%# On HF SSB, you might want to use multiple demodulators on slightly different %C%# frequencies to compensate for stations off frequency. Here we have 7 different %C%# demodulators at 30 Hz intervals. This takes a lot of CPU power so you will %C%# probably need to reduce the audio sampling rate with the /n option. %C% %C%#MODEM 300 1600:1800 7@30 /4 %C% %C% %C%# %C%# Uncomment line below to enable the DTMF decoder for this channel. %C%# %C% %C%#DTMF %C% %C%# %C%# If not using a VOX circuit, the transmitter Push to Talk (PTT) %C%# control is usually wired to a serial port with a suitable interface circuit. %C%# DON'T connect it directly! %C%# %C%# For the PTT command, specify the device and either RTS or DTR. %C%# RTS or DTR may be preceded by "-" to invert the signal. %C%# Both can be used for interfaces that want them driven with opposite polarity. %C%# %L%# COM1 can be used instead of /dev/ttyS0, COM2 for /dev/ttyS1, and so on. %L%# %C% %C%#PTT COM1 RTS %C%#PTT COM1 RTS -DTR %L%#PTT /dev/ttyUSB0 RTS %C% %L%# %L%# On Linux, you can also use general purpose I/O pins if %L%# your system is configured for user access to them. %L%# This would apply mostly to microprocessor boards, not a regular PC. %L%# See separate Raspberry Pi document for more details. %L%# The number may be preceded by "-" to invert the signal. %L%# %L% %L%#PTT GPIO 25 %L% %C%# The Data Carrier Detect (DCD) signal can be sent to the same places %C%# as the PTT signal. This could be used to light up an LED like a normal TNC. %C% %C%#DCD COM1 -DTR %L%#DCD GPIO 24 %C% %C% %C%############################################################# %C%# # %C%# CHANNEL 1 PROPERTIES # %C%# # %C%############################################################# %C% %C%#CHANNEL 1 %C% %C%# %C%# Specify MYCALL, MODEM, PTT, etc. configuration items for %C%# CHANNEL 1. Repeat for any other channels. %C% %C% %C%############################################################# %C%# # %C%# TEXT TO SPEECH COMMAND FILE # %C%# # %C%############################################################# %C% %W%#SPEECH dwespeak.bat %L%#SPEECH dwespeak.sh %C% %C% %C%############################################################# %C%# # %C%# VIRTUAL TNC SERVER PROPERTIES # %C%# # %C%############################################################# %C% %C%# %C%# Dire Wolf acts as a virtual TNC and can communicate with %C%# client applications by different protocols: %C%# %C%# - the "AGW TCPIP Socket Interface" - default port 8000 %C%# - KISS protocol over TCP socket - default port 8001 %W%# - KISS TNC via serial port %L%# - KISS TNC via pseudo terminal (-p command line option) %C%# %C% %C%AGWPORT 8000 %C%KISSPORT 8001 %C% %W%# %W%# Some applications are designed to operate with only a physical %W%# TNC attached to a serial port. For these, we provide a virtual serial %W%# port that appears to be connected to a TNC. %W%# %W%# Take a look at the User Guide for instructions to set up %W%# two virtual serial ports named COM3 and COM4 connected by %W%# a null modem. %W%# %W%# Using the configuration described, Dire Wolf will connect to %W%# COM3 and the client application will use COM4. %W%# %W%# Uncomment following line to use this feature. %W% %W%#NULLMODEM COM3 %W% %W% %C%# %C%# It is sometimes possible to recover frames with a bad FCS. %C%# This applies to all channels. %C%# %C%# 0 [NONE] - Don't try to repair. %C%# 1 [SINGLE] - Attempt to fix single bit error. (default) %C%# 2 [DOUBLE] - Also attempt to fix two adjacent bits. %C%# ... see User Guide for more values and in-depth discussion. %C%# %C% %C%#FIX_BITS 0 %C% %C%# %C%############################################################# %C%# # %C%# BEACONING PROPERTIES # %C%# # %C%############################################################# %C% %C% %C%# %C%# Beaconing is configured with these two commands: %C%# %C%# PBEACON - for a position report (usually yourself) %C%# OBEACON - for an object report (usually some other entity) %C%# %C%# Each has a series of keywords and values for options. %C%# See User Guide for details. %C%# %C%# Example: %C%# %C%# This results in a broadcast once every 10 minutes. %C%# Every half hour, it can travel via two digipeater hops. %C%# The others are kept local. %C%# %C% %C%#PBEACON delay=1 every=30 overlay=S symbol="digi" lat=42^37.14N long=071^20.83W power=50 height=20 gain=4 comment="Chelmsford MA" via=WIDE1-1,WIDE2-1 %C%#PBEACON delay=11 every=30 overlay=S symbol="digi" lat=42^37.14N long=071^20.83W power=50 height=20 gain=4 comment="Chelmsford MA" %C%#PBEACON delay=21 every=30 overlay=S symbol="digi" lat=42^37.14N long=071^20.83W power=50 height=20 gain=4 comment="Chelmsford MA" %C% %C% %C%# With UTM coordinates instead of latitude and longitude. %C% %C%#PBEACON delay=1 every=10 overlay=S symbol="digi" zone=19T easting=307477 northing=4720178 %C% %C% %C%# %C%# When the destination field is set to "SPEECH" the information part is %C%# converted to speech rather than transmitted as a data frame. %C%# %C% %C%#CBEACON dest="SPEECH" info="Club meeting tonight at 7 pm." %C% %C%# Similar for Morse code. If SSID is specified, it is multiplied %C%# by 2 to get speed in words per minute (WPM). %C% %C%#CBEACON dest="MORSE-6" info="de MYCALL" %C% %C% %C%# %C%# Modify for your particular situation before removing %C%# the # comment character from the beginning of appropriate lines above. %C%# %C% %C% %C%############################################################# %C%# # %C%# DIGIPEATER PROPERTIES # %C%# # %C%############################################################# %C% %C%# %C%# For most common situations, use something like this by removing %C%# the "#" from the beginning of the line below. %C%# %C% %C%#DIGIPEAT 0 0 ^WIDE[3-7]-[1-7]$|^TEST$ ^WIDE[12]-[12]$ TRACE %C% %C%# See User Guide for more explanation of what this means and how %C%# it can be customized for your particular needs. %C% %C%# Filtering can be used to limit was is digipeated. %C%# For example, only weather weather reports, received on channel 0, %C%# will be retransmitted on channel 1. %C%# %C% %C%#FILTER 0 1 t/wn %C% %C% %C%############################################################# %C%# # %C%# INTERNET GATEWAY # %C%# # %C%############################################################# %C% %C%# First you need to specify the name of a Tier 2 server. %C%# The current preferred way is to use one of these regional rotate addresses: %C% %C%# noam.aprs2.net - for North America %C%# soam.aprs2.net - for South America %C%# euro.aprs2.net - for Europe and Africa %C%# asia.aprs2.net - for Asia %C%# aunz.aprs2.net - for Oceania %C% %C%#IGSERVER noam.aprs2.net %C% %C%# You also need to specify your login name and passcode. %C%# Contact the author if you can't figure out how to generate the passcode. %C% %C%#IGLOGIN WB2OSZ-5 123456 %C% %C%# That's all you need for a receive only IGate which relays %C%# messages from the local radio channel to the global servers. %C% %C%# Some might want to send an IGate client position directly to a server %C%# without sending it over the air and relying on someone else to %C%# forward it to an IGate server. This is done by using sendto=IG rather %C%# than a radio channel number. Overlay R for receive only, T for two way. %C% %C%#PBEACON sendto=IG delay=0:30 every=60:00 symbol="igate" overlay=R lat=42^37.14N long=071^20.83W %C%#PBEACON sendto=IG delay=0:30 every=60:00 symbol="igate" overlay=T lat=42^37.14N long=071^20.83W %C% %C% %C%# To relay messages from the Internet to radio, you need to add %C%# one more option with the transmit channel number and a VIA path. %C% %C%#IGTXVIA 0 WIDE1-1 %C% %C%# You might want to apply a filter for what packets will be obtained from the server. %C%# Read about filters here: http://www.aprs-is.net/javaprsfilter.aspx %C%# Example, positions and objects within 50 km of my location: %C% %C%#IGFILTER m/50 %C% %C%# That is known as a server-side filter. It is processed by the IGate server. %C%# You can also apply local filtering to limit what will be transmitted on the %C%# RF side. For example, transmit only "messages" on channel 0 and weather %C%# reports on channel 1. %C% %C%#FILTER IG 0 t/m %C%#FILTER IG 1 t/wn %C% %C%# Finally, we don't want to flood the radio channel. %C%# The IGate function will limit the number of packets transmitted %C%# during 1 minute and 5 minute intervals. If a limit would %C%# be exceeded, the packet is dropped and message is displayed in red. %C% %C%IGTXLIMIT 6 10 %C% %C% %C%############################################################# %C%# # %C%# APRStt GATEWAY # %C%# # %C%############################################################# %C% %C%# %C%# Dire Wolf can receive DTMF (commonly known as Touch Tone) %C%# messages and convert them to packet objects. %C%# %C%# See separate "APRStt-Implementation-Notes" document for details. %C%# %C% %C%# %C%# Sample gateway configuration based on: %C%# %C%# http://www.aprs.org/aprstt/aprstt-coding24.txt %C%# http://www.aprs.org/aprs-jamboree-2013.html %C%# %C% %C%# Define specific points. %C% %C%TTPOINT B01 37^55.37N 81^7.86W %C%TTPOINT B7495088 42.605237 -71.34456 %C%TTPOINT B934 42.605237 -71.34456 %C% %C%TTPOINT B901 42.661279 -71.364452 %C%TTPOINT B902 42.660411 -71.364419 %C%TTPOINT B903 42.659046 -71.364452 %C%TTPOINT B904 42.657578 -71.364602 %C% %C% %C%# For location at given bearing and distance from starting point. %C% %C%TTVECTOR B5bbbddd 37^55.37N 81^7.86W 0.01 mi %C% %C%# For location specified by x, y coordinates. %C% %C%TTGRID Byyyxxx 37^50.00N 81^00.00W 37^59.99N 81^09.99W %C% %C%# UTM location for Lowell-Dracut-Tyngsborough State Forest. %C% %C%TTUTM B6xxxyyy 19T 10 300000 4720000 %C% %C% %C% %C%# Location for the corral. %C% %C%TTCORRAL 37^55.50N 81^7.00W 0^0.02N %C% %C%# Compact messages - Fixed locations xx and object yyy where %C%# Object numbers 100 - 199 = bicycle %C%# Object numbers 200 - 299 = fire truck %C%# Others = dog %C% %C%TTMACRO xx1yy B9xx*AB166*AA2B4C5B3B0A1yy %C%TTMACRO xx2yy B9xx*AB170*AA3C4C7C3B0A2yy %C%TTMACRO xxyyy B9xx*AB180*AA3A6C4A0Ayyy %C% %C%TTMACRO z Cz %C% %C%# Receive on channel 0, Transmit object reports on channel 1 with optional via path. %C%# You probably want to put in a transmit delay on the APRStt channel so it %C%# it doesn't start sending a response before the user releases PTT. %C%# This is in 10 ms units so 100 means 1000 ms = 1 second. %C% %C%#TTOBJ 0 1 WIDE1-1 %C%#CHANNEL 0 %C%#DWAIT 100 %C% %C%# Advertise gateway position with beacon. %C% %C%# OBEACON DELAY=0:15 EVERY=10:00 VIA=WIDE1-1 OBJNAME=WB2OSZ-tt SYMBOL=APRStt LAT=42^37.14N LONG=71^20.83W COMMENT="APRStt Gateway" %C% %C% %C%# Sample speech responses. %C%# Default is Morse code "R" for received OK and "?" for all errors. %C% %C%#TTERR OK SPEECH Message Received. %C%#TTERR D_MSG SPEECH D not implemented. %C%#TTERR INTERNAL SPEECH Internal error. %C%#TTERR MACRO_NOMATCH SPEECH No definition for digit sequence. %C%#TTERR BAD_CHECKSUM SPEECH Bad checksum on call. %C%#TTERR INVALID_CALL SPEECH Invalid callsign. %C%#TTERR INVALID_OBJNAME SPEECH Invalid object name. %C%#TTERR INVALID_SYMBOL SPEECH Invalid symbol. %C%#TTERR INVALID_LOC SPEECH Invalid location. %C%#TTERR NO_CALL SPEECH No call or object name. %C%#TTERR SATSQ SPEECH Satellite square must be 4 digits. %C%#TTERR SUFFIX_NO_CALL SPEECH Send full call before using suffix. %C%