Git Product home page Git Product logo

wb2osz / direwolf Goto Github PK

View Code? Open in Web Editor NEW
1.5K 116.0 296.0 138.96 MB

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

License: GNU General Public License v2.0

C 96.73% C++ 0.09% Shell 0.21% Makefile 0.04% Batchfile 0.01% Perl 0.23% Python 0.03% CMake 2.66%
tnc igate ham-radio packet-radio raspberry-pi digipeater aprs ax25

direwolf's People

Contributors

ab0tj avatar arodland avatar behemoththekitten avatar bjpetit avatar df7cb avatar dforsi avatar dwainegarden avatar ew1abz avatar hessu avatar jbuhler-c4 avatar jg1uaa avatar jmkristian avatar martinhpedersen avatar mcdermj avatar mdomsch avatar ra1nb0w avatar tehmaze avatar wb2osz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

direwolf's Issues

Suggest a fixed name for logging

I've gone ahead and changed log.c so the logging file is a fixed name (traffic.log) rather than a log with a time stamp in it. The reason is to leverage logrotate to manage logs.

I'm not suggesting that "traffic.log" is the best name but the use of logrotate is a nice standard solution for Linux systems. I'm not aware of the Windows equivalent for logrotate.

9600 packet decoding failure

Here is the recording:
http://tortel.net/~lochner/sunsat/19990303_0225_9600_8bis_22kHz.wav

Direwolf (1.2 release, current master and dev branches) decodes no packets:

$ atest -B 9600 19990303_0225_9600_8bis_22kHz.wav 
...
0 packets decoded in 0 seconds.

While multimon decodes them fine:

$ multimon -q -a FSK9600 -t wav 19990303_0225_9600_8bis_22kHz.wav 
FSK9600: fm SUNSAT-14 to ZS1SUN-14 UI^ pid=F0
......E.!...!.!.E...S....
FSK9600: fm SUNSAT-14 to ZS1SUN-14 UI^ pid=F0
......E.!...!.!.E...S....
FSK9600: fm SUNSAT-14 to ZS1SUN-14 UI^ pid=F0
......E.!...!.!.E...S....
FSK9600: fm SUNSAT-14 to ZS1SUN-14 UI^ pid=F0
......E.!...!.!.E...S....
FSK9600: fm SUNSAT-14 to ZS1SUN-14 UI^ pid=F0
...............AQY!.O.N.N

fsk_fast_filter.h

When compiling from github (or downloading the gz file) on make, i get the error that fsk_fast_filter.h cannot be found.
Right so, because it did not come with the git clone command. I use

Erik, PA0ESH

Machine: i686
Linux mini-ubuntu 3.13.0-83-generic #127-Ubuntu SMP Fri Mar 11 00:26:47 UTC 2016 i686 i686 i686 GNU/Linux

GPIO pin naming

When setting up GPIO for PTT Direwolf expects a number. This doesn't work on the Cubieboard where gpio pins are named differently. E.g. GPIO pin 61 is mapped to the device name gpio61_pi13 instead of just gpio61. To activate a pin, one still use just the number. E.g. "echo 61 > /sys/class/gpio/export".

Is it possible to support these boards by configuring using a name instead of just a number, or is there a workaround?

debian packaging

It would be excellent to provide a debian directory for creating .deb packages.

Segfault when -p flag used

I'm just getting in to APRS and I've hit a problem. Perhaps the shell output is the best way to demonstrate:

Ξ ~ → direwolf
Dire Wolf version 1.3
Includes optional support for:  gpsd

Reading config file direwolf.conf
Audio device for both receive and transmit: default  (channel 0)
Channel 0: 1200 baud, AFSK 1200 & 2200 Hz, E+, 44100 sample rate, DTMF decoder enabled.
Note: PTT not configured for channel 0. (Ignore this if using VOX.)
Ready to accept AGW client application 0 on port 8000 ...
Use -p command line option to enable KISS pseudo terminal.
Ready to accept KISS client application on port 8001 ...
^C
QRT
Ξ ~ → direwolf -p
Dire Wolf version 1.3
Includes optional support for:  gpsd

