Packet Radio and a MU* Client

I’ve been tinkering with packet radio for a while using a Raspberry Pi computer (with a serial port “hat”), a PK-232 Terminal Node Controller, and a Kenwood TM-G707 transceiver for 2-meters. Although there’s not a lot of activity in the local area, it’s been interesting and educational; but one thing that has been bugging me is that I haven’t had a good terminal program to use. So I decided to try what I thought would be a good program for the purpose: a MU* client.

For those who may not know, a MU* client is a network program designed for playing text-based role playing games (MUDs, MUSHes, MUCKs, and MOOs) harkening back to the early days of internet gaming. They usually have a split screen with a large window for displaying text from the game server, a smaller window for composing text and commands to send to the server, and built-in tools for highlighting text and manipulating incoming and outgoing text in various ways. Exactly what I wanted for packet radio. The client I selected is TinyFugue, which I’m already familiar with and is fully text-based so I can run it over an SSH link if I need to.

The first challenge is that these programs connect to the internet, not to a serial port. With some help and pointers from a few friends who are Linux-savvy (since this is on the Pi in this case), I was able to figure out how to bridge between the serial port and a network port on the Pi, and connect the client software to the local host address. It took a little tinkering when first turning on the TNC to get the baud rate set right, but once it configured, I was able to start talking to the TNC, and then to other radios in the local area.

One minor hiccough I didn’t expect but should have in retrospect is that serial devices like TNCs are character-oriented, so the terminal programs used to communicate with them are also character-oriented. MU* servers, and therefore the clients used to connect to them, are line-oriented. The difference is that a line is terminated by a carriage return, the same thing you get when you press the enter key. A terminal program will display characters as they come in, but the MU* client wants to wait until it sees a CR; the TNC sends it’s “cmd:” prompt as an unterminated string of characters (which is why the command you type appears the same line as the “cmd:” like you would expect) so it doesn’t show up by default unless you press enter a couple of times. And while some MU* servers send an unterminated command prompt when expecting input, I’m not very familiar with that type or how to configure for them, so I need to do a little more experimenting to get everything working right and reliably see everything that comes from the TNC.

So my current plan is to set up another computer with a serial port and connect it to the Pi with a null-modem cable, and use PuTTY or another terminal program to type at the Pi and see exactly how the MU* client behaves, while researching how to configure the MU* client for better functionality.

Should have more in a few days!

Comments |0|