Thursday, February 16, 2012

Packet Radio on Ubuntu using Soundmodem

Packet Radio on Ubuntu using Soundmodem (144.800Mhz)

I got my ax25 configuration working with soundmodem on Ubuntu.

1) Install soundmodem and all ax25 options with Synaptic Package Manager or with (apt-get)
1.1)The list of apps I installed. ax25-apps, ax25-tools, ax25-xtools, ax25mail-utils, ax25spyd, soundmodem,

sudo apt-get install ax25-apps
sudo apt-get install ax25-tools
sudo apt-get install ax25-xtools
sudo apt-get install ax25mail-utils
sudo apt-get install ax25spyd
sudo apt-get install soundmodem

1.2) I found this script EasyPacket (install it) .
It consist of a series of scipts to simplify the process of starting and configerating a user packet node, see documentation in /usr/share/doc/easypacket (after instillation) for mode details.
1.3) The document was in Spanish and I had to translate it with google. Here is the content.
Greetings, My name is Pavel and I am CO7WTCosta Milanes, a Cuban Amateur Radio

This packete software was created to provide aconfiguration standard in mind to facilitate the assembly of apacket station in GNU / Linux, is expected to be as automatic as possible throughout their development.

The ideas or main bases of this software are:

- Used to create 3 soundmodem software modems simultaneous / Individual
- Create three ports of packet: 1k2, 9k6 and 4K8,which correspond to the speed AFSK 1200, 4800 and 9600 AFSK FSK,or all together or each individually.
- As a GNU / Linux has to assign an IP address toScholarly interface, suggests the use of AMPR declared 44.128.xxsegment test for each of the interfaces on different network segments, you must reset the IP address what proveea your local coordinator, allocation is as follows:
IP Address Mode Speed ​​port interface
1200 baud AFSK 1k2 x0
4800 baud ax1
9600 baud FSK 9k6 ax2
- Only taken into account the connections AX25;NETROSE BPQ and others are referred
- Default incoming connections to ttylinkd enrrutanis not actualemnte functional.
- The indicative NOCALL default and is configured using the packetconfig script.
I found the README a bit cryptic.

2) I did the following.

2.1)I run soundmodemconfig  you will need X window server if you are doing this remotely via ssh

sudo soundmodemconfig

Soundmodem config screen

2.2) Configure the sound modem as in the pictures above. ( it will save the config when you exit the app)

plughw0.0 could be different for your Linux depending how many Audio sound cards you have in your ALSA configuration.  

sudo arecord -l will list your device's

**** List of CAPTURE Hardware Devices ****
xcb_connection_has_error() returned true
Home directory /home/anton not ours.
card 0: Intel [HDA Intel], device 0: ALC662 rev1 Analog [ALC662 rev1 Analog]
  Subdevices: 0/1
  Subdevice #0: subdevice #0
card 1: V10 [FUNcube Dongle V1.0], device 0: USB Audio [USB Audio]
  Subdevices: 1/1

  Subdevice #0: subdevice #0

plughw0.0  will be card 0

2.3) I connected the external speaker sound plug on Radio to laptop line in and tuned VHF radio to 144.800Mhz FM to see some local packet traffic.

2.4) Select new configuration in file menu and then sound card.
On the older Ubuntu it was /dev/dsp (soundcard) new Ubuntu its (alsa and plughw:0,0) and your serial port (my port was /dev/ttyS0) for your PTT (I am using ZS1I radio interface between radio and laptop)

