BPQ Ports

From Digital Traffic System
Jump to: navigation, search

Ports

Ports connect BPQ with the outside world which allows in particular to use radios and teletype controllers with BPQ. Besides these physical devices ports for network protocols are becoming more and more important. Those are used to connect software modems like the Winmor virtual TNC as well as other BPQ nodes with each other e.g. using AXIP.

Examples for ports offered by BPQ are:

Port Device Protocol
BPQtoAGW AGW software AX.25
SCSTracker SCS Tracker AX.25
SCSPactor SCS PTC controllers AX.25, Pactor
AEAPactor AEA modems Pactor
Winmor Winmor soft Winmor
Fldigi Fldigi soft Fl modes
Telnet -- TCP/IP
TNC TNC emul hostmodes
KISS TNC TNC emul KISS

Ports abstract the external interfaces from the switch and use circuits on the switch for use with inbound and outound connections. See above for more details on this.

The skeleton of a port config

    [bpq32.cfg]
    PORT
        ... ... ...
        CONFIG
            ... ... ...
    ENDPORT

consists of two parts: parameters which apply to ports in general are before the CONFIG token and parameters which are specific to the device in question are below the CONFIG token. The latter ones will result in commands being send to the device.


General port configuration

The following parameters are part of the general port config:

ID

Description of the port (30 chars max) to be displayed by the NCI "PORTS" command.

PORTNUM

Unique numerical identifier for the port used in port related commands e.g. ATTACH.

DRIVER

The driver used to control the device. Most port drivers are now implemented as part of the main bpq32.dll and do not require to load an external DLL.

DLLNAME=...

used instead of the DRIVER statement in case the port is implemented with an external DLL (e.g. Winmor)

TYPE
  • ASYNC: ASYNC board
  • INTERNAL: used for the loopback port only
  • EXTERNAL: port using an external connection
PROTOCOL=... KISS|NETROM|PACTOR|WINMOR

Transport protocol to be used on the port. Specifying PACTOR or WINMOR is not needed.

Hardware related parameters include:

COMPORT=nr number of the serial line port to be used for the BPQ port
SPEED=nnn speed for serial line communications
INTERLOCK=n

This allows a radio to be shared among multiple ports, typically a Pactor and a Winmor port. Details can be found in the section on the scanner.

Application related parameters are:

BBSFLAG=NOBBS the BBS application cannot be accessed from this port
APPL

incoming calls on the port invoke the specified application e.g. "APPL BBS" or "APPL RMS" are typically used on HF Pactor ports

Callsigns used on the port are configured with:

PORTCALL=CALL
PORTALIAS=ALIAS
PORTALIAS2=ALIAS2

Inbound connections for PORTCALL will be accepted if the parameter is present. Otherwise the NODECALL will be used for inbound connections. The same goes for the aliases.

BCALL=CALL callsign used for a beacon running on this port

User related parameters are:

VALIDCALLS=Call1[,Call2,Call3,...]

A list of callsigns separated by commas with a maximum string length of 256 characters. Multiple VALIDCALLS lines may be given. When the parameter is present inbound connections are accepted from the specified callsigns only.

USERS=n maximum number of concurrent users on the port

Others:

QUALITY default quality for NETROM routes on this port
QUALITY=0

"suppress all level 3/4 activity (including NODES broadcasts) on this port" and no routes are used on the port

DIGIFLAG=0/1 (de)activates AX.25 digipeating (for KISS ports)
MHEARD=Y/N

(de)activates the MHEARD list for this port; if the parameter is not specified the MHEARD list is active by default

Gathering port data

Use the PORTS command at the terminal to list all ports of your BPQ:

    DB0NTS-2} Ports
    1 TelnetServer
    2 SCSPactor

The STAT command shows statistical data on the ports

                      Port 01  Port 02
    L2 Frames Digied        0        0
    L2 Frames Heard         0        0
    L2 Frames Rxed         16       73
    L2 Frames Sent         58      109
    L2 Timeouts             0        0
    REJ Frames Rxed         0        0
    RX out of Seq           0        0
    L2 Resequenced          0        0
    Undrun/Poll T/o         0        0
    RX Overruns             0        0
    RX CRC Errors           0        0
    FRMRs Sent              0        0
    FRMRs Received          0        0
    Frames abandoned        0        0
    Link Active %       0   0    0   0

Each port has it's own window within the BPQ console showing the status of the port and active connections.

The MHEARD command (usually abbreviated just MH) followed by the port number shows the stations heard and connected (indicated by a plus sign following the callsign) on this port.

    mh 2
    DB0NTS-2} Heard List for Port 2
    KW1U+      00:02:47:53  14.0979
    KW1U+      00:04:07:44  21.0934
    G4KUJ+     00:23:25:36  3.585
    G4KUJ+     01:22:36:33  3.586
    G0DUB+     03:23:00:49  3.585

Both the STATS statistics and the MH list are cleared on exiting BPQ.

The Loopback port

The loopback port is a simple port that echos back everything it receives. Here is a sample configuration:

    PORT
      ID=Loopback
      PORTNUM=1
      TYPE=INTERNAL
    ENDPORT

You can choose any port number and id of course (they must be unique within your config, of course). The diagram below shows a user using a loopback port via a telnet port connection and who types in "hello" and receives back the same text.

     TX:"hello"  +----------+      +--------+
    ------------>|          |----->|--->--+ |
                 |          |      |      | |
    <------------|          |<-----|-<-+  | |
     RX:"hello"  +----------+      |   |  | |
                 telnet port       |   |  | |
                                   |   |  | |
                                   |   |  | |
           +----------------+      |   |  | |
           | +->-TX:"hello"-|----->|->-+  | |
    "loop" | |              |      |      | |
           | +<--RX:"hello"-|<-----|--<---+ |
           +----------------+      +--------+
             loopback port          switch

