How To Make Your Fanless Box PC Reliable

These days most industrial grade fanless box PC’s from manufacturers such as CyberVisuell are very well built. 

CyberVisuell CYBOX Fanless Box PC

CyberVisuell CYBOX Fanless Box PC.

The main board, power supply, and CPU will normally work flawlessly for many years, provided the PC is operated within its specified limits. 

However the software and storage devices can be a totally different story. Software configuration details can make or break a system, and this can become a critical problem when it is deployed in a remote location. Storage devices can also become unreliable if they are not chosen and configured correctly. These concerns also apply to Industrial Panel PC’s which are required to perform mission critical tasks reliably.

Use a Flash-Based Storage Drive

To get maximum reliability from an embedded system, it is good practice to avoid using anything with moving parts. This means traditional hard disk drives should be avoided – probably the most common component to fail in a PC is the spinning hard drive. Instead, opt for a Solid State Drive (SSD) or an industrial flash-based disk such as an Industrial Compact Flash. 

In addition, the SSD or Flash drive that you use needs to be designed for industrial usage, or “Industrial Grade”. This means it should have a wide temperature rating, and be designed for reliable performance under 24×7 operation for many years. One way of improving the performance and reliability of such drives is to use SLC flash, instead of the cheap MLC flash that is normally used in consumer grade SSD’s. SLC flash is more stable and has a much longer write-cycle life compared to MLC flash. However the cost per gigabyte is also higher, so SLC is typically used for the main operating system drive, rather than for bulk data storage.

Another concern with flash drives is that they need to have a good “wear levelling” algorithm built in. This is because each cell of flash memory only allows a limited number of writes before it will fail. The wear levelling algorithm spreads out the write operations across many different cells of the drive, hence spreading the wear evenly and maximising the drive life.

Use an Embedded Operating System on your Fanless Box PC

Regular operating systems such as Windows 7 are designed to be operated by a person all the time, rather than just to perform a few set tasks automatically in a remote unattended setting. Hence regular OS’s typically request and assume user interaction all the time – such as Windows security updates, or stopping and starting applications whenever needed. And when things don’t work the way they should, it is assumed that the operator can shut down and restart the PC, or request help to sort out the issue.

In a remote or unattended scenario, however, these things become major problems. What happens if Windows automatically applies an update from the internet, and this forces a reboot of the system in the middle of a critical task? Or even worse, what if that Windows update prevents the PC from booting correctly, and prevents anyone from gaining remote access to it?

The solution to this is to use an Embedded Operating System. For those familiar with Windows or Linux, the easiest way to do this is to use an Embedded variant of Windows or Linux. This offers several key advantages:

  • The Embedded version is basically the same operating system so will run the same applications and drivers.
  • Embedded OS’s include Filters – such as Write Filters to protect drive partitions and prevent system changes; or USB filters, to only allow particular USB devices to be accepted, such as keyboard/mouse.
  • Operating system componentisation – allows you to remove parts of the OS that you don’t need, to minimise the disk and memory space needed.

Note that for Windows, the Embedded OS licence has certain restrictions on how the PC may be used – basically it should only be used as a dedicated system for a limited set of tasks. It is not allowable to use an Embedded OS as a regular desktop PC.

Configure your Operating System Partition with Write Filters

As described above, any changes to the operating system or software on your fanless box PC can potentially destroy the functionality of your system. Hence to avoid this happening, it is good practice to make the whole Operating System partition read-only, by using the Write Filters that come with Windows Embedded. 

Set up a Write Filter in Windows Embedded

Photo courtesy of Yvette OMeally

Write Filters are basically a software layer that sits between the operating system and the hard drive, and any time the operating system or application tries to write to the hard drive, that write is diverted to a temporary storage area (usually in RAM memory). Hence nothing actually gets written to the hard drive, so no matter what the PC does, it can always be reset and booted up again with exactly the same configuration as it started with.

For Windows XP Embedded or Windows Embedded Standard 7, Write Filters are described in this blog post.

Configure your Application to Auto-Start

For an unattended or embedded PC system, normally it is required to run just one software application all the time. Hence it is required that the software application should automatically run when the PC starts up, without needing user interaction. If the application involves screen display (or even guest / operator interaction), the most reliable way to do this in Windows is to set the software application as the “shell”, instead of the standard Windows Explorer. This means that it will run automatically at boot-up, and if the software crashes, Windows can be set to automatically restart it. Moreover the usual functions of Windows Explorer (start menu, taskbar etc) will not be available. More details on setting applications as the Windows shell can be found in MSDN.

If the application does not need to display on the PC screen, then a good option is to develop the application as a Windows Service. This means that once installed, Windows automatically runs it in the background, and it can be set to auto-restart if it crashes. The down sides to using Services are that they do not get access to the screen, making them harder to debug; and access to other PC resources can be restricted, depending on the “login credentials” that they are run with. Hence the service needs to be carefully configured in Windows to make sure these things are set correctly.

Choose a Fanless Box PC with a Hardware Watchdog Timer

The final piece of the reliability puzzle is the Hardware Watchdog Timer. This is an electronic timer circuit that is often included in industrial or embedded fanless box PC’s, which automatically resets the PC after a set period of time. The time period can be configured in software, and the timer can be restarted in software as well. 

The watchdog timer duration would typically be set to a few minutes. The software application then needs to periodically restart the watchdog timer, say every minute during normal operation. Then if the software crashes, or Windows hangs, the timer will fail to be restarted, and it will then automatically reboot the whole PC. When combined with the strategies outlined above, this means the PC will always be running with a known configuration, and will be set up for maximum reliability.

About Chris Dobbie

Chris Dobbie is an experienced Systems Engineer focused on Industrial Technology. As the owner of Esis (Sydney, Australia) he has had exposure to a wide range of industrial electronic equipment in a variety of applications, and also has extensive system design and C/C++ programming experience. Contact Chris if you want to chat about your project!

Speak Your Mind