Ethercat digital IO test with Beckhoff modules


  • Hardware setup:
    – EK1100 ethercat coupler.
    – Four EL2008 modules for 32-bit digital output.
    – Four EL1018 modules for 32-bit digital input.
    – Two DC 24V SMPS
  • Software setup:
    (1) Debian Jessie and Xenomai dual kernel.
    (2) Ubuntu 14.04 and RT-preempt kernel.
    (3) Debian Wheezy and RTAI dual kernel.
  • Test result: cycle-time 190 us in DC mode.

Building and running “Ethernet Powerlink” demo on PCs

Building and running openPOWERLINK v2.1.1 demos on Linux PCs

1.  Ubuntu14.04:

  • demo_cn_console, demo_mn_console: run without any problem.
  • demo_mn_qt: crashes. —> bug fixed in openPOWERLINK v2.1.2

2. Ubuntu 14.10, Ubuntu 12.04, Debian Jessie :

  • demo_cn_console, demo_mn_console, demo_mn_qt: run without any problem.

3. Kernel 3.18.11-rt on Ubuntu 14.10:

  • locktorture.c should be patched to compile the kernel. 
  • RCU-related kernel options should be properly set to prevent softirqs messages while running the demo.

Details of the “Ethernet Powerlink” can be found at

Implementation of a PC-based motion controller/robot controller with USB interface [4]

USB Comminication speed between a host computer/board and the motion-control FPGA.

1. Experiment setup.  

  • 1530-byte round-trip test.
  • Asynchronous FIFO mode of the FT2232H.

2. Experiment results.

  • PC running a plain Linux: about 50 Mbits/sec.
  • Raspberry Pi 2 running a realtime Linux:  at least 30 Mbits/sec.

Implementation of a PC-based motion controller/robot controller with USB interface [3]

Motion-control FPGA:  

  • Reads the  status of external sensors and servo drives and sends it  to the PC. 
  • Receives commands from  the PC and writes them to external devices and servo drives.


Internal structure of the motion-control FPGA:


  1. command-pulse-generator module: generating command pulses for servo drives.
  2. quadrature-counter module: counting quadrature  pulses from servo drives.
  3. output-latch module: latching parallel output signals  to external devices and servo drives.
  4. input-latch module:  latching parallel  input signals from external sensors and servo drives.
  5. USB-interface module: reading/writing data from/to  USB bus. 
  6. Finite-state-machine module: controlling  the data flows among the above modules.

Company X does robot control or motion control. Do 3D printers need such a technology ?

Ink jets and laser printers need 2D motion control. Who sells ink jet or laser printers ? robot companies, motor control companies,  or motion control companies ?

Do you really believe control is the most important thing of robot controllers ?  I am familiar with classical and“fancy” control theories and I have a long list of control projects in which I have been involved.  If you have an universal controllers that work well on every control application, please let me know. I often day-dream of such a controller. 

You can religiously believe  motion control is the flesh and blood of the 3D printers, if you want.  I read a very entertaining  post,  saying a medical robot company has a core technology needed for 3D printers. Of course, that person is a stock holder of the medical company.