Direwolf <> Symek Tnc3s

144.800Mhz @ 1200Baud (Two tests one on 03-23 and one on 03-24 (rx only))

The first test I did was of course not entirely fair, different antennas were used and different transmitters/receivers. Now I made a setup with the same antenna and the same receiver, so with the same audio input.
First the setup, as a computer(if I haven’t lost it.some where) I use a Raspberry PI 2B+, as a sound card I use an Fe-Pi Audio Z V2. As a receiver I use a Realistic pro 2006. It is an old receiver but still works 100%. The antenna is a x50 from Diamond. Of course the Tnc3s from Symek, and Direwolf from John WB2OSZ. I use Kissutil from WB2OSZ, this allows me to connect to Direwolf and the Tnc3s as well as save the received Frames. This makes comparing easy/easier.

Now I have made two start files, one for Direwolf and one for the Tnc3s. I start these in different terminals. I do this manually, so there is a slight delay in starting up.

I start the scripts with the option “timeout” now I can specify the time how long the script runs.
Example. “timeout -s 9 1800 ./tnc3s.sh”
In this comparison, both scripts run for 30 minutes. 1800 Second. Now it is time for the comparison.

With the command “ls -A | wc -l” the number of files in the directory are counted. (Frames received.)

03-23-2020

03-24-2020

Here you can see the difference between the received frames of the Tnc3s and Direwolf. There is a difference of 73 and 125 missed frames from the Tnc3s. I tried something with the reception levels of the Tnc3s. It is To soft – Ok – To hard, there is little difference between To soft and Ok and To hard.

I did some tests with the amount of calls received. Just for fun.

Direwolf <> Kpc9612

Today I made a comparison between Direwolf and a KPC9612. Now I have to say that it is difficult to compare. As the first set I use a KPC9612 and a Yaesu 7900 with an x30 as antenna and as software PinPoint Aprs Client for Windows. As the second set I use a Realistic pro 2006 scanner with an x50 as antenna and Direwolf. These antennas are at the same height.

Now I am very impressed with Direwolf, it seems that my KPC9612 is completely deaf. I clearly hear the packet signal but there is no decode. Unfortunately I don’t have two the same sets and two the same antennas to make the comparison better. But it is very clear here that Direwolf wins big.

Below you can see the difference between the setups. The Communication monitor is from PinPoint Aprs Client, the rest is from direwolf and some aprs parsing.

 

Okay, I know the comparison isn’t entirely fair. But for me Direwolf is the big winner.

Direwolf 1.6 D (Mar 1 2020) FX.25

I did some testing with a friend of mine PD2NLX. We have tested the (new) FX.25 protocol (32 and 16 Bytes) This is AX25 with forward error correction. Now the distance between us is quite short, about 5 kilometers. We have discovered that the 16 bytes check at a short distance works better.

First I have installed the “dev” release of Direwolf.

My direwolf.start file look like this

I have add the start option “-d x” Let’s take a look at what that looks like.

It has, of course, been developed to work over large distances and thus achieve a reasonably reliable connection. But it works surprisingly well.

Direwolf AX.25 + FEC = FX.25

Probably most of you will already know, Direwolf will support FX.25. This is AX25 with forward error correction. Nice.

The mail John, WB2OSZ posted on the mail list.

Read more about it.

Direwolf Kissutil

I was reading on a website and there they talked about kissutil from Direwolf. This appears to be a tool you use interactively for troubleshooting a kiss tnc or you can use it as an application interface. Very nice tool.

In the User-guide-1.6-pre you can find somemore info on section 14.6

Bind ax25 interface to Direwolf

It can be easy to link an ax25 interface to Direwolf. This makes it possible to use RMSGateway, Uronode etc with Direwolf.
In this script Direwolf is started with the -p option. With the -p option a virtual tnc is created. /tmp/kisstnc.

With mkiss a kiss connection is made on the /tmp/kisstnc. With kissattach the PTY is connected to the ax25 interface.

Fist edit the file axports in /etc/ax25

Config the direwolf.conf file to set the right audio device and ptt port. Save file to /etc/ax25/direwolf.conf

Run the script

Let’s check if everything went well.

Try it out…

Now it’s possible to setup RMSGateway or Uronode of whatever you want.

Installing Direwolf and LinBPQ on Raspian Stretch

Jeff KP3FT has written a nice document about the installation of Direwolf and Linbpq on a Raspberry with raspbian Stretch. Download the complet document here.

Dire Wolf

Installing Direwolf and linBPQ on a new Raspian Stretch installation.  It’s a combination from various websites and documentation, condensed down into a straightforward walkthrough.  This doesn’t include configuration of most BPQ settings, only enough to get it to use Direwolf as a modem.

Older Raspian versions like Jessie may require Pulse Audio removed first, prior to installing Direwolf.  Raspian Stretch by default does not have Pulse Audio installed.  My Raspian config settings have SSH and VNC enabled.

