This docunment decribes how to set up a basic RMS Gateway using LinBPQ - the Linux version of the BPQ32 Networking package. Although the instructions are slanted toward using a Raspberry PI, which because of the combination of small size and low price and power consumption makes a good choice for a gateway, the software can run on other Linux systems. Familiarity with the Winlink 2000 system is assumed, along with a (very) basic Linux knowledge.
Although there are other ways of providing a Packet RMS
Gateway (eg
LinuxRMS) LinBPQ has the advantage of supporting a range of Data over
Radio protocols (eg Pactor, Robust Packet, WINMOR) as well as ax.25
Packet, allowing it to provide much the same facilites as RMS Trimode.
Note that although WINMOR is supported, until a Linux port of the
WINMOR TNC is produced, a separate Windows machine is required to run
the TNC. LinBPQ can also run a store and forward system which can
provide similar facilites to RMS Relay, and Winlink Client facilites
similar to Paclink.
BPQ32/LinBPQ is a pretty complex package, with many options.
This
document describes how to set up a simple, single protocol gateway
without having to wade throuugh a lot of irrelevant stuff. Once you
have a basic system running if you want to add other options it
shouldn't seem so
complicated. If you want more information, the full specification of
bpq32.cfg is here
.
If you are completely new to the Raspberry PI, there are intructions on
how to do the basic setup of the Linux operating system here.
I've written a simple script to download and install LinBPQ. The script
can be seen here.
Download the script using wget, set it as executable and run it:
wget http://www.cantab.net/users/john.wiseman/Downloads/installLinBPQ
chmod +x installLinBPQ
./installLinBPQ
This will create the directory linbpq and download linbpq and other needed files into it.
LinBPQ configuration is held in file bpq32.cfg. LinBPQ refers
to links to the outside world as PORTS. These may be radio
links, paths over the Internet, or wire links. For an RMS
Gateway you need at least two - one to connect to the CMS over the
Internet, and one for your users to connect to over radio. LinBPQ
supports two types of Internet Port - AXIP, to link to other simlilar
systems, and Telnet, which is used to link to the CMS and for
Management. The main management interface is Web based, but Telnet is
useful for some functions. The following configures basic system
parameter, and a Telnet port providing access to the CMS, the Web
Management interface and telnet. This is common to all Gateways. Later
examples will be given for a range of radio options.
You can download this file from SimpleRMSGateway_bpq32.cfg\
; Basic RMS configuration
SIMPLE ; This set a whole load of paramters to reasonable defaults
LOCATOR=XXnnXX ; Set to your Grid Square to send reports to the BPQ32 Node Map system
NODECALL=MYCALL
INFOMSG:MYCALL's RMS Gateway
***
PORT ID=Telnet Server
DRIVER=TELNET
CONFIG
LOGGING=1
CMS=1 ; Enable CMS Gateway
CMSCALL=MYCALL ; CMS Gateway Call for Secure CMS Access(normally same as NODECALL)
CMSPASS=PASSWORD ; Secure CMS Password
HTTPPORT=8080 ; Port used for Web Management
TCPPORT=8010 ; Port for Telnet Access
FBBPORT=8011 ; Not required, but allows monitoring using BPQTermTCP
MAXSESSIONS=10
CloseOnDisconnect=1 ; Close Telent Session when Node disconnects
USER=user,password,MYCALL,"",SYSOP
ENDPORT
; Add Radio Port(s) Here
APPLICATION 1,RMS,C 1 CMS,MYCALL-10
Copy to a file bpq32.cfg in your linbpq directory. (note
filemame must be lower case), and replace MYCALL in 5 places with your
callsign. Replace CMSPASS with your RMS Gateway password, and user and
password in the USER line with something suitable. You can change
HTTPPORT TCPPORT and FBBPORT to other values if they clash
with ports you are using for other
software. If you set LOCATOR to your Grid Square, the software will
send you position to the BPQ32
Node Map.
At this point if you wish you can start the software, and check that the CMS connection works using telnet.
./linbpq
You should see something like
pi@pi1 ~/linbpq $ ./linbpq
G8BPQ AX25 Packet Switch System Version 6.0.1.18 April 2013
Copyright © 2001-2013 John Wiseman G8BPQ
Current Directory is /home/pi/linbpq
Configuration file Preprocessor.
Using Configuration file /home/pi/linbpq/bpq32.cfg
Conversion (probably) successful
PORTS 11b234 LINKS 11c9f6 DESTS 11f7b6 ROUTES 12576a L4 126caa BUFFERS 12c8c0
Initialising Port 01 Telnet Server
Note that LinBPQ is intended to run in the background, (see later for how to set this up) so you can't interact with it, except to shut it down with ctrl/c
You can test the setup using telnet. You will need to install it. Open another session to the PI (or if using a screen and keyboard switch to another window using ALT/F2) and enter:
sudo apt-get install telnet
then
telnet localhost 8010
Enter your user and password (from the USER line above), then
enter
rms. You should see something like
pi@pi1 ~ $ telnet localhost 8010
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
user:user
password:password
Connected to G8BPQ's Telnet Server
rms
*** G8BPQ Connected to CMS
[WL2K-2.7.6.4-B2FWIHJM$]
;PQ: 69998413
SanDiego CMS via G8BPQ >
lm
No pending messages found...
SanDiego CMS via G8BPQ >
b
Disconnecting...
*** Disconnected from Stream 1
Connection closed by foreign host.
pi@pi1 ~ $
If this is ok, you can go on and configure your radio port(s).
All radio ports include a WL2KREPORT line, which sets up reporting to the Winlink channels database. Edit thiis line with the infomation for your station. Fields are
Service, Host, Port, Callsign, Locator, Hours, Freq, Mode, Power, Ant Height, Ant Gain, Ant Direction
See
here for more information on reporting to the WL2K staton
database.
Using TNC-Pi
The TNCPi
is a version
of the TNC-X KISS TNC modified to be the same size as the PI and to
connect to it via either its serial port or i2c bus. If you
use
i2c you can connect more than one TNC, but for simplicity this example
uses the serial port. See here
for
instructions on using i2c.
PORT
ID=1200 Baud 144.xxx
TYPE=ASYNC
PROTOCOL=KISS
CHANNEL=A
COMPORT=/dev/serial0
SPEED=19200 ; Must by 19200 for TNC-Pi
MAXFRAME=4
FRACK=8000
RESPTIME=1500
RETRIES=10
PACLEN=128
KISSOPTIONS=PITNC,NOPARAMS
WL2KREPORT PUBLIC, www.winlink.org, 8778, MYCALL-10, XXnnXX, 00-23, 144800000, PKT1200, 10, 20, 5, 0
ENDPORT
Using other
types of KISS TNC
Normally TNC's will be connected to the pi using USB, and will appear as device /dev/ttyUSB0.
PORT
ID=1200 Baud 144.xxx
TYPE=ASYNC
PROTOCOL=KISS
CHANNEL=A
COMPORT=/dev/ttyUSB0
SPEED=9600 ; Change as required
MAXFRAME=4
FRACK=8000
RESPTIME=1500
RETRIES=10
PACLEN=120
TXDELAY=300
SLOTTIME=100
PERSIST=64
WL2KREPORT PUBLIC, www.winlink.org, 8778, MYCALL-10, XXnnXX, 00-23, 144800000, PKT1200, 10, 20, 5, 0
ENDPORT
Copy your bpq32.cfg after the Telnet Port config, and if necessary change parameters to suit you local packet network.
Robust Packet is a protocol developed by SCS using standard ax.25 frames, but with a modulation method similar to Pactor II. It generally is considered to be more effective on HF than normal 300 baud FSK Packet. It normally runs at 600 baud, but can fall back to 300 on poor channels. It is supported by the SCS Tracker and some PTC models. It would be arather a waste to use a PTC just for Robust Packet, but it can also be ocmbined with Pactor - see the Pactor section for details
SCS Tracker.
The Tracker connects to the Pi using USB, and appears as
/dev/ttyUSB0. Note that early PI kernels would crash when trying to
access the tracker, so make sure your Kernel is up to date (at least
Version 3.6.11+ Build 393)..
PORT
ID=Tracker
DRIVER=SCSTracker
COMPORT=/dev/ttyUSB0
SPEED=38400 ; COM Port Speed
PORTCALL=MYCALL-10
CONFIG ; Driver-Specific Configuration
APPL RMS ; Autoconnect to BPQ32 RMS Application
USEAPPLCALLS ; Listen for calls to any of your APPLnCALLS
DEFAULT ROBUST ; Return to Robust mode after connections
WL2KREPORT PUBLIC, www.winlink.org, 8778, MYCALL-10, XXnnXX, 00-23, 14103000, ROBUST, 10, 20, 5, 0
ENDPORT
Change MYCALL to your callsign
Most stations use one o the SCS range of comtrollers for Pactor, as these are the only ones that support Pactor II and above. However LinBPQ also supports AEA KAM and HAL controllers.
SCS Pactor
Cotrollers.
Any of the SCS Pactor controllers can be used. These will normally connect via USB, ether via a USB-Serial converter or a built-in USB Port. You can also use the PI's built in serial port, but this would need a TTL (3.3V) to RS322 converter.
If you have a PTC PRO with Packet modules, these can be used on packet at the same time as the main port is used on Pactor.
If you have a non-PRO module you can use either Pactor or Robust Packet. The software can be set to scan between the two. This is decribed later in the section on scanning.
PORT
ID=Pactor Link
DRIVER=SCSPactor
COMPORT=/dev/ttyUSB0
SPEED=38400 ; COM Port Speed
CONFIG ; Driver-Specific Configuration
APPL RMS ; Autoconnect to CMS
PSKA 140 ; PSK TX Output level.
FSKA 100 ; TX Level for FSK modes
WL2KREPORT PUBLIC, www.winlink.org, 8778, MYCALL-10, XXnnXX, 00-23, 14103000, P123, 10, 20, 5, 0
ENDPORT
Alter PSKA and FSKA as requited. if you are using a Dragon,
add the
following line before ENDPORT. To comply with US regulations, the
Dragon will be limited to P3. If your administration permits P4, also
add MAXLEVEL=4
DRAGON
If you wish to use any packet ports on a PTC PRO, you will
need to
set suitable ax.25 params, for example:
PACKETCHANNELS 10 ; Enable Packet Ports
PAC TXD 1:250
PAC TXD 2:200
WL2KREPORT PUBLIC, www.winlink.org, 8778, MYCALL-10, XXnnXX, 00-23, 145000000, PKT1200, 10, 20, 5, 0
WL2KREPORT PUBLIC, www.winlink.org, 8778, MYCALL-10, XXnnXX, 00-23, 433000000, PKT9600, 10, 20, 5, 0
These also go before ENDPORT
Scanning is supported for most ICOM and Kenwood rigs with a CAT interface. Some Yeasu rigs are also supported, but as Yeasu dont have a standard, not all work.
Scanning is controlled by the RIGCONTROL configuration statement, which goes before ENDPORT. A example configuration is
RIGCONTROL
COM6 9600 ICOM IC718 5E
5,3.5855,USB,F1,P23,W1
5,7.1,USB,F1,P23,W1
5,14.103,USB,F1,P123,W2
****
Each Frequency/Mode entry consists of a comma separated list with the following format:
Dwell Time (Time before changing frequncy in seconds, decimals allowed, resolution 100ms)
Frequency (Mhz)
Mode (can normally be abbreviated to first char, but handles modes such as PKT-L, FSK-R, PKT-FM.
One or more options, separated by commas. Options are:
A1-A4 - Antenna Switching via DTR/RTS
F1-F3 - IF Filter for ICOM Rigs
H1 H2 - HF Packet 300 or 1200 (SCS Tracker only)
P1 P12 P123 P1234 P2 P23 P234 P3 P34 P4 - Pactor Modes.
R1 R2 - Robust Packet 300 or 600 (SCS Tracker only)
W1 W2 - WINMOR 500 or 1600 (WN and WW are also accepted)
X - Don't Report to WL2K
+ - S - Repeater Shift/Simplex (only on ICOM rigs)
D - Set Data Mode on IC746
See http://www.cantab.net/users/john.wiseman/Documents/RigControl.html for a full specification
When you have configured you redio port, close and restart
LinBPQ,
and you should now be able to connect to
MYCALL-10 from your preferred WL2K client and send/receive message from
the CMS.