Packet Radio (AX.25)
-
- Site Admin
- Posts: 2449
- Joined: Wed 25 Feb 25 2009 8:00 pm
Packet Radio (AX.25)
UZ7HO Soundmodem
The attached guide provides and easy way to get started with packet radio. This is especially useful if you already have a radio with a built-in sound card like the ICOM IC-705 and a Windows computer.
The programs that you need can be found at:-
http://uz7.ho.ua/packetradio.htm
Download the soundmodem zip file (currently soundmodem105.zip):-
http://uz7.ho.ua/modem_beta/soundmodem105.zip
and the EasyTerm file (currently easyterm46.zip):-
http://uz7.ho.ua/apps/easyterm46.zip
The rest of the instructions are in the attached PDF.
The attached guide provides and easy way to get started with packet radio. This is especially useful if you already have a radio with a built-in sound card like the ICOM IC-705 and a Windows computer.
The programs that you need can be found at:-
http://uz7.ho.ua/packetradio.htm
Download the soundmodem zip file (currently soundmodem105.zip):-
http://uz7.ho.ua/modem_beta/soundmodem105.zip
and the EasyTerm file (currently easyterm46.zip):-
http://uz7.ho.ua/apps/easyterm46.zip
The rest of the instructions are in the attached PDF.
- Attachments
-
- UZ7HO_Setup.pdf
- (321.62 KiB) Downloaded 1809 times
-
- Site Admin
- Posts: 2449
- Joined: Wed 25 Feb 25 2009 8:00 pm
Re: Packet Radio (AX.25)
Direwolf
In addition to UZ7HO, Direwolf appears to provide a soft-modem solution and supports multiple platforms. The user guide is attached and files can be downloaded from:-
https://packet-radio.net/direwolf/
At the time of writing, version 1.6 appears to be the latest.
https://github.com/wb2osz/direwolf/releases
Instructions to install on Linux platforms can be found here:-
https://github.com/wb2osz/direwolf
Here is a guide for setting Direwolf up with Windows (7):-
http://www.hardychronicles.com/html/dir ... ewolf.html
Simple setup instructions for ICOM IC-705
1. Download Direwolf and extract everything into a directory. In my case, I picked the 64-bit package as that conforms with my Windows 10 64-bit system.
https://github.com/wb2osz/direwolf/rele ... x86_64.zip
2. Navigate to the directory where the files were extracted and execute "direwolf.exe"
Once you do this, you should see a window where a list of devices will be listed, for example:-
Available audio input devices for receive (*=selected):
Close the Direwolf program after noting these values.
Note the number for your IC-705 (I've renamed my devices to be more obvious but yours could read "USB Audio Codec" or something similar). In my setup, the devices I am interested in are #0 for input and #2 for output. Keep these numbers in mind which will be used in the ADEVICE setting later on in the configuration file.
3. Go to Windows Device Manager and determine which COM port your IC-705 is sitting on. In my case, it is COM4.
In the ICOM IC-705 settings, under Connectors - make sure the USB SEND/KEYING has USB SEND set to USB (A) RTS.
4. Inside the directory where you extracted all the files, edit the file called "direwolf.conf" (you can use NotePad to do this if you do not have a proper text editor). Look for the line that says #ADEVICE HIGH and add the following lines below it (assuming my device numbers from step-2 above are 0 and 2:-
Of course, use your own settings for ADEVICE, MYCALL and PTT. Go through the rest of the configuration file and you may see the place where the above settings are normally put. I think the position is not critical as long as there are no duplicates. The # in front of the setting basically comments it out of use.
4. Fire up Direwolf again. You should see asterisks beside your ICOM IC-705 device if you have selected the ADEVICE correctly.
5. Get EasyTerm file (currently easyterm46.zip) and extract it to a directory of your choice:-
http://uz7.ho.ua/apps/easyterm46.zip
6. Fire up Term.exe and you should be ready to go.
7. Adjust the input audio so that the reported level on the Direwolf screen falls between 45 to 55.
In addition to UZ7HO, Direwolf appears to provide a soft-modem solution and supports multiple platforms. The user guide is attached and files can be downloaded from:-
https://packet-radio.net/direwolf/
At the time of writing, version 1.6 appears to be the latest.
https://github.com/wb2osz/direwolf/releases
Instructions to install on Linux platforms can be found here:-
https://github.com/wb2osz/direwolf
Here is a guide for setting Direwolf up with Windows (7):-
http://www.hardychronicles.com/html/dir ... ewolf.html
Simple setup instructions for ICOM IC-705
1. Download Direwolf and extract everything into a directory. In my case, I picked the 64-bit package as that conforms with my Windows 10 64-bit system.
https://github.com/wb2osz/direwolf/rele ... x86_64.zip
2. Navigate to the directory where the files were extracted and execute "direwolf.exe"
Once you do this, you should see a window where a list of devices will be listed, for example:-
Available audio input devices for receive (*=selected):
Code: Select all
* 0: ICOM IC-705 from radio (USB Aud (channel 0)
1: Loopback Mix (MOTU M Series)
2: Microphone (HD Pro Webcam C920)
3: In 1-2 (MOTU M Series)
4: In 3-4 (MOTU M Series)
5: ICOM IC-7300 from radio (3- USB
6: Loopback (MOTU M Series)
Available audio output devices for transmit (*=selected):
0: Out 1-2 (MOTU M Series)
1: ICOM IC-7300 to radio (3- USB A
* 2: ICOM IC-705 to radio (USB Audio (channel 0)
Note the number for your IC-705 (I've renamed my devices to be more obvious but yours could read "USB Audio Codec" or something similar). In my setup, the devices I am interested in are #0 for input and #2 for output. Keep these numbers in mind which will be used in the ADEVICE setting later on in the configuration file.
3. Go to Windows Device Manager and determine which COM port your IC-705 is sitting on. In my case, it is COM4.
In the ICOM IC-705 settings, under Connectors - make sure the USB SEND/KEYING has USB SEND set to USB (A) RTS.
4. Inside the directory where you extracted all the files, edit the file called "direwolf.conf" (you can use NotePad to do this if you do not have a proper text editor). Look for the line that says #ADEVICE HIGH and add the following lines below it (assuming my device numbers from step-2 above are 0 and 2:-
Code: Select all
ADEVICE 0 2
CHANNEL 0
MYCALL 9V1ZV-2
MODEM 1200
PTT COM4 RTS
TXDELAY 30
TXTAIL 10
CDIGIPEAT 0 0
CBEACON dest="BEACON" sendto=0
FIX_BITS 1
4. Fire up Direwolf again. You should see asterisks beside your ICOM IC-705 device if you have selected the ADEVICE correctly.
5. Get EasyTerm file (currently easyterm46.zip) and extract it to a directory of your choice:-
http://uz7.ho.ua/apps/easyterm46.zip
6. Fire up Term.exe and you should be ready to go.
7. Adjust the input audio so that the reported level on the Direwolf screen falls between 45 to 55.
- Attachments
-
- User-Guide.pdf
- (3.57 MiB) Downloaded 1722 times
-
- Site Admin
- Posts: 2449
- Joined: Wed 25 Feb 25 2009 8:00 pm
Re: Packet Radio (AX.25)
Some additional information for setting this up with an ICOM IC-705:-
MENU -> SET -> Connectors -> MOD Input -> USB MOD Level = 50%
MENU -> SET -> Connectors -> MOD Input -> DATA MOD = USB
MENU -> SET -> Connectors -> MOD Input -> DATA OFF MOD = MIC, USB
MENU -> SET -> Connectors -> USB SEND/Keying -> USB SEND = USB (A) RTS
These settings allow the computer to send audio to the radio over the USB, and to key the PTT over the USB RTS line.
Further more, it would seem that the recommended mode for AFSK with FM is actually FM-D. I have not tested this but that seems to be what some APRS users say. The center frequency for the Bell 202 signal is 1700Hz with a low of 1200Hz and high of 2200Hz. This means that the total bandwidth used is about 1kHz. This means that FIL3 should technically work with the 7kHz pass band. FIL1 and FIL2 certainly works as well. It seems that the ideal settings should be FM-D FIL3 or FIL2.
The volume of the audio going into the radio is controlled by:-
MENU -> SET -> Connectors -> USB AF/IF Output -> AF Output Level = 50%
However, this is also affected by the computers individual volume control for that device. This can be found under:-
Open Sound Settings -> Sound Control Panel -> Playback -> Level (for the appropriate device)
Likewise, the volume of the sound the computer gets from the radio is controlled by the USB MOD Level above, but also by the computer's own level:-
Open Sound Settings -> Sound Control Panel -> Recording -> Level (for the appropriate device)
MENU -> SET -> Connectors -> MOD Input -> USB MOD Level = 50%
MENU -> SET -> Connectors -> MOD Input -> DATA MOD = USB
MENU -> SET -> Connectors -> MOD Input -> DATA OFF MOD = MIC, USB
MENU -> SET -> Connectors -> USB SEND/Keying -> USB SEND = USB (A) RTS
These settings allow the computer to send audio to the radio over the USB, and to key the PTT over the USB RTS line.
Further more, it would seem that the recommended mode for AFSK with FM is actually FM-D. I have not tested this but that seems to be what some APRS users say. The center frequency for the Bell 202 signal is 1700Hz with a low of 1200Hz and high of 2200Hz. This means that the total bandwidth used is about 1kHz. This means that FIL3 should technically work with the 7kHz pass band. FIL1 and FIL2 certainly works as well. It seems that the ideal settings should be FM-D FIL3 or FIL2.
The volume of the audio going into the radio is controlled by:-
MENU -> SET -> Connectors -> USB AF/IF Output -> AF Output Level = 50%
However, this is also affected by the computers individual volume control for that device. This can be found under:-
Open Sound Settings -> Sound Control Panel -> Playback -> Level (for the appropriate device)
Likewise, the volume of the sound the computer gets from the radio is controlled by the USB MOD Level above, but also by the computer's own level:-
Open Sound Settings -> Sound Control Panel -> Recording -> Level (for the appropriate device)
-
- Site Admin
- Posts: 2449
- Joined: Wed 25 Feb 25 2009 8:00 pm
Re: Packet Radio (AX.25)
Installing Direwolf on Raspberry Pi 3 Model B+
https://orari.or.id/index.php/2019/09/0 ... ham-radio/
Hamlib needs to be built and installed first:-
Then Direwolf needs to be built and installed:-
This should see hamlib and direwolf install, albeit with some minor warnings (hamlib snprintf especially). Plug the IC-705 into the Raspberry or Rock64 and check if the radio is recognized as a sound device:-
Note the card and device number for the device association with the IC-705. This can be card 3, device 0, for instance. It should be the same for both aplay and arecord listing. Note that the card number may change with reboots. This is quite inconvenient and I'll have to look into how to prevent this or find out what conditions are leading to this change.
Also find out which are your COM ports:-
In my case, this is ttyACM0 and ttyACM1. To gain access to this device, you probably need to add your user to the dialout group as follows:-
There should now be a direwolf.conf in your home directory. We will need to edit this:-
The basic changes you will have to make are as follows:-
Note that your may want to append a suffix to your callsign here (called an SSID) so that Direwolf can be addressed separately from your terminal callsign. In my case, I tend to use -1 for the mailbox so I will use -2 for the Digipeater.
You should have the IC-705 plugged into the SBC (Raspberry Pi or Rock64) and reboot the board. You can then start the Direwolf server:-
If there are no errors, you should see something like this:-
If the SBC has an IP of 192.168.0.20 you can enter this IP address into your terminal program. In my case, I am using the UZ7HO EasyTerm so I put this into the "Station Setup" -> "TNC Setup" -> "Host" and it should work if you're on the same sub-net.
To start Direwolf at boot, follow the instructions in this page:-
https://www.marrold.co.uk/2019/04/insta ... ry-pi.html
If making Direwolf a service, remember to change the "User" parameter in the script to reflect your user (rock64 in my case).
Note that the Direwolf screen will report the audio level of the received signal. This should ideally be in the 45-55 region.
On Linux machines, the device number for your soundcard may sometimes change, thus leading to a failed start. If you have it working and then suddenly stop working, do an "aplay -l" to ensure that the device number for the sound card is still the same.
https://orari.or.id/index.php/2019/09/0 ... ham-radio/
Hamlib needs to be built and installed first:-
Code: Select all
cd Downloads
wget https://sourceforge.net/projects/hamlib/files/hamlib/3.3/hamlib-3.3.tar.gz
tar -zxvf hamlib-3.3.tar.gz
cd hamlib-3.3
./configure --prefix=/usr/local --enable-static
make
sudo make install
sudo ldconfig
reboot
Code: Select all
su
cd /usr/src (actually this can be Downloads as well)
git clone http://github.com/wb2osz/direwolf
cd direwolf
apt install cmake hamlib-utils libhamlib-utils libgps-dev libusb-dev libasound2-dev
mkdir build
cd build
cmake ..
make -j4
sudo make install
make install-conf
Code: Select all
aplay -l
arecord -l
Also find out which are your COM ports:-
Code: Select all
dmesg | grep tty
Code: Select all
sudo usermod -a -G dialout $USER
sudo reboot
Code: Select all
nano direwolf.conf
Code: Select all
ADEVICE plughw:3,0 (card 3, device 0 in my case)
MYCALL 9V1ZV-2
PTT /dev/ttyACM0 RTS
TXDELAY 30
TXTAIL 10
FIX_BITS 1
CDIGIPEAT 0 0
CBEACON dest="BEACON" sendto=0
You should have the IC-705 plugged into the SBC (Raspberry Pi or Rock64) and reboot the board. You can then start the Direwolf server:-
Code: Select all
direwolf
Code: Select all
Dire Wolf version 1.6
Includes optional support for: hamlib cm108-ptt
Reading config file direwolf.conf
Audio device for both receive and transmit: plughw:3,0 (channel 0)
Channel 0: 1200 baud, AFSK 1200 & 2200 Hz, E+, 44100 sample rate / 3.
Ready to accept KISS TCP client application 0 on port 8001 ...
Ready to accept AGW client application 0 on port 8000 ...
Attached to AGW client application 0...
Ready to accept AGW client application 1 on port 8000 ...
To start Direwolf at boot, follow the instructions in this page:-
https://www.marrold.co.uk/2019/04/insta ... ry-pi.html
If making Direwolf a service, remember to change the "User" parameter in the script to reflect your user (rock64 in my case).
Note that the Direwolf screen will report the audio level of the received signal. This should ideally be in the 45-55 region.
On Linux machines, the device number for your soundcard may sometimes change, thus leading to a failed start. If you have it working and then suddenly stop working, do an "aplay -l" to ensure that the device number for the sound card is still the same.
-
- Site Admin
- Posts: 2449
- Joined: Wed 25 Feb 25 2009 8:00 pm
Re: Packet Radio (AX.25)
In order to get Direwolf working with the rock64 SBC, we will need to figure out the appropriate GPIO pins to use for activating the PTT. The GPIO pin numbers are going to be different from that of the Raspberry Pi. The mapping for the 40-pin header is as follows:-
http://synfare.com/599N105E/hwdocs/rock64/index.html
In our case, we are going to pick pin-8 of the 40-pin header, which according to the mapping chart above corresponds to GPIO 64. In order to enable this pin for use, we will need to configure it first:-
This enables the GPIO pin (pin-8), makes it an output pin and turns it off. This number then goes into direwolf.conf as:-
*update, we have switched to GPIO 101, pin-16, as GPIO 64 is part of the serial port and random data appears on it. Additionally, the above initialization is not necessary as Direwolf already handles all necessary GPIO configuration for the pin. We have now switched to using the pin as an open collector pin due to the pin defaulting to high when rebooting.
*The RK3328 SoC GPIO can source about 10mA (max 12mA), apparently adjustable in software.
More pinout mappings can be found here:-
https://github.com/Leapo/Rock64-R64.GPI ... GPIO-Modes
For some odd reason, the USB Audio Device is not immediately available upon reboot. For this to work right, you will need to enumerate BOTH the play and record devices before it will be properly recognized:-
More info can be found here, including the mapping for the second header:-http://synfare.com/599N105E/hwdocs/rock64/index.html
In our case, we are going to pick pin-8 of the 40-pin header, which according to the mapping chart above corresponds to GPIO 64. In order to enable this pin for use, we will need to configure it first:-
Code: Select all
sudo bash
cd /sys/class/gpio
echo 64 > export
echo out > gpio64/direction
echo 0 > gpio64/value
Code: Select all
PTT GPIO 64
*The RK3328 SoC GPIO can source about 10mA (max 12mA), apparently adjustable in software.
More pinout mappings can be found here:-
https://github.com/Leapo/Rock64-R64.GPI ... GPIO-Modes
For some odd reason, the USB Audio Device is not immediately available upon reboot. For this to work right, you will need to enumerate BOTH the play and record devices before it will be properly recognized:-
Code: Select all
aplay -l
sleep 1
arecord -l
cd /home/rock64/direwolf/
sleep 5
/usr/local/bin/direwolf -c /home/rock64/direwolf/direwolf.conf
-
- Site Admin
- Posts: 2449
- Joined: Wed 25 Feb 25 2009 8:00 pm
Re: Packet Radio (AX.25)
For rock64, you need to either enable AX.25 support in the Linux kernel or compile the modules. These instructions should work:-
http://k4gbb.us/docs/raspberry.html
For the autogen to work, you also need to install automake and the ncursesw library:-
AX.25 kernel support for rock64 seems to be a dead-end though, as the kernel was specially compiled and omitted the AX.25 options. It might be possible to recompile the entire ayufan branch but that will have to be a last recourse. In rock64, before compiling, be sure to set the ARCH:-
https://github.com/ayufan-rock64/linux-kernel
*there may be a need to edit the drivers/gpu/arm/mali400/mali/Kbuild file to point towards mali_utgard_uk_types.h which is found in a different directory
include/linux/mali/mali_utgard_uk_types.h
*there is a need to edit linux-kernel/include/linux/bug.h on line 71 to increase the size of the array.
*there is also a need to edit drivers/gpu/arm/mali400/mali/Kbuild to include:-
Configure the options to include the "Amateur Radio" support under the networking heading:-
or
While in there, turn off unneeded modules - NVME, PCIE, and other stuff that will just complicate the build.
In linux-kernel/drivers/gpu/arm/Kbuild, comment out everything except mali400 support. The rest are not needed and compiles with errors.
http://k4gbb.us/docs/raspberry.html
For the autogen to work, you also need to install automake and the ncursesw library:-
Code: Select all
sudo apt install automake libncursesw5-dev
Code: Select all
export ARCH=arm
*there may be a need to edit the drivers/gpu/arm/mali400/mali/Kbuild file to point towards mali_utgard_uk_types.h which is found in a different directory
include/linux/mali/mali_utgard_uk_types.h
*there is a need to edit linux-kernel/include/linux/bug.h on line 71 to increase the size of the array.
*there is also a need to edit drivers/gpu/arm/mali400/mali/Kbuild to include:-
Code: Select all
ccflags-y += -O0
Code: Select all
make menuconfig
Code: Select all
make O=/home/rock64/build/kernel menuconfig
In linux-kernel/drivers/gpu/arm/Kbuild, comment out everything except mali400 support. The rest are not needed and compiles with errors.
-
- Site Admin
- Posts: 2449
- Joined: Wed 25 Feb 25 2009 8:00 pm
-
- Site Admin
- Posts: 2449
- Joined: Wed 25 Feb 25 2009 8:00 pm
Re: Packet Radio (AX.25)
Digipeater default user is rock64@ :60023
-
- Site Admin
- Posts: 2449
- Joined: Wed 25 Feb 25 2009 8:00 pm
Re: Packet Radio (AX.25)
The configuration should be done on direwolf.conf.template
To connect to a screen, use:-
To detach from the screen, do a ctrl-a then ctrl-d.
To connect to a screen, use:-
Code: Select all
screen -r
-
- Site Admin
- Posts: 2449
- Joined: Wed 25 Feb 25 2009 8:00 pm
Re: Packet Radio (AX.25)
The rock64 board was just too sluggish for me. We're switching over to a proper Raspberry Pi-4 Model B with 8GB of RAM.
In our case, we're using the Rasbian OS Lite (without desktop) option. You do need to put a blank file name "ssh" in the root of the "boot" partition that shows up (probably as F:). This will enable ssh for pi@.... Standard password for RPi4 is "raspberry"
Use "sudo raspi-config" to set up the various settings.
Direwolf installation instructions are here:-
https://github.com/wb2osz/direwolf/blob ... i-APRS.pdf
In our case, we're using the Rasbian OS Lite (without desktop) option. You do need to put a blank file name "ssh" in the root of the "boot" partition that shows up (probably as F:). This will enable ssh for pi@.... Standard password for RPi4 is "raspberry"
Use "sudo raspi-config" to set up the various settings.
Direwolf installation instructions are here:-
https://github.com/wb2osz/direwolf/blob ... i-APRS.pdf