Use the command "C p NODECALL" to connect to the loopback port where p is it's port number and NODECALL is replaced with your nodecall.


The telnet port

"Telnet" is the name of a network protocol used to provide network virtual terminals dating back to the early days of the internet. The telnet protocol uses special characters to control the (remote) terminal. Most telnet connections use TCP as the underlying transport mechanism.

Besides true telnet terminals BPQ also supports connections based on plain vanilla TCP connections which are also often referred to as "telnet" connections. Both types of connections are implemented in BPQ with the same port driver.

We use the term "telnet" to refer to both true telnet and plain TCP connections.

Telnet ports can be employed for the following use cases:

  • connect a remote BPQ terminal to access your BPQ
  • use telnet to access your BPQ
  • offer a web interface to access your BPQ node
  • integrate with FBB software
  • build your own application(s)

If you would like to use telnet BPQ ports (and you will) it is strongly recommended to make up a cheatsheet for the TCP ports for various purposes first, e.g.

TCP port range purpose
7000 -- 7999 TCP ports used by the BBS application directly
8772 RMS TCP (fixed)
8000 -- 8999 TCP ports for BPQ telnet server port (except for 8772)
9000 -- 9999 TCP ports for use by other applications

The skeleton for a BPQ TCP port is

    PORT
      ID=name
      PORTNUM=p
      DRIVER=TELNET

      CONFIG
        ... ... ...
        ... ... ...

    ENDPORT

The BPQ telnet driver supports four different types of connections:

  • Telnet remote terminals (TCPPORT)
  • plain TCP connections (FBBPORT)
  • TCP connections for applications (CMDPORT) covered in the section on applications
  • web interface (HTTPPORT, not discussed here)

An important use case for the telnet port is to access WL2K CMS servers which is needed to set up a WL2K RMS and will not be covered here.


Telnet port configuration

Logging for the telnet port driver is activated by setting the LOGGING flag to 1. The log file is located at

    ...\AppData\Roaming\BPQ32\Logs\BPQTelnetServer.log

The MAXSESSIONS parameters determines the maximum number of concurrent sessions supported by the telnet driver.

The parameter DisconnectOnClose determines what happens when a user exits an application. The connection can either be terminated (DisconnectOnClose=1) or the user can be redirected to the switch (DisconnectOnClose=0) instead.

    PORT
      ID=telnet
      PORTNUM=1
      DRIVER=TELNET

      CONFIG
        LOGGING=0
        DisconnectOnClose=1
        ... ...
    ENDPORT

It is usually safer to set DisconnectOnClose to 1.


User management

The two endpoints of a TCP connection are identified by so-called socket addresses consisting of an IP address and a port number each. As there are no radio callsigns associated with the TCP connection the VALIDCALLS directive is not supported by the telnet port driver.

However an inbound connection on the BPQ network needs a callsign to be associated with the corresponding circuit on the switch. This is achieved by the user management component of the telnet port driver. This user management is used for all types of telnet server ports except applications (i.e. TCPPORT, FBBPORT, and HTTPPORT).

A login prompt is presented to a user connecting with a telnet terminal and authentication is done by means of passwords which resembles telnet access to computer systems.

A user is defined with the statement

    USER=user,password,callsign[,application][,SYSOP]

below the CONFIG keyword where

user login user name
password user password
callsign callsign assumed by the user after successful login
application

optional; the application invoked after successful login; use "" if you want to stay on the switch (no application) and the parameter SYSOP follows

SYSOP

literal string; the user can acquire sysop privileges on the node by using the "password" command

Here is a sample config:

    CONFIG
      LOGGING=0
      DisconnectOnClose=1

      USER=dl4fn,secret,DL4FN-15,BBS,SYSOP
      USER=df0nts,df0nts,DF0NTS,"",SYSOP
      ... ...

This defines two users. The first one logs in with the user name "dl4fn" and the password "secret". After logging in the user assumes the callsign DL4FN-15 and the BBS is automatically invoked. When returning to the node (using the BBS command "node") dl4fn can acquire sysop privileges.

    inbound TCP  +--------+          +--------+          +--------+
    connection   | port 1 |          | switch | stream   | appli- |
    ------------>| telnet |----------|-c-->-c-|----------| cation |
    user: dl4fn  |        | DL4FN-15 |        | DL4FN-15 | BBS    |
    pass: secret +--------+  |       +--------+          +--------+
               |             |           |                  /
               |             |        +--------------------+
               |             |       /   |
             --+--------- ---+---- -+- --+--
        USER=dl4fn,secret,DL4FN-15,BBS,SYSOP

Telnet terminal support

A telnet terminal port is defined with the TCPPORT statement:

    TCPPORT=<TCP port number>

The standard port number is 8010. The following configuration options are avaialble:

LOGINPROMPT=text the login prompt presented upon connecting
PASSWORDPROMPT=text the password prompt
CTEXT=text

the connect text shown after successful login. \n denotes a new line. A builtin default text will be used if CTEXT is not specified.

Here is a sample config:

    LOGINPROMPT=login:
    PASSWORDPROMPT=password:
    CTEXT=Type '?' for list of commands\n

You will need a telnet terminal client software to connect to a BPQ TCPPORT port. Free software is available to this end e.g. the TeraTerm terminal suite. The VT100 terminal type usually works fine and please note that you will have to activate the "local echo" feature in some of the telnet clients to see what you type.

Plain TCP connections and BPQTermTCP

Whereas the telnet protocol provides mechanisms to control what happens on the terminal screen this is not needed when connecting with a non-interactive software component like a BBS.

The FBB software by F6FBB uses plain TCP connections to this end and BPQ offers them for integrating with FBB and other software. Furthermore the BPQ remote terminal BPQTermTCP also makes use of this feature.

