Dire Wolf is a software "soundcard" AX.25 packet modem/TNC and APRS encoder/decoder. It can be used stand-alone to observe APRS traffic, as a tracker, digipeater, APRStt gateway, or Internet Gateway (IGate). For more information, look at the bottom 1/4 of this page and in https://github.com/wb2osz/direwolf/blob/dev/doc/README.md
C Roff Shell Perl C++ Python
Clone or download
Permalink
Failed to load latest commit information.
doc Minor documentation updates. May 23, 2018
geotranz Fix compile warnings found when adding -Wall and others. Dec 23, 2016
man1 Generate NMEA waypoint sentences ($PKWDWPL, etc.) for position and ob… Mar 20, 2016
misc Fix compile warnings found when adding -Wall and others. Dec 23, 2016
regex Fix compile warnings found when adding -Wall and others. Dec 23, 2016
telemetry-toolkit Add script to generate telemetry sequence numbers. Dec 31, 2015
.gitattributes Rewrite GPS handling. Lots of other clean up. Nov 8, 2015
.gitignore Misc fixes for upstream #20. Jan 31, 2016
CHANGES.md Documentation updates. Apr 26, 2017
LICENSE-dire-wolf.txt Version 1.0 - Initial commit Jul 27, 2015
LICENSE-other.txt Version 1.0 - Initial commit Jul 27, 2015
Makefile Development snapshot 1.3 dev F. Sep 7, 2015
Makefile.linux Add cp -n option to avoid clobbering existing, probably customized, c… Apr 26, 2017
Makefile.macosx New client side packet filter to select "messages" only to stations t… Jan 1, 2017
Makefile.win Merge remote-tracking branch 'origin/dev' Apr 27, 2017
README.md Minor documentation updates. May 23, 2018
aclients.c Fix compile warnings found when adding -Wall and others. Dec 23, 2016
aprs_tt.c Fix compile warnings found when adding -Wall and others. Dec 23, 2016
aprs_tt.h APRStt enhancements including new 5 digit suffix format. Dec 24, 2015
atest.c AX.25 v2.2 connected mode. Nov 20, 2016
audio.c Fix compile warnings found when adding -Wall and others. Dec 23, 2016
audio.h Allow more flexible naming of GPIO pins. e.g. CubieBoard. Apr 1, 2017
audio_portaudio.c 1.4 development snapshot C. Jul 3, 2016
audio_stats.c 1.4 development snapshot C. Jul 3, 2016
audio_stats.h Development snapshot 1.3 dev F. Sep 7, 2015
audio_win.c Fix compile warnings found when adding -Wall and others. Dec 23, 2016
ax25_link.c Fix compile warnings found when adding -Wall and others. Dec 23, 2016
ax25_link.h AX.25 v2.2 connected mode. Nov 20, 2016
ax25_pad.c Proper trimming at CR/LF for RF>IS IGate. Apr 1, 2017
ax25_pad.h Proper trimming at CR/LF for RF>IS IGate. Apr 1, 2017
ax25_pad2.c Fix compile warnings found when adding -Wall and others. Dec 23, 2016
ax25_pad2.h Add 2400 & 4800 PSK modems. New functions to handle frames besides UI. May 1, 2016
beacon.c New client side packet filter to select "messages" only to stations t… Jan 1, 2017
beacon.h 1.4 development snapshot C. Jul 3, 2016
cdigipeater.c New client side packet filter to select "messages" only to stations t… Jan 1, 2017
cdigipeater.h AX.25 v2.2 connected mode. Nov 20, 2016
config.c Allow more flexible naming of GPIO pins. e.g. CubieBoard. Apr 1, 2017
config.h AX.25 v2.2 connected mode. Nov 20, 2016
decode_aprs.c Issue 84. IGate was truncating packets that contained nul character Mar 5, 2017
decode_aprs.h Add 2400 & 4800 PSK modems. New functions to handle frames besides UI. May 1, 2016
dedupe.c 1.4 development snapshot C. Jul 3, 2016
dedupe.h Version 1.0 - Initial commit Jul 27, 2015
demod.c Fix compile warnings found when adding -Wall and others. Dec 23, 2016
demod.h Version 1.2 Jul 27, 2015
demod_9600.c Fix compile warnings found when adding -Wall and others. Dec 23, 2016
demod_9600.h Version 1.2 Jul 27, 2015
demod_afsk.c Fix compile warnings found when adding -Wall and others. Dec 23, 2016
demod_afsk.h Version 1.0 - Initial commit Jul 27, 2015
demod_psk.c Fix compile warnings found when adding -Wall and others. Dec 23, 2016
demod_psk.h Add 2400 & 4800 PSK modems. New functions to handle frames besides UI. May 1, 2016
digipeater.c Don't digipeat packets when the source is my call. Mar 5, 2017
digipeater.h 1.4 development snapshot C. Jul 3, 2016
direwolf-block-diagram.png Add block diagram to README. May 23, 2018
direwolf.c Change version from 1.4 beta test to 1.4. Apr 26, 2017
direwolf.h AX.25 v2.2 connected mode. Nov 20, 2016
direwolf.spec Version 1.2 Jul 27, 2015
direwolf.txt Version 1.2 Jul 27, 2015
dlq.c AX.25 v2.2 connected mode. Nov 20, 2016
dlq.h AX.25 v2.2 connected mode. Nov 20, 2016
dsp.c 1.4 development snapshot C. Jul 3, 2016
dsp.h Version 1.0 - Initial commit Jul 27, 2015
dtime_now.c Rewrite GPS handling. Lots of other clean up. Nov 8, 2015
dtime_now.h Version 1.2 Jul 27, 2015
dtmf.c Fix compile warnings found when adding -Wall and others. Dec 23, 2016
dtmf.h PTT was being turned off too soon when sending Morse code. Dec 17, 2016
dw-icon.ico Version 1.0 - Initial commit Jul 27, 2015
dw-icon.png Version 1.0 - Initial commit Jul 27, 2015
dw-icon.rc Version 1.0 - Initial commit Jul 27, 2015
dw-start.sh Minor tweaks to dw-start.sh and documentation. Apr 22, 2017
dwespeak.bat Version 1.2 Jul 27, 2015
dwespeak.sh Version 1.2 Jul 27, 2015
dwgps.c 1.4 development snapshot C. Jul 3, 2016
dwgps.h Rewrite GPS handling. Lots of other clean up. Nov 8, 2015
dwgpsd.c Fix compile warnings found when adding -Wall and others. Dec 23, 2016
dwgpsd.h Rewrite GPS handling. Lots of other clean up. Nov 8, 2015
dwgpsnmea.c Fix compile warnings found when adding -Wall and others. Dec 23, 2016
dwgpsnmea.h Generate NMEA waypoint sentences ($PKWDWPL, etc.) for position and ob… Mar 20, 2016
encode_aprs.c Fix compile warnings found when adding -Wall and others. Dec 23, 2016
encode_aprs.h Fix bug: "INTERNAL ERROR: dlq_append NULL packet pointer." when using… Dec 6, 2015
fcs_calc.c 1.4 development snapshot C. Jul 3, 2016
fcs_calc.h Version 1.0 - Initial commit Jul 27, 2015
fsk_demod_agc.h Version 1.0 - Initial commit Jul 27, 2015
fsk_demod_state.h 1.4 development snapshot C. Jul 3, 2016
fsk_filters.h Version 1.0 - Initial commit Jul 27, 2015
fsk_gen_filter.h Version 1.0 - Initial commit Jul 27, 2015
gen_packets.c PTT was being turned off too soon when sending Morse code. Dec 17, 2016
gen_tone.c 1.4 development snapshot C. Jul 3, 2016
gen_tone.h 1.4 development snapshot C. Jul 3, 2016
generic.conf APRStt enhancements including new 5 digit suffix format. Dec 24, 2015
grm_sym.h Development snapshot 1.3 dev F. Sep 7, 2015
hdlc_rec.c AX.25 v2.2 connected mode. Nov 20, 2016
hdlc_rec.h Clean up fix-bits feature. New experimental demodulator. Nov 29, 2015
hdlc_rec2.c Fix compile warnings found when adding -Wall and others. Dec 23, 2016
hdlc_rec2.h Clean up fix-bits feature. New experimental demodulator. Nov 29, 2015
hdlc_send.c AX.25 v2.2 connected mode. Nov 20, 2016
hdlc_send.h AX.25 v2.2 connected mode. Nov 20, 2016
igate.c Proper trimming at CR/LF for RF>IS IGate. Apr 1, 2017
igate.h New client side packet filter to select "messages" only to stations t… Jan 1, 2017
kiss.c New client side packet filter to select "messages" only to stations t… Jan 1, 2017
kiss.h Version 1.0 - Initial commit Jul 27, 2015
kiss_frame.c 1.4 development snapshot C. Jul 3, 2016
kiss_frame.h Version 1.2 Jul 27, 2015
kissnet.c Fix compile warnings found when adding -Wall and others. Dec 23, 2016
kissnet.h Version 1.0 - Initial commit Jul 27, 2015
latlong.c 1.4 development snapshot C. Jul 3, 2016
latlong.h Version 1.2 Jul 27, 2015
ll2utm.c 1.4 development snapshot C. Jul 3, 2016
log.c AX.25 v2.2 connected mode. Nov 20, 2016
log.h AX.25 v2.2 connected mode. Nov 20, 2016
log2gpx.c 1.4 development snapshot C. Jul 3, 2016
mgn_icon.h Generate NMEA waypoint sentences ($PKWDWPL, etc.) for position and ob… Mar 20, 2016
mheard.c New client side packet filter to select "messages" only to stations t… Jan 1, 2017
mheard.h New client side packet filter to select "messages" only to stations t… Jan 1, 2017
morse.c Fix compile warnings found when adding -Wall and others. Dec 23, 2016
morse.h Development snapshot 1.3 dev F. Sep 7, 2015
multi_modem.c AX.25 v2.2 connected mode. Nov 20, 2016
multi_modem.h Clean up fix-bits feature. New experimental demodulator. Nov 29, 2015
pfilter.c New client side packet filter to select "messages" only to stations t… Jan 1, 2017
pfilter.h New client side packet filter to select "messages" only to stations t… Jan 1, 2017
ptt.c Allow more flexible naming of GPIO pins. e.g. CubieBoard. Apr 1, 2017
ptt.h Implement TXINH Nov 17, 2015
rdq.c Fix compile warnings found when adding -Wall and others. Dec 23, 2016
rdq.h Version 1.0 - Initial commit Jul 27, 2015
recv.c AX.25 v2.2 connected mode. Nov 20, 2016
recv.h Version 1.2 Jul 27, 2015
redecode.h Version 1.2 Jul 27, 2015
rpack.h Version 1.1 Jul 27, 2015
rrbb.c 1.4 development snapshot C. Jul 3, 2016
rrbb.h APRStt enhancements including new 5 digit suffix format. Dec 24, 2015
sdr.conf Example of how to start up SDR IGate automatically. Nov 10, 2015
search_sdks.sh Mac OSX build procedure is now better about locating the SDK. Jan 24, 2016
serial_port.c Fix compile warnings found when adding -Wall and others. Dec 23, 2016
serial_port.h 1.4 development snapshot C. Jul 3, 2016
server.c Minor documentation updates. Mar 5, 2017
server.h AX.25 v2.2 connected mode. Nov 20, 2016
symbols-new.txt Latest versions of symbols-new.txt and tocalls.txt. Apr 26, 2017
symbols.c Fix compile warnings found when adding -Wall and others. Dec 23, 2016
symbols.h Rewrite GPS handling. Lots of other clean up. Nov 8, 2015
symbolsX.txt Update the symbols & tocalls file. Feb 27, 2016
telemetry.c Fix compile warnings found when adding -Wall and others. Dec 23, 2016
telemetry.h Rewrite GPS handling. Lots of other clean up. Nov 8, 2015
textcolor.c Fix compile warnings found when adding -Wall and others. Dec 23, 2016
textcolor.h Version 1.2 Jul 27, 2015
tnc-test-cd-results.png Minor documentation updates. May 23, 2018
tocalls.txt Latest versions of symbols-new.txt and tocalls.txt. Apr 26, 2017
tq.c AX.25 v2.2 connected mode. Nov 20, 2016
tq.h AX.25 v2.2 connected mode. Nov 20, 2016
tt_text.c 1.4 development snapshot C. Jul 3, 2016
tt_text.h APRStt enhancements including new 5 digit suffix format. Dec 24, 2015
tt_user.c 1.4 development snapshot C. Jul 3, 2016
tt_user.h APRStt enhancements including new 5 digit suffix format. Dec 24, 2015
ttcalc.c Fix compile warnings found when adding -Wall and others. Dec 23, 2016
tune.h Version 1.0 - Initial commit Jul 27, 2015
utm2ll.c 1.4 development snapshot C. Jul 3, 2016
version.h Generate NMEA waypoint sentences ($PKWDWPL, etc.) for position and ob… Mar 20, 2016
walk96.c 1.4 development snapshot C. Jul 3, 2016
waypoint.c Fix compile warnings found when adding -Wall and others. Dec 23, 2016
waypoint.h Generate NMEA waypoint sentences ($PKWDWPL, etc.) for position and ob… Mar 20, 2016
xid.c Fix compile warnings found when adding -Wall and others. Dec 23, 2016
xid.h Fix compile warnings found when adding -Wall and others. Dec 23, 2016
xmit.c New client side packet filter to select "messages" only to stations t… Jan 1, 2017
xmit.h Version 1.2 Jul 27, 2015

