Skip to content

Eric-Sparks/PacketChess

 
 

Repository files navigation

PacketChess

Packet Chess for BPQ


MIT License

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

Installation

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.

inetd server

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.

systemd server

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

Footnotes

  1. LinBPQ Applications Interface

  2. xinet.d

  3. systemd

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%