Authentication with plain TCP connections is as follows: Once the connection is established the client is expected to send the user name and password on a single line each and the CR character (x0D) is used for line endings.

Plain TCP connection ports are defined with the FBBPORT config statement and multiple port numbers may be separated by blanks:

    FBBPORT=<port1> [<port2> <port3> ...]

The standard port numbers are 8011 and 8012.

Use the config line "FBBPORT=0" if you want to explicitely deactivate support for this kind of TCP connection.

The BPQ remote terminal BPQTermTCP also uses FBBPORT for communications. Copy the executable file BPQTermTCP.exe from your BPQ installation to the remote machine you want it to use on. Enter the hostname, FBBPORT port number, user name, and password to use in the Setup menu under the TCP hosts entry. The program stores all your configuration in an .INI file in the same directory the executable is located in.


Telnet Server Status window

The BPQ console will show a Telnet Server Status window if you defined a telnet port. It lists all active connections (telnet terminal and plain TCP) with user names and associated callsigns. The column labeled "Queue" lists the number of bytes received on the last read operation.

When you click on the status window the Actions menu becomes active and allows you to configure logging options, to reread the port configuration, to disconnect active users, and more.


A complete sample configuration

Here is a complete configuration sample for the Telnet Server port:

    ; TCP ports
    PORT
      ID=Telnet
      PORTNUM=1
      DRIVER=TELNET
      QUALITY=0

      CONFIG
        LOGGING=0
        DisconnectOnClose=1
        MAXSESSIONS=5

        USER=dl4fn,secret,DL4FN-15,BBS,SYSOP
        USER=df0nts,secret,DF0NTS,"",SYSOP

        TCPPORT=8010
        FBBPORT=8011

        LOGINPROMPT=login:
        PASSWORDPROMPT=password:
        CTEXT=Type '?' for list of commands\n

        ; BBS on tcp/8772
        CMS=0
        RELAYAPPL=BBS
    ENDPORT

The optional parameters LOGGING and MAXSESSIONS are included so that they can be easily changed if needed.

The last part with the BBS comment will be discussed in the section on BBS.


Outbound TCP connections

The BPQ telnet port driver has the capability to make outbound plain TCP connections to connect to remote FBB ports. Since the connect string will require you to specify multiple parameters (remote host, TCP port, user name, password) this cannot be achieved with the standard packet radio connect syntax. Therefore the BPQ telnet port needs to be attached first so that all parameters can be specified in a device specific form (although no real hardware device is involved here).

Thus an outbound connection is initiated with the two commands

    ATTACH p
    C host tcpport [NEEDLF] [user] [password] [command]

where:

p BPQ port number of the telnet port
host remote host (either host name or IP address)
tcpport the remote TCP port number
NEEDLF

optional; specify the literal NEEDLF if the remote side requires a CRLF sequence (x0Dx0A) after both the user name and password

user optional; user name for remote login
password optional; password for remote login
command optional; send this command to the remote host after successful login

Newer versions of BPQ allow to combine both the attach and connect commands into a single attach command

    ATTACH p host tcpport user password

which is helpful for defining BPQ applications based on outbound TCP connections.

Unfortunately you cannot use this mechanism to connect to a WL2K CMS with "C p server.winlink.org 8772 CALLSIGN CMSTELNET" as a regular user.

However you can use outbound TCP connections to connect two instances of BPQ with each other and to hide any other (radio) connection behind a local telnet connection. To this end consider the following configuration:

    NODECALL=DB0NTS-2
    ... ... ...

    PORT
      ID=telnet
      PORTNUM=1
      DRIVER=TELNET

      CONFIG
        DisconnectOnClose=1
        ... ...
        USER=dl4fn,secret,DL4FN-15
        ... ...
        FBBPORT=8011
        ... ...
    ENDPORT

From an inbound connection on any other port (A) issue the command

    ATT 1 localhost 8011 dl4fn secret

This will attach the telnet server port (B) and issue an outbound connection to the FBBPORT of the very same BPQ telnet server port. Now there is a new inbound local telnet server connection at (C) using the callsign DL4FN-15. Note that you need DisconnectOnClose=1 to close this chained connection when exiting the switch or an application.

                         +-----------+
    inbound +--------+   | switch    |
    radio   | radio  |(A)|           |
    -->-----| port   |->-|-c->-+     |
    connect |        |   |     |     |
            +--------+   |     |     |
                         |     |     |
                         |     |     |
            +--------+(B)|     |     |
        +-<-| telnet |-<-|-c-<-+     |
        |   | port   |   |           |
        +->-|        |->-|-c->       |
        (C) +--------+   |           |
                         +-----------+

This mechanism can also be used to easily acquire sysop privileges by additionally specifying the SYSOP flag in the user definition.

The scanner

Scanning is mainly used for HF radios to provide access on multiple frequencies and to support multiple applications (see above) whereas on VHF/ UHF usually radios with fixed frequencies are used.

In order to support multiple digital modes on a radio it may be necessary to connect it with several devices because teletype controllers typically support a single (type of) mode only e.g. Pactor, Winmor, or Fldigi modes. An inbound connection on one of the devices needs to stop the scanner for the radio it is connected to. Therefore all devices connected to a single radio are organized in a so-called INTERLOCK group.

The scanner is officially known as the "Rig Control Driver" in BPQ and the software supports multiple radios each of which may have multiple teletype controllers connected to. However most stations are using a single radio with a single (Pactor) controller. Among radio amateurs only contesters and DXpeditioners manage to run multiple HF radios in parallel ;-).

In order to use the scanning functionality your radio needs a computer interface (CAT) which most modern transceivers have.

