{"id":303,"date":"2011-08-07T20:06:52","date_gmt":"2011-08-07T18:06:52","guid":{"rendered":"http:\/\/lallafa.de\/blog\/?page_id=303"},"modified":"2012-07-01T18:54:58","modified_gmt":"2012-07-01T16:54:58","slug":"plip2slip","status":"publish","type":"page","link":"https:\/\/lallafa.de\/blog\/amiga-projects\/plip2slip\/","title":{"rendered":"plip2slip"},"content":{"rendered":"<h3><a href=\"https:\/\/i0.wp.com\/lallafa.de\/blog\/wp-content\/uploads\/2011\/08\/plip2slip03a.jpg\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"312\" data-permalink=\"https:\/\/lallafa.de\/blog\/amiga-projects\/plip2slip\/plip2slip03a\/\" data-orig-file=\"https:\/\/i0.wp.com\/lallafa.de\/blog\/wp-content\/uploads\/2011\/08\/plip2slip03a.jpg?fit=640%2C359&amp;ssl=1\" data-orig-size=\"640,359\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"plip2slip03a\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/lallafa.de\/blog\/wp-content\/uploads\/2011\/08\/plip2slip03a.jpg?fit=300%2C168&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/lallafa.de\/blog\/wp-content\/uploads\/2011\/08\/plip2slip03a.jpg?fit=584%2C328&amp;ssl=1\" class=\"aligncenter size-full wp-image-312\" title=\"plip2slip03a\" src=\"https:\/\/i0.wp.com\/lallafa.de\/blog\/wp-content\/uploads\/2011\/08\/plip2slip03a.jpg?resize=584%2C328\" alt=\"\" width=\"584\" height=\"328\" srcset=\"https:\/\/i0.wp.com\/lallafa.de\/blog\/wp-content\/uploads\/2011\/08\/plip2slip03a.jpg?w=640&amp;ssl=1 640w, https:\/\/i0.wp.com\/lallafa.de\/blog\/wp-content\/uploads\/2011\/08\/plip2slip03a.jpg?resize=300%2C168&amp;ssl=1 300w, https:\/\/i0.wp.com\/lallafa.de\/blog\/wp-content\/uploads\/2011\/08\/plip2slip03a.jpg?resize=150%2C84&amp;ssl=1 150w, https:\/\/i0.wp.com\/lallafa.de\/blog\/wp-content\/uploads\/2011\/08\/plip2slip03a.jpg?resize=400%2C224&amp;ssl=1 400w\" sizes=\"auto, (max-width: 584px) 100vw, 584px\" \/><\/a><\/h3>\n<h3>Introduction<\/h3>\n<p>An <strong>Amiga 500<\/strong> has no special ethernet or other network ports for connecting to the Internet. Typically a <strong>SLIP<\/strong> (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.<\/p>\n<p>Faster speeds could be achieved by using a <strong>PLIP<\/strong> (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<a href=\"http:\/\/aminet.net\/package\/comm\/net\/magPLIP38.1\"> magPLIP driver available on Aminet.<\/a> 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.<\/p>\n<p>The idea in this project is to use the custom I\/O ports of an <strong>AVR microcontroller<\/strong> board (here an <strong>Arduino 2009<\/strong>) and implement the parallel port there. The mcu implements the magPLIP protocol and can then receive and send packets to\/from the Amiga.<\/p>\n<p>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.<\/p>\n<p>The <strong>plip2slip firmware<\/strong> 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.<\/p>\n<p>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.<\/p>\n<p>The data flow is as follows:<br \/>\n<code>. Internet &lt;-&gt;\u00c2\u00a0\u00c2\u00a0 PC\u00c2\u00a0\u00c2\u00a0 &lt;--SLIP--&gt;\u00c2\u00a0 Arduino\u00c2\u00a0 &lt;--PLIP--&gt;\u00c2\u00a0 Amiga 500<br \/>\n.\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 Linux\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 plip2slip\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 magPLIP + AmiTCP<\/code><\/p>\n<h3>Releases<\/h3>\n<ul>\n<li><strong>Version 0.1 &#8211; 28.08.2011 &#8211; <a href=\"https:\/\/www.lallafa.de\/files\/plip2slip\/plip2slip-0.1.zip\">plip2slip-0.1.zip<\/a><\/strong>\n<ul>\n<li>Size: 110719<\/li>\n<li>MD5: 658714700562aa83b1bbd39599d04e38<\/li>\n<li>First public release<\/li>\n<li>Full working PLIP to SLIP bridge with transfer rates up to 25 KiB\/s<\/li>\n<\/ul>\n<ul>\n<li>Added Transfer mode, Ping only SLIP, PLIP, Rx only SLIP, PLIP<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>Quick Start Guide<\/h3>\n<ol>\n<li>Get an Arduino 2009 board (not an Uno!!) (see <a href=\"http:\/\/www.arduino.cc\">Arduino Homepage<\/a>)<\/li>\n<li>Build the Amiga connector and add some LEDs:<a title=\"plip2slip Hardware\" href=\"..\/plip2slip\/plip2slip-hardware\/\"> see plip2slip Hardware page<\/a><\/li>\n<li>Flash the firmware (found in the Release archive see above):\n<ul>\n<li>Depending on the AVR chip on your board pick the right one for your AVR from the <strong>firmware <\/strong>directory<\/li>\n<li>Use <a href=\"http:\/\/savannah.nongnu.org\/projects\/avrdude\/\">avrdude<\/a> to flash it:<\/li>\n<pre>avrdude -p m168 -P &lt;your_serial_port&gt; -b 19200 -c arduino -U flash:w:BUILD\/plip2slip-0.1-500000-arduino-atmega168.hex\r\navrdude -p m328p -P &lt;your_serial_port&gt; -b 57600 -c arduino -U flash:w:BUILD\/plip2slip-0.1-500000-arduino-atmega328.hex<\/pre>\n<li>Your serial port depends on your Operating System:\n<ul>\n<li>Mac OS X uses \/dev\/cu.usbserial-*<\/li>\n<li>Linux uses \/dev\/ttyUSB*<\/li>\n<li>Windows uses COM*<\/li>\n<\/ul>\n<\/li>\n<li>Note: disconnect your Amiga before flashing!<\/li>\n<\/ul>\n<\/li>\n<li>Setup your TCP Stack on the Amiga &amp; PC: <a title=\"plip2slip Setup\" href=\"http:\/\/lallafa.de\/blog\/plip2slip\/plip2slip-setup\/\">see plip2slip Setup page<\/a><\/li>\n<li>Connect your Amiga and PC to the Arduino and power on both machines.<\/li>\n<li>You should be able to communicate with your Amiga to the PC and the Internet&#8230;! Yay! Ping is your friend!<\/li>\n<li>Check out plip2slip&#8217;s advanced features:<\/li>\n<li>Have fun!<\/li>\n<\/ol>\n<h3>Source Code<\/h3>\n<ul>\n<li>The current development is done in the following Git repository.<\/li>\n<li>Hosted on GitHub: <a href=\"https:\/\/github.com\/cnvogelg\/plip2slip\">https:\/\/github.com\/cnvogelg\/plip2slip<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Introduction 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 &hellip; <a href=\"https:\/\/lallafa.de\/blog\/amiga-projects\/plip2slip\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"parent":488,"menu_order":0,"comment_status":"open","ping_status":"open","template":"","meta":{"ngg_post_thumbnail":0,"jetpack_post_was_ever_published":false,"footnotes":""},"class_list":["post-303","page","type-page","status-publish","hentry"],"jetpack_shortlink":"https:\/\/wp.me\/PiBMF-4T","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/lallafa.de\/blog\/wp-json\/wp\/v2\/pages\/303","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lallafa.de\/blog\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/lallafa.de\/blog\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/lallafa.de\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/lallafa.de\/blog\/wp-json\/wp\/v2\/comments?post=303"}],"version-history":[{"count":14,"href":"https:\/\/lallafa.de\/blog\/wp-json\/wp\/v2\/pages\/303\/revisions"}],"predecessor-version":[{"id":313,"href":"https:\/\/lallafa.de\/blog\/wp-json\/wp\/v2\/pages\/303\/revisions\/313"}],"up":[{"embeddable":true,"href":"https:\/\/lallafa.de\/blog\/wp-json\/wp\/v2\/pages\/488"}],"wp:attachment":[{"href":"https:\/\/lallafa.de\/blog\/wp-json\/wp\/v2\/media?parent=303"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}