Intel Atom C255Xs

The Atom C255X is becoming a popular processor in not-so-demanding low power boxes.

Here's a pfsense SG-4860 router/firewall using a C2558 (15W) processor and 8 Gb of RAM. It comes with 4 Gb of on-board flash storage, so the external mSATA drive (lower edge, just above the Ethernet connectors) is not required unless you need to store very big pfsense logfiles. No moving parts, passive cooling only. Although pfsense-branded (running FreeBSD + pfsense), under the hood it's probably an ADI Engineering RCC-VE.

Here's a SuperMicro 5018A-MLTN4 with a C2550 (14W) processor in a 1U 19" rack enclosure. SSD drive and 8 Gb of RAM. I suspect the front fan is quite overkill and could be slowed down a lot or completely removed. The built-in graphics produce not-so-great performance under Ubuntu, but with lubuntu-desktop it's usable as a lab server that you need to configure or check only once a week or so.

Raspberry Pi

Out of curiosity and with a couple of different projects in mind I have been playing with a Raspberry Pi (a cheap, small, but slow linux computer) lately. Some observations:

  • It's small, but it does require quite a few bulky connectors that connect to three different sides of the board. If you wanted to enclose the board and cables in a case the connectors add a significant amount to the footprint.
  • Who came up with the idea of offsetting the two USB-connectors so they extend out of the board? This makes all the cases for the Pi have a funny shape to get the Ethernet and USB connectors flush with the side of the case.
  • It seems to run the raspbian distribution OK. But for a standard debian-desktop it's very slow. There are optimized lightweight X-environments that are supposedly faster and more responsive.
  • Since it's an ARM processor, not every package I am used to using on Ubuntu/Debian is available from the repositories.
  • The modern way to interact with a gadget nowadays is a touchscreen. But there doesn't seem to be any good consensus on what touchscreen to use with the Pi. Could we have something budget-priced with good existing drivers for both screen and touch please. Perhaps use the DSI-connector so the gadget screen won't tie up other resources (USB, HDMI, SPI, or GPIO).

Overall this means my ideas for various real-time instruments & gadgets may be better served by an Atom ITX-sized motherboard. The atom is a standard x86 architecture that runs everything a desktop or laptop will run. It's fast enough to run modern desktop environments. And it has a PCI or PCIE slot for e.g. a Mesa FPGA card. Given the cost of enclosures, (touch)screens, FPGAs, and the analog electronics I have in mind, it really will not matter much if the cost of the motherboard+cpu combo is 40 euros (Pi) or 140 euros (Atom). Someone suggested I'd have a look at BeagleBoard or BeagleBone, but right now I'm leaning towards the Atom.

EMC2 upgrade

I've upgraded Ubuntu and EMC2 on the Atom 330 machine I have for controlling the lathe. The Atom 330 is a dual-core chip, but with Hyper Threading the OS can see four cores. That's not good for real-time performance, so the first thing I did was turn off HT from the BIOS. Next I did a distribution upgrade to 10.04LTS which downloaded about 1 Gig in an estimated 9 minutes (2Mb/s is OK I guess...). I then used the emc2-install script which installs the real-time kernel and emc2, and finally I edited /boot/grub/menu.lst by adding "isolcpus=1" on the kernel line. This reserves one cpu core for real-time and the other for non-real-time tasks. Without "isolcpus=1" the latency-test jitter values were easily 10k and more with a light load on the machine. With one core dedicated to real-time the jitter numbers start out at around 4k at light load and double to 7-8k under heavy load.

Here are some selected screenshots:

Next stop is getting the X and Z servos moving, as well as the hefty 2 kW spindle servo.

Atom330/ITX computer for EMC2 lathe-control

I put together this small computer which will be used to control the lathe. The components for this kind of box are quite inexpensive:
D945GCLF2 motherboard including 1.6 GHz Atom330 CPU, 76 eur
Codegen MX31 case including 420W PSU, 46 eur
2Gb DDR2 memory stick, 46eur
Samsung 320Gb HDD, 44eur
Labtec keyaboard + mouse, 17eur

Total:  229 eur (no display) parts from jimms-pc and

The motherboard has one PCI-slot for a Mesa 5I20 FPGA-card which provides 72 digital I/O pins for real-time control.

Here is the D945GCLF2 motherboard. The CPU doesn't need a fan, but there is a small fan for the PCI-controller(?).

Realtime performaceshould be OK, I was getting about 10 us of jitter for a 1 ms thread.