These configuration files work on the current version of Ubuntu Linux. I make no promises that they will work in the future or on any other version. If you find on obvious error, or find a better way to do something, please let me know. I do allow comments on the site but they are moderated and require a user login.
The first thing I had to do was to make sure both the USB names for the radio and the Alsa sound device names were a constant. So, first the usb-dev in /etc/udev/rules.d
/etc/udev/rules.d/50-usb-serial.rules
SUBSYSTEM==”tty”, ATTRS{idVendor}==”0403″, ATTRS{idProduct}==”6015″, SYMLINK+=”FT-840-CAT”
SUBSYSTEM==”tty”, ATTRS{idVendor}==”0403″, ATTRS{idProduct}==”6001″, SYMLINK+=”FT-818-CAT”
SUBSYSTEM==”tty”, ATTRS{idVendor}==”067b”, ATTRS{idProduct}==”23a3″, SYMLINK+=”FT-150″
SUBSYSTEM==”tty”, KERNELS==”3-2.1:1.0″, SYMLINK+=”FT-710-CAT-1″
SUBSYSTEM==”tty”, KERNELS==”3-2.1:1.1″, SYMLINK+=”FT-710-CAT-2″
SUBSYSTEM==”tty”, ATTRS{idVendor}==”051d”, ATTRS{idProduct}==”0002″, SYMLINK+=”UPS-APC1350″
Then the Alsa sound file name, again in /etc/udev/rules.d
/etc/udev/rules.d/99-my-audio-names.rules
SUBSYSTEM=="sound", KERNELS=="pci-0000:05:00.4-usb-0:1.3:1.0", ATTR{id}="HF_SL"
SUBSYSTEM=="sound", ATTRS{idVendor}=="0d8c", ATTRS{idProduct}=="0013", ATTR{id}="FT710"
Then we have to start rigctld with the rigctld-710.service file in /usr/lib/systemd/system/rigctld-710.service
/usr/lib/systemd/system/rigctld-710.service
[Unit]
Description=rigctld Hamradio rig controler ft818
After=syslog.target network.target
[Service]
Type=simple
#ExecStart=/usr/local/bin/rigctld -m 1049 -r /dev/ttyUSB4 -t 4534 -s 38400
ExecStart=/usr/bin/rigctld -m 1049 -r /dev/FT-710-CAT-1 -t 4532 -s 38400 --set-conf=data_bits=8,stop_bits=1,serial_parity=None,serial_handshake=None
-D NONE -vvv
ExecReload=/bin/kill -HUP $MAINPID
RestartSec=60
Restart=always
User=root
Group=root
[Install]
WantedBy=multi-user.target
Make sure you enable that with systemctl enable rigctld-710.service and then start it with service rigctld-710 start.
Finally, we have to start direwolf, but the the configuration file that works for me is in /etc/direwolf.conf
#############################################################
# #
# Configuration file for Dire Wolf #
# #
# Linux version #
# Windows version #
# Macintosh version #
# #
#############################################################
#
#
# The sample config file was getting pretty messy
# with the Windows and Linux differences.
# It would be a maintenance burden to keep most of
# two different versions in sync.
# This common source is now used to generate the
# two different variations while having only a single
# copy of the common parts.
#
# The first column contains one of the following:
#
# R remark which is discarded.
# C common to both versions.
# W Windows version only.
# L Linux version only.
# M Macintosh version and possibly others (portaudio used).
#
#
# Consult the User Guide for more details on configuration options.
#
#
# These are the most likely settings you might change:
#
# (1) MYCALL - call sign and SSID for your station.
#
# Look for lines starting with MYCALL and
# change NOCALL to your own.
#
# (2) PBEACON - enable position beaconing.
#
# Look for lines starting with PBEACON and
# modify for your call, location, etc.
#
# (3) DIGIPEATER - configure digipeating rules.
#
# Look for lines starting with DIGIPEATER.
# Most people will probably use the given example.
# Just remove the "#" from the start of the line
# to enable it.
#
# (4) IGSERVER, IGLOGIN - IGate server and login
#
# Configure an IGate client to relay messages between
# radio and internet servers.
#
#
# The default location is "direwolf.conf" in the current working directory.
# On Linux, the user's home directory will also be searched.
# An alternate configuration file location can be specified with the "-c" command line option.
#
# As you probably guessed by now, # indicates a comment line.
#
# Remove the # at the beginning of a line if you want to use a sample
# configuration that is currently commented out.
#
# Commands are a keyword followed by parameters.
#
# Command key words are case insensitive. i.e. upper and lower case are equivalent.
#
# Command parameters are generally case sensitive. i.e. upper and lower case are different.
#
LOGFILE /usr/local/bpq32/logs/direwolf.log
#LOGDIR .\logs\
#############################################################
# #
# FIRST AUDIO DEVICE PROPERTIES #
# (Channel 0 + 1 if in stereo) #
# THIS IS VHF APRS / PACKET #
# #
#############################################################
ADEVICE plughw:1,0
ACHANNELS 1
#############################################################
# #
# CHANNEL 0 PROPERTIES VHF APRS #
# #
#############################################################
CHANNEL 0
MODEM 1200
#
#############################################################
# #
# SECOND AUDIO DEVICE PROPERTIES #
# (Channel 2 + 3 if in stereo) #
# #
#############################################################
#ADEVICE1 plughw:3,0
ADEVICE1 plughw:FT710,0
FX25TX 1
ACHANNELS 2
#PTT RIG 2 localhost:4532
#############################################################
# #
# CHANNEL C PROPERTIES NET105 #
# #
#############################################################
CHANNEL 2
MODEM 300 900:1100 E
PTT RIG 2 localhost:4532
#TXDELAY 40
#TXTAIL 40
#
#############################################################
# #
# THIRD AUDIO DEVICE PROPERTIES #
# (Channel 4 + 5 if in stereo) #
# #
#############################################################
#ADEVICE2 plughw:3,0
#FX25TX 1
#ACHANNELS 1
#############################################################
# #
# CHANNEL E PROPERTIES #
# HF Packet Robust #
#############################################################
#CHANNEL 4
#MODEM 300 1900:2100 E
#TXDELAY 25
#TXTAIL 30
#############################################################
# ` #
# FOURTH AUDIO DEVICE PROPERTIES #
# (Channel 6 + 7 if in stereo) #
# #
#############################################################
#ADEVICE3 plughw:3,0
#IL2PTX
#ACHANNELS 1
#############################################################
# #
# CHANNEL F PROPERTIES #
# HF PACKET IL2OPTX #
#############################################################
#CHANNEL 6
#MODEM 300 2150:2350 E
#MYCALL KO4YAW-6
#MODEM 1200
#TXDELAY 40
#TXTAIL 40
#DTMF
#
#
#############################################################
# #
# TEXT TO SPEECH COMMAND FILE #
# #
#############################################################
#SPEECH dwespeak.sh
#############################################################
# #
# VIRTUAL TNC SERVER PROPERTIES #
# #
#############################################################
#
# Dire Wolf acts as a virtual TNC and can communicate with
# client applications by different protocols:
#
# - the "AGW TCPIP Socket Interface" - default port 8000
# - KISS protocol over TCP socket - default port 8001
# - KISS TNC via pseudo terminal (-p command line option)
#
AGWPORT 8205
KISSPORT 8100
#
# It is sometimes possible to recover frames with a bad FCS.
# This applies to all channels.
#
# 0 [NONE] - Don't try to repair.
# 1 [SINGLE] - Attempt to fix single bit error. (default)
# 2 [DOUBLE] - Also attempt to fix two adjacent bits.
# ... see User Guide for more values and in-depth discussion.
#
FIX_BITS 0
#
#############################################################
# #
# BEACONING PROPERTIES #
# #
#############################################################
#
# Beaconing is configured with these two commands:
#
# PBEACON - for a position report (usually yourself)
# OBEACON - for an object report (usually some other entity)
#
# Each has a series of keywords and values for options.
# See User Guide for details.
#
# Example:
#
# This results in a broadcast once every 10 minutes.
# Every half hour, it can travel via two digipeater hops.
# The others are kept local.
#
#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
#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"
#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"
# With UTM coordinates instead of latitude and longitude.
#PBEACON delay=1 every=10 overlay=S symbol="digi" zone=19T easting=307477 northing=4720178
#
# When the destination field is set to "SPEECH" the information part is
# converted to speech rather than transmitted as a data frame.
#
#CBEACON dest="SPEECH" info="Club meeting tonight at 7 pm."
# Similar for Morse code. If SSID is specified, it is multiplied
# by 2 to get speed in words per minute (WPM).
#CBEACON dest="MORSE-6" info="de KM4ACK"
#
# Modify for your particular situation before removing
# the # comment character from the beginning of appropriate lines above.
#
#############################################################
# #
# DIGIPEATER PROPERTIES #
# #
#############################################################
#
# For most common situations, use something like this by removing
# the "#" from the beginning of the line below.
#
#DIGIPEAT 0 0 ^WIDE[3-7]-[1-7]$|^TEST$ ^WIDE[12]-[12]$ TRACE
# See User Guide for more explanation of what this means and how
# it can be customized for your particular needs.
# Filtering can be used to limit was is digipeated.
# For example, only weather weather reports, received on channel 0,
# will be retransmitted on channel 1.
#
#FILTER 0 1 t/wn
#############################################################
# #
# INTERNET GATEWAY #
# #
#############################################################
# First you need to specify the name of a Tier 2 server.
# The current preferred way is to use one of these regional rotate addresses:
# noam.aprs2.net - for North America
# soam.aprs2.net - for South America
# euro.aprs2.net - for Europe and Africa
# asia.aprs2.net - for Asia
# aunz.aprs2.net - for Oceania
# IGSERVER noam.aprs2.net
# You also need to specify your login name and passcode.
# Contact the author if you can't figure out how to generate the passcode.
IGLOGIN KKKKK (change KKKK to your callsign) XXXXXXX (Change XXX'S to your own passcode
# That's all you need for a receive only IGate which relays
# messages from the local radio channel to the global servers.
# Some might want to send an IGate client position directly to a server
# without sending it over the air and relying on someone else to
# forward it to an IGate server. This is done by using sendto=IG rather
# than a radio channel number. Overlay R for receive only, T for two way.
# PBEACON sendto=IG delay=0:30 every=30:00 symbol="igate" overlay=R lat=27^49.93N long=081^30.91W
#PBEACON sendto=IG delay=0:30 every=60:00 symbol="igate" overlay=T lat=42^37.14N long=071^20.83W
# To relay messages from the Internet to radio, you need to add
# one more option with the transmit channel number and a VIA path.
#IGTXVIA 0 WIDE1-1
# You might want to apply a filter for what packets will be obtained from the server.
# Read about filters here: http://www.aprs-is.net/javaprsfilter.aspx
# Example, positions and objects within 50 km of my location:
#IGFILTER m/50
# That is known as a server-side filter. It is processed by the IGate server.
# You can also apply local filtering to limit what will be transmitted on the
# RF side. For example, transmit only "messages" on channel 0 and weather
# reports on channel 1.
#FILTER IG 0 t/m
#FILTER IG 1 t/wn
# Finally, we don't want to flood the radio channel.
# The IGate function will limit the number of packets transmitted
# during 1 minute and 5 minute intervals. If a limit would
# be exceeded, the packet is dropped and message is displayed in red.
# IGTXLIMIT 6 10
#############################################################
# #
# APRStt GATEWAY #
# #
#############################################################
#
# Dire Wolf can receive DTMF (commonly known as Touch Tone)
# messages and convert them to packet objects.
#
# See separate "APRStt-Implementation-Notes" document for details.
#
#
# Sample gateway configuration based on:
#
# http://www.aprs.org/aprstt/aprstt-coding24.txt
# http://www.aprs.org/aprs-jamboree-2013.html
#
# Define specific points.
#TTPOINT B01 37^55.37N 81^7.86W
#TTPOINT B7495088 42.605237 -71.34456
#TTPOINT B934 42.605237 -71.34456
#TTPOINT B901 42.661279 -71.364452
#TTPOINT B902 42.660411 -71.364419
#TTPOINT B903 42.659046 -71.364452
#TTPOINT B904 42.657578 -71.364602
# For location at given bearing and distance from starting point.
#TTVECTOR B5bbbddd 37^55.37N 81^7.86W 0.01 mi
# For location specified by x, y coordinates.
#TTGRID Byyyxxx 37^50.00N 81^00.00W 37^59.99N 81^09.99W
# UTM location for Lowell-Dracut-Tyngsborough State Forest.
#TTUTM B6xxxyyy 19T 10 300000 4720000
# Location for the corral.
#TTCORRAL 37^55.50N 81^7.00W 0^0.02N
# Compact messages - Fixed locations xx and object yyy where
# Object numbers 100 - 199 = bicycle
# Object numbers 200 - 299 = fire truck
# Others = dog
#TTMACRO xx1yy B9xx*AB166*AA2B4C5B3B0A1yy
#TTMACRO xx2yy B9xx*AB170*AA3C4C7C3B0A2yy
#TTMACRO xxyyy B9xx*AB180*AA3A6C4A0Ayyy
#TTMACRO z Cz
# Receive on channel 0, Transmit object reports on channel 1 with optional via path.
# You probably want to put in a transmit delay on the APRStt channel so it
# it doesn't start sending a response before the user releases PTT.
# This is in 10 ms units so 100 means 1000 ms = 1 second.
#TTOBJ 0 1 WIDE1-1
#CHANNEL 0
#DWAIT 100
# Advertise gateway position with beacon.
# 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"
# Sample speech responses.
# Default is Morse code "R" for received OK and "?" for all errors.
#TTERR OK SPEECH Message Received.
#TTERR D_MSG SPEECH D not implemented.
#TTERR INTERNAL SPEECH Internal error.
#TTERR MACRO_NOMATCH SPEECH No definition for digit sequence.
#TTERR BAD_CHECKSUM SPEECH Bad checksum on call.
#TTERR INVALID_CALL SPEECH Invalid callsign.
#TTERR INVALID_OBJNAME SPEECH Invalid object name.
#TTERR INVALID_SYMBOL SPEECH Invalid symbol.
#TTERR INVALID_LOC SPEECH Invalid location.
#TTERR NO_CALL SPEECH No call or object name.
#TTERR SATSQ SPEECH Satellite square must be 4 digits.
#TTERR SUFFIX_NO_CALL SPEECH Send full call before using suffix.
Once that is saved and customized to what your needs are start direwolf. On Ubuntu direwolf will install with a service file and it will look for the configuration in /etc/direwolf. Just issue a “service direwolf start” and you can see what it is doing by “tail -f /var/log/syslog”
I am not going to post the whole linbpq32 configuration on this page as I am still tweeking it. Please note, the above direwolf file does not include any APRS configuration. I handle that though BPQ32.
I am not an expert on this and always willing to learn new things so please let me know if you see something I don’t.