to see what is the list of serial devices run the command ls -al /dev/* | grep ttyS

crw-rw----  1 root dialout   4,  64 Sep  4 17:42 /dev/ttyS0
crw-rw----  1 root dialout   4,  65 Sep  4 17:42 /dev/ttyS1
crw-rw----  1 root dialout   4,  74 Sep  4 17:42 /dev/ttyS10
crw-rw----  1 root dialout   4,  75 Sep  4 17:42 /dev/ttyS11
crw-rw----  1 root dialout   4,  76 Sep  4 17:42 /dev/ttyS12

U can use the terminal program to see if its the correct serial port.
Install minicom serial terminal program.

sudo apt-get install minicom

sudo minicom

Welcome to minicom 2.5

Compiled on May  2 2011, 00:39:27.
Port /dev/tty8

Press CTRL-A Z for help on special keys

Press [ctrl]A and then Z

You should then get this menu

     |                                  Minicom Command Summary                       |
     |                                                                                                      |
     |          Commands can be called by CTRL-A <key>                       |
     |                                                                                                      |
     |               Main Functions                  Other Functions                     |
     |                                                                                                      |
     | Dialing directory..D  run script (Go)....G        | Clear Screen.......C  |
     | Send files.........S  Receive files......R         | cOnfigure Minicom..O  |
     | comm Parameters....P  Add linefeed.......A | Suspend minicom....J  |
     | Capture on/off.....L  Hangup.............H          | eXit and reset.....X  |
     | send break.........F  initialize Modem...M      | Quit with no reset.Q |
     | Terminal settings..T  run Kermit.........K      | Cursor key mode....I  |
     | lineWrap on/off....W  local Echo on/off..E      | Help screen........Z  |
     | Paste file.........Y                                            | scroll Back........B   |
     |                                                                                                      |
     |      Select function or press Enter for none.                                     |
     |                                                                                                      |
     |             Written by Miquel van Smoorenburg 1991-1995               |
     |             Some additions by Jukka Lahtinen 1997-2000                  |
     |             i18n by Arnaldo Carvalho de Melo 1998                           |

Select option  O

 | Filenames and paths      |
 | File transfer protocols    |
 | Serial port setup            |
 | Modem and dialing        |
 | Screen and keyboard     |
 | Save setup as dfl           |
 | Save setup as..              |
 | Exit                               |

Select Serial port setup

Change your comm port by selecting A

and then edit your port  /dev/ttyS0  ??

Save and exit to get back to terminal and send some characters and check your serial port TX pins for data.
select  X to exit

2.5) Then select file new channel in the soundmodemconfig ( Select modulator and demodulator afsk the rest of the defaults should be ok.)
Change your cal-sign in Packet IO tab.

2.6) Select Channel menu on left and the click on Diagnostics menu and click on scope. You should see your audio from your radio ext speaker. ( if you get an error you have the wrong audio device change it until it work)

Set the volume on receiver for reasonable level (You might have to set the level with sudo alsamixer)

Sudo alsamixer

Use the F5 and F6 keys to select the sound card and input M also selects options

2.7) Exit the soundmodem config program. ( it will save the config on exit)

2.8) There should be a config file in /etc/ax25/soundmodem.conf

2.9) make a copy and rename it to soundmodem.9k6.conf

3) you can now start the easypacket script (sudo packeton 9k6)

3.1) you should see something like (The following interfaces are ready to rock: sm0 ZR6AIC)
Almost done.
you could now monitor packet in listening mode with the following commands. (sudo ax25spy or sudo  listen  has changed to sudo axlistin -c -a).

I will continue next time how to connect using the ax25 tools ....

here is the list of commands that manages your AX25 connections.
Mheard  displays information about most recently heard AX.25 callsigns, the interface upon which they were heard, the total packets heard,  the time  at  which  the  last one was heard and other information.  Mheard displays different information, in different orders  depending  on  the settings  of  the  arguments. Information on specific ports can be displayed by giving the port names as arguments.
Ax25d  is  a  general purpose server daemon that listens on a number of AX.25, NET/ROM and Rose ports and offers different  services  depending upon port, callsign and other parameters.
The axctl commands to be issued to the Linux AX.25 protocol layer for existing AX.25 connections. The connection is uniquely  identified  via  the  combination  of port, destination callsign and source callsign, with that information the kernel is able to change the parameters, or abort the connection. .
Configure AX.25 interfaces
Allow automatic login to a Linux system
Transmit periodic messages on an AX.25 port
Configure BPQ ethernet devices
Collect information about packet activity
Route AX.25 packets between ports transparently
Get/set Linux HDLC packet radio modem driver port information
Get/set Linux soundcard packet radio modem driver mixer
Linux soundcard packet radio modem driver diagnostics utility
Attach a KISS or 6PACK interface
Create a virtual network
Configure KISS TNCs
Convert a network AX.25 driver to a KISS stream on a pseudo-tty
Attach a multi KISS interface
Saves NET/ROM routing information
Start a NET/ROM interface
Configure the NET/ROM interface
KISS to NET/ROM serial converter
Send and receive NET/ROM routing messages
Start a ROSE interface
User exit from the ROSE network
Configure the ROSE interface
User entry into the ROSE network
TTYlink daemon for AX.25, NET/ROM, ROSE and IP
Send and receive RIP98 routing messages
Make an AX.25, NET/ROM, ROSE or TCP connection
Make an AX.25, NET/ROM, ROSE or TCP connection
Make an AX.25, NET/ROM, ROSE or TCP connection
Make an AX.25, NET/ROM, ROSE or TCP connection
Configure YAM driver parameters
Configure dmascc devices
AX.25 into IP Encapsulator
AX.25 routing daemon
AX.25 routing daemon control utility
call > now axcall
Make an AX.25, NET/ROM or ROSE connection
Monitor AX.25 traffic
Dump the AX.25 network traffic and and provide sockets where the received data will be retransmitted
Soundcard modem driver
Soundcard modem configuration utility
APRS daemon
APRS passcode generator
APRS digipeater
Monitor APRS AX.25 traffic for JavAPRS

More info is avalable here