User Tools

Site Tools


packet:bpq

BPQ32

BPQ32 is node software which is current and maintained. There are Linux and Windows versions; the Linux version is known as LinBPQ.

LinBPQ is a highly configurable and flexible piece of software - this makes it fairly complex.

A BPQ node offers standard applications for chat and mailbox (BBS) and can be extended to support custom applications. Here is a guide for adding a custom application to a BPQ node.

Our guide to installing a LinBPQ node on a Debian-like OS is here: linbpq-apt-installation

BPQ Configuration

Here are some miscellaneous hints and tips on BPQ configuration.

'NODE' and node 'HELP' commands

To help new (packet) users when connecting to your node, you can offer a description of your set-up under the node 'info' command. Likewise a node'help' file can also be quite useful.

Your installation/variant of BPQ may or may not arrive with any of these files. Mine didn't!

INFO File

Typical contents could be:

A welcome message
Your ID - GB7XXX (+SSID) for your node -Your locator
Other SSIDs accessible on your node
Your ports
Your BPQ version and machine it is hosted on

Create a .txt file into your BPQ host folder and save it as 'INFO.txt'

HELP File

Like the INFO file, above. Create a .txt file containing virtually anything you wish (but not too long!) into your BPQ host folder called 'NodeHelp.txt'

After all this, restart BPQ. Good luck!

Enable Logging

Sometimes you just NEED a log; but be aware that SD cards do not really like to many writes. Using the HTML interface, you will find on the Main Node Page a button marked “View Logs”. Here you are able to view a number of logs by date. The los are:

  • BBS Log [disabled by default]
  • BBS Debug Log [ disabled by default]
  • Telnet Log [enabled by default]
  • CMS Log [disabled by default]
  • Chat Log [enabled by default]

As I find methods of enabling/disabling these log I will update here.

BBS Log

Enabled/disabled by a command hidden in linmail.cfg - Log_BBS = 0; Change to 1 to enable. You will need to stop the BPQ service before editing linmail.cfg

BBS Debug Log

Anybody?

Telnet Log

Anybody?

CMS Log

Anybody?

Chat Log

Anybody ?

TALK Command

Traditionally there has been was for bulletin board (BBS) users to “page the Sysop”. This would alert the BBS owner that someone wanted to chat.
We can set up a command in BPQ to achieve the same goal.
QtTermTCP#Listen
Todo: Gotta Arduino this so an LED gets lit

BPQ on Windows

With thanks to M0NVK

Information Sources

A good source of info is here:- https://www.cantab.net/users/john.wiseman/Documents/BPQ32.html Note this is hard going and take a significant amount of time to get your head around it

BPQ32 download

BPQ ConfigGen

Starting out from fresh The easiest way to start, due to the complexity, of the setup of BPQ is to use BPQConfigGen which can be found here:- https://www.cantab.net/users/john.wiseman/Documents/BPQConfigGen.html For windows use 32bit for Win, but there is also Linux and Pi versions. This will help you through the steps.

BPQConfigGen only allows you to create or edit the basic Node identification info and your ports and application definitions

After downloading and extracting, open BPQConfigGen. You will be presented with the below screen:

  1. Enter your call sign
  2. Enter the node alias - something like three letters for location and the end three letters of your call sign. Example LONABC for London G3ABC
  3. Enter your maidenhead locator
  4. Enter your Sysop UserName (will be used to login in to your node etc)
  5. and your preferred password
  6. Click web management (will be used to access your node)
  7. Enable BBS and CHAT – if you want local BBS and or CHAT for other to access on your node (leave blank if not sure at this stage)
  8. Add your ports*….advise a telnet port (will be auto if clicked BBS and Chat)
  9. Add applications** – ie Chat and BBS

Once complete Save the config. The config is saved in the directory you extracted BPQconfigGen to. This needs to be moved to the main working directory of BPQ32. Search for BPQ32.cfg and replace that with your file. Call it BPQ32.cfg.

