Dr. Dobb's is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.


Channels ▼
RSS

Embedded Systems

Do The Experiment!


Data Points

You've read the debates over why Linux isn't a player in the desktop market. I hold that Linux won't make any inroads until the hardware driver situation gets ironed out. Comparing your Sunday sale circulars with linuxprinting.org, sane-project.org, and linmodems.org will verify that, to a good first approximation, no cheap (that is, on sale this weekend) printers, scanners, or internal modems work with Linux.

The situation is even worse for tech folks, because essentially no unusual products have Linux drivers. My token Windows laptop runs a battery tester, a vector network analyzer, an ancient Crosspad tablet, various radio interfaces, a few UPSes, and some audio gear. None of those manufacturers evince the least interest in Linux and there are no Linux equivalents on the market.

Back at the SAS conference, Rich Marvin, Onset Computer's Program Manager for Education, described their line of HOBO data loggers. These small, battery-powered gadgets solve a problem that doesn't crop up in the software field: autonomously recording time-stamped, real-world measurements.

For example, one HOBO unit records internal and external temperature, light level, relative humidity, and an external voltage (which can come from a temperature, pH, moisture, or other sensor). A sealed logger, suitable for dunking in nasty aqueous gunk, samples temperature and light. They recently introduced a three-axis 3-G accelerometer suitable for logging the thwacks your experiment endures.

The loggers connect to a PC through a serial or USB cable. Onset provides a comprehensive program that configures the loggers: selecting which channels to record, how often to sample, and so forth. After initialization, you detach ("launch") the logger, put it into the experiment, activate it, and walk off. When the experiment finishes, you retrieve the logger, connect it to the PC, extract the data, and save it in a proprietary file format. You can also export the data to files in formats from Excel to plain old CSV.

Just hearing about these things made attendees want to run out and measure stuff. Onset has a nice series of educational projects to get novices started, a loaner program for teachers to get them started, and plenty of background material showing how it all works.

The configuration software runs in Windows (of course) and Mac OS X. Both versions require the Java Runtime Environment, but I can't tell if they are full-throttle Java apps or not. In any event, the program provides comprehensive data display and analysis, making it more complex than you might expect.

Not surprisingly, Onset doesn't provide a Linux version: "At this time we are not planning support for a Linux environment." Mac and Linux desktop market shares may both huddle in the 2 percent range, but "Linux" subsumes myriad distros, none individually rising above noise level. It makes good business sense to ignore such a fragmented market, even if I really want a native version on my SUSE desktop.

Incidentally, it's entirely legitimate to ship a proprietary program for Linux, as long as it's not linked with code released under, say, the GPL. Some folks hold that simply running a program on a Linux kernel requires GPL licensing, but that's simply not the case.

I hoped that Onset would document the interface sufficiently well so that I (or, more likely, someone better qualified) could hammer out a simple, command-line program, but "The software protocols are proprietary to Onset Computer Corporation and not available to the public."

If I were building a logger, I'd design a small language that did data logging and nothing else, then implement an interpreter in the logger's firmware. The PC program would convert all the configuration information into a program in that language, squirt it over the link, and hang up. The logger then interprets that program, records the external data, and waits for pickup.

Small interpreted languages, which DDJ covers quite well, simplify the interface and decouple the underlying hardware. Unlike the command-and-response interface of old lab-bench instruments, an interpreted language allows the logger to run autonomously.

Regardless of whether Onset loggers use a tiny interpreter, accept a binary slug of machine-language firmware, or parse a structure of configuration values, the company evidently regards that information as a key part of their business. By not documenting it, they retain the ability to change it as needed and, perhaps, hope to stay one step ahead of their competition.

As you've seen in previous columns, however, security through obscurity simply doesn't work. Sniffing a serial- or USB-data link doesn't pose much of a challenge and the interface probably isn't encrypted, so not documenting the interface doesn't provide much security at all. Anybody who wants to extract that information faces maybe a week or two of tedious reverse engineering and it's a done deal. Customers may not have the motivation, but competitors certainly do.

Nonetheless, I plan to buy a few of those loggers for some long-term data-collection projects. It's just one more reason I must maintain that last token Windows laptop.


Related Reading


More Insights






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.