Reading config file direwolf.conf
Audio device for both receive and transmit: default  (channel 0)
Channel 0: 1200 baud, AFSK 1200 & 2200 Hz, E+, 44100 sample rate, DTMF decoder enabled.
Note: PTT not configured for channel 0. (Ignore this if using VOX.)
zsh: segmentation fault (core dumped)  direwolf -p
↑139 ~ →

OS: Arch Linux
Compiled from latest source with

git clone https://github.com/wb2osz/direwolf/
make
sudo make install

Add possibility to define "one" log file name

iIt's not issue ;)
Dire Wolf version 1.3
Add possibility to define "one" log file name .
i'm use log file to display data on lcd .. on orangepi.
And need to check directory for new log files.
//strftime (fname, sizeof(fname), "%Y-%m-%d.log", &tm);
strftime (fname, sizeof(fname), direwolf.log", &tm);
change, in log.c do the job.,
But it will be cool if we can set up it from command line ,
or maybe i missed something .,
Btw. Great job ...

No audio level reported.

Hi,

I have recently moved from a PC running soundmodem and APRSIS32 to a Raspberry Pi 3 running Direwolf 1.3 as a Rx only iGate. Firstly many thinks for the documentation provided makes life so much easier.

Everything seems to be working fine and the packets are getting to the APRS network etc but the audio level is always reported as 0.

I am using this usb sound card http://www.amazon.co.uk/dp/B010N8UP6C
Output from lsusb;
Bus 001 Device 004: ID 0d8c:0014 C-Media Electronics, Inc.

Regards

Dorian

Absolute Newbie with a question

First attempt to use this code from source. Windows 10 Pro 64 bit environment. Fresh load of the MinGW components etc,

make -f Makefile.win succeeds.

execution of newly created direwolf.exe crashes. gdb error message is:
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 824.0xda4]
0x0045bd07 in convolve (filter_size=156, filter=0x47d420 <demodulator_state+96>, data=0x47ed20 <demodulator_state+6496>)
at demod_afsk.c:117
117 sum += f[j] * d[j];
(gdb)

Any suggestions most welcome:

73
KD6CWF
Terry

PTT always on with serial port

I use serial port to PTT in Windows 7 (Native RS232 and USB to RS232 adapter). When I turn on the Direwolf the TRX turn in TX.
I only made one change in the direwolf.conf: "PTT COM1 RTS"

I tried the AGWPE and the PTT work fine

Thanks for help

Crash when using raw KISS TNC

I have custom protocol that I'm working on(https://github.com/vvanders/nbplink) that I was hoping to use Direwolf as a raw KISS TNC for Signal Link and other soundcard based radio interfaces.

With the current version(1.3) Direwolf is crashing for me with the first packet sent across. I have packets successfully working on a Kenwood D710 and Mobilinkd via serial ports so I'm somewhat sure that the KISS framing is valid.

I'd be happy to dig into Direwolf more but I can't seem to build it for my platform(Win10) a "make direwolf" from cygwin w/ MinGW tools on the path returns:

$ make direwolf
gcc -Wall -Ofast -msse -Iregex -Iutm -Igeotranz -mthreads -DUSE_REGEX_STATIC -g   -c -o beacon.o beacon.c
beacon.c:68:12: error: conflicting types for 'localtime_r'
 struct tm *localtime_r(time_t *clock, struct tm *res)
            ^
