An Amiga 500 has no special ethernet or other network ports for connecting to the Internet. Typically a SLIP (serial line internet protocol) device is used to transfer all IP packets via the serial RS 232 interface to another computer with fast ethernet connection. With the on-board serial port a maximum speed of 9600 Baud (~ 1 KiB/s) could be achieved running Amiga OS.
Faster speeds could be achieved by using a PLIP (parallel port IP) device that uses the parallel port to transfer IP packets to another host. Since the Amiga parallel port is fully bi-directional you can use a half-duplex protocol and then transfer an IP packet byte-by-byte over the port. This is done in the magPLIP driver available on Aminet. Unfortunately, this approach requires an Amiga or another Computer with a fully bi-directional port on the peer side. With this parallel approach you can achieve up to 15-20 KiB/s transfer speeds.
The idea in this project is to use the custom I/O ports of an AVR microcontroller board (here an Arduino 2009) and implement the parallel port there. The mcu implements the magPLIP protocol and can then receive and send packets to/from the Amiga.
On the other hand the Arduino uses an FTDI 232 USB-to-Serial bridge to allow fast serial data transfers. On a 16 MHz AVR you can use serial rates up to 500 KiBit/s (~ 55 KiB/s). With proper RTS/CTS flow control the AVR can handle these data rates easily.
The plip2slip firmware developed in this project now bridges these two ports. A PC is connected with a fast serial link to the AVR and the Amiga is connected with its parallel port. As a result the amiga can achieve full PLIP speed while the PC runs a fast SLIP link.
On the PC I use Linux with a patched slipattach tool to support the fast serial rates. The Amiga magPLIP device is slightly patched to better support the AVR. All patches are available in this project.
The data flow is as follows:
. Internet <-> PC <--SLIP--> Arduino <--PLIP--> Amiga 500
. Linux plip2slip magPLIP + AmiTCP
- Version 0.1 – 28.08.2011 – plip2slip-0.1.zip
- Size: 110719
- MD5: 658714700562aa83b1bbd39599d04e38
- First public release
- Full working PLIP to SLIP bridge with transfer rates up to 25 KiB/s
- Added Transfer mode, Ping only SLIP, PLIP, Rx only SLIP, PLIP
Quick Start Guide
- Get an Arduino 2009 board (not an Uno!!) (see Arduino Homepage)
- Build the Amiga connector and add some LEDs: see plip2slip Hardware page
- Flash the firmware (found in the Release archive see above):
- Depending on the AVR chip on your board pick the right one for your AVR from the firmware directory
- Use avrdude to flash it:
avrdude -p m168 -P <your_serial_port> -b 19200 -c arduino -U flash:w:BUILD/plip2slip-0.1-500000-arduino-atmega168.hex avrdude -p m328p -P <your_serial_port> -b 57600 -c arduino -U flash:w:BUILD/plip2slip-0.1-500000-arduino-atmega328.hex
- Your serial port depends on your Operating System:
- Mac OS X uses /dev/cu.usbserial-*
- Linux uses /dev/ttyUSB*
- Windows uses COM*
- Note: disconnect your Amiga before flashing!
- Setup your TCP Stack on the Amiga & PC: see plip2slip Setup page
- Connect your Amiga and PC to the Arduino and power on both machines.
- You should be able to communicate with your Amiga to the PC and the Internet…! Yay! Ping is your friend!
- Check out plip2slip’s advanced features:
- Have fun!
- The current development is done in the following Git repository.
- Hosted on GitHub: https://github.com/cnvogelg/plip2slip