A Raspberry PI can be used as a cheap option to getting Amigas online. All you need is a Raspberry PI, a cheap serial port adapter for the PI and a TCP/IP stack for the amiga. I used a Raspberry PI 2 and MiamiDx in this guide. My PI is running Debian Jesse (latest version).
I used a cheap RS/232 Serial to TTL convertor connected to the Raspberry PI GPIO pins. The model I used is a Tenflyer MAX3232 RS232 Serial Port to TTL Converter. It only cost £1.88 but shipping took ages as it came from China. Here is the model on Amazon
Connecting the MAX232 to the PI
- The kit comes with 4 cables. Connect these to the 4 pins on the board.
- Connect VCC to pin 4 (5V) on the PI.
- Connect TX to pin 8 (GPIO14) on the PI.
- Connect RX to pin 10 (GPIO15) on the PI.
- Connect GND to pin 6 (GND) on the PI.
Note that there is no RTS or CTS pins so we need to use software handshaking (which is not ideal!).
Testing the connection
Connect the PI to the serial port of the Amiga. Open a terminal program on the Amiga (I used Term). Set the serial port parameters to 115200, 8N1, software handshaking (‘None’ in Term). You should see a serial console.
Configuring the PI
1. Disable shell and kernel messages on the serial port.
Select 9 – Advanced Options
Select A8 – Serial – Enable/Disable shell and kernel messages on the serial connection”
2. Add enable_uart to boot/config.txt.
sudo nano /boot/config.txt
Make sure this line is present, else ttyAMA0 will not be available
3. Install the PPP daemon
sudo apt-get install ppp
4. Enable ipv4 forwarding
sudo nano /etc/sysctl.conf
Uncomment this line:
5. Start the PPP daemon on boot
sudo crontab -e
At the bottom add this:
@reboot /usr/sbin/pppd /dev/ttyAMA0 115200 noauth local passive xonxoff persist ms-dns 192.168.1.1 192.168.2.130:192.168.1.131
Note: This assumes your dns server is at 192.168.1.1.
6. Add a port forward
sudo iptables --table nat --append POSTROUTING --jump MASQUERADE sudo apt-get install iptables-persistent
Answer Yes to the ‘Save current IPv4 rules?’ question.
7. Reboot the PI
MiamiInit does not seem to detect the correct settings for me (wrong baud rate / handshaking?).
Settings are pretty simple:
- Hardware: Create a Serial interface. Speed = 115200. Flow control = Xon/Xoff. Modem Settings = Null Modem
- Dialer. Create an empty definition
- Interfaces. Create a new PPP dial-out interface. Change IP type & Gateway to dynamic. Under PPP enable “Get DNS from IPCP”. Under TCP/IP Settings set “Get dynamic DNS servers” to “add”
Note: The Miami builtin serial device driver does not work. Use serial.device (or a replacement).
Click Online and Miami should quickly connect. I have included an example Miami config file here (this uses 8n1.device, you may need to change this).
Serial port tweaks
I recommend using a replacement serial.device.
- 8n1.device: Confirmed working
- BaudBandit.device: Does not seem to work
You may need to reduce the speed to 57600 on slower machines.
If you have an add-on serial port like a HyperCOM you can increase the baud rate. This requires increasing the UART clock on the PI. Edit boot.txt and change the uart line:
Now you can use 230400 in the ppd parameters:
sudo pppd /dev/ttyAMA0 230400 noauth local 192.168.1.1 xonxoff persist 192.168.2.130:192.168.1.131
- My HyperCOM zorro card has internal 8 pin connectors. It would be nice to use an adapter that does not use the external serial port. Possibly something like this
- Enabling RTS/CTS hardware handshaking would be nice as it should reduce the CPU usage and increase reliability. Not sure if it is possible with the Tenflyer MAX3232 I have.
- I own a Raspberry PI3, but I have not tested it yet. I read on the RPI boards that there may be problems with the PI3, this was posted as a workaround.
- FTP needs passive mode to work. I suspect iptables needs tweaking.