In file included from beacon.c:40:0:
C:/msys64/mingw64/x86_64-w64-mingw32/include/time.h:269:34: note: previous definition of 'localtime_r' was here
 __forceinline struct tm *__cdecl localtime_r(const time_t *_Time, struct tm *_Tm) {
                                  ^

Anyway, repro is pretty simple, Win10, v1.3 I'm sending the following bytes over the TCP port:

Wrote [192, 0, 20, 163, 178, 115, 107, 92, 77, 140, 0, 0, 0, 0, 107, 92, 77, 140, 0, 0, 0, 0, 32, 116, 101, 115, 116, 10, 140, 153, 192]

direwolf.conf is:

#############################################################
#                                                           #
#               Configuration file for Dire Wolf            #
#                                                           #
#                   Windows version                         #
#                                                           #
#############################################################
#
# 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.
# 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.
#


#############################################################
#                                                           #
#               FIRST AUDIO DEVICE PROPERTIES               #
#               (Channel 0 + 1 if in stereo)                #
#                                                           #
#############################################################

#
# Many people will simply use the default sound device.
# Some might want to use an alternative device by chosing it here.
#
# When the Windows version starts up, it displays something like 
# this with the available sound devices and capabilities:
#
#   Available audio input devices for receive (*=selected):
#      *  0: Microphone (C-Media USB Headpho   (channel 2)
#         1: Microphone (Bluetooth SCO Audio
#         2: Microphone (Bluetooth AV Audio)
#    *    3: Microphone (Realtek High Defini   (channels 0 & 1)
#   Available audio output devices for transmit (*=selected):
#      *  0: Speakers (C-Media USB Headphone   (channel 2)
#         1: Speakers (Bluetooth SCO Audio)
#         2: Realtek Digital Output(Optical)
#         3: Speakers (Bluetooth AV Audio)
#    *    4: Speakers (Realtek High Definiti   (channels 0 & 1)
#         5: Realtek Digital Output (Realtek
#   
# Example: To use the microphone and speaker connections on the 
# system board, either of these forms can be used:

#ADEVICE High
#ADEVICE  3 4 


# Example: To use the USB Audio, use a command like this with
# the input and output device numbers.  (Remove the # comment character.)
#ADEVICE USB

# The position in the list can change when devices (e.g. USB) are added and removed.
# You can also specify devices by using part of the name.
# Here is an example of specifying the USB Audio device.
# This is case-sensitive.  Upper and lower case are not treated the same.

#ADEVICE USB


# ADEVICE - 0
# ADEVICE UDP:7355 0

#
# Number of audio channels for this souncard:  1 or 2.
#

ACHANNELS 1
#ACHANNELS 2


#############################################################
#                                                           #
#               SECOND AUDIO DEVICE PROPERTIES              #
#               (Channel 2 + 3 if in stereo)                #
#                                                           #
#############################################################

#ADEVICE1  ...


#############################################################
#                                                           #
#               THIRD AUDIO DEVICE PROPERTIES               #
#               (Channel 4 + 5 if in stereo)                #
#                                                           #
#############################################################

#ADEVICE2  ...


#############################################################
#                                                           #
#               CHANNEL 0 PROPERTIES                        #
#                                                           #
#############################################################

CHANNEL 0

#
# The following MYCALL, MODEM, PTT, etc. configuration items
# apply to the most recent CHANNEL.
#

#
# Station identifier for this channel.
# Multiple channels can have the same or different names.
#
# It can be up to 6 letters and digits with an optional ssid.
# The APRS specification requires that it be upper case.
#
# Example (don't use this unless you are me):  MYCALL   WB2OSZ-5
#

MYCALL N0CALL

#
# Pick a suitable modem speed based on your situation.
#   1200    Most common for VHF/UHF.  Default if not specified.
#   300 Low speed for HF SSB.
#   9600    High speed - Can't use Microphone and Speaker connections.
#
# In the simplest form, just specify the speed. 
# 

MODEM 1200
#MODEM 300
#MODEM 9600

#
# These are the defaults should be fine for most cases.  In special situations, 
# you might want to specify different AFSK tones or the baseband mode which does
# not use AFSK.
#
#MODEM 1200 1200:2200
#MODEM 300  1600:1800
#MODEM 9600 0:0
#
#
# On HF SSB, you might want to use multiple demodulators on slightly different
# frequencies to compensate for stations off frequency.  Here we have 7 different
# demodulators at 30 Hz intervals.  This takes a lot of CPU power so you will 
# probably need to reduce the audio sampling rate with the /n option.

#MODEM 300 1600:1800 7@30 /4


#
# Uncomment line below to enable the DTMF decoder for this channel.
#

#DTMF

# 
# If not using a VOX circuit, the transmitter Push to Talk (PTT) 
# control is usually wired to a serial port with a suitable interface circuit.  
# DON'T connect it directly!
#
# For the PTT command, specify the device and either RTS or DTR.
# RTS or DTR may be preceded by "-" to invert the signal.
# Both can be used for interfaces that want them driven with opposite polarity.
#

#PTT COM1 RTS
#PTT COM1 RTS -DTR

# The Data Carrier Detect (DCD) signal can be sent to the same places
# as the PTT signal.  This could be used to light up an LED like a normal TNC.

#DCD COM1 -DTR


#############################################################
#                                                           #
#               CHANNEL 1 PROPERTIES                        #
#                                                           #
#############################################################

#CHANNEL 1

#
# Specify MYCALL, MODEM, PTT, etc. configuration items for 
# CHANNEL 1.   Repeat for any other channels.


#############################################################
#                                                           #
#               TEXT TO SPEECH COMMAND FILE                 #
#                                                           #
#############################################################

#SPEECH dwespeak.bat


#############################################################
#                                                           #
#               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 serial port
#

#AGWPORT 8000
KISSPORT 8001

#
# Some applications are designed to operate with only a physical
# TNC attached to a serial port.  For these, we provide a virtual serial
# port that appears to be connected to a TNC.
#
# Take a look at the User Guide for instructions to set up
# two virtual serial ports named COM3 and COM4 connected by
# a null modem.
#
# Using the  configuration described, Dire Wolf will connect to 
# COM3 and the client application will use COM4.
#
# Uncomment following line to use this feature.

#NULLMODEM COM3


#
# 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 MYCALL"


#
# 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 WB2OSZ-5 123456

# 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=60:00 symbol="igate" overlay=R lat=42^37.14N long=071^20.83W 
#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.

If you want to build and run nbplink I'm happy to provide detailed steps.

Thanks,
Val

Support Direwolf based pre-emphasis for radios using 9600BAUD connection

Making this an official issue to not be forgotten and maybe implemented someday

More and more users (including myself) would like to leave our radios in "9600 baud mode" where the soundcard is connected to the radio's discriminator output). The issue here is that the resulting RF output would be flat audio. This is BAD as AFSK1200 signals should have the high tone be significantly higher so that when the receiving radio hears the signal and applies it's expected de-emphasis, the resulting signal going to it's TNC should be flat.

I know that Svxlink for Linux (a Linux based repeater controller / Echolink node) supports this kind of functionality so it's technically possible.

--David

Dire Wolf terminal displays wrong frequency

In Australia we use 145.175MHz for APRS.
When I run rtl_fm -f 145.175M - | direwolf -c sdr.conf -r 24000 -D
on my RPi 2, (latest Jessie), the program runs but tells me it's tuned to 145427000Hz (252kHz high)
I'm new to Linux. I know enough to be dangerous but can't diagnose this myself.
Thanks, Bob, vk2byf

DireWOlf virtual TNC and ARDOP

Hi,
It will be fine that DireWolf will be have support new hamradio protocol ARDOP http://www.winlink.org/content/ardop_overview
I know that exist ARDOP source by G8BPQ which implement in BPQ32 software https://github.com/g8bpq/LinBPQ/blob/master/ARDOP.c

or use ARDOP version C by G8BPQ https://dl.dropboxusercontent.com/u/31910649/ARDOPC.txt

It maybe will easy or not :-) add ARDOP use via Sound card and with RMS Express or other Winlink application like PAT Wilnik client: https://github.com/la5nta/pat

