Skip to first unread message


Jan 2, 2022, 10:39:25 AM1/2/22
to pat-users
I am using Opensuse 15.3
Pat 0.12.1
Direwolf 1.6
Yaesu 7900 (I've given up on my 991a for now)

Can anyone tell me how to set up and use Pat with Direwolf without having to install configure AX25?
I have fldigi installed and it works well.

Also, can I use a regular serial TNC NOT is KISS mode and without AX25?

I apologize if the included info is too vague.

Thanks, 73

Torsten Harenberg

Jan 2, 2022, 5:44:03 PM1/2/22
to KK4GGL, pat-users
Am So., 2. Jan. 2022 um 16:39 Uhr schrieb KK4GGL <>:

> Can anyone tell me how to set up and use Pat with Direwolf without having to install configure AX25?
> I have fldigi installed and it works well.

I fear that is currently impossible. Until someone wants to implement
the KISS (and then AX.25) protocols in the Go language (which would be
great, but while KISS seems to be rather simple, AX.25 would require
more effort). There is already an github issue for this feature:

> Also, can I use a regular serial TNC NOT is KISS mode and without AX25?

There was some effort in the past, but as Winlink's B2F protocol uses
compressed data, any connection to a modem requires a
binary-transparent connection, which is not possible using the normal
text interfaces.

If your TNC supports the "enhanced WA8DED protocol" it may be possible
to "hijack" the PACTOR code, but I doubt that this would work without
changing the source code.

73s, Torsten DL1THM


Jan 2, 2022, 6:02:47 PM1/2/22
to pat-users
Please forgive my ignorance... I've only just discovered Pat...
In the transport drop down, there is an AX.25 choice and a serial-TNC choice. Is the serial-TNC actually KISS?
I can use WinLink Express and Direwolf to at least key my radio and send, although I haven't connected to anyone yet. Is there something going on there that doesn't take place with Pat?
And, I guess I should have asked this first, is there documentation I can read about this?


Jan 2, 2022, 11:04:45 PM1/2/22
to pat-users
I have gotten the AX25 port to bind (/tmp/kisstnc -->wl2k) after starting  direwolf -p, but when I try an AX25 connection I get this error from direwolf:
Invalid transmit channel 8 from KISS client app.

Are you using AX.25 for Linux?  It might be trying to use a modified
version of KISS which uses the port (channel) field differently than the
original KISS protocol specification.  The solution might be to use
a command like "kissparms -c 1 -p radio" to set CRC none mode.
Another way of doing this is pre-loading the "kiss" kernel module with CRC disabled:
sudo /sbin/modprobe -q mkiss crc_force=1

<<< Data frame from KISS client application, port 8, total length = 18
  000:  80 96 b0 68 8a 9e 86 f4 96 96 68 8e 8e 98 61 3f  ...h......h...a?
  010:  86 16                                            ..
Invalid transmit channel 2 from KISS client app.

Any Ideas on how to proceed?


Jan 3, 2022, 6:23:37 AM1/3/22
to pat-users
I didn't notice before:
<<< Data frame from KISS client application, port 2, total length = 18
  000:  20 96 b0 68 8a 9e 86 f4 96 96 68 8e 8e 98 61 3f   ..h......h...a?
  010:  e2 66                                            .f
[0L] KK4GGL>KX4EOC-10:(SABM cmd, p=1)
[0L] KK4GGL>KX4EOC-10:(DISC cmd, p=1)


Jan 3, 2022, 11:55:19 AM1/3/22
to pat-users
kissparms -c 1 -p wl2k ... did the trick. I have now connected to, sent mail to and received mail from our local WinLink repeater, using AX25 using my 991a.... yup ... the radio I had given up on.

Thanks for the help and pointers :-)


Jan 22, 2022, 8:40:38 AM1/22/22
to pat-users

Another question becasue I am not clear on this ... can I use a regular AX.25 TNC (KPC-3 or KAM98) as a regular serial TNC, NOT as a KISS TNC, and if so, can you exp-lain the setup or point me to docs?
On Sunday, January 2, 2022 at 5:44:03 PM UTC-5 wrote:

Chris Sullivan

Feb 10, 2022, 6:53:21 PM2/10/22
to pat-users

