<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to Howto</title><link>https://sourceforge.net/p/ecslave/wiki/Howto/</link><description>Recent changes to Howto</description><atom:link href="https://sourceforge.net/p/ecslave/wiki/Howto/feed" rel="self"/><language>en</language><lastBuildDate>Sun, 02 Nov 2014 10:36:59 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/ecslave/wiki/Howto/feed" rel="self" type="application/rss+xml"/><item><title>Howto modified by raz ben jehuda</title><link>https://sourceforge.net/p/ecslave/wiki/Howto/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v15
+++ v16
@@ -28,13 +28,11 @@

 EXECUTION
 -------------
-$ sudo ./ec_slave ethX ethY
+$ sudo ./ec_slave ethX &amp;lt;NR SLAVES=""&amp;gt;

 ethX is the network interface receiving data from master
-ethY is is the network interface sending data to next slave if any.
+NR SLAVES is the number of slaves you wish to simulate

-if this is the last slave please launch with a single interface . Example:
-$ sudo ./ec_slave ethX

             ECSLAVE AS KERNEL MODULE
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">raz ben jehuda</dc:creator><pubDate>Sun, 02 Nov 2014 10:36:59 -0000</pubDate><guid>https://sourceforge.netae47f0ba754b496957d81e2e15c00b01bbe06511</guid></item><item><title>WikiPage Howto modified by raz ben jehuda</title><link>https://sourceforge.net/p/ecslave/wiki/Howto/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v14
+++ v15
@@ -121,3 +121,4 @@
         1. Send signals to a scope.
         2. Programmable hardware timer.
         3. Replace kernel with preempt rt kernel.
+3. fix etherlan and eslave to work over udp.
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">raz ben jehuda</dc:creator><pubDate>Fri, 28 Dec 2012 16:58:08 -0000</pubDate><guid>https://sourceforge.netfd0e447dd33b0d9fd036abaf49b43468f3af2e20</guid></item><item><title>WikiPage Howto modified by raz ben jehuda</title><link>https://sourceforge.net/p/ecslave/wiki/Howto/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v13
+++ v14
@@ -75,7 +75,7 @@
 The master is etherlab 1.5.1 on a intel core i5.

-#test 1:
+##test 1

 slave 0: Laptop . intel dual core i3. Input interface is realtek interface.
                           Output interface is usbnet adapter.
@@ -86,7 +86,7 @@

 Propagation delay: 250us  

-# test 2:
+## test 2

 Slave 0 : vortex + two network interfaces. 
        Input interface  realtek 8139  
@@ -94,30 +94,22 @@

 slave 1: Raspberry pi. Interface is usb based. drive is smsc95xx.ko

+Propagation delay:208us

-Port  Type  Link  Loop    Signal  NextSlave  RxTime [ns]  Diff [ns]   NextDc [ns]
-   0  N/A   up    open    yes             -   4194290176           0           0
-   1  MII   up    open    yes             1   4194706587      416411      208205
-   2  N/A   down  closed  no              -            -           -           -
-   3  N/A   down  closed  no              -            -           -           -

-# test 3
+## test 3

 Slave 0 : vortex + two network interfaces. 
    Input interface : realtek 8139  
    Output interface : RDC r6040 

 slave 1: laptop.   intel dual core Pentium. input interface is realtek. 8139
-                                 
-Port  Type  Link  Loop    Signal  NextSlave  RxTime [ns]  Diff [ns]   NextDc [ns]
-   0  N/A   up    open    yes             -   2666218496           0           0
-   1  MII   up    open    yes             1   2666325935      107439       53719
-   2  N/A   down  closed  no              -            -           -           -
-   3  N/A   down  closed  no              -            -           -           -
+
+Propagation delay: 53us                                  

-Conclusions
+    Conclusions

 1. USB to NET is worst for performance.  comparing test 1 to test 3 proves that using ethernet over usb network devices is extremely slow.