73 Waldek SP2ONG

Makefile.linux

Since the moving of the documents to a subdirectory the make file doesn't have the correct directory structure (at least when I did git pull to get the source) to allow the makefile to work. As I had the documents downloaded I removed the lines with the pdfs from the makefile and also renamed changes.txt to changes.md as that also isn't updated in the makefile.

pdf files should be generated based on some marked up format

The current set of pdf's provided as docs do not allow for copy/pasting of text to and from. These docs should be generated based on markup in the git repo, rather than just added to the repo as PDF's.

If text-based source is available, I'm willing to work on the "translation" into marked up documents, and the build scripts to generate various formats.

Invalid Transmit Channel

I am running Dire Wolf in Jessie on a RPi. Works great. I'm using it with packlink as well as simply connecting with axcall.

However, when it initially starts up, the first two transmit attempts result in "Invalid Transmit Channel" errors. The third transmit attempt always works and then all subsequent attempts work.

What am I doing wrong?

Thanks,
David

image

Feature request WX info

I have been trying to come up with a workaround for this myself, but I am at a standstill.
Is there any way to grab WX info from a file that is already properly formatted to send out on APRS and beacon using that? Or any combination of ways to get direwolf to beacon WX info. Greatly appreciated!

Help with GPIO Raspberry

Hi, this software is awesome and work very well but i've a little problem with PTT: I've a yaesu radio and open and close ptt with a simple relay. If i do gpio mode 1 out and gpio write 1 1 and gpio write 1 0 the ptt works perfectly but if i set on direwolf.conf PTT GPIO 1 the ptt doen't work. Thanks a lot for the help !