Same question as KK4GGL. I've been using direwolf/rigctl successfully both on Raspberry Pi OK and Clear Linux with an IC-7100 and a K3 to send messages with Winlink Express running on a separate Windows system. I've got Pat running under Clear Linux using Telnet. All is well with that.

However, neither Clear LInux nor Raspberry PI OS seems to have has AX. 25 support. The "How-To" guide for AX.25 in Linux seems to be 21 years old. No way do I trust that. Recompiling the kernel seems rather drastic - especially on Clear Linux on my new desktop system.

I'd like to leave Windows behind as much as possible - I really do, but this requirement seems beyond the pale. I could probably get through it, but it seems so onerous as to wonder why I'd bother, much less encourage the less technically inclined club members to give it a try. 

So - being as the Winlink Express + Direwolf combination works just fine, even over a networked connection, what is stopping us from doing the same with Pat? is there something that is required to make this happen? Knowledge, motivation, time, programmers, money? What is it? Maybe in 2001 when computers were slower having AX.25 in the kernel made sense, but based on my experience with Winlink Express I don't see any upside.

The template support for Pat is a big step forward, but forcing kernel builds is a showstopper for a wider audience, I think, unless there's some simpler way to do it, but all the docs seem to say is do this, install the ax.25-tools package (doesn't exist in Clear Linux), and if there's no kernel support then open this can of worms....


Chris Keller

Feb 10, 2022, 9:30:53 PM2/10/22
to Chris Sullivan, pat-users

You're right on the subject of having to recompile the kernel, I wouldn't expect most folks to have to take that drastic action.

There's been quite a bit of traffic on the mailing list in the past couple of weeks about AX25 setups (at least VE7TFM, KK4GGL, and yourself). Maybe it's time for us to re-examine Pat's native AX25 TNC support. We have issues open for native support at la5nta/wl2k-go#56, and AGW-over-TCP for Direwolf at la5nta/wl2k-go#57.

As to how we can get that prioritized, please recognize that this is an open source project, and we fit development in between everything else in life. If you're so inclined, we would love to get more folks familiar with the codebase and contributing pull requests! A good starting point would be here. Otherwise, we'll try to get to it soon. "The squeaky wheel gets the grease," and this has been a much-discussed issue of late.

Chris, K0SWE

You received this message because you are subscribed to the Google Groups "pat-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to
To view this discussion on the web, visit

John Wiseman

Feb 11, 2022, 4:29:12 AM2/11/22
Although I would welcome agwpe api support in Pat, so I could use it with QtSoundModem (a crossplatform port of UZ7HO's SoundModem), LinBPQ has a feature to allow PAT to connect to a LinBPQ system over telnet, then connect out over any type of modem supported by LinBPQ. These include ax.25 via KISS. AGWPE, VARA, ARDOP, WINMOR, a variety of Pactor Controllers, and rather more specialised ones like fldigi and multipsk. I'm working on a driver for the new open source FreeDATA modem project.


John G8BPQ

David R. Andersen

Feb 11, 2022, 8:36:00 AM2/11/22
to 'John Wiseman' via pat-users
John - I don't have any trouble with AX.25 in the linux kernel, but
pat support in BPQ is great! I'll look forward to simple access to the
FreeDATA modem when it is up and running! Thanks for your efforts.

Dave, K0RX

On Fri, Feb 11, 2022 at 09:29:08AM +0000, 'John Wiseman' via pat-users wrote:
>I'm working on a driver for the new open source FreeDATA
>modem project.
>John G8BPQ

int x=90560580,y=32678;main(){putchar(x);x>>=y&7;y>>=3;return y?main():0;}
Contact info:

Quis custodiet ipsos custodes?

Chris Sullivan

Feb 11, 2022, 10:32:49 AM2/11/22
to pat-users
Thanks for the reply, Chris. I understand and sympathize with the challenges of maintaining open source code or any other kind of volunteer work for that matter. I have some experience in X.25 (no "A") from long, long ago, and met Phil and Howie in the 80's at Dayton and I still have a TNC-2 somewhere in the basement. 

This is an interesting discussion, and while not experienced with Go, nor having been a professional programmer since the 80's (I've learned C, SQL and Python since then, though), I'd like to see where this could be taken. The Go code is easy enough to read. The AX.25 ecosystem is a little confusing and I'd like to understand that before delving into code. It seems to me that the KISS solves a problem that no longer exists although I guess some people still like to use hardware TNCs. I don't understand how AGW fits in just yet. I found an AGWPE page and it seems rather full of itself with warnings about reverse-engineering and such, and I wonder how Direwolf, Soundmodem and Winlink Express got around that and what the limitations are. Seems to me that there is a bad smell coming from that direction, but maybe I'm not looking in the right places. Direwolf, on the other hand, appears to be very good, and if Wikipedia is to be believed, the only implementation of AX.25 V2.2, which should be superior for bulk traffic a la Winlink, although AX.25, like X.25, is well past its best-before date.