First:

After it restarts, install libasound:

Optionally install the following if you want to enable Direwolf to use the GPIO pin on certain USB sound devices for PTT:

Then install Direwolf (as of this writing, version 1.5 is the latest):

Plug your USB sound device(s) into the RPi, open a terminal, and run the following to verify the system sees the USB sound device(s).

If the Raspberry pi’s onboard audio is enabled, it will show up as Card 0, Device 0.  The USB sound device should show up as Card 1, Device 0.  A second USB sound device will show up as Card 2, Device 0, and so on.

Open the direwolf.conf file in a text-editor, scroll down, and enable the correct USB sound device by removing the # at the beginning of the appropriate line.  For example, on mine it is:

Scroll down and change “N0CALL” to your callsign in the line:

Enable the modem speed you want.  In my case, I enable 300-baud:

Scroll down and enable the appropriate PTT option for your setup.
Further down, enable and change the AGWPORT and KISSPORT settings for your setup.
Optionally disable all the APRS-related lines if you don’t want to use those functions.

Save the file and run Direwolf by double-clicking the desktop icon, or test-run it from Terminal with:

You should see packet activity if the radio is tuned on the right frequency and audio level is good.

Close Direwolf for now (CTRL-C) and install pilinBPQ (skip down to the Direwolf port section if pilinBPQ is already installed):

Copy an existing Linux bpq32.cfg from another source to /pi/linbpq. I have an old bpq32.cfg file here which would need some substantial editing for your own setup:

https://www.qsl.net/swlkp3/Packet/bpq32(Linux).cfg .

Be sure to rename it to bpq32.cfg .If you don’t use the above bpq32.cfg file, and add one or both of these Direwolf ports in the ports section of whatever copy of bpq32.cfg you have, depending on how many Direwolf modems you want to run.  Change the port numbers to whatever works with your particular setup.  The timing settings can also be changed; these are what worked with my setup for 300-baud HF packet and 1200-baud VHF packet.

Save the file.

Start Direwolf.

Open another Terminal and start linBPQ:

It should connect to Direwolf(s) on port 127.0.0.1:8001 or whatever port(s) you set up.

Notes:
——
Multiple instances of Direwolf can run at the same time.  Each instance has its own “.conf” file.  Each conf file needs to be edited to enable whatever port and USB sound device will be used.  To do that, just edit the original “direwolf.conf” file and save it under a new name, such as “direwolf_HF.conf”, etc.  Start each instance in Terminal using the “-c” switch to point Direwolf to the correct “.conf” file.  In my setup, I start the first Direwolf instance in Terminal with “direwolf -c direwolf.conf”.  The second instance is started in another Terminal with “direwolf -c direwolf_HF.conf”.

Direwolf has several options that can be used in the command line.  Three that I find particularly useful are the “-q”, -T”, and “-x” options.  By default, Direwolf shows audio in/out levels in its Terminal screen.  This can be turned off with “-q h”.  For example, when I run my HF 300-baud instance of Direwolf to disable audio reports, I run “direwolf -c direwolf_HF.conf -q h”

To show timestamps of sent and received packet frames, use the “-T” option with “%H:%M:%S”.  Example: “direwolf -c direwolf_HF.conf -q h -T %H:%M:%S” to disable audio reporting and show timestamds in hours-minutes-seconds format.

The “-x” option immediately starts Direwolf transmitting calibration tones, which I use mostly to key the transciever for tuning the antenna when I switch bands.  Example: “direwolf -c direwolf_HF.conf -q h -T %H:%M:%S -x”.  Enter CNTRL-C to stop the transmit.

The complete list of command-line options are in the Direwolf user guide, pages 126 through 128: https://github.com/wb2osz/direwolf/tree/master/doc

DireWolf/Linpq with Systemd.

I have a bad time behind me, I have had a lot of arguments with Systemd to start DireWolf and Linpq when booting 🙂
If you like Systemd, you can read some about it here https://en.wikipedia.org/wiki/Systemd

I want Linbpq to run under /dev/tty2 and DireWolf under /dev/tty3. This is because if I login remotely I can view the monitor from DireWolf with “conspy”. “conspy 3” Hit esc a few times to leave conspy.

Systemd does not want to accept the start line with >/dev/tty3 &

This upper start line does not work.

So I had to come up with something else for that. So i wrote a start file. “direwolf.start”

Now i wrote a unit file to start DireWolf on boot.
/etc/systemd/system/direwolf.service

Now DireWolf is starting very nice on /dev/tty3

I had the same problem with Linbpq, which I solved in the same way.

Linbpq start file “runbpq”

The unit file “linbpq.service”

Ok, let’s see if it is running

Now have a look at /dev/tty2 “conspy 2”

 

Direwolf to LinBPQ config

John WQ6N has found a solution for direwolf and Linbpq that works very well for HF.

Direwolf.conf

bpq32.cfg