APRS messages handling

It might be useful to have an APRS messages management. For example store messages in a separate log file or sqlite db, or trigger a custom script with decoded message in input.

With this feature it would be possible to create robots that automatically responds to messages, for example with meteorological reports or others informations and reply to APRS Queries.

Unrouted path digipeating?

Hello.
Is there any way to run the digipeater for unrouted paths?

For example:
Frame transmitted by me:
SQ8VPS>APRS,SP2-2:info
And then frame repeated by digi:
SQ8VPS>APRS,SP2-1:info
And repeated by next digi:
SQ8VPS>APRS,SP2*:info

How can I do that?

73!

Digipeating fails but Igate continues to function

I installed v1.3.1 based on the text I read about the previous version having some Windows keying problems.

My Igate/digi is up an running but not without some other software help.

For some background, I'm running Windows 7 on a netbook (CPU useage ~ 2 - 5 %) and use a USB to serial adapter. I have used two different adapters with, to the best of my knowledge, equal succes. One uses a Prolific chipset and the other is FTDI. Both use "legitimate" chipsets and have given me no trouble in other applications.

There are actually two problems I have encountered and they are as follows:

At first, I ran only as an Igate station. Setup was straight forward and I was up and running in little time. The problem was the Dire Wolf engine would abruptly terminate for no apparent reason. The time-frame for the problem could be in as little as within the first hour to as many as 14 hours.

My work-around for this was to include a process monitor which would automatically restart Dire Wolf upon unexpected termination. With this in place, I had no other issues with the engine and everything worked fine without having to check on it's status. If the engine terminates, it is restarted within 20 seconds. The process monitor also logs unexpected terminations.

The second problem arose when I implemented the digipeater functionality. Setup was clean and fast due to the excellent documentation and my digi was on the air quickly. Unfortunately, something happens where the engine fails to send the command to digipeat. I see the command on the monitor window but the LED indicator on my interface (RTS > opto > PTT) does not indicate that the RTS signal changes states.

Simply restarting the DW engine corrects the problem until the next time this happens. The problem is random and may occur within a very few minutes or may not occur again for a couple of hours. My work-around for this problem was to schedule tasks to terminate the engine on a regular basis (once every 20 minutes). Once terminated, the process monitor restarts the the engine and the station is up again within the minute.

At this point, the scheduled tasks and the process monitor keep the station on the air without human intervention but I still see times when the digipeater function fails prior to time for the scheduled task to purposely restart the engine. I've minmised my digipeater downtime but something is still not right with v1.3.1. Again, the Igate functionality continues without a hitch.

Is there anything I can do to collect more useful data for the developer?

73, Greg

Add possibility to define multiple PTT and DCD outputs

Would it be possible to allow defining mulitiple PTT and DCD outputs? In this way, on a Beaglebone Black or RPi, one could have a PTT to trigger the radio and another to trigger one of the on-board LEDs as TX indicator.