John, thanks for the pointer to LinBPQ. I'll give it a try. While I associate Telnet with the BBS days, I can see how it is useful for compatibility. 


P.S. I noticed the FreeDATA modem project a week or so ago in my studies of OFDM, as I wanted to see how OFDM was implemented in FreeDV and what was going on with ARDOP. I think I have about 3 years of catching up to do on communications theory. I played with FreeDV a bit a few years back and may try again once my HF beam is fully operational again.  My conclusions so far is that wide band communications needs to be embraced and that the FCC rules about symbol rates is a barrier to effectie HF data communications south of the border. The Canadian regulations simply give -26dB (of maximum) bandwidth limits on each band. 1kHz on 30m, 2.8kHz on 60m, 6kHz on other HF bands 160 through 12, 20kHz on 10m, 30kHz on 6 and 2, 100kHz on 125cm, and 12MHz on 70cm, and so on, with no restrictions on symbol rate . It seems like a lost opportunity for SDR transceivers especially with the processing power available these days without going to FPGA or DSP chips. But that's for a different discussion. A 48kHz sound card in I/Q mode can give about 48kHz bandwidth which the military uses on HF get to very respectable data rates. I don't see why hams can't do the same within licence limits.

In any case, I wish you luck with FreeDATA. And I wish the ARDOP folks luck with their OFDM work. I'd like to see hams get behind an open source modem that competes effectively with VARA, VARA FM, and Pactor. With a higher data rate we might get to the point where we could even accept the overhead of TCP and make full use of the bands and bandwidths available to us.

Chris Sullivan

Feb 12, 2022, 12:29:44 PM2/12/22
to pat-users
Well this is interesting, and a little disturbing with respect to the current state of AX.25 in the Linux kernel (emphasis mine).


Grant: Fixing the Linux kernel AX.25 Date: December 2021 Amount: €179,690 Changes to the Linux kernel over the years have improved and modernized the kernel, but have also made existing AX.25 implementations incompatible and turned preexisting issues into bugs. This can make systems unpredictable or even unusable. Linux kernel development is complex, requiring deep specialized knowledge, and bugs are hard to trace. This may be one of the reasons, why the Linux kernel AX.25 stack is currently in such a bad state. This ARDC grant funds will allow the Deutscher Amateur Radio Club to hire software developers who can create a stable Linux AX.25 implementation and prevent Linux distributions from dropping pre-compiled AX.25 support. The fixed and functional Kernel-AX.25 stack will improve global amateur radio infrastructure. Professional kernel development can bring Linux AX.25 back to life. Learn more at

I'll make a few points about this:
  • If something needs to be brought back to life it must be dead or nearly so.
  • There's no mention of any of this at the "Learn More" URL, which hasn't been updated in 6 months. That web site also does not make a compelling case for its subject matter.
  • The recipient, DARC, has nothing about the grant in their press releases, and using their web site's search function for AX.25, and even Linux, turns up nothing.
  • I'm still don't see what problem it solves in 2022
The one nice thing I can say about AX.25 is that it is generally easy to get running, at least on Windows :-). So far our poor emergency communications director has succeeded in encourage a good portion of the membership to try it both with and without RMS gateways. That's a step forward at least. Some have tried VARA but most people aren't willing to pay for it. Most are using SoundModem, and some are using TNCs.

I've looked into AGWPE and found the "spec". It is a reasonably simple protocol and I've successfully elicited responses from Direwolf by connecting to it from Python. Woe to anyone who lets it get out of sync, though. What I haven't been able to find is the spec for communicating with Linux AX.25. Is there such a thing and where would I find it (other than reading the code)?

Being that I'm new to Go, is there a recommended IDE? It seems from a cursory reading of some of the code that the AX.25 code could be adapted to use AGWPE instead, but I'd like to have the ability to trace calls through the various modules rather than doing random searches on github or using grep. While my main interest is in higher speed software modems, taking a crack at this problem could be educational.