&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">raz ben jehuda</dc:creator><pubDate>Fri, 28 Dec 2012 13:54:11 -0000</pubDate><guid>https://sourceforge.net1d4e7481782173cb1d5e90e1bfd21bcad99bdd89</guid></item><item><title>WikiPage Howto modified by raz ben jehuda</title><link>https://sourceforge.net/p/ecslave/wiki/Howto/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v12
+++ v13
@@ -52,7 +52,7 @@

 EXECUTION
 -------------
-$ insmod rxmac=XX:XX:XX:XX:XX:XX txmac=XX:XX:XX:XX:XX:XX
+$ insmod ecslave.ko rxmac=XX:XX:XX:XX:XX:XX txmac=XX:XX:XX:XX:XX:XX
 if it is last slave in the chain, use only the rxmac module parameter.

@@ -68,17 +68,64 @@
 3. make all
 4. Execute examples/virtual_drive/.libs/libix_example in the the master's machine.

+Propagation Delay Benchmarks
+-----------------------------
+
+My setup is as constructed from 3 machines, master + 2 slaves.
+The master is etherlab 1.5.1 on a intel core i5.
+
+
+#test 1:
+
+slave 0: Laptop . intel dual core i3. Input interface is realtek interface.
+                          Output interface is usbnet adapter.
+
+
+slave 1: laptop.  intel dual core Pentium. input interface is realtek. 8139
+                                 
+   
+Propagation delay: 250us  
+
+# test 2:
+
+Slave 0 : vortex + two network interfaces. 
+       Input interface  realtek 8139  
+       Output interface is RDC r6040 
+ 
+slave 1: Raspberry pi. Interface is usb based. drive is smsc95xx.ko
+
+
+Port  Type  Link  Loop    Signal  NextSlave  RxTime [ns]  Diff [ns]   NextDc [ns]
+   0  N/A   up    open    yes             -   4194290176           0           0
+   1  MII   up    open    yes             1   4194706587      416411      208205
+   2  N/A   down  closed  no              -            -           -           -
+   3  N/A   down  closed  no              -            -           -           -
+
+# test 3
+
+Slave 0 : vortex + two network interfaces. 
+   Input interface : realtek 8139  
+   Output interface : RDC r6040 
+
+slave 1: laptop.   intel dual core Pentium. input interface is realtek. 8139
+                                 
+Port  Type  Link  Loop    Signal  NextSlave  RxTime [ns]  Diff [ns]   NextDc [ns]
+   0  N/A   up    open    yes             -   2666218496           0           0
+   1  MII   up    open    yes             1   2666325935      107439       53719
+   2  N/A   down  closed  no              -            -           -           -
+   3  N/A   down  closed  no              -            -           -           -

+Conclusions
+
+1. USB to NET is worst for performance.  comparing test 1 to test 3 proves that using ethernet over usb network devices is extremely slow.
+
                         TODO
+
 1. Improve timer accuracy. 
 2. Find cheap hardware that can be used linux slave.
    The hardware is required to:
         1. Send signals to a scope.
         2. Programmable hardware timer.
         3. Replace kernel with preempt rt kernel.
-    
-
-
- 
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">raz ben jehuda</dc:creator><pubDate>Fri, 28 Dec 2012 13:52:34 -0000</pubDate><guid>https://sourceforge.neta7d3e6053da68eae0f8be80b1c390f653ca5c585</guid></item><item><title>WikiPage Howto modified by raz ben jehuda</title><link>https://sourceforge.net/p/ecslave/wiki/Howto/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v11
+++ v12
@@ -2,6 +2,9 @@

 This implementation was tested with two slaves in OP state using etherlab master.
 Ecslave comes in two flavors, user space and kernel space module.
+
+
+

                     ECSLAVE AS USER SPACE 
@@ -25,13 +28,13 @@

 EXECUTION
 -------------
-sudo ./ec_slave ethX ethY
+$ sudo ./ec_slave ethX ethY

 ethX is the network interface receiving data from master
 ethY is is the network interface sending data to next slave if any.

 if this is the last slave please launch with a single interface . Example:
-sudo ./ec_slave ethX
+$ sudo ./ec_slave ethX

             ECSLAVE AS KERNEL MODULE
@@ -43,13 +46,13 @@

 BUILD
 ------------
