Combining CANDETECT with the NIC

Picture of NIC workstation

The opportunity

Our target audience are the many folks who own and/or maintain General Aviation aircraft under difficult conditions.

Although aircraft maintenance workshops often have computers, these are usually large desktop systems with databases and other business critical files. Their owners do not wish to risk damage to such computers by taking them into the workshop area, where they can be knocked over, accidentally unplugged, or exposed to lubricants or other fumes. A stripped, application specific computer is ideal since the replacement cost is low and the owner needs perform no operating system administration duties.

These workshops are located in industrial parks older than the internet and maybe the personal computer. Electrical power is unreliable and internet access might be unavailable. This is a difficult environment for recent operating systems that assume internet connectivity, take a long time to boot, don't journal their critical files and effectively require a costly Uninterruptible Power Supply (UPS) unit. Storing the operating system on a CDROM and user measurements in a flash memory chip is the best protection against data damage due to power cuts, so a cheap surge protector suffices.

Notebook computers may be smaller and avoid the complexity of an external monitor and keyboard, but they are more expensive and the LCD display panel is easily damaged in routine use. In contrast, unexpected replacement of a CRT monitor is quick and cheap.

Many commercial instruments contain a custom embedded computer, but the cost of designing that computer into the housing dramatically increases the instrument purchase price. An eddy current system is not in continuous use, so that investment in the computer system is partially wasted since the computer can only be used for exactly that one task.

Many competing low cost computers, especially embedded computers, omit the sound capability entirely or select poor performing chips. In choosing such systems, there would be the cost and complexity of adding a suitable soundcard (and its drivers) to the computer.

While a general purpose computer permits multiple applications to be installed on the hard drive, their interactions tend to reduce the reliability of the individual functions and impair the time efficiency of the user. With a system that runs entirely off a CDROM, the user can simply replace the eddy current disk with the word processor disk (for example) and can make productive use of the computer system without risk of instability.

In all these ways, the New Internet Computer (NIC) system outperforms competing technologies in offering the end-user a price and performance competitive solution.

Our approach

The federally-required annual inspection for each aircraft includes checking for hidden corrosion with no damage from the search. Special software can review eddy current data from a hand-held tester that looks through the paint to evaluate the condition of the metal underneath.

We have interfaced a handheld tester to a NIC and built a special CD version with the CanDetect project's software tools. This system was successfully evaluated with the assistance of El Cajon Flying Service at Gillespie airport (KSEE). An example window image is shown.

Our entry to the Embedded Linux Journal competition 2001 resulted in a NIC unit being awarded to this project as one of twenty finalists.

Screenshot with data

Discussion of results

Window image of XOscope with data

We successfully operated the combination of CanDetect software, a NIC system and the commercial probe electronics (and two patch cables) to examine aluminum plates that contain known flaws and a section of aircraft wing, meeting the original goal of the ELJ competition. Although the competition is drawing to a close, CanDetect itself is an ongoing project and will continue. The automatic CD image generation that was developed for the competition (discussed below) ensures that it will be trivial to release new versions of the CanDetect software for use on NIC systems.

The goal of those recent measurements is to reproduce some experiments, originally needing expensive acquisition hardware, to demonstrate that this low cost approach can match its performance. The window image shows the NIC making one of the measurements, where a quarter inch long crack is growing out from the central hole of a row of seven fasteners. Detailed analysis of the raw data is ongoing, to determine how much better the system can really do, and the results are expected to be published at the SPIE conference listed in the News section.

The CDROM image

You can download a CDROM image to make a ThinkNIC unit operate as an eddy current inspection system with the CANDETECT project software. Look in the project's File Release under candetect-nic. These are compressed to make the download quicker, so you need to use WinZip (on Windows) or gunzip (on Linux) or equivalent. Write the uncompressed file to a blank CD, insert into your NIC and boot.