Sounds like the Debian package is helpful. There's no equivalent on Clear Linux unfortunately. One of my club members has successfully used Pat on an R-Pi with ax.25 support using some bundled ham radio system image. I can't say I'm very interested in that approach.


P.S. This looks interesting, especially for non-US.

Chris Keller

Feb 12, 2022, 5:14:37 PM2/12/22
to Chris Sullivan, pat-users
Many thanks for the deep dive, Chris. I wasn't aware that DARC had an ARDC grant to try and "revive" the kernel module. I suppose that's good news, as long as they can deliver.

As far as an IDE for Golang, I personally use Jetbrains Intellij, and they have a Golang-specific distribution called Goland. (Misspelled search term camping?) I happen to use their paid version but I'm not aware of anything that would require it, especially in Pat. DM me if I can be of any help getting set up! There are wiki docs on general building from source as well as transport-specific dev notes.

Chris Keller

Feb 12, 2022, 5:36:22 PM2/12/22
to Chris Sullivan, pat-users
Hmm, it appears I'm wrong about Goland having a free version, it doesn't. Probably that means Intellij Community edition won't support the Golang plugin.

Looks like there are some other popular options.

Chris Sullivan

Feb 12, 2022, 6:08:35 PM2/12/22
to pat-users
Yes. Seems that way. They offer a 1 month trial but no free version. I'll try VIsual Studio Code. I've used it with Python and C successfully. I've cloned the Pat repo so we'll see where this takes me. I need to learn my way around the code - at least the X.25 part and whatever uses it.


Wiley Sanders

Feb 13, 2022, 2:07:50 PM2/13/22
to pat-users
The Fedora AX25 and direwolf packages (with a older "analog" signalink)  work fine for me for APRS and "regular" packet. I have not tried them on-air with pat because I have no nodes near me. Here is my HOWTO:

I'm happy to report that as far as I can tell pat seems to just work in Fedora 30, although I have not tried connecting to anything by radio yet.

I have installed (plus whatever dependencies):

direwolf.x86_64                                  1.5-6.fc30                             @updates
ax25-apps.x86_64                                 1.0.5-9.fc30                           @fedora
ax25-tools.x86_64                                1.0.3-9.fc30                           @fedora
libax25.x86_64                                   1.0.5-8.fc30                           @fedora

And of course pat. Get pat working with telnet first.

Pat AX25 port config (tells pat how to connect to AX25):

 "ax25": {
   "port": "wl2k",
   "beacon": {
     "every": 3600,
     "message": "Winlink P2P",
     "destination": "IDENT"
   "rig": ""

A line in /etc/ax25/axports that looks like this (for VHF):

wl2k            YOURCALL          115200  253     4       Pat


1 - Direwolf:  "direwolf -p &". The default config is fine.

1a - Direwolf will print a message about what port is sets up. The exact port number will depend on how many terminal windows you have open.
-  If there is a way to fix the device number it would be nice to know, like /dev/pts/999 or something:

2-  AX25: "sudo kissattach /dev/pts/5 wl2k"
2a - Direwolf tries to help, but using a symlink did not work for me. I'll debug this later:
Created symlink /tmp/kisstnc -> /dev/pts/5
Created symlink /tmp/kisstnc -> /dev/pts/5  
# kissattach /tmp/kisstnc wl2k
kissattach: /tmp/kisstnc: open: Permission denied

3- Pat: "pat connect ax25:///<something>" - And I hear tones from the speaker.

Other miscellany:

I did find the easiest way to run stuff that requires Windows without having a laptop exclusively available for it is in a Virtualbox virtual PC. You will need at least a fast PC and 8GB of memory to do this tolerably well. 

The Signalink VOX works for 1200 packet but not 9600, there a limitation is both the VOX turnaround time and frequency response that might llimit other modes as well.

Hope this helps,
Wiley Sanders KF6IIU

Bill Buhler - AF7SJ

Feb 13, 2022, 2:44:41 PM2/13/22
to pat-users
I've tried the stack AX.25 stuff, and found myself using user land programs instead. At one time you could just attach a TNC to your Linux box and then run IP over AX25 for networking, now you need to use outside programs to do that.
Reply all
Reply to author
0 new messages