-cd kernel
-make
+$ cd ecslave/kernel
+$ make

 EXECUTION
 -------------
-insmod rxmac=XX:XX:XX:XX:XX:XX txmac=XX:XX:XX:XX:XX:XX
+$ insmod rxmac=XX:XX:XX:XX:XX:XX txmac=XX:XX:XX:XX:XX:XX
 if it is last slave in the chain, use only the rxmac module parameter.

@@ -66,7 +69,16 @@
 4. Execute examples/virtual_drive/.libs/libix_example in the the master's machine.

-TODO
---------
+
+
+                        TODO
+1. Improve timer accuracy. 
+2. Find cheap hardware that can be used linux slave.
+   The hardware is required to:
+        1. Send signals to a scope.
+        2. Programmable hardware timer.
+        3. Replace kernel with preempt rt kernel.
+    
+

&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">raz ben jehuda</dc:creator><pubDate>Sat, 15 Dec 2012 15:13:08 -0000</pubDate><guid>https://sourceforge.net84bfb6514c2f6e9bcbf25562824558cf27a2ba29</guid></item><item><title>WikiPage Howto modified by raz ben jehuda</title><link>https://sourceforge.net/p/ecslave/wiki/Howto/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v10
+++ v11
@@ -49,7 +49,7 @@

 EXECUTION
 -------------
-insmod rxmac= txmac=
+insmod rxmac=XX:XX:XX:XX:XX:XX txmac=XX:XX:XX:XX:XX:XX
 if it is last slave in the chain, use only the rxmac module parameter.

&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">raz ben jehuda</dc:creator><pubDate>Sat, 15 Dec 2012 15:04:53 -0000</pubDate><guid>https://sourceforge.net7a7cd200d532beb18e041187d3c3fb3f1bdfca99</guid></item><item><title>WikiPage Howto modified by raz ben jehuda</title><link>https://sourceforge.net/p/ecslave/wiki/Howto/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v9
+++ v10
@@ -1,6 +1,10 @@
-This is a partial implementation of an ethercat slave for linux. It is used to test etherlab master and gain experience.
+This is a light implementation of an ethercat slave for linux. It is used to test etherlab master and gain experience.

-This implementation supports was tested with two slaves in OP state using etherlab master.
+This implementation was tested with two slaves in OP state using etherlab master.
+Ecslave comes in two flavors, user space and kernel space module.
+ 
+
+                    ECSLAVE AS USER SPACE 

 PREREQUISITES 
 --------------
@@ -9,7 +13,6 @@
 2. libcap
 3. libpthread.

-

 BUILD
 ------------
@@ -30,6 +33,26 @@
 if this is the last slave please launch with a single interface . Example:
 sudo ./ec_slave ethX

+        
+            ECSLAVE AS KERNEL MODULE
+
+PREREQUISITES 
+--------------
+Linux kernel headers for the target kernel.
+
+
+BUILD
+------------
+cd kernel
+make
+
+
+EXECUTION
+-------------
+insmod rxmac= txmac=
+if it is last slave in the chain, use only the rxmac module parameter.
+
+

 MASTER'S SIDE
 -----------------
@@ -45,5 +68,5 @@

 TODO
 --------
-DC SUPPORT
-EDS 
+
+ 
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">raz ben jehuda</dc:creator><pubDate>Sat, 15 Dec 2012 15:04:08 -0000</pubDate><guid>https://sourceforge.net8135c8005f92042c559277fdd7a68cac13100ae3</guid></item><item><title>WikiPage Howto modified by raz ben jehuda</title><link>https://sourceforge.net/p/ecslave/wiki/Howto/</link><description>&lt;pre&gt;--- v8
+++ v9
@@ -41,3 +41,9 @@
 2. Fix configure.ac in etherlab folder and fix the Makefile.am in etherlab-1.5.1/examples direcory.
 3. make all
 4. Execute examples/virtual_drive/.libs/libix_example in the the master's machine.