README.md

Dire Wolf

Decoded Information from Radio Emissions for Windows Or Linux Fans

In the early days of Amateur Packet Radio, it was necessary to use an expensive “Terminal Node Controller” (TNC) with specialized hardware. Those days are gone. You can now get better results at lower cost by connecting your radio to the “soundcard” interface of a computer and using software to decode the signals.

Why settle for mediocre receive performance from a 1980's technology TNC using an old modem chip? Dire Wolf decodes over 1000 error-free frames from Track 2 of the WA8LMF TNC Test CD, leaving all the hardware TNCs, and first generation "soundcard" modems, behind in the dust.

Dire Wolf is a modern software replacement for the old 1980's style TNC built with special hardware.

Without any additional software, it can perform as:

  • APRS GPS Tracker
  • Digipeater
  • Internet Gateway (IGate)
  • APRStt gateway

It can also be used as a virtual TNC for other applications such as APRSIS32, UI-View32, Xastir, APRS-TW, YAAC, UISS, Linux AX25, SARTrack, RMS Express, BPQ32, Outpost PM, and many others.

Features & Benefits

Dire Wolf includes:

  • Beaconing, Tracker, Telemetry Toolkit.

    Send periodic beacons to provide information to others. For tracking the location is provided by a GPS receiver. Build your own telemetry applications with the toolkit.

  • APRStt Gateway.

    Very few hams have portable equipment for APRS but nearly everyone has a handheld radio that can send DTMF tones. APRStt allows a user, equipped with only DTMF (commonly known as Touch Tone) generation capability, to enter information into the global APRS data network. Responses can be sent by Morse Code or synthesized speech.

  • Digipeaters for APRS and traditional Packet Radio.

    Extend the range of other stations by re-transmitting their signals. Unmatched flexibility for cross band repeating and filtering to limit what is retransmitted.

  • Internet Gateway (IGate).

    IGate stations allow communication between disjoint radio networks by allowing some content to flow between them over the Internet.

  • AX.25 v2.2 Link Layer.

    Traditional connected mode packet radio where the TNC automatically retries transmissions and delivers data in the right order.

  • KISS Interface (TCP/IP, serial port, Bluetooth) & AGW network Interface (TCP/IP).

    Dire Wolf can be used as a virtual TNC for applications such as APRSIS32, UI-View32, Xastir, APRS-TW,YAAC, UISS, Linux AX25, SARTrack, Winlink / RMS Express, Outpost PM, and many others.

