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
Go to file
wb2osz 84efe8c59b Issue 187. Updated MicroModem performance. 2019-01-01 15:56:44 -05:00
doc Issue 187. Updated MicroModem performance. 2019-01-01 15:56:44 -05:00
geotranz Uninitialized variables found by static analysis. 2017-11-26 20:27:38 -05:00
man1 Time stamps and documentation for kissutil. 2017-09-30 13:41:58 -04:00
misc Compatibility with minGW gcc 5.3.0 2017-07-19 21:50:46 -04:00
regex Fix compile warnings found when adding -Wall and others. 2016-12-23 11:28:39 -05:00
telemetry-toolkit Add script to generate telemetry sequence numbers. 2015-12-30 21:49:13 -05:00
.gitattributes Rewrite GPS handling. Lots of other clean up. 2015-11-07 20:57:02 -05:00
.gitignore ignore file tweaks 2018-04-03 19:56:45 -06:00
99-direwolf-cmedia.rules PTT using GPIO of CM108/CM119. 2017-10-09 18:00:59 -04:00
CHANGES.md Version 1.5 2018-10-08 09:49:18 -04:00
LICENSE-dire-wolf.txt Version 1.0 - Initial commit 2015-07-26 20:35:07 -04:00
LICENSE-other.txt Version 1.0 - Initial commit 2015-07-26 20:35:07 -04:00
Makefile Development snapshot 1.3 dev F. 2015-09-07 19:56:20 -04:00
Makefile.linux Use standard DESTDIR, rather than INSTALLDIR, and allow it to be set on the make command line. 2018-01-03 22:40:21 -05:00
Makefile.macosx macOS: use INSTALLDIR in makefile to find libraries 2018-10-01 14:26:22 -04:00
Makefile.win 1.5 beta test version. 2018-01-07 15:58:04 -05:00
README.md Add link to separate repository with presentations. 2018-11-25 15:36:26 -05:00
aclients.c Include errno.h rather than sys/errno.h 2018-11-23 16:33:45 -05:00
aprs_tt.c Fix compile warnings found when adding -Wall and others. 2016-12-23 11:28:39 -05:00
aprs_tt.h APRStt enhancements including new 5 digit suffix format. 2015-12-24 15:25:13 -05:00
atest.c Add 100 baud AFSK default tones. 2018-07-02 12:02:28 -04:00
audio.c Better error messages. 2018-02-06 22:30:44 -05:00
audio.h New -T command line option for timestamps. 2018-01-03 21:04:33 -05:00
audio_portaudio.c 1.4 development snapshot C. 2016-07-03 18:09:34 -04:00
audio_stats.c 1.4 development snapshot C. 2016-07-03 18:09:34 -04:00
audio_stats.h Development snapshot 1.3 dev F. 2015-09-07 19:56:20 -04:00
audio_win.c Improve error message for audio output failure. 2018-09-12 06:31:42 -04:00
ax25_link.c Issue 132 continued. If a client app tried to send connected data when 2018-08-05 11:20:27 -04:00
ax25_link.h Issue 132 continued. If a client app tried to send connected data when 2018-08-05 11:20:27 -04:00
ax25_pad.c KISS Set Hardware commands TNC, TXBUF. 2017-10-05 21:31:52 -04:00
ax25_pad.h KISS Set Hardware commands TNC, TXBUF. 2017-10-05 21:31:52 -04:00
ax25_pad2.c More efficient and reliable connected mode lost frame recovery. 2018-01-01 16:38:43 -05:00
ax25_pad2.h More efficient and reliable connected mode lost frame recovery. 2018-01-01 16:38:43 -05:00
beacon.c Add beacon position ambiguity option. 2017-06-14 21:57:34 -04:00
beacon.h 1.4 development snapshot C. 2016-07-03 18:09:34 -04:00
cdigipeater.c Possible crash when CDIGIPEAT did not have optional alias. 2017-09-29 18:31:19 -04:00
cdigipeater.h Possible crash when CDIGIPEAT did not have optional alias. 2017-09-29 18:31:19 -04:00
cm108.c Version 1.5 2018-10-08 09:49:18 -04:00
cm108.h PTT using GPIO of CM108/CM119. 2017-10-09 18:00:59 -04:00
config.c Version 1.5 2018-10-08 09:49:18 -04:00
config.h New NOXID option to avoid wasting time to listed station(s) 2018-07-02 12:18:23 -04:00
decode_aprs.c Issue 151 - Add support for Multi-GNSS NMEA sentences. 2018-11-24 17:20:45 -05:00
decode_aprs.h Add 2400 & 4800 PSK modems. New functions to handle frames besides UI. 2016-05-01 18:46:47 -04:00
dedupe.c 1.4 development snapshot C. 2016-07-03 18:09:34 -04:00
dedupe.h Version 1.0 - Initial commit 2015-07-26 20:35:07 -04:00
demod.c Remove special case for ARM. Default is better 9600 performance. 2017-12-16 09:57:48 -05:00
demod.h Version 1.2 2015-07-26 21:17:23 -04:00
demod_9600.c Issue 107 - Avoid Signed integer overflows. 2017-07-30 21:43:29 -04:00
demod_9600.h Version 1.2 2015-07-26 21:17:23 -04:00
demod_afsk.c Issue 107 - Avoid Signed integer overflows. 2017-07-30 21:43:29 -04:00
demod_afsk.h Version 1.0 - Initial commit 2015-07-26 20:35:07 -04:00
demod_psk.c Issue 107 - Avoid Signed integer overflows. 2017-07-30 21:43:29 -04:00
demod_psk.h Add 2400 & 4800 PSK modems. New functions to handle frames besides UI. 2016-05-01 18:46:47 -04:00
digipeater.c Comment for future possibility. 2017-12-16 10:03:30 -05:00
digipeater.h Comment for future possibility. 2017-12-16 10:03:30 -05:00
direwolf-block-diagram.png Add block diagram to README. 2017-10-14 11:39:58 -04:00
direwolf.c Begin version 1.6 development. 2018-11-24 16:57:05 -05:00
direwolf.h MSG_NOSIGNAL is not available on macOS 2018-04-03 19:54:34 -06:00
direwolf.spec Clean up Linux install locations. 2018-01-02 21:54:13 -05:00
direwolf.txt Use new "i" filter for messages. 2017-12-16 10:14:10 -05:00
dlq.c Issue 132 continued. If a client app tried to send connected data when 2018-08-05 11:20:27 -04:00
dlq.h Issue 132 continued. If a client app tried to send connected data when 2018-08-05 11:20:27 -04:00
dsp.c 1.4 development snapshot C. 2016-07-03 18:09:34 -04:00
dsp.h Version 1.0 - Initial commit 2015-07-26 20:35:07 -04:00
dtime_now.c Mac OS X patches. 2017-12-16 17:00:56 -05:00
dtime_now.h Time stamps and documentation for kissutil. 2017-09-30 13:41:58 -04:00
dtmf.c Fix compile warnings found when adding -Wall and others. 2016-12-23 11:28:39 -05:00
dtmf.h PTT was being turned off too soon when sending Morse code. 2016-12-16 20:12:38 -05:00
dw-icon.ico Version 1.0 - Initial commit 2015-07-26 20:35:07 -04:00
dw-icon.png Version 1.0 - Initial commit 2015-07-26 20:35:07 -04:00
dw-icon.rc Version 1.0 - Initial commit 2015-07-26 20:35:07 -04:00
dw-start.sh Minor tweaks to dw-start.sh and documentation. 2017-04-22 11:24:14 -04:00
dwespeak.bat Version 1.2 2015-07-26 21:17:23 -04:00
dwespeak.sh Version 1.2 2015-07-26 21:17:23 -04:00
dwgps.c 1.4 development snapshot C. 2016-07-03 18:09:34 -04:00
dwgps.h Rewrite GPS handling. Lots of other clean up. 2015-11-07 20:57:02 -05:00
dwgpsd.c Fix compile warnings found when adding -Wall and others. 2016-12-23 11:28:39 -05:00
dwgpsd.h Rewrite GPS handling. Lots of other clean up. 2015-11-07 20:57:02 -05:00
dwgpsnmea.c Issue 151 - Add support for Multi-GNSS NMEA sentences. 2018-11-24 17:20:45 -05:00
dwgpsnmea.h Generate NMEA waypoint sentences ($PKWDWPL, etc.) for position and object reports. 2016-03-20 19:23:09 -04:00
encode_aprs.c Fix compile warnings found when adding -Wall and others. 2016-12-23 11:28:39 -05:00
encode_aprs.h Fix bug: "INTERNAL ERROR: dlq_append NULL packet pointer." when using PASSALL. 2015-12-06 10:09:27 -05:00
fcs_calc.c KISS TNC enhancements: Multiple TCP clients, serial port for Linux, polling for Bluetooth device. 2017-05-03 17:41:37 -04:00
fcs_calc.h Version 1.0 - Initial commit 2015-07-26 20:35:07 -04:00
fsk_demod_agc.h Version 1.0 - Initial commit 2015-07-26 20:35:07 -04:00
fsk_demod_state.h 1.4 development snapshot C. 2016-07-03 18:09:34 -04:00
fsk_filters.h Version 1.0 - Initial commit 2015-07-26 20:35:07 -04:00
fsk_gen_filter.h Version 1.0 - Initial commit 2015-07-26 20:35:07 -04:00
gen_packets.c Add 100 baud AFSK default tones. 2018-07-02 12:02:28 -04:00
gen_tone.c 1.4 development snapshot C. 2016-07-03 18:09:34 -04:00
gen_tone.h 1.4 development snapshot C. 2016-07-03 18:09:34 -04:00
generic.conf APRStt enhancements including new 5 digit suffix format. 2015-12-24 15:25:13 -05:00
grm_sym.h Development snapshot 1.3 dev F. 2015-09-07 19:56:20 -04:00
hdlc_rec.c AX.25 v2.2 connected mode. 2016-11-20 14:58:51 -05:00
hdlc_rec.h Clean up fix-bits feature. New experimental demodulator. 2015-11-29 10:44:30 -05:00
hdlc_rec2.c Fix compile warnings found when adding -Wall and others. 2016-12-23 11:28:39 -05:00
hdlc_rec2.h Clean up fix-bits feature. New experimental demodulator. 2015-11-29 10:44:30 -05:00
hdlc_send.c AX.25 v2.2 connected mode. 2016-11-20 14:58:51 -05:00
hdlc_send.h AX.25 v2.2 connected mode. 2016-11-20 14:58:51 -05:00
igate.c KISS over TCP behaved strangely with multiple client apps attached. 2018-02-11 19:45:44 -05:00
igate.h Issue 85 - Don't remove duplicates for IGate RX>IS direction. 2017-10-28 21:30:04 -04:00
kiss.c Include errno.h rather than sys/errno.h 2018-11-23 16:33:45 -05:00
kiss.h New "kissutil" application. 2017-09-11 22:32:18 -04:00
kiss_frame.c Better error messages. 2018-02-06 22:30:44 -05:00
kiss_frame.h New kissutil application. 2017-09-11 21:53:38 -04:00
kissnet.c Include errno.h rather than sys/errno.h 2018-11-23 16:33:45 -05:00
kissnet.h New "kissutil" application. 2017-09-11 22:38:22 -04:00
kissserial.c Mac OS X patches. 2017-12-16 17:00:56 -05:00
kissserial.h New "kissutil" application. 2017-09-11 22:38:22 -04:00
kissutil.c Include errno.h rather than sys/errno.h 2018-11-23 16:33:45 -05:00
latlong.c More Great Circle calculations for future use. 2017-07-19 22:08:34 -04:00
latlong.h Version 1.2 2015-07-26 21:17:23 -04:00
ll2utm.c 1.4 development snapshot C. 2016-07-03 18:09:34 -04:00
log.c Allow single log file with fixed name rather than starting a new one each day. 2017-06-17 19:39:59 -04:00
log.h Allow single log file with fixed name rather than starting a new one each day. 2017-06-17 19:39:59 -04:00
log2gpx.c 1.4 development snapshot C. 2016-07-03 18:09:34 -04:00
mgn_icon.h Generate NMEA waypoint sentences ($PKWDWPL, etc.) for position and object reports. 2016-03-20 19:23:09 -04:00
mheard.c New client side packet filter to select "messages" only to stations that have been heard nearby recently. This is now the default if no IS to RF filter is specified. 2017-01-01 11:49:55 -05:00
mheard.h New client side packet filter to select "messages" only to stations that have been heard nearby recently. This is now the default if no IS to RF filter is specified. 2017-01-01 11:49:55 -05:00
morse.c Fix compile warnings found when adding -Wall and others. 2016-12-23 11:28:39 -05:00
morse.h Development snapshot 1.3 dev F. 2015-09-07 19:56:20 -04:00
multi_modem.c Better error messages. 2018-02-06 22:30:44 -05:00
multi_modem.h Accumulate DC average for audio signal. 2017-12-16 10:10:36 -05:00
pfilter.c New station Capabilities and third party Header types for packet filtering. 2017-06-30 21:23:16 -04:00
pfilter.h New client side packet filter to select "messages" only to stations that have been heard nearby recently. This is now the default if no IS to RF filter is specified. 2017-01-01 11:49:55 -05:00
ptt.c PTT using GPIO of CM108/CM119. 2017-10-09 18:00:59 -04:00
ptt.h Implement TXINH 2015-11-17 11:19:12 -07:00
rdq.c Fix compile warnings found when adding -Wall and others. 2016-12-23 11:28:39 -05:00
rdq.h Version 1.0 - Initial commit 2015-07-26 20:35:07 -04:00
recv.c Issue 132 continued. If a client app tried to send connected data when 2018-08-05 11:20:27 -04:00
recv.h Version 1.2 2015-07-26 21:17:23 -04:00
redecode.h Version 1.2 2015-07-26 21:17:23 -04:00
rpack.h Version 1.1 2015-07-26 21:05:48 -04:00
rrbb.c 1.4 development snapshot C. 2016-07-03 18:09:34 -04:00
rrbb.h APRStt enhancements including new 5 digit suffix format. 2015-12-24 15:25:13 -05:00
sdr.conf Example of how to start up SDR IGate automatically. 2015-11-09 21:31:38 -05:00
search_sdks.sh macOS: default to latest macOS if version string isnt found 2018-10-01 14:26:22 -04:00
serial_port.c Include errno.h rather than sys/errno.h 2018-11-23 16:33:45 -05:00
serial_port.h 1.4 development snapshot C. 2016-07-03 18:09:34 -04:00
server.c KISS over TCP behaved strangely with multiple client apps attached. 2018-02-11 19:45:44 -05:00
server.h AX.25 v2.2 connected mode. 2016-11-20 14:58:51 -05:00
sock.c Include errno.h rather than sys/errno.h 2018-11-23 16:33:45 -05:00
sock.h New kissutil application. 2017-09-11 21:53:38 -04:00
symbols-new.txt Latest versions of symbols-new.txt and tocalls.txt. 2017-04-26 18:23:27 -04:00
symbols.c Mac OS X patches. 2017-12-16 17:00:56 -05:00
symbols.h Rewrite GPS handling. Lots of other clean up. 2015-11-07 20:57:02 -05:00
symbolsX.txt Update the symbols & tocalls file. 2016-02-27 15:37:45 -05:00
telemetry.c Replace asserts with internal error messages. 2017-07-19 22:10:12 -04:00
telemetry.h Rewrite GPS handling. Lots of other clean up. 2015-11-07 20:57:02 -05:00
textcolor.c Fix compile warnings found when adding -Wall and others. 2016-12-23 11:28:39 -05:00
textcolor.h Version 1.2 2015-07-26 21:17:23 -04:00
tnc-test-cd-results.png Minor documentation updates. 2018-02-06 22:33:17 -05:00
tocalls.txt Latest tocalls.txt 2018-01-02 23:22:12 -05:00
tq.c KISS Set Hardware commands TNC, TXBUF. 2017-10-05 21:31:52 -04:00
tq.h KISS Set Hardware commands TNC, TXBUF. 2017-10-05 21:31:52 -04:00
tt_text.c Update tt_text.c 2017-05-16 00:05:31 -04:00
tt_text.h APRStt enhancements including new 5 digit suffix format. 2015-12-24 15:25:13 -05:00
tt_user.c New "kissutil" application. 2017-09-11 22:35:44 -04:00
tt_user.h APRStt enhancements including new 5 digit suffix format. 2015-12-24 15:25:13 -05:00
ttcalc.c Include errno.h rather than sys/errno.h 2018-11-23 16:33:45 -05:00
tune.h Version 1.0 - Initial commit 2015-07-26 20:35:07 -04:00
utm2ll.c 1.4 development snapshot C. 2016-07-03 18:09:34 -04:00
version.h Begin version 1.6 development. 2018-11-24 16:57:05 -05:00
walk96.c 1.4 development snapshot C. 2016-07-03 18:09:34 -04:00
waypoint.c Include errno.h rather than sys/errno.h 2018-11-23 16:33:45 -05:00
waypoint.h Generate NMEA waypoint sentences ($PKWDWPL, etc.) for position and object reports. 2016-03-20 19:23:09 -04:00
xid.c More efficient and reliable connected mode lost frame recovery. 2018-01-01 16:38:43 -05:00
xid.h More efficient and reliable connected mode lost frame recovery. 2018-01-01 16:38:43 -05:00
xmit.c Issue 132 continued. If a client app tried to send connected data when 2018-08-05 11:20:27 -04:00
xmit.h Full Duplex. 2017-10-18 20:50:59 -04:00

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, Winlink Express (formerly known as RMS Express, formerly known as Winlink 2000 or WL2K), 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 computers “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

Power Point presentation -- Why not give a talk at a local club meeting?

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.

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

Macintosh OS X

Read the User Guide in the doc directory. It is a lot more complicated than Linux.

If you have problems, post them to the Dire Wolf packet TNC discussion group. I don't have a Mac and probably won't be able to help you. I rely on others, in the user community, for the Mac version.

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.