AIM on Palm OS

Table of Contents

aimIMG-6580.jpg

In 2000, AOL released an AIM client for Palm OS (see this capture of the AIM for Palm page from the wayback machine). Although AOL's AIM servers have been shutdown for year now, there are a few efforts to develop and deploy compatible third-party AIM servers. One of the most successful is nina.chat. This page gives a walkthrough of getting the Palm AIM client running by having it connect to the nina.chat servers.

Getting the desktop AIM client connected is not too difficult, since the app allows the user to change the server address and port in the settings dialog. Unfortunately all of that's hard coded on the Palm version. After getting the palm device online, the AIM-relevant details are to intercept DNS requests for the AOL aim server and have them resolve to the nina.chat servers. The other issue is the port: The Palm AIM client tries to connect to a different port than nina.chat uses. Both these things can be taken care of with some networking scripts/commands on the PC end (dnsmasq for the domain issue, iptables for port issue.)

1 Hardware & Software requirements

aimIMG-6586.jpg

You'll need a Palm device and a sync cable. I tested this with both a Palm IIIx and IIIxe, using a serial sync cable.

You'll need the Palm AIM app as well. I used version 1.1 of the app, which is available on PalmDB. For testing out the connection, you'll probably want a web browser running on the Palm. You can use Eudora web which is also available on PalmDB.

To register for nina.chat, as of today (<2026-01-25 Sun>) you'll need to visit Escargot.chat and follow the instructions for an Escargot account.

These instructions assume you're running Linux on the machine connected to the Palm. On this machine you'll need pppd to create the connection, iptables for the NAT translation to let the palm access the internet, as well as for port remapping, and dnsmasq for DNS resolution.

The commands in the next sections use the following IP address / device names that were specific to my system, and you'll probably need to replace one or more of these with your own information:

  • 192.168.1.1 : This should be the IP address of the DNS server used by your computer. Find this with ( nmcli dev list || nmcli dev show ) 2>/dev/null | grep "IP4.DNS"
  • enp4s0 : The interface connected to the intenet on your computer. This was an Ethernet port on my machine. You can identify this on your machine with ifconfig.
  • 192.168.1.164 : The IP address of your computer. Also can be found with ifconfig.
  • /dev/ttyS0 : The device file for the serial port that the Palm is connected to.
  • 134.209.175.246 : The IP of the login.oscar.nina.chat server as of today <2026-01-25 Sun>. You shouldn't need to change this unless the DNS record for that domain name is updated.

2 Networking configuration on Linux

2.1 DNS configuration

Insert the following at the bottom of /etc/dnsmasq.conf:

# Listen only on the interface used for PPP (adjust if needed)
interface=ppp0,lo
bind-interfaces

# Forward all other DNS queries to your router
server=192.168.1.1

address=/login.oscar.aol.com/134.209.175.246

That's all for now - we won't start dnsmasq until the connection with the Palm is established.

2.2 IP forwarding configuration

The below iptables commands achieve two things. Firstly, it sets up your computer as a bridge between the Palm device and the internet. Second, it remaps packets bound for port 9993 of nina.chat IP to port 5190.

sudo /usr/sbin/iptables -t nat -A POSTROUTING -o enp4s0 -j MASQUERADE
sudo /usr/sbin/iptables -A FORWARD -i ppp0 -j ACCEPT

sudo /usr/sbin/iptables -t nat -A PREROUTING \
  -i ppp0 \
  -p tcp \
  -d 134.209.175.246 \
  --dport 9993 \
  -j DNAT --to-destination 134.209.175.246:5190

sudo /usr/sbin/iptables -A FORWARD -p tcp -d 134.209.175.246 --dport 5190 -j ACCEPT
sudo /usr/sbin/iptables -A FORWARD -p tcp -s 134.209.175.246 --sport 5190 -j ACCEPT

2.3 Listen for connections on the serial port

The PPP daemon ppd will be used to estblish a network connection between the computer and the Palm device. Launch pppd as follows:

sudo /usr/sbin/pppd /dev/ttyS0 57600 192.168.1.164:192.168.1.201 local ms-dns 192.168.1.164 netmask 255.255.255.0 passive noauth proxyarp debug persist nodetach asyncmap 0 ktune

Note that after about 30 seconds, the pppd command will issue a timeout notice. This is not a problem, as the process will wake back up when we initiate the connection on the palm end. See also this explanation of the pppd command.

3 Networking on the Palm

On the Palm device, Open Preferences, select Connection and make New entry.

  • Name: "Custom"
  • Connection: Serial to PC

Details should be as follows:

  • Speed 57,600 bps.
  • Flow Ctl: Automatic

Next, in Preferences, select Network, and either edit a existing Service or make a new one by opening the menu bar and choosing New from the Service menu. Call it test

  • Username: (leave empty)
  • Password: (leave default (prompt))
  • Conection: Custom

Under Details:

  • Connection type: PPP
  • Idle timeout: Power Off
  • Query DNS Yes
  • Ip Addrss: Automatic

Under Script…, click on the drop down box on the first list entry, and select 'End'. The only command in the login script should be 'End'.

Press Ok to confirm the Script and the Network details. Back at the Network screen, press Connect to connect the Palm device. You should see a few dozen lines of output from pppd, and the Connect button shold now say Disconnect.

For screenshots of what this looks like, see "Configuring Palm" from these instructions.

4 Connecting to AIM

Your palm should now be connected to the internet. Start the DNS forwarding on your computer with

sudo systemctl restart dnsmasq

You can test out your connection by opening Eudora and visiting the Palm-friendly version of PalmDB at http://lite.palmdb.net.

Now you should be able to run AIM. There's nothing special to configure here, simply enter your Screen Name and press Sign On.

5 More screenshots

aimIMG-6587.jpg

aimIMG-6581.jpg

aimIMG-6582.jpg

aimIMG-6579.jpg

aimIMG-6583.jpg

Created: 2026-01-25 Sun 14:56

Validate