BPQ32 410e Installation Document
Author: Ron Stordahl, N5IN
Date: 2008/Jul/27
1.0 DESCRIPTION
2.00 Installing/Updating/Configuring BPQ32
2.01 ..\Examples\Minimal
2.02 ..\Examples\Large_without_AGWPE
2.03 ..\Examples\Large_with_AGWPE
2.04 ..\Examples\Medium
2.05 ..\Examples\Multiple_Apps
2.06 ..\Examples\Remote
2.07 ..\Examples\Small
3.01 AGWtoBPQ
3.02 BPQ32
3.03 BPQTerminal
3.04 BPQCfg
3.05 BPQNodes
3.06 BPQStatus
3.07 BPQTelnetServer
3.08 BPQTNC2 / VCOMConfig
3.09 ClearRegistryPath/SetRegistryPath
3.10 Uninstall
4.00 APPLICATIONS
4.01 AGWPE
4.02 AR-Cluster
4.03 BPQ32 Remote Outlet
4.04 CC Cluster
4.05 DXSpider
4.06 RMS
4.07 UI-DX Bridge
4.08 UIView32
4.09 WinFBB701A
5.0 AUTOMATICALLY STARTING AGWtoBPQ or BPQ32
6.0 UPDATES
BPQ32 software is a product of John Wiseman G8BPQ/GM8BPQ, to whom the amateur radio community owes a debt of gratitude. BPQ32 is not in the public domain; however it may be freely used by licensed radio amateurs in amateur radio packet applications. Assistance in using BPQ32 can be obtained through participation in the BPQ32 Yahoo Group. This release, packaged as an executable NSIS installer, is available in the files section of the BPQ32 Yahoo Group.
BPQ32 is an AX.25 NET/ROM switch, running under Microsoft Windows®, which interfaces via standard RS232 com ports to TNC’s supporting KISS, JKISS, multi-drop BPQKISS and NET/ROM interfaces. It also supports internet connections via AX/IP/UDP as well as interfacing with AGWPE via a BPQtoAGW DLL. This later capability allows BPQ32 to provide AX.25 NET/ROM services via devices connected to AGWPE, most significantly sound card modems.
BPQ32 has three application interfaces: DLL, Active-X (OCX) and AGWtoBPQ. The DLL is the fundamental interface, the most efficient, and is used by the BPQ32 utilities as well as a number of user applications. The OCX interface is used only by AR-Cluster. The AGWtoBPQ program emulates the AGWPE interface, permitting existing application programs, which have an AGWPE interface, to readily use BPQ32. The AGWtoBPQ interface does have the unique advantage that it may be cancelled, reconfigured and restarted while the user application continues to run, allowing uninterrupted service to a potentially larger number of the interfaced application’s telnet users. If the user application is well written, it will periodically try to reconnect to AGWtoBPQ. Unfortunately not all applications designed for AGWtoBPQ do so!
Software developers wishing to interface their applications with BPQ32 may obtain interface programming specifications at the G8BPQ website. The goal is to make BPQ32 compatible with all Microsoft Windows® amateur radio applications which can benefit from AX.25 network software.
Section 4.00 describes the configuration of these three interface methods with various applications.
2.00 INSTALLING/UPDATING/CONFIGURING BPQ32
BPQ32 is supplied as an installer program which may be used to perform a new install, to update or repair an existing installation. It offers only a single option: The Destination Folder, which defaults to C:\Program Files\BPQ32, (hereafter ..\BPQ32). If a BPQ32 installation exists in ..\BPQ32; the installer will automatically perform an update/repair. In update/repair mode your existing BPQ32 configuration is retained and made ready to run. The process includes placing the current BPQ32.DLL in the appropriate Windows systems directory and adding an entry to the registry which defines the path BPQ32 uses to locate its configuration files. As a result, an application which uses the DLL or OCX interface can start BPQ32 automatically in whatever folder you select in the install process.
The installer adds BPQ32 to your programs list: Start>Programs>BPQ32>”list”, providing a convenient way to select the components needed for a BPQ32 session. By right clicking on a component and choosing ‘Send to Desktop’ you may create desktop shortcuts for the most used components, such as BPQTerminal or AGWtoBPQ.
The installer creates a folder ..\BPQ32\Files\Examples, (hereafter ..\Examples), with a number of well documented example configurations. These examples may be copied to ..\BPQ32, edited to suit your environment, then compiled by executing BPQCfg.exe creating the current configuration. As such it is recommended that you do not make any changes in the ..\Examples folder, but rather copy the contents of the selected example configuration folder to ..\BPQ32, making your configuration changes there. However, if you do make a change in ..\Examples, you can rerun the installer to restore them to their original contents, but any changes or additions you have made to ..\Examples will be lost. A new install configures BPQ32 with the ‘Minimal’ configuration suitable for a quick pass/fail test.
A new install makes the BPQ32 minimal configuration the current configuration. If you have an different existing configuration and you wish to return to the minimal configuration, first save your configuration in ..\BPQ32, if any, then copy the contents of ..\Minimal to ..\BPQ32 and execute BPQCfg.exe to establish the configuration. With the minimal configuration as the current configuration, you may perform the basic test by starting BPQTerminal and enter in the bottom (command) window:
C 1 XXNODE v XX0XX You should receive a response of:
XXNODE:XX0XX} Connected to XXNODE
This is the CTEXT.
XXNODE:XX0XX} DX CONNECT BYE INFO NODES ROUTES PORTS USERS MHEARD
If you get the above response the basic system is working. Descriptions of useful BPQ32 configurations, which can serve as a basis for your configuration follow:
2.02 ..\Examples\Large_without_AGWPE
This is the actual configuration I run on my N5IN AR-Cluster v 4.4.25 production system with AR-Cluster. This configuration has 2 BPQKISS TNC ports and one AX/UDP port. The use of BPQKISS ports is a bit unusual, typically one would use KISS ports, with the JKISS ROM, but this configuration was necessitated by very long RS232 lines, nearly 300 feet, between the computer and the TNCs. It supports a single local application: APPLICATIONS=DX. It could, of course, be configured for multiple application programs, such as CC-Cluster, DXSpider, WinFBB701A, etc. Details on supporting multiple applications may be found in ..\Examples\Multiple_Apps. It also supports UIView32 and UI-DX Bridge, which neither of which go in the APPLICATIONS string nor require an Appl Mask. Via the internet, AX/UDP users from around the world may connect using a combination of radio and AX/UDP. This is a busy machine, having up to 200 users during DX contests.
2.03 ..\Examples\Large_with_AGWPE
This is identical to the Large_without_AGWPE configuration except, rather than configuring TNCs directly, AGWPE is used as the ‘TNC device.’ This would normally only be done if sound card modems are needed, with AGWPE providing that feature to BPQ32.
This example supports a KISS TNC, an AX/UDP port and a single local application, such as DXSpider.
2.05 ..\Examples\Multiple_Apps
This example expands Medium by supporting multiple applications: 3 local applications (AR-Cluster, CC-Cluster, WinFBB701A) and one remote application (an AX/UDP link to the N5IN AR-Cluster). An understanding of the Applications Mask is needed in this instance, and is explained in the corresponding configuration file, bpqcfg.txt.
Users who connect via radio to this node can obtain remote BBS services, such as WinFBB701A, AR-Cluster or CC-Cluster service. The APPLICATIONS configuration and associated APPLn statements make connecting to these services easy for the radio user. As the applications run on a remote machine, this installation is also easy to maintain, requiring only a Windows machine, an internet connection, TNC, radio and antenna.
This example supports a KISS TNC, an AX/UDP port and a single local application. It is a simplified version of ..\Medium.
After executing the installer, a number of utilities will be available which can be located at Start>Programs>BPQ32 or in the folder ..\BPQ32. These are:
AGWtoBPQ emulates the AGWPE interface, allowing programs which support AGWPE to use BPQ32.
To configure AGWtoBPQ, click Config, and in the Configuration box, enter the TCP Port, Listening Sessions and Appl Mask.