Add GPIO LED support when PTT is asserted

The Direwolf DCD indicator is very helpful and I wonder if it would be possible to add another output GPIO pin for when PTT is asserted? I realize I could just tap the PTT GPIO pin to get the LED to light up but I think it would be a cleaner design if I could do this via another GPIO pin.

Wrong IGate Server

I set my IGate server to aunz.aprs2.net in my sdr.conf file.
The system tells me it's connected to noam.aprs2.net.
This is probably not a direwolf issue but my lack of understanding the APRS network.
Sorry, Bob, vk2byf

How to configure hamlib for ptt

I saw in the December pre release that support for hamlib was added. I'd like to give it a whirl, but I don't know how to configure it. What shall I put on the PTT line?

Thanks!

KISS TCP only accepts one client

It looks like multiple clients can connect to the KISS TCP port on direwolf, but only the first one that connects to it actually receives data, is that correct?

Missing instructions in Raspberry-Pi-APRS.pdf manual for Automatic Startup

In the Automatic Startup section of the Raspberry-Pi-APRS.pdf manual (section 6.1) it says to add a line into the 'crontab' file to have a script run once a minute. That portion actually works correctly, but it would not run the script file 'dw-start.sh'. The script file needs to be flagged as 'executable' for the script to run. dw-start.sh was not flagged as executable, therefore it did not run.

To make the dw-start.sh file executable, enter :
sudo chmod +x dw-start.sh
at the command prompt.

This is only a documentation issue for this manual.
Arnold
KQ6DI

Can Direwolf jump into 14400 or 19200 baud rates

We in Camagüey, Cuba use Direwolf as a software modem to maintain a 2m VHF radio packet network using full TCP/IP protocol.

This network is used as a very cheap alternative to connect to our international email provided by our ham radio association. (Internet here is $2 USD/hour, that is about a mean monthly salary for one full day of connectivity)

We will love to see a version of direwolf implementing a faster FSK modem, let's say 14400 or 19200 baud rate ones.

Can this be done?

We have plenty of BW allowed for this in the 70cm band spectrum (Digital Data max BW is about 30 Khz in 2m and 150 Khz in 70 cm bands)

We know that this can need modified radios, but that's not a problem, as we use dedicated hardware in each network node.

73, CO7WT.

AGWPE interface does not supply the PATH

Direwolf:
[AGWE-IN] 1:Fm ZL4FOX-8 To Q7P2U2 [08:25:07]`I1�l V>/"9<}[:Barts Tracker 3.83V X

AGWPE:
[AGWE-IN] 1:Fm ZL4FOX-8 To Q7P2U2 Via WIDE3-3 [08:32:14]`I0�l V>/"98}[:Barts Tracker 3.83V X

Is this a known issue?
Thanks, Bart

Direwolf crash after receiving KISS frame

I got my SARTrack software working with the Direwolf TCP/KISS interface on receive, but now I have a problem that Direwolf crashes when I transmit a KISS frame to it, my beacon.
I attach a screenshot of Direwolf in debug mode.
Direwolf DOES decode the KISS frame correctly, but immediately afterward crashes.

The KISS frame I send is identical to what I send to any TNC in KISS mode without any problems,

