I'm trying to get a native implementation of Pat and AX25 working on Apple Silicon. I've tried all Parallels, Crossover and other methods. While they work (somtimes) I'd really like a native implementation. I recently discovered this:
https://github.com/solariun/AX25ToolkitI have it working on an Apple M4 Pro using bluetooth to a TH-D75. I have verfied it connects (using it's own command line tools) to my local RMS. Real progress! No sound cards, real serial-tnc to the TH-D75 on an M4 chip - even wireless via bluetooth.
The AX25Toolkit includes a program to bridge between the TNC ausing a "PTY" serial device to present a serial TNC. Besides being able to monitor incoming packets, I've had great success with YAAC to receive and send APRS messages with this interface. So I know the overall linkage works. The probem seems to be with Pat. When I try to set up Pat with a serial-tnc pointing to the created serial device (aliased by the bridge as /tmp/kiss), it throws an ioctl error on the serial device: "operating system error: inappropriate ioctl for device". I've tried rummaging through the go code but can't quite figuire out where it actually opens the tty port. So I have a few questions:
1. Does the serial TNC only work with the linux AX25 stack?
2. If this should work where is the actual serial-tnc connection code? I can't seem to find it in the go source.
3. Why the ioctl error? Any guesses?
4. I notice in the PAT log that it displays "PASSWORD", as if it's asking for one. I have it set in the config file, so I presume this is what it's using.
Below is the output of both ends of the software chain. I'm using the command line connect for Pat to get the log more easily. But it's the same message I get in the web-based UI.
Thanks,
Robert, AI6P
*********************
Below is the bridge running and showing a few received packets from a nearby RMS. ./Documents/gitrepo/AX25Toolkit/bin/bt_kiss_bridge --bt --device TH-D75 --monitor
====================================================================
BT KISS Serial Bridge + AX.25 Monitor
====================================================================
Device : TH-D75
Transport : BT
RFCOMM ch : auto (SDP)
--------------------------------------------------------------------
PTY device : /dev/ttys001
Symlink : /tmp/kiss -> /dev/ttys001
Example:
ax25tnc -c W1AW -r W1BBS-1 /tmp/kiss
--------------------------------------------------------------------
Connecting to BT...
Connecting to BT...
Resolved "TH-D75" → 40-79-12-e4-ed-37 (TH-D75)
SDP lookup for SPP on TH-D75...
Opening baseband connection...
SDP: found SPP on RFCOMM channel 2
Connecting RFCOMM channel 2 on TH-D75...
Connected. RFCOMM channel=2
Monitor on. Ctrl-C to stop.
[15:08:48.754] <- BT KC6SSM-10 -> BEACON via N6ZX-10 [UI]
ctrl=0x03 U/UI P/F=0 (72 bytes)
00000000 84 8a 82 86 9e 9c 60 96 86 6c a6 a6 9a 74 9c 6c |......`..l...t.l|
00000010 b4 b0 40 40 75 03 f0 57 49 4e 4c 49 4e 4b 3a 20 |..@@u..WINLINK: |
00000020 4b 43 36 53 53 4d 2d 31 30 20 6f 6e 20 31 34 35 |KC6SSM-10 on 145|
00000030 2e 36 33 30 20 4d 68 7a 2e 20 4b 65 6e 73 69 6e |.630 Mhz. Kensin|
00000040 67 74 6f 6e 2c 20 43 41 |gton, CA|
[15:08:49.700] <- BT KC6SSM-10 -> BEACON via N6ZX-10 [UI]
ctrl=0x03 U/UI P/F=0 (72 bytes)
00000000 84 8a 82 86 9e 9c 60 96 86 6c a6 a6 9a 74 9c 6c |......`..l...t.l|
00000010 b4 b0 40 40 f5 03 f0 57 49 4e 4c 49 4e 4b 3a 20 |..@@...WINLINK: |
00000020 4b 43 36 53 53 4d 2d 31 30 20 6f 6e 20 31 34 35 |KC6SSM-10 on 145|
00000030 2e 36 33 30 20 4d 68 7a 2e 20 4b 65 6e 73 69 6e |.630 Mhz. Kensin|
00000040 67 74 6f 6e 2c 20 43 41 |gton, CA|
s
*
****************************
Below is an attempt to connect from the commandline with Pat so. you can see the error.pat connect ax25+serial-tnc:///WR6HMB-10
Password:
2026/04/04 15:00:27 Connecting to WR6HMB-10 (ax25+serial-tnc)...
2026/04/04 15:00:27 Unable to establish connection to remote: invalid serial port: operating system error: inappropriate ioctl for device