Version 28 (modified by bz, 4 years ago) (diff)

--

Building a Control PC for Barrett products

Realtime control

If your application requires guaranteed bounded minimum latency and minimum control jitter due to safety standards in some medical and/or commercial applications, then you will need to use a realtime kernel. We support Linux patched with the Xenomai 2.x, as shown below. If you require a newer version of Linux and/or Xenomai, AND you would consider funding the development and testing required, then please contact us!

Building a PC capable of realtime control is difficult. Success depends largely on how the motherboard manufacturer routed the four IRQ lines (A, B, C, D) as well as the degree of Linux device driver support for the specific chips on your motherboard. At least one PCI slot must be addressable by an IRQ that does not conflict with any other important on-board peripherals for the realtime CAN communication to function. Motherboard manufacturers do not publish this type of information. Historically, we have purchased 3-4 motherboards from various manufacturers in order to find one model that can support realtime CAN communication.

Also, while realtime kernel patches (Adeos/Xenomai) are becoming easier to install, there is still a high likelihood of needing to debug arcane Linux kernel hardware incompatibilities in order to make the system stable for realtime control. This requires either a lot of skill in Linux kernel development, a lot of tenacity and time to poke around trying to fix problems, or a lot of luck.

Barrett sells a pre-configured WAM PC. We have built 10 generations of WAM PCs over the past 8 years. It takes us an average of 100 hours to get a new set of hardware/software operational (we have rarely been lucky). While we kindly provide the fruits of our labor to you at no cost (see below), this does not guarantee that the process will be easy if you decide to build your own computer.

Realtime: General Configuration

You should choose an operating system based on the type of PC hardware you have. The Shuttle PC and the Travla C137 PC shipped with either a Janz or esd CAN card. Newer WAMs with embedded PCs ship with a Peak CAN card. If you are ambitious, you can use your own PC and CAN card.

  • Install Kernel 2.6.31.4 + Xenomai 2.5.2 (Ubuntu 9.10, Peak PCI CAN card, Xenomai SocketCAN driver) - Ubuntu 9.10 Karmic Koala CF- Includes from-scratch and simple instructions, primarily for CompactFlash installation
  • Install Kernel 2.6.31.4 + Xenomai 2.5.5.2 (Ubuntu 9.10, Peak PCI CAN card, Xenomai SocketCAN driver) - Ubuntu 9.10 Karmic Koala PC- Simple instructions, primarily for PC hard drive installation
  • Install Kernel 2.6.32 + Xenomai 2.5.5.2 (Ubuntu 10.04, Peak PCI CAN card, Xenomai SocketCAN driver) - Ubuntu 10.04 32-bit Lucid Lynx PC - Simple instructions for 32-bit PC hard drive installation
  • Install Kernel 2.6.32 + Xenomai 2.5.5.2 (Ubuntu 10.04, Peak PCI CAN card, Xenomai SocketCAN driver) - Ubuntu 10.04 64-bit Lucid Lynx PC - Simple instructions for 64-bit PC hard drive installation
  • Install Kernel 3.2.21 + Xenomai 2.6.1 (Ubuntu 12.04, Peak PCI CAN card, Xenomai SocketCAN driver) - Ubuntu 12.04 32-bit Precise Pangolin PC - Simple instructions for 32-bit PC hard drive installation - Supported only on Barrett Technology supplied external PCs
  • Install Kernel 3.2.21 + Xenomai 2.6.1 (Ubuntu 12.04.0, Peak PCI CAN card, Xenomai SocketCAN driver) - Ubuntu 12.04.0 64-bit Precise Pangolin PC - Simple instructions for 64-bit PC hard drive installation - Supported only on Barrett Technology supplied external PCs
  • Install Kernel 3.10.32 + Xenomai 2.6.4 (Ubuntu 12.04.5, Peak PCI CAN card, Xenomai SocketCAN driver) - Ubuntu 12.04.5 64-bit Precise Pangolin PC - Not recommended - This was shipped with several early Proficio PC's in 2016 to help with hardware support. We recommend using either 12.04.0 or 14.04.1 instead.
  • Install Kernel 3.14.17 + Xenomai 2.6.4 (Ubuntu 14.04.1, Peak PCI CAN card, Xenomai SocketCAN driver) - Ubuntu 14.04.1 64-bit PC

Non-Realtime

If guaranteed bounded minimum latency and minimum control jitter is not critical to your application - if you can accept occasional motion stuttering and reduced safety - then you can compile our libbarrett control library to run in non-realtime mode on any Linux PC (including laptops).