Packet Chess for Packet Radio. It's made to work with the BPQ32 Packet Switch from G8BPQ. It requires that you have a basic Python3 install which most everyone should who runs modern Linux.
Packet Chess when running on your packet system will look like this:
*** Connected to Chess
--Packet Chess--
Game ID: 1, Callsign: M7TAW, FEN: rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR b KQkq - 0 1, NextMove: b, LastMove: 2025-12-03 19:19:32.347100
Download and install PacketChess to your system:
git clone https://github.com/airqualityanthony/PacketChess.git
Create a venv in /opt/ to install the python-chess application
python3 -m venv /opt/
source /opt/venv/bin/python /opt/venv/bin/pip install python-chess
Configure BPQ to connect to external application ports1:
; Telnet Port
PORT
PORTNUM=15
ID=Telnet
DRIVER=TELNET
; ... etc ...
CONFIG
; external application ports, zero indexed!
CMDPORT=6000 6001 6002 6003 6004 6005 6006 6007 6008 6009 6010
ENDPORT
; Application Lines
APPLICATION 1,BBS,,N0CALL-1,CALBBS,255
APPLICATION 3,CHAT,,N0CALL-11,CALCHT,255
; External Applications
APPLICATION 5,CHESS,C 15 HOST 1 S,N0CAL-5,CALCHESS,255
Note: CMDPORT= ports are zero indexed, such that "C 15 HOST 1 S" will connect to port 15 (Telnet) in the example config, and then connect to local host on command port 1 which is the second port 6001 in the CMDPORT= list. Choose a CMDPORT that isn't already in use by another Application i.e 2 (6002), 3(6003), etc.
The "S" in the connect string tells BPQ to return the user to the node when they exit packetchess.
You can run PacketChess from inet.d or xinet.d as a TCP service2:
service packetchess
{
disable = no
protocol = tcp
port = 6002
server = /home/bpquser/packetchess.py
user = bpquser
socket_type = stream
wait = no
}
And adding packetchess to /etc/services.
You can run packetchess from systemd as a socket service3:
Edit the supplied packetchess.socket and packetchess@.service to match the path, username and port of your configuration. Copy packetchess.socket and packetchess@.service to /etc/systemd/system/.
Then enable the service:
sudo systemctl daemon-reload
sudo systemctl enable packetchess.socket
sudo systemctl start packetchess.socket