There is one instance of the Rig Control Driver per radio. The following (slightly simplified) schematic shows a setup with two radios each having an SCS PTC controller and a soundcard modem connected to.

    +------------------------------+  +------------------------------+
    | radio 1                      |  | radio 2                      |
    +------+-------+--------+------+  +------+-------+--------+------+
           |audio  |CAT     |audio           |audio  |CAT     |audio
           |PTT    |        |PTT             |PTT    |        |PTT
    +------+------+| +------+------+  +------+------+| +------+------+
    | SCS PTC     || | Winmor      |  | SCS PTC     || | ARDOP       |
    | Pactor      || | soundcard   |  | Pactor      || | soundcard   |
    +------+------+| +------+------+  +------+------+| +------+------+
           |       |        |                |       |        |
           |       |        |    hardware    |       |        |
    - - - -|- - - -|- - - - | - - - - - - - -|- - - -|- - - - | - - -
           |       |        |    software    |       |        |
           |       |        |                |       |        |
    +------+------+| +------+------+  +------+------+| +------+------+
    | BPQ SCS     || | BPQ Winmor  |  | BPQ SCS     || | BPQ ARDOP   |
    | port        || | port        |  | port        || | port        |
    +-------------+| +-------------+  +-------------+| +-------------+
    |PORT         || |PORT         |  |PORT         || |PORT         |
    | ID=PTC1     || | ID=Winmor   |  | ID=PTC2     || | ID=ARDOP    |
    | PORTNUM=11  || | PORTNUM=12  |  | PORTNUM=21  || | PORTNUM=22  |
    | DRIVER=SCS  || | DRIVER=WINMO|  | DRIVER=SCS  || | DRIVER=ARDOP|
    |             || |             |  |             || |             |
    | INTERLOCK=1 || | INTERLOCK=1 |  | INTERLOCK=2 || | INTERLOCK=2 |
    |             || |             |  |             || |             |
    | CONFIG      || | CONFIG      |  | CONFIG      || | CONFIG      |
    |  RIGCONTROL--+ |  ... ...    |  |  RIGCONTROL--+ |  ... ...    |
    |  ... ...    |  |  ... ...    |  |  ... ...    |  |  ... ...    |
    |ENDPORT      |  |ENDPORT      |  |ENDPORT      |  |ENDPORT      |
    +-------------+  +-------------+  +-------------+  +-------------+
           |                |                |                |
    +----------------------------------------------------------------+
    |      c                c                c                c      |
    | BPQ switch                                                     |
    +----------------------------------------------------------------+

Each device (Pactor controller, Winmor virtual TNC, ARDOP virtual TNC) is controlled by a corresponding BPQ port. All ports connected to one radio each share the same INTERLOCK number in their port configuration and one of the ports each contains the scanner config with the RIGCONTROL keyword.

If for example an inbound connection is detected on the Winmor port (PORTNUM=12) the scanner for INTERLOCK group 1 (INTERLOCK=1) i.e. for radio 1 is stopped on the current frequency and when the connection is finished the scanner resumes it's work again.

Frequency and mode of the radios are displayed as part of the Pactor port status window in the BPQ console.


Scanner configuration skeleton

The scanner configuration for a radio is part of the CONFIG section of exactly one port in the INTERLOCK group of the radio and consists of several parts:

    PORT
        ... ...
        INTERLOCK=n
        ... ...
        CONFIG
            ... ...
            +-------------------------+
            | RIGCONTROL              |
            +-------------------------+
            | radio definition line   |
            +-------------------------+
            | block of scanning lines |
            +-------------------------+
            | starting time           |
            | block of scanning lines |
            +-------------------------+
            ... ... ...
            ... ... ...
            +-------------------------+
            | ****                    |
            +-------------------------+
            ... ...
    ENDPORT

The boxes in the above sketch are only to illustrate the different parts of the scanner configuration.

The INTERLOCK config statement is not needed if there is only one BPQ port connected to your radio.

The keyword RIGCONTROL on a single line starts the scanner configuration for a radio and it is terminated by the token **** on a single line.

The next line just below RIGCONTROL is the radio definition line which contains all parameters for BPQ to control the radio. This depends on the radio of course and may read e.g. "COM1 9600 ICOM IC7100 0C" for an Icom IC-7100. See below for more details.

Scanning is organized by time periods and there is a block of scanning lines for each period. These scanning lines basically contain the frequencies to be scanned. The first block always starts at 0000 UTC which is implied by BPQ and if you scan the same set of frequencies until 24000 UTC there is no need for another block.

There is an additional block of scanning lines for every UTC time with a change in the set of frequencies to be scanned and the starting time is at the top of the block.

    +----------------------------------------+
    | RIGCONTROL                             |
    +----------------------------------------+
    | radio definition line                  |
    +----------------------------------------+
    | these lines contain the frequencies    |
    | to be scanned from 0000 UTC on         |
    +----------------------------------------+
    | 01:00                                  |
    | here are the lines for the frequencies |
    | to be scanned from 0100 UTC on         |
    +----------------------------------------+
    | 02:00                                  |
    | here are the lines for the frequencies |
    | to be scanned from 0200 UTC on         |
    +----------------------------------------+
    ... ... ...
    ... ... ...
    +----------------------------------------+
    | ****                                   |
    +----------------------------------------+

You can have as many blocks as you like and can choose any values for the starting times. However, the blocks have to be in chronological order.


Controlling Icom radios

