2.0 Installing/Updating/Configuring BPQ32
2.01 ..\Examples\Minimal 2.02 ..\Examples\APRS
3.0 BPQ32 Utility Programs
3.03 BPQTNC2 / VCOMConfig
4.01 AGWPE Interface
4.03 CC Cluster
4.05 RMS Packet
4.06 UI-DX Bridge
5.0 AUTOMATICALLY STARTING AGWtoBPQ or BPQ32
6.0 STARTING BPQ32 and UTILITIES MINIMIZED
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 Groups.io Group. BPQ32, packaged as an executable NSIS installer, is available in the files section of the BPQ32 Groups.io 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 and Telnet, as well as interfacing with AGWPE. 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 AGWPE. 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, which is deprecated and should not be used in any new designs, is used only by AR-Cluster Version 4. The AGWtoBPQ driver emulates the AGWPE interface, permitting existing application programs, which have an AGWPE interface, to readily use BPQ32. If a user application, interfacing via the AGWPE interface is well written, it will periodically try to reconnect to BPQ32 if it not currently connected. Once per minute is a reasonable interval. This will allow BPQ32 to be cancelled to make changes, restarted and then automatically reconnected by the user application.
The BPQ32 Console window displays several windows which previously required separate utilities: AXIP Port Resolver, AXIP Port MHeard, Telnet Server Status, Monitor, Stream Status and BPQ32.dll Status. Options are provided to Close all BPQ32 Programs, Re-read BPQ32.cfg and reconfigure node, Re-read the APRS configuration. Previously it was necessary to cancel BPQ32 to reconfigure.
BPQ32 Console can be started 'minimized' as explained here.
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 Applications describes the configuration of these interface methods with various applications.
BPQ32 is supplied as an installer program which may be used to perform a new install, to update or to repair an existing installation. The installer detects a running instance of BPQ32 during an install, upgrade or uninstall. It issues a warning and aborts without making any changes. To continue you must close BPQ32. If you started BPQ32 by starting a single utility, such as BPQTerminal, closing it will close the BPQ32 system. With many applications running, it is easiest to use 'Close all BPQ32 Programs' offered on the BPQ32 Console Windows drop down list.
The installer complies with Microsoft's recommendations to separate program files from application data, and install each in the recommended locations. This standard has been in effect since the introduction of Windows-XP, but a great number of programs failed to observe the standard and instead installed everything in the program files directory. This was acceptable in XP, but beginning with Vista, failure to follow the recommended standard results in frequent irritation in the form of UAC warnings, to which you must respond before BPQ32 will load. By performing a compliant install these annoying warnings are avoided. The installer also provides a procedure to convert an existing non-compliant install into a compliant install, applicable to Win-95 through Win-8, and likely Win-10. The procedure to convert an existing non-compliant installation into a compliant installation is to perform an uninstall and then run the installer, taking all defaults. A BPQ32 uninstall retains all of the user's configuration, and reuses it in the subsequent install. Finally for those of you who insist upon running with a non-compliant installation, you may simply run the installer.
The installer offers options for the folder locations of the program files and application files, should you not want to accept the recommended defaults. Expressed as environment variables, the recommended locations for the program files are %systemdrive%\%programfile%\BPQ32 on a 32-bit system and %systemdrive%\%programfiles (x86)%\BPQ32 on a 64-bit system. Assuming %systemdrive% is the typical C:, for 32-bit systems these translate to C:\Program Files\BPQ32, for 64-bit systems C:\Program Files (x86)\BPQ32. The application data files recommended folder is %appdata%\BPQ32 on either 32-bit or 64-bit systems. On XP this translates as C:\Documents and Settings\"Username"\BPQ32, for Windows-7 C:\Users\"Username"\AppData\Roaming\BPQ32.
While it might seem awkward to locate the application data in such an obscure location, it is actually easy! Simply click on "Windows Start Button\Start Menu\All Programs\BPQ32". Click on BPQ32 revealing an extensive list of BPQ32 components including "View Configuration Folder". Doing so will open Windows Explorer to that folder with BPQ32.cfg already selected, making it easy to edit BPQ32.cfg.
In the same manner you may choose "View Examples Folder" for a number of BPQ32 configuration examples. Copy an appropriate BPQ32.cfg file to another location to edit it for your use. Should you in error corrupt any of these and other files, you can simply rerun the Installer taking all the defaults to return to a valid state.
A starting point is the minimal BPQ32.cfg described as follows:
A new install makes the BPQ32 minimal configuration the current configuration. If you have an different existing configuration and you wish to run the minimal configuration test, first save your existing configuration, if any, then copy the contents of ..\Minimal to the Configuration Folder and execute BPQTerminal.exe. Enter the following in the BPQTerminal data entry field:
C 1 MYNODE v MYCALL
You should receive the following response:
MYNODE:MYCALL} Connected to MYNODE
Minimal BPQ32 installation successful.
MYNODE:MYCALL} CONNECT BYE INFONODES ROUTES PORTS USERS MHEARD
If you get the above response the basic test has succeeded.
Descriptions of useful BPQ32 configurations, which can serve as a basis for your configuration follow:
This is an example of a BPQ32 node which supports APRS digipeating compliant with the New-N Paradigm Initiative. It includes one radio port and an internet connection to APRS-IS. You will need an APRS-IS password which can be obtained by requesting if from G8BPQ. The configuration includes examples of transmitted object formats compatible with 'one button qsy' capable radios, such as the Kenwood D710A and Yaesu FTM-350.
This is similar to the actual configuration I run on my AE5E CC-Cluster v 3.089 production system. The configuration has 1 AX/IP/UDP, 1 KISS TNC, 1 AGWPE Device and 1 Telnet Port. Via the internet AX/UPD users from around the world may connect using a combination of radio, telnet and AX/IP/UDP. This is a busy machine, having up to 1,000 users during DX contests.
This example supports a KISS TNC, an AX/UDP port, BPQChat and the BPQMail BBS.
3.0 BPQ32 Utility Programs
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:
BPQ32.exe is the background process that runs the Node software. It is loaded automatically when a program that uses BPQ32 is started. If you want to run just the Node without any other BPQ programs you can run BPQ32.exe.
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.
VCOMConfig is used to generate a virtual com port. An application designed to interface via a serial port to a TNC device can connect via a virtual port to BPQ32 through the BPQ32 TNC emulators, avoiding the need for two real com ports linked by a null modem cable. See here for more information on BPQ32 Virtual serial ports.
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 V4 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.
Uninstalls BPQ32 software, but retains your configurations.
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, 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 Interface
BPQ32 includes an interface to AGWPE, allowing BPQ32 to access all devices supported by AGWPE. See ..\Examples\Large\BPQ32.cfg.The main purpose of the AGWPE interface is to allow BPQ32 access to sound card modems supported by AGWPE. However, it interfaces equally well with any device supported by AGWPE. Thus you can have AGWPE control all such devices and have BPQ32 access them via BPQ32's AGWPE interface.
With BPQ32 v 126.96.36.199 and AR-Cluster v 6, which has replaced AR-Cluster v 4, the use of AGWtoBPQ.exe as a separate program has been deprecated. Additionally the OCX interface is no longer supported. AR-Cluster v 6 only supports the AGWPE interface. The matching BPQ32 interface is now an integral part of BPQ32. An example configuration, from ..\Examples\Large\BPQ32.cfg is:
;AGW Emulator Parameters - Replaces the now deprecated AGWtoBPQ.exe
APPLICATION 2,DXA,,A1ABC-1,ABCDXA,255 ;The '2' in this line corresponds to AGWMASK=2
This statement generates a user command DXA, a node entry of ABCDXA:A1ABC-1 transmitted to adjacent nodes with a quality of QUALITY.
Within AR-Cluster a corresponding configuration is made in the AR-Cluster ServerIoCfg Collection Editor.
4.03 CC Cluster
Beginning with BPQ32 v 188.8.131.52 the need for AGW2CCC.exe to interface between BPQ32 and Winsock v 3.24/CC Cluster v 3.086 has been eliminated. Instead within BPQ32.cfg define a Telnet Server Port and include the statement CMDPORT=9002. In Winsock.exe define the AGW/Winsock Port with the corresponding number 9002 and 'check' AGW Enabled. A BPQ32 applications statement is required, thus:
APPLICATION 1,DXC,C 4 HOST 0 K,A1ABC,ABCDXC,255 ; See ..\Examples\Large\BPQ32.cfg
In this example the configured BPQ32 Telnet Port is 4. That port definition contains a single CMDPORT statement, which corresponds to the "0" in the applications statement above.. If there were a second CMDPORT statement, following the first, it would correspond to "1", etc. The "K" enables a keepalive function with a timer equal to 60 seconds less than IDLETIME, the node idle shutdown timer. This APPLICATION statement generates a user command of "DXC", a node entry of ABCDX:A1ABC which is transmitted to adjacent nodes with a quality of QUALITY less 1. For example with a receiving node QUALITY of 192, the application, with an internal quality of 255, the receiving node would show this application with a quality of 255(192/256) = 191. A connection to this port via BPQ32 will forward your callsign to CC-Cluster automatically, thus no sign on is required.
CC Cluster allows you to define logon messages depending upon the port on which the user connects.
For telnet users multiple ports can be defined, as shown in the following example: 23 and 7000.
These would correspond to ports 1 and 2 on the Logon & Logout Message window of CC-Cluster.
The AGW/Winsock port would follow as port 3. When connecting on the AGW/Winsock port much of the welcome
text is skipped, reducing radio traffic. Only the text below the port number listing, in the Logon & Logout
Message window of CC-Cluster, is sent plus any optional cluster commands you choose to set for automatic execution.
DXSpider can utilize either the BPQ32 DLL or AGWtoBPQ interface. I have tested DXSpider V1.55 build 0.26 with ActivePerl-184.108.40.2062-MSWin32-x86-280952.msi. I was unsuccessful with ActivePerl-220.127.116.113-MSWin32-x86-285500. The DXSpider Wiki provides installation information for Microsoft Windows®. 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:
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 bpq32.cfg'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 bpq32.cfg'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.05 RMS Packet
RMS Packet has a direct BPQ32.DLL interface. Select "Use BPQ32 to access TNC" on the Site Properties Dialog.
4.06 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 AGWtoBPQ.
The install documentation and file set for WinFbb701-35A is in the files section of the BPQ32 Groups.io Group. This includes the bpq.dll version 18.104.22.168 and tln.dll version 22.214.171.124 included in that set. The updated tln.dll corrects a problem in WinFBB701-35A which caused corruption of the callsign of the connecting station, resulting in corrupt entries being sent to the WP database. Note that versions 126.96.36.199 and 188.8.131.52 tln.dll from May 2001 exist, however they are not to be used. John was able to get source code for version 184.108.40.206 and he corrected that code resulting in version 220.127.116.11.
In the example file ..\Examples\Small\bpqcfg.txt, FBB is the first positional parameter in the bpq32.cfg APPLICATIONS string thus the Appl Mask needed is 0x1. You must set this in the registry as 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.
The install documentation and file set for WinFBB700I is in the files section of the BPQ32 Groups.io Group. That set includes TFWIN.DLL Version 18.104.22.168 which resolves a 100% CPU utilization issue.
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.
A better alternative to using Windows® Explorer is to use a utility such as R2 Studio's Startup Delayer. That program will allow you to control the sequence and delay for each program you wish to start at boot time. In addition you can impose a fixed delay before the process starts, giving you time to abort the process should you wish.
6.0 STARTING BPQ32 and UTILITIES MINIMIZED
The BPQ32 Console offers, in the "Action" drop down list, "Start Minimized" and "Minimize to Notification Area (System Tray)".
Prebuilt shortcuts are provided from the BPQ32 program drop down list in "View Shortcuts Folder" in both Normal and Minimized formats.
R2 Studio's Startup Delayer also provides for selection of Normal and Minimized windows for the programs it starts.
BPQ32_22.214.171.124_2022Jun27:BPQ32.dll Updated to Version 126.96.36.199 Changes Since 188.8.131.52
BPQ32_184.108.40.206_2021Aug22:BPQ32.dll Updated to Version 220.127.116.11 Changes Since 18.104.22.168
BPQ32_22.214.171.124_2020Dec14:BPQ32.dll Updated to Version 126.96.36.199 Changes Since 188.8.131.52
BPQ32_184.108.40.206_2020Apr24:BPQ32.dll Updated to Version 220.127.116.11 Changes Since 18.104.22.168
BPQ32_22.214.171.124_2019Sep25:BPQ32.dll Updated to Version 126.96.36.199 Changes Since 188.8.131.52
BPQ32_184.108.40.206_2019Jan07:BPQ32.dll Updated to Version 220.127.116.11 Changes Since 18.104.22.168
BPQ32_22.214.171.124_2018Nov07:BPQ32.dll Updated to Version 126.96.36.199 Changes Since 188.8.131.52
BPQ32_184.108.40.206_2018Mar26:BPQ32.dll updated to Version 220.127.116.11 Changes Since 18.104.22.168
BPQ32_22.214.171.124_2018Feb19:BPQ32.dll updated to Version 126.96.36.199 Changes Since 188.8.131.52
BPQ32_184.108.40.206_2017Jul12:BPQ32.dll updated to Version 220.127.116.11 Changes Since 18.104.22.168
BPQ32_22.214.171.124_2016Sep27:BPQ32.dll Updated to Version 126.96.36.199 Changes Since 188.8.131.52
BPQ32_184.108.40.206_2015Nov02:BPQ32.dll Updated to Version 220.127.116.11. Changes Since 18.104.22.168
BPQ32_22.214.171.124_2015Sep10:BPQ32.dll Updated to Version 126.96.36.199. Changes Since 188.8.131.52
BPQ32_184.108.40.206_2015Feb14:BPQ32.dll Updated to Version 220.127.116.11. Changes Since 18.104.22.168