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.

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


PC-based motion controller with USB interface:



Examples of FPGA board with USB interface:

  • FlashLink module (Xilinx Spartan-3).
  • Saturn module (Xilinx Spartan-6).
  • Morph-IC-II FPGA Development Module (Altera Cyclone II).


FTDI FT2232H  for USB interace:

1. Interface A port of the FT2232H: asynchronous FIFO mode.
2. Interface B port of the FT2232H: UART mode.

Connecting FT2232H to FPGA module:

1. XFC-XC3S50AN FPGA module and FTDI FT2232H mini module:

VCCAUX of the FPGA = 3.3V



2. Open3S3500E board and the FTDI FT2232H mini module:

VCCAUX of the FPGA = 2.5V


I, too, do industrial robots.

“industrial-robot experts” are those who  have some experience of   “touching” industrial robots ?



“touching” industrial robots is  the beginning of developing industrial robots, not the end. 

Some people  tear off industrial robots until they can find their familiar pieces such as  kinematics, dynamics, control, power electronics, operating system, programming language, and so on. And then, they claim “I  do industrial robots, too.”

R & D of industrial robots may start with  identifying the vital pieces of industrial robots. Simply taking good stuffs from other areas and combining them, results in a Chimera (in Greek myth, the Chimera is a fire-breathing creature that has the body of a goat, the head of a lion and the tail of a serpent ).   

Aristoteles said, “The whole is greater than the sum of its parts.” What turns the sum of individual parts or pieces into the whole ? 

Fortunately,  we do not need to  re-invent industrial robots. Industrial robots has been aound for more than 40 years.  “Industrial-robot experts” already know what are good or bad for industrial robots. 

Design of a motion-control ASIC/FPGA

Assuming all the compulations are done by a PC or an external processor,  I designed a motion-control FPGA  as follows: 



If a soft processor such as MIcroBlaze or  Nios II  is placed on the FPGA,   construction of a standalone motion controller (without a PC or an external processor)  is possible.

Because both MicroBlaze and NIOS II are Linux/Xenomai-ready, porting Linux/Xenomai software to MicroBlazer or NIOS II is trivial.