The Appl Mask is a somewhat complex matter. If you are supporting a single application, with that application as the first positional parameter, the value to insert will be 0x1. Refer to bpqcfg.txt in the ..\Example configurations following the parameter APPLICATIONS for an explanation of more complex configurations.
The ‘Loop TXed Raw Frames’ and ‘Loop TXed Mon Frames’ control whether the AGW applications see packets sent from the node, as opposed to only those received by the node.
Clicking Save will add these values to the registry at “HKEY_LOCAL_MACHINE\SOFTWARE\G8BPQ\BPQ32\AGWtoBPQ”.
Starting AGWtoBPQ will bring up all the needed BPQ32 components for the current BPQ32 configuration.
BPQ32.exe bears the title ‘Program to hold BPQ32.dll in memory’. Starting it starts the minimum number of BPQ32 components parts corresponding to your configuration. It is an alternative to starting, as an example, BPQTerminal if you do not care to monitor the traffic.
BPQTerminal allows terminal access to the BPQ32 system.
The upper window allows monitoring of traffic, as selected by the Monitor drop down box. The middle window displays connected output, while the bottom windows is used to enter commands. Starting BPQTerminal will bring up BPQ32 if it is not already running. Multiple copies of BPQTerminal may be run at the same time.
BPQCfg is a task which when executed compiles the configuration file BPQCfg.txt into BPQCfg.bin needed by BPQ32.
The remaining configuration files, such as BPQAxip.cfg, are read directly by BPQ32 and do not have to be compiled.
For display purposes, the example on the left shows it as executed from the command prompt. It is normally executed from Start>Programs>BPQ32>BPQCfg or by double clicking bpqcfg.exe.
As BPQ32 receives nodes broadcasts from surrounding nodes it builds a table of routing information.
If the bpqcfg.txt configuration has the option AUTOSAVE=1, when BPQ32 is ended this information will be written to BPQNodes.dat, so that it will be immediately available upon restarting, however by executing BPQNodes this file can be saved immediately.
For display purposes, the example on the left shows it as executed from the command prompt. It is normally executed from Start>Programs>BPQ32>BPQNodes or by double clicking bpqnodes.exe.
BPQStatus dynamically displays the state of BPQ32 streams, callsigns connected, associated programs and more.
BPQTelnetServer allows remote telnet access to BPQ32 by multiple pre-defined users.
An associated configuration file, BPQTelnetServer.cfg, includes the TCP port number to be used for connections, allowed usernames/passwords and other details. If you have specified TCPPORT=8010 you can quickly test BPQTelnetServer by connecting with the Windows telnet client with the command: ‘telnet localhost 8010’. You will be prompted for your pre-defined user name and password, after which you will have available the full range of BPQ32 switch commands.
BPQTNC2 provides a TNC2 like interface to the switch.