Icom radios use the CI-V (which stands for "computer interface version 5) protocol for remote control. The physical connection between the radio and the computer is either through a serial cable connected to a so-called CI-V level converter or through USB. In any case there is a (virtual) serial port on your computer used to control your radio.

Refer to your radio's manual on how to configure your radio for use with CI-V. For the newer Icom models you have to enter the so-called SET mode to perform these settings. Typical configuration parameters on your radio are:

CI-V baud rate

the serial line speed used for CI-V communications. 9600 baud works fine in most situations.

CI-V address

the logical address of your radio. Keep the default value for your radio and note it down.

CI-V transceive

propagates changes to the radio to connected equipment. Set this to "OFF" unless you are using two separate radios for transmit and receive.

On the (virtual) serial port for your radio perform the following settings:

  • speed: choose the same value as the CI-V baud rate
  • data bits: 8
  • parity: none
  • stop bits: 1
  • flow control: off

For the scanner use the configuration:

    [bpq32.cfg]
    RIGCONTROL
    COM<port nr> <port speed> ICOM <model> <CI-V address>

Unfortunately there is no list of supported radio models on the BPQ website. IC7100 works fine with many modern Icom radios. When in doubt ask someone more experienced e.g. on the BPQ Yahoo group.

If you have trouble getting your radio controlled add the word "DEBUG" at the beginning of the radio definition line (just before the COM port definition). The debug messages will be sent to the Windows debug log and can be displayed with the MS DebugView tool (see above).

A typical configuration is

    RIGCONTROL
    COM1 9600 ICOM IC7410 0C

for an IC-7410 (note that there is no dash in the radio model name used in the radio definition line) which is connected to serial port COM 1 with 9600 baud and uses the CI-V address 0C (displayed by the radio as 0Ch).


Controlling Kenwood radios

I have never owned a Kenwood so others should add this


Controlling Yaesu radios

I have never owned a Yaesu so others should add this


The scanning lines

The format of the scanning lines is

    <dwell time>,<frequency>,<mode>,<filter>,<options>

The dwell time is the time in seconds how long the radio will stay on frequency and BPQ will wait for an incoming call. Typical dwell times range from 3 to 6 seconds.

The frequency is the dial frequency of the radio in MHz, e.g. 14.0964. Since multiple BPQ ports may share a radio and have their own centre frequency offset specifying the dial frequency is the simplest way to go. Many Pactor controllers have an audio centre frequency of 1500 Hz. When you use USB you have thus to substract 1.5 kHz from the desired radio centre transmit frequency.

Mode is the operating mode of the radio. Valid values include USB, LSB, FSK-R. USB is mostly used.

There is variety of options available and multiple options are separated by commas.

A1...A4

antenna switching via DTR and RTS signals on the rig COM port. Those may be difficult to access. If you need antenna control consider using a so-called band decoder which is common in the contesting community.

D

(Icom only, IC-746 and later) set data mode (e.g. USB-D). This sets (digital) IF filters in the receiver which are optimized for use with digital modes. Use this option if it is supported by your radio.

F1...F3

(Icom only) IF filter setting. Use a 500 Hz bandwidth filter for frequencies with Pactor 1 and 2 and a 2400 Hz bandwidth filter for frequencies with Pactor 3 and 4.

H1 H2 (SCS Tracker only) HF packet radio with 300 Bd (H1) or 1200 Bd (H2)
R1 R2

(SCS Tracker only; Dragon???) robust packet radio with 300 Bd (R1) or 600 Bd (R2)

Pn[m...]

Capital letter P followed by a sequence of digits in the range 0...4 specify Pactor protocol levels to be used on this frequency. P0 disables Pactor. P234 allows for Pactor 2, Pactor 3, and Pactor 4 connects. Disable Pactor on those frequencies which you would like to use for Winmor exclusively.

W0 W1 W2

W0 disables Winmor connects on this frequency, W1 is Winmor with 500 Hz, and W2 Winmor with 1600 Hz.

APPL=... the name of the application to invoke on this frequency

When using the APPL option you can either use the PORTCALL for all applications or you can alternatively have the application callsigns set on the Pactor port by specifying the USEAPPLCALLSFORPACTOR keyword on a single line directly after the scanner config. See the section on the switch for more details and background.

The application feature can even be used without radio control, e.g.

    RIGCONTROL
    DUMMY
    6,14.xxx,USB,P123,APPL=RMS
    6,14.xxx,USB,P123,APPL=BBS
    ****
    USEAPPLCALLSFORPACTOR

DUMMY replaces the radio definition and the scanner changes the callsign every 6 seconds between the RMS and the BBS application callsign while the radio stays on the fixed (dialed) frequency.

Here is a complete sample configuration for the scanner:

    ; dial frequencies
    ; Pactor: dialFreq = centerFreq - 1.5 kHz
    RIGCONTROL
    COM1 9600 ICOM IC7410 0C
    200,7.0500,USB,F1,D,P1234
    06:57
    5,7.0460,USB,F2,D,P12
    5,7.0465,USB,F2,D,P12
    5,7.0470,USB,F2,D,P12
    5,7.0475,USB,F2,D,P12
    5,7.0480,USB,F2,D,P12
    5,7.0500,USB,F1,D,P1234
    5,7.0505,USB,F2,D,P12
    5,7.0510,USB,F2,D,P12
    13:00
    200,21.0919,USB,F2,D,P12
    16:57
    5,7.0460,USB,F2,D,P12
    5,7.0465,USB,F2,D,P12
    5,7.0470,USB,F2,D,P12
    5,7.0475,USB,F2,D,P12
    5,7.0480,USB,F2,D,P12
    5,7.0500,USB,F1,D,P1234
    5,7.0505,USB,F2,D,P12
    5,7.0510,USB,F2,D,P12
    19:00
    200,14.0964,USB,F2,D,P12
    ****

For the time periods where the radio stays on a single frequency a long dwell time (200 seconds) has been chosen.


The scanning life cycle and manual control

TODO: do you need SYSOP rights to control a radio from remote? AUTH code description to be added.


When you start BPQ the scanner(s) will also start working. Scanning is interrupted by one of the following events:

  • an incoming call is detected on one of the interlocked ports
  • one of the interlocked ports is ATTACHed

The radio will then stay on the last scanned frequency.

When all interlocked ports report to be disconnected and are not attached (anymore) scanning will be resumed after a grace period of 20 seconds. This allows a user to reconnect on the same frequency after an aborted connection.

Radios can be manually controlled with the RADIO command. Scanning can be stopped and started with the commands

    RADIO p SCANSTOP
    RADIO p SCANSTART [delay]

respectively where "p" is the port number and "delay" is an optional delay in seconds before scanning starts.

Besides the scanner the RADIO command is also used to set the frequency and mode on the radio. As with the scanner it is the dial frequency which is set on the radio so you have to compensate for audio offsets yourself (see above).

There are two ways to set the radio frequency. The first one is:

    RADIO p <frequency> <mode> <filter> <options>

where p is the port number and the parameters as in the scanning lines. This is useful only when scanning is stopped anyway. Otherwise scanning will start again after a few seconds and will change the radio frequency again.

The second form is to attach the port first:

    ATTACH p
    RADIO <frequency> <mode> <filter> <options>

Note that you have seen a similar pattern with the telnet server port.

This version has the advantage that you have control over the radio (and the port) as long as you are connected. Furthermore you can use this to initiate an outbound connection from a single-connection port, e.g.

    ATTACH 2
    RADIO 7.0500 USB 2 D
    C %DA5UDI

This attaches port 2, sets the radio frequency to 7050 kHz in USB with filter 2 and data mode, and initiates an outbound robust (pactor) call to DA5UDI.

When you have changed the scanner configuration go to the BPQ console and select the BPQ32.dll sub-window (the one which shows the initialisation messages). From the Actions menu choose "Re-read Rigcontrol Config" to activate your new scanner settings.


The SCS Pactor port

Pactor is a class of digital modes developed for robust HF communications which evolved from both Packet Radio and SITOR (known as AMTOR by radio amateurs) in the early 1980s. This was mainly driven by Hans-Peter Helfert (DL6MAA) and Ulrich Strate (DF4KV) who later founded the company "Special Communication Systems" (SCS) to further develop both the Pactor protocol family and dedicated controllers for these modes.

Although Pactor offers both FEC and ARQ modes it is today mainly used for peer-to-peer ARQ links and currently consists of the four modes Pactor 1 (PT1) to Pactor 4 (PT4).

The BPQ SCSPactor driver supports both the operation of Pactor and packet radio with SCS controllers.


Before you start

This section is not specific to BPQ and gives some hints on how to configure the serial port for your SCS controller and perform some basic settings.

There are several ways an SCS controller can be physically connected to your computer. Older models used serial lines whereas newer models offer USB, ethernet, and Bluetooth connections. For some devices you need to install a driver on your PC. Please refer to the manual of your controller for details. In any case the connection of your controller terminates with a (virtual) COM port on the computer.

BPQ operates the controller in so-called hostmode and SCS recommends a minimum port speed of 19200 baud for this. I use 38400 baud which works fine. On the COM port set the desired port speed as well as the following parameters:

  • 8 data bits
  • no parity
  • 1 stop bit
  • flow control off

Now have a look at the advanced settings of your COM port.

  • If your serial port driver offers settings for I/O buffers (send and receive; using or emulating a 16550(A) chip) set the buffer size to 8

bytes each.

  • If there is a choice for the USB transfer size choose the lowest available value (typically 64 bytes) both for receive and transmit.
  • In case your driver offers a latency setting choose the lowest available value (typically 1 ms) both for sending and receiving data.
  • Disable any of the "serial enumerator" and "serial printer" options if your serial port driver has them.

Use a simple terminal for the basic controller configuration and your first steps. Personally I prefer the TeraTerm terminal software suite but all terminal software works more or less the same.

Configure your terminal to use the (virtual) COM port connected to your controller with the same port settings (speed, data bits etc.). After connecting to the controller you should see the basic cmd: prompt. Whenever I connect to a controller I always issue the "DD" command first. It terminates all ongoing connections, clears the receive and transmit buffers, and safely puts the controller in standby mode.

You may need to adjust the terminal program settings so that the controller messages are nicely printed on your terminal screen. Use the controller "help" command to this end which produces a lengthy multi-line output.

For a PTC-II I recommend to set the controller to a fixed baud rate with the SERBAUD command. Have a look at your manual on how to do this. Use the same speed that you already configured on the serial port (e.g. 38400 baud).

Now carefully adjust the FSKA and PSKA audio transmit levels for the prescribed ALC meter reading of your transmitter. Turn of any audio compression on your transmitter first. Refer to your controller manual on how to correctly set both parameters. Note the values of FSKA and PSKA as we will need them later for the BPQ port configuration.

Do not be fooled by an ostensibly low reading of your power meter when operating Pactor 3 or 4. Instead check that the ALC meter shows the prescribed reading.


Pactor

Although SCS controllers are mainly used for Pactor some models also have one or more builtin packet radio boards. This section describes how to configure BPQ for Pactor operation. For details on packet radio see one of the following sections.

Here is a skeleton for the BPQ SCSPactor port configuration:

    PORT
      ID=id text
      PORTNUM=p
      DRIVER=SCSPactor
      QUALITY=0

      COMPORT=1
      SPEED=38400

      INTERLOCK=1

      CONFIG
        APPL BBS

        +------------------------------+
        | scanner config (if any)      |
        +------------------------------+
        +------------------------------+
        | Pactor config                |
        +------------------------------+
        | Packet radio config (if any) |
        +------------------------------+
        | BPQ controller specific      |
        +------------------------------+
    ENDPORT

Replace the "id text" with a description of the port and "p" with the real port number (see above).

  • COMPORT is the number of your serial port, e.g. 1 if you are using COM1.
  • SPEED is the COM port speed in baud e.g. 38400
  • For the INTERLOCK line see the section on the scanner. You do not need this if you use this radio for Pactor exclusively.
  • Below the keyword CONFIG first configure the application to use on this BPQ port if any.
  • The scanner configuration follows if needed. See the section on the scanner for details.
  • The next block consists of configuration statements for operating Pactor with your controller.
  • A similar block for operating packet radio with your controller may follow.
  • Finally there are settings which are interpreted by BPQ itself (and not send directly to the controller).

BPQ initializes the controller on startup and when it recovers from lost serial line communications which should happen very rarly. Initialization happens in three phases:

  1. In the first phase BPQ sets some default parameters on the controller.
  2. In the second phase the configuration supplied by the user is applied.
  3. In the third phase BPQ sets parameters which are essential for BPQ to work correctly.

The following parameters are set on the controller in the first phase:

    TONES 4         audio centre frequency 1500 Hz
    MAXERR 30       abort connection after 30 successive errors
    MODE 0          disable controller data compression
    MAXSUM 20       20 data packets for memory ARQ
    CWID 0 2        CWID disabled

These parameters may be overriden by the user in the second phase.

In the user supplied configuration (contained in the box entitled "Pactor config" in the above listing) you should set at least the values for FSKA and PSKA. Here is a typical configuration:

    DD
    MODE 2
    CWID 4 0
    TONES 4
    FSKA 390
    PSKA 390
    APOW 0
    TXD 5
    MAXDOWN 6
    MAXUP 3
    MAXERR 60
    BR 1
DD

The DD command terminates all ongoing connections, clears all transmit and receive buffers, and safely puts the controller in standby mode. This is always a good idea when configuring a device.

MODE 2

This enables full level 2 data compression (Huffman, pseudo Markov, and run length coding) for the controller.

CWID

CW identification of the controller. If enabled the controller sends it's MYCALL about every 7 minutes when being connected. The regulations for amateur radio in your country may be relevant in this context.

TONES

The audio tones are already part of the phase 1 configuration. It is however a good idea to make the value explicit.

FSKA, PSKA

These values determine the transmit audio levels and are very important. See above for details.

APOW 0

This disables automatic transmitter power adjustment used for PT2.

TXD

This is the transmit delay in steps of 5 msec. The default value is 4 and greater values will decrease the coverage of your station (electromagnetic waves travel about 1,500 km within 5 msec in free space).

MAXDOWN, MAXUP

These parameters determine how transfer speed is changed according to errors occuring during the transmission.

MAXERR

When being connected this is the maximum number of consecutive errors before the connection is aborted. For a connect this is the number of connect tries. The default value is 70. BPQ sets this to 30 which from my perspective is far too low. It means in particular that the maximum duration of a connect attempt is 30*1.25 s = 37.5 s which may be less than the total dwell time of many stations.

BR The brightness of the display (saves power and the LEDs).

For some features BPQ has it's own configuration statements. This is what the block entitled "BPQ specific" in the above configuration skeleton refers to. This includes:

BUSYHOLD n

When the controller reports the frequency to be free BPQ waits for n seconds for a possible change. The default value is 3 seconds.

BUSYWAIT n

When the controller reports the frequency to be busy BPQ waits for n seconds for the frequency to become free. The default is 10 seconds. If the frequency becomes free in the meantime an outbound call may be initiated otherwise the connect attempt is considered to be failed.

MAXLEVEL

The maximum Pactor protocol level. MAXLEVEL=3 allows for operation of PT1, PT2, and PT3. The default value is 3. The regulations for amateur radio in your country may be relevant for this.

DATE Sets the current date from the computer clock on the controller.
TIME Sets the current time from the computer clock on the controller.
WL2KREPORT This ist to report to the Winlink 2000 database.

Finally BPQ sets the following parameters in phase 3 to ensure correct operation:

    ARX 0           Amtor phasing disabled
    BC              FEC reception disabled
    LISTEN 0        Pactor listen mode disabled
    ADDLF 0         auto linefeeds disabled
    LFIGNORE 0      no insertion of linefeeds
    BELL            bell off
    CHOBELL 0       changeover bell off
    BKCHR 2         breakin character x02
    CMSG 0          connect message off
    MAIL 0          mailbox reporting off
    REMOTE 0        remote control disabled

The callsign (MYCALL) is also set by BPQ depending on various parameters which are described in the section on callsigns in the chapter on the switch.

Here is a complete sample configuration for the SCS Pactor port:

    PORT
      ID=PTC
      PORTNUM=2
      DRIVER=SCSPactor
      QUALITY=0

      COMPORT=3
      SPEED=38400

      PORTCALL=DB0NTS

      CONFIG
        APPL BBS

        ; dial frequencies
        ; Pactor: dialFreq = centerFreq - 1.5 kHz
        RIGCONTROL
        COM1 9600 ICOM IC7100 0C
        200,7.0500,USB,F1,D,P1234
        18:57
        200,14.0964,USB,F2,D,P12
        19:57
        6,3.5900,USB,F2,D,P12
        6,3.5905,USB,F2,D,P12
        6,3.5910,USB,F2,D,P12
        6,3.5915,USB,F2,D,P12
        6,3.5920,USB,F2,D,P12
        20:30
        200,14.0964,USB,F2,D,P12
        ****

        ; Pactor controller config
        DD
        MODE 2
        CWID 4 0
        TONES 4
        FSKA 390
        PSKA 390
        APOW 0
        TXD 5
        MAXDOWN 6
        MAXUP 3
        MAXERR 60
        BR 1
        MAXLEVEL=3
    ENDPORT


(VHF) Packet Radio

Besides Pactor operation some SCS controllers have additional boards to connect with a VHF/ UHF radio for packet radio operation. Both HF Pactor and VHF packet radio can be operated simultaneously sharing the same serial line connection with the computer. This section is NOT about HF (robust) packet radio operation which is configured with the scanner.

Two callsigns are supported for packet radio: MYCALL which is set to the same value as on the Pactor side and MYALIAS which you can set yourself. Choose an application callsign or the NODECALL if you would like to offer access to an application or the node besides the application already defined by the Pactor configuration.

TODO: how does this work in conjunction with USEAPPLCALLSFORPACTOR?

Have a look at the SCS Pactor port configuration skeleton in the previous section on where to put the configuration statements for packet radio. All statements start with PAC. Here is typical configuration:

    PACKETCHANNELS 5
    PAC DIGIPEAT OFF
    PAC MYALIAS DB0NTS-2
    PAC MCON 0
    PAC MONI 0
    PAC BAUD 1:1200
    PAC TXL  1:A 300
    PAC TXD  1:70
PACKETCHANNELS

This BPQ keyword says how many channels i.e. inbound connections are supported. Set this to the number of concurrent users you would like to support on this port. 5 is a reasonable value.

PAC DIGIPEAT OFF Digipeating is disabled on the controller.
PAC MYALIAS DB0NTS-2

This sets an alternative callsign a user may connect to. In the particular case MYALIAS is the same as NODECALL to offer node access (besides BBS access inherinted from the Pactor MYCALL).

PAC MCON 0 Disable monitoring while being connected.
PAC MONI 0

Disable packet radio monitoring. At the time of this writing there is a bug in BPQ which results in stations heard on the packet radio part being reported in the MHEARD list with HF frequencies.

PAC BAUD 1:1200

This sets the speed for the first packet radio board (1:) to 1200 baud.

PAC TXL 1:A 300 Sets the audio transmit level.
PAC TXD 1:70 This is to set the TX delay for the first packet radio board.

In phase 3 the following additional parameters are set on the port:

    PAC CBELL 0     switch off the connect bell
    PAC CMSG 0      switch off the connect text
    PAC PRBOX 0     switch off the builtin mailbox


HF robust packet

TODO: does USEAPPLCALLS work with HF robust packet and scanner config for HF packet radio?

TODO: SCANFORROBUSTPACKET is a BPQ config keyword for the SCS Pactor port.


Tame dragons

SCS introduced Pactor 4 together with a new series of controllers called "Dragons". Currently two models the DR-7800 and the smaller DR-7400 are available. These new devices come with the newest DSP technology but they do not support RTTY, AMTOR, and PSK31 anymore as the older PTC models did.

Because of the popularity of the PTC-II models a lot of software has been written for these controllers. For compatibility reasons a Dragon therefore acts like a PTC-II by default. This can be changed with the PTCC command. There are two points you should be aware of when running in PTC-II compatibility mode:

  • you cannot benefit from the additional commands of the Dragon models
  • physical Pactor 4 connections are reported to the user software as being Pactor 3 because PTC-II models did not know about Pactor 4.

Furthermore the PTC-II command set as described in the manual for the version 4 firmware also applies to the Dragon models. For additional features of the newer controller models please refer to the release notes of the controller firmware updates.

The BPQ configuration keyword "DRAGON" marks an SCS controller as being a Dragon and BPQ uses this to free the Dragon from the default PTC-II compatibility mode. In the BPQ port configuration all the new commands of your controller may be used, e.g.:

    PORT
      ID=PTC
      PORTNUM=2
      DRIVER=SCSPactor
      QUALITY=0
      ... ...
      ... ...

      CONFIG
        ... ...
        ... ...
        CB 2
        DISP MODE 1
        DISP CON 1
        DISP DIMMOFF 1
        DISP AUTODIMM 3
        ADEC ALL 0
        MAXLEVEL=4
        DRAGON
    ENDPORT

Note the keyword "DRAGON" in the last line. In the above example the display and the auto-decoder of a DR-7800 are configured. See your manual for a detailed description of the parameters.

When operating PT2 with 500 Hz bandwidth you will notice that the channel busy detector of a Dragon will always show the channel to be busy even when it is apparently not. This can be solved by setting the channel busy detector to "Pactor only" mode (CB 2) as shown above.


Port usage

The Pactor part of an SCSPactor port is of the single-connection type which means that you have to attach the port before usage whereas the packet radio part is of the multi-connection type.

After attaching the Pactor port the following commands may be used on the port:

MYLEVEL

Sets the maximum Pactor protocol level for an outbound call. This may be necessary depending on the band plan or licence conditions.

OVERRIDEBUSY

This overrides the channel busy detector and allows for outbound calls on busy frequencies. This is rude - use with care.

PACTOR

Activates the Pactor protocol for an outbound call. This is not necessary if you are only using Pactor on the HF part of the port anyway but see below.

RPACKET Activates robust packet radio on the HF part of the port.

After issueing a command the port responds with either "SCS} Ok" or just with "Ok". Here is a usage example which also shows the error message for busy channels.

    ATTACH 2
    DB0NTS-2} Ok
    MYLEVEL 2
    Ok
    C %G4KUJ
    Sorry, Can't Connect - Channel is busy
    *** Disconnected

Status information on the SCSPactor port is shown in the SCS Pactor Status window in the BPQ console. Please note that there is no information on the packet radio part of the port. Pactor speed levels in the status window start from 0 and not from 1 as e.g. in the display of the DR-7800.

Termination of a connection can be requested by a port user with the D (disconnect) command or by an application on the stream in use. Note that this is a normal disconnect. There is no way to abort an ongoing connection with a DD-like command directly on the port.


TNC emulation

TODO: there should be a short description of the TNC emulation port here which shows in particular how to integrate e.g. Winlink Classic or Airmail through a pseudo-TNC with BPQ. This is cool.

Related Links