Radio Interfaces:

  • Uses computer’s “soundcard” and digital signal processing.

    Lower cost and better performance than specialized hardware.

    Compatible interfaces include UDRC, SignaLink USB, DMK URI, RB-USB RIM, RA-35, and many others.

  • Standard 300, 1200 & 9600 bps modems and more.

  • DTMF (“Touch Tone”) Decoding and Encoding.

  • Speech Synthesizer & Morse code generator.

    Transmit human understandable messages.

  • Compatible with Software Defined Radios such as gqrx, rtl_fm, and SDR#.

  • Concurrent operation with up to 3 soundcards and 6 radios.

Portable & Open Source:

  • Runs on Windows, Linux (PC/laptop, Raspberry Pi, etc.), Mac OSX.

Documentation

Stable Version

Latest Development Version

Installation

Windows

Go to the releases page. Download a zip file with "win" in its name, unzip it, and run direwolf.exe from a command window.

For more details see the User Guide in the doc directory.

Linux - Using git clone (recommended)

cd ~
git clone https://www.github.com/wb2osz/direwolf
cd direwolf
make
sudo make install
make install-conf

This should give you the most recent stable release. If you want the latest (possibly unstable) development version, use "git checkout dev" before the first "make" command.

For more details see the User Guide in the doc directory. Special considerations for the Raspberry Pi are found in Raspberry-Pi-APRS.pdf

Linux - Using apt-get (Debian flavor operating systems)

Results will vary depending on your hardware platform and operating system version because it depends on various volunteers who perform the packaging.

sudo apt-get update
apt-cache showpkg direwolf
sudo apt-get install direwolf

Linux - Using yum (Red Hat flavor operating systems)

Results will vary depending on your hardware platform and operating system version because it depends on various volunteers who perform the packaging.

sudo yum check-update
sudo yum list direwolf
sudo yum install direwolf

Linux - Download source in tar or zip file

Go to the releases page. Chose desired release and download the source as zip or compressed tar file. Unpack the files, with "unzip" or "tar xfz," and then:

cd direwolf-*
make
sudo make install
make install-conf

For more details see the User Guide in the doc directory. Special considerations for the Raspberry Pi are found in Raspberry-Pi-APRS.pdf

Join the conversation

Here are some good places to ask questions and share your experience:

The github "issues" section is for reporting software defects and enhancement requests. It is NOT a place to ask questions or have general discussions. Please use one of the locations above.