BPQ32 BBS and Chat Setup with Direwolf and Telnet Configuration Guide
As you know, I’m a fan of packet radio. I really wish there were more modern implementations, as almost all of the BBS and terminal software feels like it is stuck 2-3 decades ago. Some people like that. But getting a BBS node up in 2024 feels like ramming my head against a board full of rusty nails. Anyways, as I do these things, I want to document them for myself, and for others who may be trying the same thing so here’s my best shot. I really recommend running LinBPQ, as Linux servers tend to have more uptime. I have a guide on installing and configuring it as well, here.
Getting BPQ32
Grab BPQ32 from here, and then run the installer. The password for the zip is alongside the zip file in the web directory.
BPQ32 Basic Configuration
Pretty much all of the configuration for BPQ32 is done via a file called “BPQ32.cfg”. The documentation for this is found here. I’ll try and make this as simple as possible.
Multi line comments are made with /*
and */
, while single line comments are seen after ;
.
We will need to locate this file to get started. The files location can be found via a new shortcut installed with the program called “View Configuration Folder”
If you didn’t change it during the install, I’ll save you time, and say your configuration file is located at:
C:\Users\YOUR_USER_NAME\AppData\Roaming\BPQ32\BPQ32.cfg
Open up BPQ32.cfg, and you will see a template. We are going to change a few settings here.
I will show examples of what mine looks like as well.
- On Line 24, change “MYCALL” to your amateur radio callsign (including an SSID.)
NODECALL=MYCALL
->NODECALL=KN4MKB-7
- On Line 25, change “MYNODE” do an alias you’d like to refer to your node with. (Limited to 6 characters)
NODEALIAS=MYNODE
->NODEALIAS=MHMKB
- Change Line 27 to your desired ID Text. The is changing the value of the “IDMSG:”(as seen above it), which you should see on line 26. This is a message that is sent from your node every so often to ID itself.
This is the IDMSG text.
– >KN4MKB BBS and CHAT BPQ Node
- On Line 30, we have a value for “BTEXT”, which is the beacon that is sent out periodically. The documentation has an example of sending an APRS position beacon. You can convert a Degrees Minutes Seconds LAT/LON to decimal degrees, which is what is needed here. Then, you must reverse the numbers. When you’re finished, the BTEXT will look something like this:
This is the BTEXT text.
->!3742.65N/08553.17W#KN4MKB-7 BBS & CHAT & APRS iGate.
- If your lines haven’t shifted much, next we have line 33, which is the text for INFOMSG. This is the message displayed when someone issues the “INFO” command when connected to your node.
This is the INFOMSG text.
->Sysop KN4MKB. Type BBS or CHAT to Start
- Next up, line 36-37 we need to change the value for “CTEXT(as indicated above it)”, which is the message sent to a user when they connect to your node to the message you’d like to send people.
Minimal BPQ32 installation successful
. – >Welcome to the KN4MKB-7 LinBPQ Node.
MYNODE:MYCALL} CONNECT BYE INFO NODES ROUTES PORTS USERS MHEARD
->MHMKB:KN4MKB} CONNECT BYE INFO NODES ROUTES PORTS USERS MHEARD
In the end, my portion of the config file (lines 24-38) looks like the following:
NODECALL=KN4MKB-7
NODEALIAS=MHMKB
IDMSG:
This is the IDMSG text.
***
BTEXT:
!3742.65N/08553.17W#KN4MKB-7 BBS & CHAT & APRS iGate.
***
INFOMSG:
Sysop KN4MKB. Type BBS or CHAT to Start
***
CTEXT:
Welcome to the KN4MKB-7 LinBPQ Node.
MHMKB:KN4MKB} CONNECT BYE INFO NODES ROUTES PORTS USERS MHEARD
Testing The Setup So Far
Connecting to your Node:
You should now be able to run The “BPQTerminal” which is a shortcut the BPQ32 installer made, and within the bottom “input” line enter:"C 1 YOURNODEALIAS"
to connect to your node to verify basic configuration.
Configuring Ports
Ports are the way data comes in and out of the BPQ32 software. There are A LOT of options here, but we will only add two to get the necessary elements up and running.
Now that we’ve established that much, let’s go ahead and add the “Port” That we need for direwolf into the configuration file, as well as a telnet connection. I will also show a port example for a serial TNC for those using hardware TNCs.
If you are using direwolf, we are going to assume you have setup default settings for AX25 packet as outlined in the ultimate direwolf guide. If FX25 is enabled, you may want to disable it for the time being, as it doubles your transmission time, I will leave mine enabled. For example, the settings below should be in your direwolf.conf file adjusted for your radios needs:
FX25TX 1
#For VHF:
MODEM 1200
#For HF
#MODEM 300 1600:1800 7@30 /4 D
PERSIST 63
SLOTTIME 12
RETRY 10
FRACK 5
#FRACK 8 for HF
MAXFRAME 4
#For HF
#MAXFRAME 1
PACLEN 128
#For HF
#PACLEN 64
DWAIT 0
TXDELAY 50
TXTAIL 40
First, we will remove the Loopback PORT configuration, starting on line 106, ending on 110
So, delete this section here:
PORT
PORTNUM=1
ID=LOOPBACK
TYPE=INTERNAL
ENDPORT
If you intend on using Direwolf as your TNC for bbp32:
We will replace it with the following, which will set Port 1 to a Direwolf instance, which will be connected via network TNC. Feel free to adjust the IP if your direwolf instance is running on a different machine.
The following is a good example for VHF Packet, for HF just change the ID Freq.:
PORT
PORTNUM=1
ID=144.930 MHz 1200 bps
TYPE=ASYNC
SPEED=19200
PROTOCOL=KISS
IPADDR=127.0.0.1
TCPPORT=8001
RESPTIME=1500
MHEARD=Y
BCALL=KN4MKB-7
MINQUAL=100
KISSOPTIONS=NOPARAMS
CHANNEL=A
FULLDUP=0
NOKEEPALIVES=1
ENDPORT
IF you are using a kiss serial or PITNC instead of direwolf paste the following instead and adjust as needed for your TNC COM port, speed, and TXDELAY/TXTAIL :.
PORT
PORTNUM=1
ID=144.930 MHz 1200 bps
TYPE=ASYNC
COMPORT=/dev/ttyAMA0
;COMPORT=COM1 For windows
SPEED=19200
PROTOCOL=KISS
KISSOPTIONS=ACKMODE
;KISSOPTIONS=PITNC,NOPARAMS (FOR PITNC)
CHANNEL=A
FRACK=7000
RESPTIME=1000
SLOTTIME=100
TXDELAY=200; Needs adjusted for your radio
PERSIST=64
RETRIES=10; may want to adjust as needed
DIGIFLAG=1; Set to 0 for HF
TXTAIL=40; Needs adjusted for your radio
PACLEN=128 ; Set to 64 for HF
MAXFRAME=4; Set to 1 for HF
FULLDUP=0
NOKEEPALIVES=1
ENDPORT
We will also add a telnet connection so that we can still connect locally, and allow others over the internet to connect (if we port forward). Our telnet server will listen for connections on port 8010. The following code will also start a webserver on port 8012 for easy admin access. To do that, add the following directly after the above code:
PORT
PORTNUM=2
ID=Telnet
DRIVER=Telnet
QUALITY=0
CONFIG
RELAYAPPL=BBS
SECURETELNET=1
LOGGING=1
DisconnectOnClose=1
TCPPORT=8010
HTTPPORT=8012
LOGINPROMPT=user:
PASSWORDPROMPT=password:
MAXSESSIONS=15
CTEXT=Welcome to KN4MKB's Telnet Server\nEnter ? for list of commands\n\n
USER=ModernHam,PASSWORD,KN4MKB,"",sysop
USER=ANON,pass
ENDPORT
Take special care to note the USER= section at the bottom. The Format is:USER=USERNAME,PASSWORD,CALLSIGN,STARTUP_APP,ROLE.
You don’t need to change much here except the Username, password, and callsign.
The first user line I have will create a Administrator user with the Username “ModernHam”, and the password “PASSWORD”, with CALLSIGN ‘KN4MKB’ so you need to change these.
The second “USER” line will create a regular “anonymous” user account with the username “ANON”, and password “pass”.
Enabling the BBS and Chat Applications
Applications need a post of their own, and so we will only enable 2, the BBS and CHAT for the sake of keeping the basic configuration guide an acceptable length.
Line 85, you should see “BBS=0
” Change this “0
” to a “1
“
At then end of the file, you should see an “Applications” section,
/*
Applications:
There are no associated applications, thus no active APPLICATION statements.
*/
Remove those lines and add the following at the end of the file:
APPLICATION 1,BBS,,KN4MKB-11,MHBBS,255
APPLICATION 2,CHAT,,KN4MKB-12,MHCHT,255
The “BBS
” portion just tells users the command that must be used to access “APPLICATION 1
.” The “1
” here is just a configuration option entered into each application (this will click in a moment). Replace “KN4MKB
” with your own callsign. “MHBBS
” is an alias for the BBS application, and must be different than the node alias. It is limited to 6 characters. The 255 is a way to set the “priority” for the application. 255 is the max and default.
We also added a second line for the CHAT application. This line follows the same format. Notice there is a different SSID for this callsign. These both need to be a different SSID than the node alias, and different from eachother.
Save the file.
In the same folder as the “BPQ32 Console” shortcut, there is another shortcut called “BPQ32 Programs” Open this, or navigate to C:\Program Files (x86)\BPQ32. You should see a file called “BPQMail.exe”.
Open the executable, and many windows will open. Among those is a “Mail Server” window. click “Configuration -> Main Configuration. within this window, Set the “BBS Appl Number” to “1”, and set “Streams” to the amount of connections you want to support at the same time. Set the BBS Call and SYSOP Call to your own Callsign.
Save your changes, and close any running BPQ32 instances.
Alongside the BPQMail shortcut, you should see a “BPQChat” shortcut. Open this as well, and set the “Chat Apppl Number” to 2, and set streams to 10 to start. Type yourself a short welcome message, and hit save.
Save all the changes, and close any running BPQ32 applications.
This is as far down the rabbit hole as I will get here on applications in the basic post. As you can see, the BBS/Mail alone is enough for it’s own post. Which we will tackle in the future. Make sure to save your changes, a reboot of BPQ32 is required for the changes to take effect.
Finishing Touches
We will now configure periodic beaconing. Lines 49-51 you should see:
NODESINTERVAL=15
IDINTERVAL=0
BTINTERVAL=0
We will change these to these to the following to adjust each Beacon/ID in minutes:
NODESINTERVAL=25
IDINTERVAL=10
BTINTERVAL=60
Last, to complete the basic configuration of BBQ32, we will add 2 new lines to the top of the file for our Locator, and map reporting.
LOCATOR will be equal to your 6 digit amateur radio grid or A LAT/LON in the format XX.XXXX, XX.XXXX, as its shown on google maps.
MAPCOMMENT is just a comment left on the map our node will be reporting to here.
Remember to replace the info with your own.
LOCATOR=EM77BQ
MAPCOMMENT=BPQ32 Test Node, Elizabethtown KY<BR>144.930
Now, once we save the file, it’s time to move on to starting direwolf.
Direwolf Setup
If you do not yet have a working direwolf setup, please follow the Ultimate Direwolf TNC Installation for Windows and Linux and then proceed below when you have a good digital radio interface.
You need to set a working PTT Port within direwolf for your radio, as well as an audio device configured for Input and output. BPQ32 will handle basically everything else.
Once you have it configured, start direwolf via it’s exe. You should see it listening for connections via port 8001, and have the correct audio/PTT devices configured.
Putting it all Together.
With direwolf started, now start BPQTerminal. If done correctly, you should be able to connect to another node via the terminal.
Remember to start the BBS/Mail Server and chat Server as well by starting the “BPQMail.exe” file in C:\Program Files (x86)\BPQ32 and the BPQChat.exe file as well.
You should now also be able to connect to your BPQ32 instance using a telnet connection with the port 8010 with a program like putty, and manage your note at http://127.0.0.1:8012.
Using your Node to Connect to other BBS Nodes
Now that you have your own node, you may also use it to connect to others. Simply connect to your own via the web temrinal, or telnet interface, and issue the PORTS
command to view how you may connect out. You can use the MHEARD <PORT_NUM_HERE>
command to view what stations you have heard on a specific ports for ideas.
You can then issue a command like:
CONNECT PORT_NUM STATIONCALL
[…] of packet radio and the internet. Here at the ModernHam, we have tutorials for setting up both BPQ32 and JNOS,which are popular BBS implementations. Another popular opensource solution for Linux is […]
[…] already covered the windows counterpart to LinBPQ, BPQ32 here. We will basically go over the same concepts, as the configuration side is not too different. The […]