Keyboard Shortcuts
Likes
- Direwolf
- Messages
Search
Re: Significance of #define ONE_BUF_TIME 40
#define
ONE_BUF_TIME is roughly the number of milliseconds of audio samples in one audio input buffer.
So, in this case, there would be about 1000 / 10 = 100 buffers per second from the operating system to the application.
?
It works fine on a Raspberry Pi model 1 with USB audio.
?
Too long means more latency.? Too short means more overhead of shoveling more smaller things.
?
I did hear one report that a certain type of non-USB RPi audio interface did well with some buffer sizes and not with others.?
?
What direwolf version, computer model, audio interface type, and OS version are you using?
?
73,
John WB2OSZ |
Significance of #define ONE_BUF_TIME 40
#define
¿ªÔÆÌåÓýKind of asking John WB2OSZ What please is the significance of? // Originally 40.? Version 1.2, try 10 for lower latency. in audio.c (also in the portaudio and windows audio code) Reason I ask is that I have used pulseaudio under direwolf for years that has seen on average 1 in 10 TX packets audio buffer underruns. Changing this from 10 to 40 (Along with some other buffering and CPU speed changes) seems to have resolved them. Yes I am aware that pulseaudio is not good with direwolf, but I am stuck with it. With these changes I am not having any TX>RX delay problems
that stop decoding of the next 1200AFSK packet. Cheers Bob VK2YQA |
Receive only with SDRconnect and direwolf
I know this is a busy group so thank you for reading this.
It's been quite some time since I've played with packet radio so I've probably overlooked something obvious. When I last used my Yaesu radio ADEVICE plughw:1,0 (in the direwolf config file) worked perfectly. Now I want to use SDRconnect instead, just to receive. arecord -l **** List of CAPTURE Hardware Devices **** card 0: sofhdadsp [sof-hda-dsp], device 0: HDA Analog (*) [] ? Subdevices: 0/1 ? Subdevice #0: subdevice #0 card 0: sofhdadsp [sof-hda-dsp], device 6: DMIC (*) [] ? Subdevices: 0/1 ? Subdevice #0: subdevice #0 card 0: sofhdadsp [sof-hda-dsp], device 7: DMIC16kHz (*) [] ? Subdevices: 1/1 ? Subdevice #0: subdevice #0 card 0 and device 0 look like the correct device (ADEVICE plughw:0,0) but direwolf returns: Reading config file /home/phil/direwolf.conf Audio device for both receive and transmit: plughw:0,0? (channel 0) Could not open audio device plughw:0,0 for input Device or resource busy This is what the audio mixer reports under the playback tab: ALSA plugin [SDRconnect]: ALSA Playback on What setting should I be using to have direwolf listen to the output (the speaker) from SDRconnect? -- Regards, Phil |
Pulseaudio based VOX PTT - Possible interest only
¿ªÔÆÌåÓýA little bit off topic. I have been chasing down an audio buffer underrun problem that
only happens with direwolf. I am also running pulseaudio despite
not being a good idea for direwolf! I am making some progress with
this, that I wont go into with this post though. What I wanted to
mention is that part of the problem seems to be that the PTT
window time shifts with respect to the audio out. I suspect a
hamlib (my rig only) issue rather than a variable audio ring
buffer/delay thing. Minimal problem for 30m APRS beacons, but a
real mess for 2m ISS passes or AX25 connected mode. Some time ago I wrote a pulseaudio VOX like PTT script to run
EasyDRF (under wine) that I though I would share for interest. I
recently reworked it for the fast turnaround needed for ARDOP. It
now works "perfectly" in replacing the use of the PTT RIG 2
localhost:4532 line in the direwolf conf file. It detects the
presence of flrig or rigctld as needed. Basically it just sits pushing an audio stream into a FIFO/pipe at 48kHz and samples that 1260 bytes at a time. Any deviation from audio "zero" asserts the PTT. The 1260 I got by first running the dd command without iflag=fullblock and a bs of 4800 odd, then seeing how many bytes were actually read (in stderr), adding maybe 20% and plugging it all back into the dd line. The audio stream is not perfectly synchronous hence the need for the iflag-fullblock. Doing the maths it looks like the worse case delay before PTT assert is in the order of 25-50mS which can easily be countered with an additional TXdelay. alsa_output.usb-Burr-Brown_from_TI_USB_Audio_CODEC-00.analog-stereo.monitor
is the pulse device name used for a few types of Icom
transceivers. pactl list shows all. This cured my direwolf PTT/audio window problem. Cheers Bob VK2YQA ============= #!/bin/bash
=========== hlppt1 #!/bin/bash hlppt0 #!/bin/bash flptt1 #!/bin/bash flptt0 #!/bin/bash |
Hi,
The Icom 9700 stops transmitting as soon as the PTT signal is dropped, but it does have some delay in its audio processing. This means that you need to increase TXTAIL in direwolf.conf in order to ensure that the entire audio packet has been transmitted before dropping PTT. I don't have any Icom radio, let alone a 9700, and therefore can't tell you what the best value for TXTAIL is. I suggest increasing in 100ms steps until connected mode packet operation works and then perhaps stepping back down in 10ms steps to figure out how much delay is needed. Note that TXTAIL is configured in 10ms steps and defaults to 10 (meaning 100ms delay). An initial increase to 200ms would require "TXTAIL 20" in direwolf.conf. Thanks Thomas KK6FPP |
On Mon, Jan 6, 2025 at 10:44 AM, @exponent wrote:
[0L] VE7JFZ>VA7QBE-10:(SABM cmd, p=1) Those are connection attempts transmitted.?? There is no reply.
?
Can you hear anyone else talking to VA7QBE-10 ?
?
Are you on the right frequency?? Are the winlink stations using 1200 bps AFSK or something else?
?
73,
John WB2OSZ |
I have spent quite a while trying to figure out why I cant get direwolf to connect to any AX.25 nodes. It starts up fine and sees APRS traffic but if I try to send by packet in Winlink or connect to a BBS the connection never gets established. The radio is an Icom 9700 and I am connecting via USB using COM5 and RTS. The OS is windows 11. I am using the built USB audio codecs. The Kiss interface is started and I can connect to it (port 8001 on 127.0.0.1) but when I try to connect to a node I get a few transmissions with a "connecting to VA7QBE-10" and then a few seconds later "disconnect reported". ?Here is what the interface log shows
?
Ready to accept KISS TCP client application 1 on port 8001 ...
KISS protocol set Persistence = 160, chan 0 KISS protocol set SlotTime = 30 (*10mS units = 300 mS), chan 0 KISS protocol set TXDELAY = 40 (*10mS units = 400 mS), chan 0 KISS protocol set FullDuplex = 0, chan 0 [0L] VE7JFZ>VA7QBE-10:(SABM cmd, p=1) [0L] VE7JFZ>VA7QBE-10:(SABM cmd, p=1) [0L] VE7JFZ>VA7QBE-10:(SABM cmd, p=1) [0L] VE7JFZ>VA7QBE-10:(SABM cmd, p=1) [0L] VE7JFZ>VA7QBE-10:(SABM cmd, p=1) KISS client application 0 on TCP port 8001 has gone away. It doesnt matter which winlink server I pick it is always the same. As a note I can get WSJTZ to use the radio no problem with same com port settings. ? |
Re: Third party packets on KISS connections
¿ªÔÆÌåÓýThat is what I was suspecting. This evening I had a few mins to
make some changes and send the third party packet in its string
representation. Yet there is still something a little off. [15.is
20250103T20:35:07]
X>X:}WT0F-4>APDR16,TCPIP*,qAC,T2CSNGRAD::APRSFL?? :Ping{29 Curiously, I am sending back the packet with the third party
header, but the packet is being sent out the RF interface instead
of the APRS-IS connection. Direwolf is sending anything that originates from the APRS-IS connection over the KISS connection with the third party header. If I receive a packet without the third party headers, then it was received on the RF interface. Given that it has been pretty consistent on how packets are sent over the KISS connection, I would expect that Direwolf would treat the packets coming back over the KISS connection the same way. If the packet has a third party header then it gets routed to the APRS-IS connection.? At least decode_aprs sees the packets as valid AX.25 packets. pi@wt0f-10:~ $
decode_aprs On 1/3/25 2:02 PM, WB2OSZ via groups.io
wrote:
-- Gerard Hickey / WT?F IRLP:3067/Echolink:529661 hickey@... DMR: 3102272 425-395-4554 Allstar: 531920 MeshPhone: 386-8611 |
Re: Third party packets on KISS connections
On Fri, Jan 3, 2025 at 10:26 AM, Gerard Hickey, WT?F wrote:
X>X:}<0x82><0xa0><0xb4><0x92><0x9e><0xa4>`<0x82><0xa0><0xa4><0xa6><0x8c><0x98>`<0xae><0x92><0x88><0x8a>b@c<0x03><0xf0>:WT0F-4?? :ack19 This part needs to be in plain text, not the AX.25 header format with the characters shifted left.
?
<0x82><0xa0><0xb4><0x92><0x9e><0xa4>`<0x82><0xa0><0xa4><0xa6><0x8c><0x98>`<0xae><0x92><0x88><0x8a>b@c<0x03><0xf0>
?
73,
John WB2OSZ |
Re: Third party packets on KISS connections
¿ªÔÆÌåÓýI have been doing some reading and experimentation this morning
and have a theory. Hopefully you can confirm my theory. I am using a forked copy of the ioreth script (actually forked
copy running APRSPH) and in this script it converts the AX.25
packet to a byte array and transmits the bytes over the KISS
connection. In the process of converting to the byte array it
shifts all the callsign characters by 1 bit to the left then adds
the SSID to the end of the callsign. The result being the
non-printable characters shown in my last message. Also this morning I found the decode_aprs utility and tried some
experiments with the hope that it would give me more info as to
why the packet was not being seen as an AX.25 packet. What it
seems is that if the KISS connection receives the stream of bytes
it will transmit the over the RF connection with no errors. If the
third party header is added, then Direwolf wants the entire packet
to be the string representation of the AX.25 packet. Does this make sense and could this be what is happening causing
Direwolf to flag the packet as an invalid AX.25 packet? Thanks. On 1/3/25 1:54 AM, Gerard Hickey, WT?F
via groups.io wrote:
-- Gerard Hickey / WT?F IRLP:3067/Echolink:529661 hickey@... DMR: 3102272 425-395-4554 Allstar: 531920 MeshPhone: 386-8611 |
Re: Third party packets on KISS connections
¿ªÔÆÌåÓýIt has helped a little bit, but I tried to send a third party
packet back over the KISS connection and I am getting DireWolf
telling me that the packet is not AX.25. I have had? very little
experience with AX.25 at the protocol level so I am probably
missing something pretty basic. Here is what I just got. [ig>tx]
WT0F-4>APDR16,TCPIP*,qAC,T2SPAIN::APRSFL?? :Ping{19 So the initial packet comes in over APRS-IS and my KISS client
sees the packet come in with the third party header on the packet.
At this point I am only attempting to put the third party header
on the ACK. The response from the KISS client (i.e. "Pong!") is
not sent with the third party header hence it is sent out the RF
interface. Any ideas as to why this is not being seen as an AX.25 packet or
what my misunderstanding is? On 1/2/25 11:25 AM, WB2OSZ via
groups.io wrote:
-- Gerard Hickey / WT?F IRLP:3067/Echolink:529661 hickey@... DMR: 3102272 425-395-4554 Allstar: 531920 MeshPhone: 386-8611 |
Re: Direwolf 1.7 & RPi Bookworm update
user@host:~ $ cd direwolf/
user@host:~/direwolf $ git checkout dev branch 'dev' set up to track 'origin/dev'. Switched to a new branch 'dev' user@host:~ mkdir build && cd build
(No std out)
user@host:~cmake -DUNITTEST=1 ..
<< This executed 100% this round >>
?
direwolf -t 0
Dire Wolf DEVELOPMENT version 1.8 D (Jan ?2 2025) Includes optional support for: ?cm108-ptt libgpiod Reading config file direwolf.conf
Line 207: Using a FIX_BITS value greater than 0 is not recommended for normal operation. FIX_BITS > 1 was an interesting experiment but turned out to be a bad idea. Don't be surprised if it takes 100% CPU, direwolf can't keep up with the audio stream, and you see messages like "Audio input device 0 error code -32: Broken pipe" Audio device for both receive and transmit: plughw:2,0 ?(channel 0) Channel 0: 1200 baud, AFSK 1200 & 2200 Hz, A+, 44100 sample rate, Tx AX.25. Ready to accept AGW client application 0 on port 8000 ... Ready to accept KISS TCP client application 0 on port 8001 ... ?
Bottom line, as Jay S reported, with the DEV version installed via the extra command in Section 2.3 (Page? 10) of the doc, its all working now.?
?
Thanks
|
Re: Direwolf 1.7 & RPi Bookworm update
Thanks for the quick replay John.
?
As requested:? ? ls -l /home/#######/direwolf/test/scripts/? yields:
?
ls: cannot access '/home/#######/direwolf/test/scripts/': No such file or directory
?
From the doc section 2.3, I see "Clone the git repository and checkout the desired version. Perform these steps logged in as the
predefined ¡°pi¡± user or some other account you created." In my case ad depicted, ####### ?
In my case it is a user name I admin many boxes with. Should I use 'pi' instead?
?
Thanks for the help :-)
? |
Re: Direwolf 1.7 & RPi Bookworm update
Interesting. I just tried it on bookworm and the dev branch was fine.
?
Lines, similar to this, containing "warning" are not a problem.
CMake Warning at CMakeLists.txt:307 (find_package):
?
Lines, similar to this, containing "error" are a problem.
CMake Error: File /home/1234/direwolf/test/scripts/check-modem1200 does not exist.
?
In this case, it is complaining about a missing file.
?
Try the following command, using the appropriate user name:
?
ls -l /home/pi/direwolf/test/scripts/
total 52 -rwxr-xr-x 1 pi pi 458 Jan ?2 12:07 check-fx25 -rwxr-xr-x 1 pi pi ?41 Jan ?2 12:07 check-il2p -rwxr-xr-x 1 pi pi 243 Jan ?2 12:07 check-modem1200 -rwxr-xr-x 1 pi pi 118 Jan ?2 12:07 check-modem1200-i -rwxr-xr-x 1 pi pi 265 Jan ?2 12:07 check-modem19200 -rwxr-xr-x 1 pi pi 173 Jan ?2 12:07 check-modem2400-a -rwxr-xr-x 1 pi pi 173 Jan ?2 12:07 check-modem2400-b -rwxr-xr-x 1 pi pi 125 Jan ?2 12:07 check-modem2400-g -rwxr-xr-x 1 pi pi 252 Jan ?2 12:07 check-modem300 -rwxr-xr-x 1 pi pi 158 Jan ?2 12:07 check-modem4800 -rwxr-xr-x 1 pi pi 246 Jan ?2 12:07 check-modem9600 -rwxr-xr-x 1 pi pi 558 Jan ?2 12:07 check-modem9600-i -rwxr-xr-x 1 pi pi 105 Jan ?2 12:07 check-modemeas ?
How did you get the source code?? "git clone" or some other way?
?
73,
John WB2OSZ
?
? |
Re: Third party packets on KISS connections
? The KISS frame uses AX.25 formatting for addresses.? This means the addresses are constrained to maximum 6 upper case letters or digits then an SSID in the range of 0 to 15.??? APRS-IS has looser restrictions.? Lower case can be used, station name can exceed 6 characters, and SSID can be up to 2 alphanumeric characters. Example: AB1OC-10>APWW11,TCPIP*,qAC,T2SPAIN:>FN42er/-DX: WA1PLE-13 43.7mi 154? 02:35 4208.36N 07113.50W<0x20> When something from APRS-IS is conveyed over KISS, we add a fake third party header so the original addresses can be preserved. Example: X>X:}AB1OC-10>APWW11,TCPIP*,qAC,T2SPAIN:>FN42er/-DX: WA1PLE-13 43.7mi 154? 02:35 4208.36N 07113.50W<0x20> Discard the first ":}" and everything before it. Going in the opposite direction, you would need a fake third party header only if any of the addresses violate the AX.25 restrictions.? It might be a good idea to always use it so you don¡¯t need to examine the addresses and have special cases.? Direwolf will simply discard any third party header before forwarding the rest to APRS-IS. More complete details are in "Internal-Packet-Routing.pdf" found in .? I hope this helps. 73, John WB2OSZ |
Re: Direwolf 1.7 & RPi Bookworm update
I have followed the instructions as given, and get these errors upon attempting the dev (git checkout dev) [page 10, RPI-APRS.pdf].?
{My first post, and I hope I provide what is needed to ask for help. Much appreciated}:
?
Std Out after this command [cmake -DUNITTEST=1 ..] :
?
-- Dire Wolf Version: 1.8.0-5736b0f
-- Build type set to: Release CMake system: Linux CMake Error at CMakeLists.txt:125 (include): ? include could not find requested file: ? ? FindCPUflags
CMake Warning at CMakeLists.txt:307 (find_package): ? By not providing "FindGPSD.cmake" in CMAKE_MODULE_PATH this project has ? asked CMake to find a package configuration file provided by "GPSD", but ? CMake did not find one. ? Could not find a package configuration file provided by "GPSD" with any of
? the following names: ? ? GPSDConfig.cmake
? ? gpsd-config.cmake ? Add the installation prefix of "GPSD" to CMAKE_PREFIX_PATH or set
? "GPSD_DIR" to a directory containing one of the above files. ?If "GPSD" ? provides a separate development package or SDK, be sure it has been ? installed. CMake Warning at CMakeLists.txt:315 (find_package): ? By not providing "Findhamlib.cmake" in CMAKE_MODULE_PATH this project has ? asked CMake to find a package configuration file provided by "hamlib", but ? CMake did not find one. ? Could not find a package configuration file provided by "hamlib" with any
? of the following names: ? ? hamlibConfig.cmake
? ? hamlib-config.cmake ? Add the installation prefix of "hamlib" to CMAKE_PREFIX_PATH or set
? "hamlib_DIR" to a directory containing one of the above files. ?If "hamlib" ? provides a separate development package or SDK, be sure it has been ? installed. CMake Warning at CMakeLists.txt:337 (find_package): ? By not providing "Findudev.cmake" in CMAKE_MODULE_PATH this project has ? asked CMake to find a package configuration file provided by "udev", but ? CMake did not find one. ? Could not find a package configuration file provided by "udev" with any of
? the following names: ? ? udevConfig.cmake
? ? udev-config.cmake ? Add the installation prefix of "udev" to CMAKE_PREFIX_PATH or set
? "udev_DIR" to a directory containing one of the above files. ?If "udev" ? provides a separate development package or SDK, be sure it has been ? installed. CMake Warning at CMakeLists.txt:342 (find_package): ? By not providing "FindAvahi.cmake" in CMAKE_MODULE_PATH this project has ? asked CMake to find a package configuration file provided by "Avahi", but ? CMake did not find one. ? Could not find a package configuration file provided by "Avahi" with any of
? the following names: ? ? AvahiConfig.cmake
? ? avahi-config.cmake ? Add the installation prefix of "Avahi" to CMAKE_PREFIX_PATH or set
? "Avahi_DIR" to a directory containing one of the above files. ?If "Avahi" ? provides a separate development package or SDK, be sure it has been ? installed. CMake Error at data/CMakeLists.txt:36 (file): ? file COPY cannot find "/home/1234/direwolf/data/symbols-new.txt": No ? such file or directory. CMake Error at data/CMakeLists.txt:37 (file): ? file COPY cannot find "/home/1234/direwolf/data/symbolsX.txt": No such ? file or directory. CMake Error at CMakeLists.txt:376 (add_subdirectory): ? add_subdirectory given source "/home/1234/direwolf/external/geotranz" ? which is not an existing directory. CMake Error at CMakeLists.txt:377 (add_subdirectory): ? add_subdirectory given source "/home/1234/direwolf/external/regex" which ? is not an existing directory. CMake Error at CMakeLists.txt:378 (add_subdirectory): ? The source directory ? ? /home/1234/direwolf/external/hidapi
? does not contain a CMakeLists.txt file.
CMake Error at CMakeLists.txt:379 (add_subdirectory): ? add_subdirectory given source "/home/1234/direwolf/external/misc" which ? is not an existing directory. -- Build unit test binaries CMake Error: File /home/1234/direwolf/test/scripts/check-fx25 does not exist. CMake Error at test/CMakeLists.txt:33 (configure_file): ? configure_file Problem configuring file CMake Error: File /home/1234/direwolf/test/scripts/check-il2p does not exist. CMake Error at test/CMakeLists.txt:39 (configure_file): ? configure_file Problem configuring file CMake Error: File /home/1234/direwolf/test/scripts/check-modem1200 does not exist. CMake Error at test/CMakeLists.txt:45 (configure_file): ? configure_file Problem configuring file .
.
.
. [truncated]
.
.?
CMake Error: File /home/1234/direwolf/test/scripts/check-modem4800 does not exist.
CMake Error at test/CMakeLists.txt:99 (configure_file): ? configure_file Problem configuring file CMake Error: File /home/1234/direwolf/test/scripts/check-modemeas does not exist. CMake Error at test/CMakeLists.txt:105 (configure_file): ? configure_file Problem configuring file CMake Error at CMakeLists.txt:393 (add_subdirectory): ? add_subdirectory given source "scripts" which is not an existing directory. CMake Error at CMakeLists.txt:402 (add_subdirectory): ? add_subdirectory given source "doc" which is not an existing directory. CMake Error at CMakeLists.txt:403 (add_subdirectory): ? The source directory ? ? /home/scholcu/direwolf/man
? does not contain a CMakeLists.txt file.
CMake Error at CMakeLists.txt:422 (add_subdirectory): ? The source directory ? ? /home/1234/direwolf/cmake/cpack
? does not contain a CMakeLists.txt file.
-- Configuring incomplete, errors occurred! See also "/home/1234/direwolf/build/CMakeFiles/CMakeOutput.log". See also "/home/1234/direwolf/build/CMakeFiles/CMakeError.log". |
Third party packets on KISS connections
¿ªÔÆÌåÓýI am working on bringing up an APRS bot and I am having some
troubles. Originally I was running Direwolf 1.6 and was having
problems getting packets from the APRS-IS connection to be seen by
the KISS client. This evening I compiled Direwolf 1.7 and used the
ICHANNEL statement. Now I am getting packets from the APRS-IS
connection routed over the KISS connection. That is the good news. The bad news is that the packets are being
received as third party packets and I can not find any references
to how packets should be sent over the KISS connection so that the
reply packet gets routed back over the KISS connection. So on the APRS-IS feed, I am seeing the packet come across as WT0F-4>APDR16,TCPIP*,qAC,T2PRT::APRSFL??
:Test{14 Then on the KISS client, I am seeing the packet come across as X*>X*:}WT0F-4>APDR16,TCPIP*,qAC,T2PRT::APRSFL?? :Test{14 The response that the client sends back (ACK) is (or close it is
as I did not have it handy) APRSFL>APZIOR,WIDE1-1::WT0F-4?? :ACK{14 This packet goes out the RF interface instead of the APRS-IS
connection. So the question is do I need to prepend the packet
with X*>X*:}
or X>X:} ?
Is there any good documentation on how to properly handle third
party packets? Thanks. -- Gerard Hickey / WT?F IRLP:3067/Echolink:529661 hickey@... DMR: 3102272 425-395-4554 Allstar: 531920 MeshPhone: 386-8611 |