Add Ports

I have shown Kiss TNC ports and that works for most radios, but other are there like UZ7HO Soundmodem will be needed if using sound cards to drive the radio etc. select the ones your are going to be using

Add Applications

Only do this if you are running Chat and or BBS….you will need you call sign and Quality. Suggest adding you normal call sign and 255 to get you going

You should now have a working config. Connect everything to the computer and open BPQ console from the windows button.

The web interface is here:- http://192.168.1.97:8080 type this in internet explorer or whatever you are using your IP address (found from command prompt and typing ipconfig= IPv4 Address.) the HTTPPORT=8080 found in your Port 1 telnet

REST API

BPQ has a simple and evolving HTTP REST API. It is used though the HTTPPORT (in this example is port 9122)

endpoints: (note older versions were prefixed with 'get' (except request_token)

/api/request_token
/api/ports
/api/nodes
/api/users
/api/info
/api/mheardport/<port#>

Requested like so:

curl 127.0.0.1:9122/api/request_token

Output:

{"access_token":"OSTWFHSGAPKZWMZORFEFWOFIHMOZUMJK", "expires_in":3600, "scope":"create"}

Example of MH for Port 1: ( >ver 6.0.24.33 )

curl 127.0.0.1:9122/api/mheardport?1 -H "Authorization: Bearer OSTWFHSGAPKZWMZORFEFWOFIHMOZUMJK"

Output:

{"callSign": "G7TAJ-15", "port": "1", "packets": 10, "lastHeard": "2024-3-6 17:14:01"  },
{"callSign": "G7TAJ", "port": "1", "packets": 5, "lastHeard": "2024-3-3 15:46:07"  }

Events

BPQ can fire an executable on certain events.

  • new message
  • message read
  • user joining chat

In bpq32.cfg

EnableEvents=1

For mail events:

On the web interface, MailMgmt/Configuration enable:

Enable Event Reporting

This will call the following in the bpq directory (For Windows add .exe to the filename)

MailNewMsg

It will run the following on a message being read:

MailMsgRead

The format of the output is as a string of arguments to the program:

51260 P N 0 G7TAJ G7TAJ 240408 test

Chat events: This needs to be configured on the chat Web interface page.

ChatNewUser

Arguments:

240408-G7TAJ : Steve *** Joined Chat, Topic General

TX/RX cycle

The table below is created from information found at https://tarpn.net/t/faq/faq_csma.html where a lot more detail and good information is available. This table just covers one transmission and the response and the values linbpq pulls from the port config file to determine how long each step should be.

station option description
tx N/A I become ready to transmit
tx slottime I listen for other tranmitters to make sure the air is clear
tx persist I come up with a random number.
 >persist:listen again              
 <=persist: transmit      
tx TX delay I press the PTT so both ends of the link prepare for the transmission
tx paclen I send this many symbols
RX resptime I wait for the other station to switch to RX before sending the ACK
RX slottime Same as above
RX persist Same as above
RX TX delay Same as above
RX N/A I send an ACK message
tx frack How long will I wait for an ACK before retry?

The goal here is to avoid two stations transmitting into the same space at once, thereby wrecking both transmissions. Some level of collision is unavoidable but with good settings for the local area they can be reduced to a minimum. 5% retry rates is a good outcome.

There are two fundamental problems:

One is that once a station has decided to transmit it takes a finite amount of time to actually get on the air between programs running, pressing the PTT and actually transmitting once the PTT has been pressed. Slottime should be about as long as that takes for the slowest radio in the network so that if a station is listening for others on the air, it waits long enough for a station to decide to transmit and actually transmit.

The other is that frequently some nodes cannot see all the other nodes in the network so no matter how long they listen for they cannot hear particular nodes transmitting so will send data to stations that are already receiving and potentially collide.

packet/bpq.txt · Last modified: 2024/04/17 18:00 by g7taj