Beacon:
ZL4FOX-5>APSAR,WIDE2-2:=1702.61S/14521.00E-/A=000272SARTrack Limited www.sartrack.co.nz[:Barts Development PC

KISS Hex:
C0 00 82 A0 A6 82 A4 40 60 B4 98 68 8C 9E B0 6A AE 92 88 8A 64 40 65 03 F0 3D 31 37 30 32 2E 36 31 53 2F 31 34 35 32 31 2E 30 30 45 2D 2F 41 3D 30 30 30 32 37 32 53 41 52 54 72 61 63 6B 20 4C 69 6D 69 74 65 64 20 77 77 77 2E 73 61 72 74 72 61 63 6B 2E 63 6F 2E 6E 7A 5B 3A 42 61 72 74 73 20 44 65 76 65 6C 6F 70 6D 65 6E 74 20 50 43 C0

Bart Kindt
SARTrack developer
http://www.sartrack.co.nz/

direwolf crash 1

"Audio input device 0 error: No such device" after several minutes of usage

I'm running on a Raspberry Pi3 running Raspbian Jessie, pulled latest Direwolf from source. Using a SignaLinkUSB connected to the Pi.
All is working ok, until after a few minutes of successful sending and receiving packets (using axcall) I get this error:
Audio input device 0 error: No such device
repeats 11 times then Direwolf exits.

I've seen this error running on a Pi1 with Wheezy too (more often), and just updated it to Jessie to see if latest Raspbian version fixed the issue. I haven't seen the issue reoccur on the P1+Jessie since I updated, but I did just see it on the Pi3+Jessie.

audio_portaudio.c line 917, Abort trap : 6

Hi

First time sending one of these!

Hope this helps us both.

Compiled OSX version using OSX makefile.

Running OSX 10.11.

Had to ensure portaudio was installed as a UNIVERSAL install from mac ports in order to obtain the i386 libraries (stumped for a short time).

Apart from modifying the direwolf.conf for my callsign, I uncommented :

ADEVICE - plughw:1,0
ADEVICE UDP:7355 default

Upon execution of direwolf, see below:

Dire Wolf DEVELOPMENT version 1.3 F (Oct 29 2015)

Reading config file direwolf.conf
Audio input device for receive: UDP:7355 (channel 0)
Audio out device for transmit: default (channel 0)
Channel 0: 1200 baud, AFSK 1200 & 2200 Hz, E+, 44100 sample rate.
Note: PTT not configured for channel 0. (Ignore this if using VOX.)
Use -p command line option to enable KISS pseudo terminal.
Assertion failed: (adev[a].inbuf_size_in_bytes >= 100 && adev[a].inbuf_size_in_bytes <= 32768), function audio_get, file audio_portaudio.c, line 917.
Abort trap: 6

Let me know if you need any logs etc.

Nigel

Strange CPU usage issue on Raspberry Pi

I'm having an odd issue with Direwolf on the latest version of Raspbian. It's freshly compiled, and seems to work quite well, although the CPU usage seems very high under certain conditions. My preferred usage for the time being is as a home station connected via APRS servers only, for the time being. My Raspberry Pi is headless, and runs continuously for a number of home server tasks.

When I have ADEVICE set to null null, it will saturate one core of my Raspberry Pi's processor. If I comment out the ADEVICE null null line, it will refuse to start without an audio device attached, stating that it's pointless to continue. I respectfully disagree.

While ADEVICE is set to null null, htop shows two threads for Direwolf, each consuming 100% CPU.

If I install Pulseaudio, and comment out ADEVICE null null, leaving no audio device specified, Direwolf will happily begin running with much lower CPU usage. Pulseaudio will start two threads, each of which consumes a bit of CPU, and Direwolf will start three, each of which consumes about 15-20%.

Is Direwolf using an audio thread for its CPU throttling? That doesn't seem ideal.

Thanks!
Angus

Addition to SDR iGate Doc

Followed the instructions and received an error related to accessibility of the dongle. Troubleshooting determined that blacklisting the current dvb drivers resolved. May want to add something similar to this step:

Blacklist the RTL Dongle from being used as an actual TV Tuner
Open the blacklist file for editing (it may be empty)
sudo nano /etc/modprobe.d/raspi-blacklist.conf
Add to the file on a new line
blacklist dvb_usb_rtl28xxu

Direwolf talking to TNCs

Firstly may I say that I think this project is really well designed. I have a lot of experience in low-level software design so I very much appreciate the diagnostic facilities built in. I am a memeber of Raynet one of the emergency groups. We use APRS a lot and often the operators are not experienced with digital. I except that modern sound-card TNS can out perform traditional ones but only when they are set up correctly. Having the ability to talk to the TNCs in the Kenwood boxes etc. means that the system is plug and go. How much work would it take to make the upper levels talk to a TNC instead of the sound card thereby leaving the packet diagnostics, digipeater, iGate etc. in place?

Many thanks John - G8IOK

KISS character encoding?

Hello,

I am trying to write the Direwolf TCP KISS interface in my program SARTrack. So that users do no longer have to use the AGWPE interface.

Problem is that for some reason the incoming data from TCP port 8001 cannot be decoded properly with the same KISS functions as I use for a TNC.

How is the TCP server transmitting the KISS packet? Is this in ASCII, Ansi or is there a text encoding active like UTF8 ?

When I decode in ASCII (my default), I get a packet like:
C0 00 << Start of packet
A2 6E A0 64 AA 64 40 << From callsign: OKAY, but SSID = 32 Not okay
B4 3F 68 3F 3F B0 70 << Should be "ZL4FOX-5" but is corrupted to "Z 4 X" or something.

When I decode as UTF8, it really become a mess:

FFFD 00 FFFD 6E FFFD 64 FFFD 64 40 FFFD FFFD 68 FFFD FFFD FFFD 70

Any ideas what is wrong here?

Bart Kindt
SARTrack developer & CEO
http://www.sartrack.co.nz/

config errors to stdout

Currently most errors are sent to stdout. It would see to be easier to diagnose if errors (config and runtime) went to stderr.

Is there a historical or functional reason for what goes to stdout vs stderr?

GPIO PTT

Do I have to install Hamlib to use a GPIO pin to PTT the radio (using an I/F board of course)?
I can directly trigger radio PTT with ~ "write 0 0" (for GPIO 17)
Although I have uncommented the "PTT GPIO 25" line in direwolf.conf and changed it to 0 for pin 17 It is not triggering when I use ~ "axcall w4jpa-1 ax0". Hmm!

IGate Stats to Telemetry Data

Hello.

First off, great application! I am using it as a RX IGate on a Raspberry Pi.

My question, I see that the IGate module has stat counters (line 282 to 315 in igate.c). Is there a way to send those stats along with the PBEACON of the IGate?

I see the TODO on line 284 already so I am guessing this is more of a feature request.

Thank You.

OS X packaging

The "Version 1.3 -- Development snapshot I -- December 2015" version says "Support for Mac OS X." The README does not mention OS X but the Makefile.macosx looks like it's the place to start to build.

If I figure out the minimum edit to the README I'll submit a PR.

IBEACON interval vs stats interval

The user defines the IBEACON interval in the direwolf.conf configuration file. The IBEACON code always uses "last 30 minutes" for filtering some of the stats.

Should the IBEACON message indicate that the data is for the last 30 minutes?

  • or -
    Should the IBEACON use the beacon interval for filtering the applicable stats?

Request to add Modtweaker

We ran into an issue with Magic Bees/Botania where the 3 flowers from Magic Bees are unable to be crafted as they require Mana Petals, which are no longer part of Botania. We crafted a Minetweaker script to fix them for another server, however without Modtweaker, it is unable to work on Direwolf.

Compile Fails under Fedora 24 with GCC 6.1

When trying to compile direwolf under Fedora 24 with gcc v6.1 I get this output.

gcc -O3 -pthread -Igeotranz -ffast-math -DUSE_ALSA -c -o log.o log.c
gcc -O3 -pthread -Igeotranz -ffast-math -DUSE_ALSA -c -o telemetry.o telemetry.c
gcc -O3 -pthread -Igeotranz -ffast-math -DUSE_ALSA -c -o dwgps.o dwgps.c
gcc -O3 -pthread -Igeotranz -ffast-math -DUSE_ALSA -c -o dwgpsnmea.o dwgpsnmea.c
gcc -O3 -pthread -Igeotranz -ffast-math -DUSE_ALSA -c -o dwgpsd.o dwgpsd.c
dwgpsd.c:82:26: error: storage size of ‘gpsdata’ isn’t known
static struct gps_data_t gpsdata;
^~~~~~~
: recipe for target 'dwgpsd.o' failed
make: *** [dwgpsd.o] Error 1

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.