Introducing cycleSTICK - a rack mountable, low power (2 to 3W), solid state, 1GHz, fanless, power-over-ethernet (PoE), Linux computing device that is designed for home automation and industrial control applications.

As home and industrial control applications continue to multiply and become more connected, it is increasingly useful to be able to run these applications under modern operating systems that support the latest networking and connectivity protocols.

Designers of such applications are often tempted to implement them using full-blown PCs. There are numerous reasons to recommend a modern PC. They're inexpensive, plentiful, and easily powerful enough to handle most tasks. However, in the race to be all things to all users, modern PCs have also grown increasingly complex. Their BIOSs have become bloated in an attempt to allow booting from many different device types and schemes, and their internal architectures are frequently burdened with legacy hardware support.

Further, since modern PCs need to run large modern applications, they need to be speedy -- so speedy that they consume significant power, and often require noisy, failure prone fans to dissipate the heat they generate.

Many home and industrial control tasks are simple by comparison. They read inputs, do some math, write outputs, and communicate status. The top-end speed of a modern PC isn't necessary to get these tasks done, and the extra complexity (and associated decrease in reliability) is undesirable in systems that need to boot faithfully and run reliably all day, every day, for many years.

As processors have gotten faster and more efficient, a new category of device has begun to appear between the embedded systems of old, and modern PCs. This category is home to numerous small machines like the Raspberry PI, and the BeagleBone that are capable of running full featured modern OSes at useful speeds while using a fraction of the power of a general purpose PC. As expected, people have begun using these machines for control applications, and they're a great fit except for one thing -- form factor. The offerings to date usually take the form of a small board with connectors on every edge. Integrating these cleanly into a rack mounted system requires making a suitable enclosure, and connecting power and peripherals in a solid reliable way. Ending up with a clean solution is not trivial.

Enter cycleSTICK:

The cycleSTICK is housed in an all-aluminum enclosure, and is designed to fit into a 1U 19" rack space. It is powered through its network connection (Power Over Ethernet), so it does not require a separate power supply which makes for a cleaner install. It uses an ARM processor (TI Sitara AM3352) running at 1GHz, and contains 512MB of DDR3 RAM. The cycleSTICK boots to the login prompt in about 8 seconds after power-on from an internal micro SD card (4GB card installed by default), and runs a full featured (no Busy Box) Debian distribution of Linux. It boots from a simple, custom, open source boot loader that is designed to get the kernel running with a minimum of overhead. NOTE: as is normal for Linux, the kernel can be configured so that its root directory is accessed via NFS instead of the micro SD card. In this case, the card needs to hold only the boot loader, and kernel image.

For initial configuration, the cycleSTICK implements a front-mounted serial console connection (running at 115200 bps by default). This connection allows one to control the boot loader, watch the boot process, and log-in once the kernel has booted. After the cycleSTICK has been configured, and is accessible over the network, this console connection is not strictly necessary, and may be left unconnected.

For boot and application status, the cycleSTICK contains a 2 line by 20 column OLED display. This display connects serially (at 115200 bps) to the ARM processor, and supports an ANSI command set for control. During boot, the display indicates status, and after boot, it is controlled by an application running on the system. The default application allows for display of system name, time, CPU and ethernet statistics.

Further, the front panel contains four user configurable arrow keys which can be used to walk through menus, or for any other purpose desired by the end user.

For expansion, the cycleSTICK supports a unique rear-mounting USB peripheral scheme that allows the peripherals to mount directly to the cycleSTICK body, so they become physically part of the device instead of hanging loose by a cable. The back of the device supports two peripherals, each of which gets its own dedicated USB 2.0 connection to the processor. These connections are direct, and not shared by any hub or other internal peripherals, so each external peripheral can consume a full 480Mb/s USB 2.0 bandwidth without concern of conflict. NOTE: standard USB 2.0 connectors are used, so that traditional USB devices, or hubs may also be connected if desired.

For network connectivity, the cycleSTICK comes standard with two independent 100Mb/s ethernet connections. This makes it ideal for use as a firewall, or in systems where multiple networks (e.g. separate media and control) are present. These network connections run straight to the processor (they're not implemented via USB), so they're quick and efficient.