Getting started with PakCatt
PakCatt is a open source bulletin board (BBS), recently written from the ground up using modern technologies. It’s also an extensive framework for building your own applications and services that can be accessed over Packet Radio, APRS and the Internet.
If you’re in the Melbourne area you can connect to a running instance on 144.875MHz, callsign VK3AT-1. You can also send it APRS messages on 145.175MHz to the same callsign.
Here is an example of a typical PakCatt session, accessing the bulletin board:
1Welcome to PakCatt! Type help to learn more :-)
2You have 3 unread messages.
3
4menu> board
5Launching Bulletin Board
6board> list 3
7
8 No Updated Topic
9 13 19 Nov 11:44 Contests
10 2 04 Feb 08:27 Features & Ideas
11 14 25 Feb 21:11
1214 threads
13
14board> open 2
15
16board/2 Features> list 3
17
18 No Posted By Size
19 22 29 Jan 21:01 VK3AT 194B
20Callsign change - If you're reading this then you already know. My
21callsign has changed to VK3AT, and I've updated the BBS to listen
22on VK3AT-1. Please let othe...
23
24 23 31 Jan 22:18 VK3AT 312B
25Big update for this BBS - I've added a TCP/IP interactive socket so
26anyone can connect to it from anywhere on the Internet! This is
27terrifying, because it's wid...
28
29 24 04 Feb 08:24 VK3AT 517B
30Hey all, check out the last command. Lots of stations! But I need
31to explain - I've connected this BBS to @VK3LEs APRS iGate so
32that it can send and receive APR...
33
34
3525 posts in: Features & Ideas
36
37board/2 Features> open 24
38
39Hey all, check out the last command. Lots of stations! But I
40need to explain - I've connected this BBS to @VK3LEs APRS
41iGate so that it can send and receive APRS messages on the
42APRS frequency. This means it also hears stations on that
43frequency and will log them in the last log. You'll see
44the last column in the last log captures wthe channel on
45which the station was last heard - most are on APRS while
46others (like you reading this) will be on the BBS channel
47or the TCP/IP channel.
48Hope that makes sense!
4973, B
The bulletin board is just one of several applications. Other applications allow you to read personal mail, send APRS messages to remote stations, and do simple mathematics, for example:
1menu> sqrt 12
2Square root of 12 is 3.4641016151377544
Install and setup
Running PakCatt is easy:
-
Download the latest pakcatt-x.x.jar and application.yml files from the PakCatt repo on GitHub. Replace x.x with the latest release version. For release 0.4:
1$ wget https://github.com/dotb/pakcatt/releases/download/release_0.4/pakcatt-0.4.jar 2$ wget https://github.com/dotb/pakcatt/releases/download/release_0.4/application.yml
-
Install the Java Runtime Environment (JRE). Yes I know, don’t worry it’ll be painless! On a Debian / Ubuntu system this can be done using apt:
1$ apt install default-jre
-
Edit the application.yml file to taste. At minimum you’ll want to change the mycall, TCP/IP and MongoDB configuration:
1pakcatt: 2 application: 3 mycall: PAKCAT-1 4 5network.tcp: 6 enabled: true 7 port: 7331 8 callsign-regex: '[a-zA-Z]+[0-9][a-zA-Z]+-?[0-9]?' 9 pre-welcome-message: Welcome to PakCatt! 10 callsign-regex-fail-message: Sorry, your callsign could not be validated. 11 12spring: 13 ## Database configuration 14 data.mongodb.database: pakcatt 15 spring.data.mongodb.host: 127.0.0.1 16 spring.data.mongodb.port: 27017
-
The bulletin board and mail apps need a database to store messages. PakCatt uses MongoDB as it’s persistence layer, which is also quick and easy to get running. On Debian / Ubuntu systems this can be done using apt, then run MongoDB and specify a folder to store your data:
1$ apt install mongodb 2$ mongodb --dbpath /home/mydir/pakcattdb
Now you can start PakCatt and then connect to it over TCP/IP to create posts and messages!
1$ java -jar pakcatt-x.x.jar --spring.config.location=./application.yml
2╔═══╗ ╔╗ ╔═══╗ ╔╗ ╔╗
3║╔═╗║ ║║ ║╔═╗║ ╔╝╚╗╔╝╚╗
4║╚═╝║╔══╗ ║║╔╗║║ ╚╝╔══╗ ╚╗╔╝╚╗╔╝
5║╔══╝╚ ╗║ ║╚╝╝║║ ╔╗╚ ╗║ ║║ ║║
6║║ ║╚╝╚╗║╔╗╗║╚═╝║║╚╝╚╗ ║╚╗ ║╚╗
7╚╝ ╚═══╝╚╝╚╝╚═══╝╚═══╝ ╚═╝ ╚═╝
8By VK3AT & VK3LE
92023-03-03 09:46:59.349 [ PakCattKt] INFO: Starting PakCattKt v0.2
10on mufasa.utiku.io with PID 21435 (/tmp/pakcatt-0.2.jar started by bradley
11in /tmp)
122023-03-03 09:46:59.355 [ PakCattKt] INFO: The following profiles
13are active: production
14...
Connect via TCP/IP
To connect to PakCatt via TCP/IP, use your favorite terminal program such as telnet, Putty or netcat. Here I’ve used netcat:
1$ nc localhost
2Welcome to the VK3AT BBS, running the PakCatt software https://github.com/dotb/pakcatt. This BBS is connected to an RF network and you require a valid amateur radio licence to operate it. Please supply your callsign on the next line to get started!
3VK3AT
4Welcome to PakCatt! Type help to learn more :-)
5
6menu> last VK3AT
7VK3AT: Sunday, 23 April 2023, 17:05 via TCPClient
Connecting via radio
To use PakCatt over radio you need to connect it to a Terminal Node Controller (TNC) and transceiver radio. PakCatt can connect to TNCs that support the KISS protocol, through TCP/IP or a serial connection.
Using Dire Wolf
Dire Wolf is a software TNC that uses the sound-card in your computer to modulate/demodulate the tones that encode AX.25 packets. It’s a fantastic tool that’ll get you you onto packet radio without needing the older hardware type TNC. This guide doesn’t cover the Dire Wolf configuration but there are heaps of examples elsewhere.
Once Dire Wolf is set up, edit the application.yml file to point PakCatt at your Dire Wolf instance:
1## TNC Configuration
2 tnc:
3 ## TCP/IP TNC connections
4 tcp-connections:
5 - channel-identifier: 'TCP TNC'
6 ip-address: 127.0.0.1
7 port: 8001
The example configuration above will connect to Dire Wolf running on localhost, on port 8001
Using an old skewl TNC
Fun fact - PakCatt’s name is a play on the old Pakratt Hardware TNC. If you’re into blinking lights, then this option is for you! Connect your hardware TNC to the computer running PakCatt. You’ll probably need a USB to Serial converter cable and in Linux should see the serial interface appear as something like /dev/ttyUSB0. Then configure PakCatt to connect to the serial port:
1## TNC Configuration
2 tnc:
3 ## Serial port / TNC configuration
4 serial-connections:
5 - channel-identifier: 'Serial TNC'
6 port-path: /dev/ttyUSB0
7 port-baud: 9600