+
+
+TODO
+--------
+DC SUPPORT
+EDS 
&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">raz ben jehuda</dc:creator><pubDate>Wed, 21 Nov 2012 19:57:36 -0000</pubDate><guid>https://sourceforge.net0b3d926c04dc2b9e1d507cd99cabc056877258b5</guid></item><item><title>WikiPage Howto modified by raz ben jehuda</title><link>https://sourceforge.net/p/ecslave/wiki/Howto/</link><description>&lt;pre&gt;--- v7
+++ v8
@@ -1,8 +1,8 @@
-This is a partial implementation of an ethercat slave for linux. It is used to test etherlab master and gain experience with it.
+This is a partial implementation of an ethercat slave for linux. It is used to test etherlab master and gain experience.
 
 This implementation supports was tested with two slaves in OP state using etherlab master.
 
-PREREQUISITE
+PREREQUISITES 
 --------------
 Linux , 32/64 bit. 
 1. automake
@@ -14,12 +14,11 @@
 BUILD
 ------------
 
-compilation:
+$ autoreconf
+$ automake --add-missing
+$ sh configure
+$ make
 
-autoreconf
-automake --add-missing
-sh configure
-make
 
 EXECUTION
 -------------
@@ -32,7 +31,6 @@
 sudo ./ec_slave ethX
 
 
-
 MASTER'S SIDE
 -----------------
 Example : OP MODE:
@@ -43,6 +41,3 @@
 2. Fix configure.ac in etherlab folder and fix the Makefile.am in etherlab-1.5.1/examples direcory.
 3. make all
 4. Execute examples/virtual_drive/.libs/libix_example in the the master's machine.
-
-
-with ethX is the recieving interface.
&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">raz ben jehuda</dc:creator><pubDate>Wed, 21 Nov 2012 19:56:02 -0000</pubDate><guid>https://sourceforge.netd23ce84544cba76ee025226ad68b82bb0f5c55f1</guid></item><item><title>WikiPage Howto modified by raz ben jehuda</title><link>https://sourceforge.net/p/ecslave/wiki/Howto/</link><description>&lt;pre&gt;--- v6
+++ v7
@@ -1,11 +1,18 @@
-This is a demo implementation of an ethercat slave for linux. It is used to test etherlab master and gain experience with it.
+This is a partial implementation of an ethercat slave for linux. It is used to test etherlab master and gain experience with it.
 
-Currently I support a single slave and not all commands. Yet it manages to get to op mode with etherlab ( www.etherlab.org ).
+This implementation supports was tested with two slaves in OP state using etherlab master.
 
-OP MODE:
-This slave reaches OP mode. but to do so one needs to compile it in the etherlab suite. please copy the directory virtual_drive into the examples directory and fix configure.ac in etherlab folder and fix the Makefile.am in examples direcory.
-make all
-and copy examples/virtual_drive/.libs/libix_example into the master machine.
+PREREQUISITE
+--------------
+Linux , 32/64 bit. 
+1. automake
+2. libcap
+3. libpthread.
+ 
+
+
+BUILD
+------------
 
 compilation:
 
@@ -14,7 +21,28 @@
 sh configure
 make
 
-Running:
+EXECUTION
+-------------
+sudo ./ec_slave ethX ethY
+
+ethX is the network interface receiving data from master
+ethY is is the network interface sending data to next slave if any.
+
+if this is the last slave please launch with a single interface . Example:
 sudo ./ec_slave ethX
 
+
+
+MASTER'S SIDE
+-----------------
+Example : OP MODE:
+
+This slave reaches OP mode. but to do so one needs to compile it in the etherlab suite. 
+so:
+1. Copy the directory virtual_drive into the examples directory in etherlab.
+2. Fix configure.ac in etherlab folder and fix the Makefile.am in etherlab-1.5.1/examples direcory.
+3. make all
+4. Execute examples/virtual_drive/.libs/libix_example in the the master's machine.
+
+
 with ethX is the recieving interface.
&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">raz ben jehuda</dc:creator><pubDate>Wed, 21 Nov 2012 19:50:05 -0000</pubDate><guid>https://sourceforge.net0d9c8daa7c943771107b20f49d957d8c64249d83</guid></item></channel></rss>