Real com ports are supported in W95/W98/WME/W2K/WXP. W2K/WXP adds support for virtual com ports. If the application using BPQTNC2 is on the same machine, then the virtual solution is the most practical, requiring no real com ports, however if the application and BPQTNC2 are on two separate machines, these machines may be linked with a null modem cable, using a real com port on each machine. I have tested this running Hyperterminal on one machine and BPQTNC2 on another. Hyperterminal’s default ASCII settings are appropriate except you must select: ASCII Receiving – Append line feeds to incoming line ends. Also enter at the TNC2 command prompt cmd> ECHO ON.
VCOMConfig is used to generate a virtual com port. An application designed to interface via a serial port to a TNC2 device can connect via a virtual port to BPQ32 through the BPQTNC2 emulator, avoiding the need for two real com ports linked by a null modem cable. Hyperterminal may be used to test the ‘link’ using the settings noted above.

Further details regarding BPQTNC2 / VCOMConfig may be found at the G8BPQ website.
3.09 ClearRegistryPath/SetRegistryPath
ClearRegistryPath.exe and SetRegistryPath.exe either clear or set registry entries which tell BPQ32 where to find its configuration files. Upon starting BPQ32 first looks in the registry at “HKEY_LOCAL_MACHINE\SOFTWARE\G8BPQ\BPQ32\BPQ Directory”. If a path to the configuration files is found there it is used. If it is not found, then “HKEY_LOCAL_MACHINE\SOFTWARE\G8BPQ\BPQ32\Config File Location” is examined and if a path is found, it is used. If neither is found, then BPQ32 will expect to find its configuration files in the directory from which it is started.
Currently only AR-Cluster sets ..\Config File Location, however with the current BPQ32, this is no longer needed or desirable. Neither ..\BPQ Directory or ..\Config File Location should be set or cleared by application programs.
Only experienced users, who wish to have multiple BPQ32 directories, each with its unique configuration, and fully understand the implications, should use these programs. Running SetRegistryPath, from the current BPQ32 folder, restores the path information in the registry.
Uninstalls BPQ32, including your configurations. If you wish to save your configurations you must do so prior to running Uninstall.
BPQ32 can be used stand alone or interfaced with local or remote user applications. User applications with which I have tested it include: AGWPE, AR-Cluster, CC-Cluster, DXSpider, RMS, UI-DX Bridge, UIView32, and WinFBB701A. There are many other applications, on which I am seeking information for the next installation document, which could benefit from BPQ32 services.
4.01 AGWPE
BPQ32 implements an interface to AGWPE via BQPtoAGW.dll. This allows BPQ32 to access all devices defined in AGWPE. See the file ..\Dosc\agwbits.htm as well as the supplied ..\Examples\Large_with_AGWPE\bpqcfg.txt for example port definitions. The main purpose of this interface is to allow BPQ32 access to sound card modems supported by AGWPE. However, it interfaces equally well with any device configured in AGWPE. Thus you can have AGWPE control all your devices and have BPQ32 access them via the AGWtoBPQ.dll interface.
Both AGWtoBPQ and AGWPE default to using TCP Port 8000. One or the other must be changed to avoid a conflict. I suggest 8000 for AGWtoBPQ and 8001 for AGWPE.
4.02 AR-Cluster
With AR-Cluster v 4.4.25 installed in C:\Program Files\AR-Cluster and BPQ32 in C:\Program Files\BPQ32, BPQ32 may be accessed by either AR-Cluster’s BPQ-OCX or AGWtoBPQ interface which is selected in Cfg>I/O Devices>Input/Output Configurations. For BPQ-OCX, AR-Cluster’s default settings are appropriate. For AGWtoBPQ in Cfg>I/O Devices>Input/Out Configuration>Configure AGWPE choose AGWtoBPQ via TCP and IP Address 127.0.0.1 Port 8000. Take care to select either BPQ-OCX or AGWtoBPQ, not both at once.
If you are also running AGWPE, then AGWtoBPQ and AGWPE cannot both be configured for Port 8000. Setting AGWPE to 8001 would be appropriate.
AR-Cluster, when using the OCX interface, locks the applications mask for that interface to 0x1, and as such AR-Cluster must be the first positional parameter in the APPLICATIONS string in bpqcfg.txt. Ideally AR-Cluster would have allowed the user to set the applications mask as desired.
If you have chosen the AGWtoBPQ interface, then AGWtoBPQ.exe must also be configured. From its drop down Config box you will need to add the matching TCP Port of 8000, Listening Sessions 20 and an appropriate Applications Mask (Appl Mask). It is this later entry which requires special consideration. If AR-Cluster is the only local application served by BPQ32, and in bpqcfg.txt the APPLICATIONS parameter is set to DX, then the symbol DX is the first and only positional parameter, giving the Appl Mask a value of 0x1.
The applications mask is explained in ..\Examples\Large_without_AGWPE\bpqcfg.txt, and in other configuration text files in the example folders. The Appl Mask in the case of multiple applications is explained in ..\Examples\Multiple_Apps for the case where the DLL interface is used for one application, the OCX for a second, and AGWtoBPQ for a third as well as for the DLL for the first and the AGWtoBPQ for the second and third..
BPQ32 is used by multiple applications, and thus should have its own separate location C:\Program Files\BPQ32. At one time, AR-Cluster required BPQ32 to be installed a subdirectory of AR-Cluster: C:\Program Files\AR-Cluster\BPQ32, however this is no longer the case. If each application program imposed such a restriction, BPQ32’s usefullness would be severely limited. See 3.09 ClearRegistryPath/SetRegistryPath to see how this limitation was circumvented. Future applications should not modify these registry settings and updated applications should cease to do so. The installer program makes the appropriate entries and no application program should modify them. The installer also registers the OCX control.
When the OCX interface is used, AR-Cluster will start BPQ32 automatically. If instead the AGWtoBPQ interface is used, the user must start AGWtoBPQ.exe. A convenient way to do this is to place a short cut to AGWtoBPQ.exe in the operating system’s C:\Documents and Settings\”user”\Start Menu\Programs\Startup folder. AR-Cluster, CC-Cluster and DXSpider are very graceful in their handling of the AGWtoBPQ interface, retrying the TCP connection to AGWtoBPQ periodically if not connected. This has proven to be very useful, permitting the application to maintain telnet connections to hundreds of users, while at the same time AGWtoBPQ can be cancelled, reconfigured and restarted, dropping only the BPQ32 users, and then allowing them to reconnect, without effecting the much larger number of telnet users.
BPQ32 may be run stand alone to provide AX.25 NET/ROM services via radio and AX/IP/UDP. A very useful application is described on my web page at Setting Up A Remote Access Site for DX Spots.
4.04 CC Cluster
CC Cluster 1.141 with Winsock 2.37 and AGW2CCC 1.023A supports an AGWtoBPQ interface. It is up to the user to start AGWtoBPQ. CC Cluster’s interface is well designed, allowing AGWtoBPQ to be cancelled, reconfigured and restarted without effecting CC Clusters telnet users.
The configuration, starting with CC Cluster: Configuration>Winsock> N5IN-2, localhost, 9003, Save, Exit. In Winsock: Configure>Winsock Configuration: Loop Time 192, Monitor Port 15555, Telnet Port 23, Preload 91, Cluster Port 9003, AGW/Winsock Port 9002, AGW Enabled, Force all calls to upper case, Save, Exit. In AGW2CCC: Configure>AGWPE: IP Address: localhost, AGW Port 8000, Winsock RF: IP Address: localhost, RF User Port: 9002, Max Data Length: 234, Keep Alive (Minutes) 5, Cluster Call: N5IN-2, Save, Exit. AGWtoBPQ to match this would be configured: TCP Port 8000, Listening Sessions 20, Appl Mask 0x1, Loop Txed Raw Frames selected, Loop Txed Mon Frames selected, Save, Exit. The value of 0x1 for the applications mask assumes that CC Cluster is the first and only application in the APPLICATIONS string in bpqcfg.txt. Further information on the applications mask can be found in the appropriate bpqcfg.txt files in ..\Examples.
4.05 DXSpider
DXSpider can utilize either the BPQ32 DLL or AGWtoBPQ interface. I have tested DXSpider V1.55 build 0.26 with ActivePerl-5.8.8.822-MSWin32-x86-280952.msi. I was unsuccessful with ActivePerl-5.10.0.1003-MSWin32-x86-285500. The DXSpider Wiki provides installation information for MSWindows. In the install document the paragraph Additional Packages describes how to add net.telnet, timedate and db_file to Perl. In order to use BPQ32 with the DLL interface you must also add Win32-api. You may do this from a DOS box thus:
cd \
ppm install Win32-api
This will download and install the appropriate additional components. The additional components may also be added via the Perl Package Manager.
With BPQ32 installed in C:\Program Files\BPQ32 to use the DLL interface copy as follows:
copy c:\spider\perl\BPQConnect.pm
c:\spider\local\BPQConnect.pm
In the ..\local folder edit BPQConnect.pm. There are three parameters to edit: $enable = 1 enables the DLL interface, $Applmask = 1 sets the applications mask to a decimal 1, you may have to change this if DXSpider is other than the first positional parameter in bpqcfg.txt’s APPLICATIONS string, and $BPQStreams = 10, which should be adequate.
Alternately you may choose the AGWtoBPQ interface, instead:
copy c:\spider\perl\AGWConnect.pm
c:\spider\local\AGWConnect.pm
In the ..\local folder edit AGWConnect.pm. There are three parameters to edit: $enable = 1 enables the AGWtoBPQ interface, $addr = “localhost” and $port = 8000 are the defaults, which are likely to be correct. The applications mask is set in AGWtoBPQ as described in AGWtoBPQ, with 0x1 being the correct value if DXSpider corresponds to the first positional parameter in bpqcfg.txt’s APPLICATIONS string.
If using the DLL interface, upon starting DXSpider, BPQ32 will automatically start. If using the AGW interface it is up to the user to start AGWtoBPQ. DXSpider’s AGWtoBPQ’s interface is well designed, allowing AGWtoBPQ to be cancelled, reconfigured and restarted without effecting DXSpider’s telnet users.
4.06 RMS
RMS is currently in beta, however users have reported that if it is configured to use a ‘remote’ AGWPE, but with an IP address of ‘localhost’ that it does interface with AGWtoBPQ. I am told that AGWtoBPQ must be started before RMS, as apparently just one attempt is made to connect to AGWtoBPQ. If AGWtoBPQ is later cancelled and restarted apparently no attempt is made to reconnect to it. I understand the RMS author is working on a BPQ32 DLL interface which should resolve these issues.
4.07 UI-DX Bridge
UI-DX Bridge setup with AGWtoBPQ is exactly the same as with AGWPE. Surprisingly the TX Radio Port must be entered as one less than the actual AGWPE or AGWtoBPQ port number. Thus if your AGWPE or AGWtoBPQ desired port is 2, you must set the ‘TX Radio Port” in UI-DX Bridge to 1, if the AGWPE or AGWtoBPQ port is 1, then you must set this field to 0. This anomaly lies with UI-DX Bridge not with AGWPE or AWGtoBPQ.
..\Examples\Large_without_AGWPE is the configuration I use to simultaneously support AR-Cluster, UIView32 and UI-DX Bridge.
4.08 UIView32
UiView32 may use the BPQ32 DLL interface or the AGWtoBPQ interface. No BPQ32 files need be in the ..\UI-View32 folders.
The DLL interface is very easy to set up. In Setup>Comms Setup>Host mode set BPQ32. Click Setup to get to the BPQ Port Monitor Mask. While it says for normal use leave them all checked, I have selected only the corresponding Port 2 which corresponds to 144.39MHz in my BPQ32 configuration. See ..\Examples\Large_without_AGWPE\bpqcfg.txt.
For AGWtoBPQ select AGWPE, then Host machine: Localhost, Port: 8000. The Port Mask is set as in the preceding paragraph.
For either interface you will need to make additional settings for UIView32 to use the appropriate radio port number for your site, in my case this being Port 2. This must be done in Station Setup Unproto Port and Digipeater setup Digi routes windows of UIView32. If you previously used AGWPE and configured your radio ports in the same sequence as in bpqcfg.txt the port numbers will be unchanged.
4.09 WinFBB701A
I installed WinFbb701-35A using the WinFbb701-35A install set in the BPQ32 Yahoo Group. This includes the bpq.dll version 1.0.0.1 included in that set. As FBB was the first positional parameter in the bpqcfg.txt APPLICATIONS string the Appl Mask needed is 0x1. You must set this in the registry thus HKEY_LOCAL_MACHINE\SOFTWARE\G8BPQ\BPQ32\FBBAPPL REG_DWORD 0x00000001 (1).
With this completed, starting WinFBB701A will, using the bpq.dll interface, bring up the needed BPQ32 modules. While my experience is limited the interface appears fine.
WinFBB701A has a number of shortcomings which would likely not be difficult to fix if someone could put me in touch with the author(s)!
5.0 AUTOMATICALLY STARTING AGWtoBPQ or BPQ32
If you will be using BPQ32 standalone, then BPQ32.exe, or more likely BPQTerminal.exe, may be started by adding an appropriate shortcut to..\Start Menu\Programs\Startup\. A quick way to get to this directory is to right click on the Windows® Start button and select Explore. Windows® Explorer will begin at the Start Menu directory, and you can then drill your way down to two levels to the Startup directory, and there add the desired shortcut.
Applications which use the DLL or OCX interface will start BPQ32 automatically.
If your application uses the AGWtoBPQ interface, then starting AGWtoBPQ is your responsibility. Ideally an application program which uses this interface will try periodically to connect, should AGWtoBPQ not be immediately available, and should AGWtoBPQ later be cancelled, try periodically to reconnect should AGWtoBPQ subsequently become available. AR-Cluster, CC-Cluster, DXSpider, UIView32 and UI-DX Bridge all interface in that manner.
6.0 UPDATES
BPQTerminal.exe to 2.0.3.1. Lines not terminated with a newline were not displayed.
BPQVirtualCOM to 5.0.2195.6717. Update pertaining to MSYS.
BPQtoAGW.dll to 1.5.0.1
bpqvkiss.dll to 1.2.1.1. Update pertaining to MSYS
bpqether.dll to 1.3.0.1
bpqaxip.dll to 1.12.1.1
bpq32.dll to 4.10.5.4. Fix for a missing SSID on an unproto packet as well as a possible crash if a Netrom “Disconnect ACK” is received when not expected.