If you want to build your own image, the scripts and makefiles are located in the ISO module of our project source tree, which is here on the SourceForge CVS server. This is probably the best approach for people who have dialup internet connections. The makefile takes the standard 2.0.9 release from ThinkNIC (by downloading it from the web or using the existing CD that you have) and places additional files into the image. The files are in four categories:

  1. A modified version of /usr/home/httpd/html/topactive.html (the upper half of the browser's main home page) to provide a visual link into the subdirectory of project web files. The first of these three images /usr/home/httpd/html/media/candetect*.png is the link to the CanDetect project, the second appears during mouse-over and the third (not currently used) will indicate that the hardware is unavailable. Normal Icon MouseOver Icon Unavailable Icon
  2. A copy of the project web site in /usr/home/httpd/html/candetect/ for users without internet access. The project web page file home.html (which normally has news) is replaced to explain that this is only a copy of the website, offer a link to the live internet version and provide a link that starts the project software running.
  3. A new CGI script at /usr/home/httpd/cgi-bin/xcandetect that actually launches the project software when requested by the user in the browser. There are two additional CGIs in there, to assist in development and debugging.
  4. The new directory /usr/local/bin/candetect/ contains two binary programs main and xoscope, together with two scripts candetect and xcandetect to invoke them. This is actually the tool software for eddy current testing.

Review of the development

The project software was initially developed independently of the NIC on conventional desktop and notebook computers, as discussed elsewhere, and only placed onto the NIC once it was working and able to take data.

During the intervening months, the NIC has been used as a simple X terminal, able to log into any of the linux workstations on the local network. This is achieved by removing the supplied CD and installing one that has an ElTorito image containing just the EtherBoot floppy. The ROM-o-Matic website can generate the floppy image for you, and this command builds the CD image:

mkisofs -b eb-5.0.3-sis900.lzdsk -o nicnetboot.raw eb-5.0.3-sis900.lzdsk 

When booting, the thin diskless client contacts our existing Linux Terminal Server (LTSP) to download Linux and mount an NFS filesystem containing XFree86. We chose not to use the PXE method, described by this article in Embedded Linux Journal, because the NIC unit would randomly ignore the BIOS setting for PXE and try to boot from the (removed) CDROM disk. Power cycling and/or repeating the BIOS configuration would temporarily cure the oddity.

We investigated the feasibility of having the NIC network boot to the standard software. The standard CD was disassembled into its component filesystems and placed onto the boot server, then incrementally modified wherever the scripting made assumptions about boot media, filesystem types and locations. Although this was successful, the large number of patches necessary was deemed to be unmaintainable across future image releases by ThinkNIC and so this approach was abandoned as an unrealistically short term solution. During this work, we were surprised to find that the CD image at the ThinkNIC website and the CD image on the disk we received are different. Both claim to be version 2.0.9 yet they report different md5sum values; a quick search found a changed help file and an alternate kernel image (there may be other differences).

Next, the filesystem of LTSP was extended to selectively permit its thin client computers to locally execute CanDetect software components. In addition to the NIC thin client, a second computer is also permitted to do this. The second computer, booting using LTSP or its local hard drive, is used for verification that the two CanDetect methods are equivalent.

Two approaches were feasible for delivering a CD image to run the NIC. We could place the extended LTSP filesystem and boot media into an image, or we could patch the ThinkNIC image to execute additional programs. We chose the second because it is more flexible for the user, since all the standard NIC functionality continues to be available without the need to reboot.

The patch is implemented as a makefile that runs completely automatically. It mounts the standard image on a loopback device and uses mkisofs to copy most of the contents, with specific files omitted and new files added, into a new image file. This takes under 30 seconds, quicker than recompiling the two new binaries. The NIC user gains access to the new CANDETECT capability of the unit through a conspicuous icon, as shown in the image.

Screenshot of NIC after initial boot

The binary programs were known to work from separate testing under LTSP, so it was only necessary to verify the libraries, scripting and web pages. These issues could be quickly checked by mounting the new image on a second loopback device and using chroot() to get the same runtime environment.

Screen dump of NIC after collecting data

... Continue to the probe or the software page ...