VOICE Home Page: http://www.os2voice.org | August 2001 [Newsletter Index] [Previous Page] [Next Page] [Feature Index] editor@os2voice.org

##
Make me hot!

By Thomas Klein © August 2001

Now, c'mon: Would you consider using a special program only designed to heat up your processor? I guess not, well... let me show you anyway what to do with it, as it comes as part of ThermoProtect - a program I would like to give a "warm" recommendation.

In the last issue of the newsletter, Christian introduced us to StHWMon; a program used to monitor the sensing elements of today's mainboards. His review reminded me of a little anecdote in conjunction with that similar program and finally drove me to present to you ThermoProtect, as it is not quite what we call a newbie in the warped world.

ThermoProtect is a "system health" monitoring program designed for various chipsets such as WinBond, LM78/79 or compatible types respectively. Unfortunately, this won't let you conclude specific mainboard chipsets. In general, it should work with some SiS- and VIA-Chipsets as well as most of Ali Aladdin chipsets. It finally depends on the monitoring chipset being used on your mainboard . Just give it a try - in the worst case nothing will happen.

Basically, ThermoProtect runs as a plain text mode application. It's default setup will show the values of all supported sensors on screen (in a very spartan manner), being updated every 1.6 seconds. Besides up to three fans (showing their rotation speed), this includes two temperature values (CPU and mainboard) as well as the different voltages found in PCs nowadays (or to be correct their power supplies; these are CPU core voltage, CPU i/o-voltage, 3.3V, 12v, 5v, -12v, -5v). In addition, there's support for a case intrusion detection sensor (activated if the computer's housing has been opened).

Some mainboards don't make use of the full number of sensors being supported by the monitor chipset. And most people's PC cases don't come with a case intrusion detector either, I guess. In these cases, ThermoProtect will show an appropriate or initial value - as you can see by the screenshot above: My Asus P5A "only" provides two temperature probes out of three possibles. And there's only one fan capable of reporting its rotation speed- the one sitting on top of the K6-2/450 CPU. Shame on me ;)

### Differences and similarities

Most of the features provided by ThermoProtect are identical with those of StHWMon... one difference is, that StHWMon requires at least Warp 4 w/ FP6, while ThermoProtect is able to run on top of a non-fixed Warp 3. Did I mention that both programs are being distributed as freeware? While StHWMon is undergoing constant improvements, there seems to be some lack of update for ThermoProtect... the version we are talking about (1.34 from May 23rd, 2000) is the latest one available.

While getting started with the work on this review, I managed to get in contact with David Wei (author of ThermoProtect) because his website seemed to be unreachable for quite some time and I wanted to know whether there might be an update...

David told me, that there was some trouble with Network Solutions and the domain name - anyway; he gave me an alternate URL which I made part of the links collection below this article. Concerning the state of development, David mentioned that he got stuck: He can't figure out how to get Virtual Pascal to access the information on the I2C-Bus or SMBus used in newer mainboards. So it's up to you now: If you can provide any helpful information on that issue, get in contact with David Wei please. He's still willing to extend ThermoProtect's list of supported chipsets.

### Under the hood

Both programs actually just retrieve the values provided by the health monitoring chipset and manage a set of adjustable limits for those values. If one of the values measured should exceed it's appropriate threshold, this will trigger an audible and/or visible notification. While StHWMon appears to be "Mr.Nice GUI", ThermoProtect seems to minimize it's need for resources by providing an ascetic plain-text configuration file only. Not even command-line parameters are supported.

In addition to its graphical front-end, StHWMon comes with its own X-Center widget (a sort of plugin for the WarpCenter replacement provided by Ulrich Möller's WPS enhancer 'XWorkplace'). ThermoProtect was mainly done when there was no XWorkplace... well, maybe there was XFolder, but there was surely no XCenter. But don't turn your back on ThermoProtect too soon; it can (theoretically) interact with XCenter as well. There's a lot more under the hood.

In its standard mode (screen output), ThermoProtect will run either until there's any key pressed or it receives an appropriate message that requests termination (e.g. by the shutdown process). Alternatively it's output can be redirected into a standard text file. This mode will let ThermoProtect start, get its values, write them into the file specified and terminate immediately. You're free to do whatever you like with that file - publish it somewhere on your LAN or in the web, append it to a logfile or process it in any way you want. The author has even provided two additional free programs to perform cyclic execution of ThermoProtect.

Personally, among the output methods I prefer the third way: Named pipe(s). ThermoProtect provides a named pipe for each value supported - in case of temperature probes there are even two values for each of them: Celsius and Fahrenheit. Now, the "cool" thing about named pipes is, that they are a system-wide variable. Their values can be accessed simply by the specific pipe's name and are available to almost every application - like REXX scripts for example. So if you run the XCenter, you can manage to create a look-alike equivalent of StHWMon by using an appropriate REXX script and the REXX Gauge widget (included in the Widget Library)... theoretically at least.

Theoretically, because I did not manage to access the named pipes via REXX scripts. But this is because of me rather than ThermoProtect, as I am an absolute beginner in matters of REXX. In addition, the named pipes work almost as smooth as silk when being used with Dmitry I. Platonoff's tool Sysbar/2 by means of the "custom pipe listener" feature. Sysbar/2 is breed of pre-XCenter-era too and acts like a collection of display "cells" which are used to combine freely-configurable tool bars on your Warp desktop. Features include standard stuff like CPU load as well as e.g. IP-Traffic, completion status of SETI work units, the "tiniest" CD-Player to my knowledge and those custom pipe listeners. To avoid the need for the end-user to download an additional program, both freeware authors agreed to provide a pre-configured Sysbar/2 which can be used along with ThermoProtect right out of the box. This makes ThermoProtect's "screen output" look like this:

But running just sb2_pipe.exe won't do the job: Prior to this, one must change ThermoProtect's output method from "screen" to "named pipe". Because of the fact that option setup is done exclusively by means of the configuration file (as I already told you) you'll have to change the appropriate entry. This can be done by either firing up your preferred editor or by using the the setup program which comes along with the application if you don't trust your editing abilities:

Once done, you're free to tweak around with Sysbar's settings. Did I mention for example, that it was designed especially to run "on top" of the WarpCenter? Once I limited the display to only the values of interest for me, it makes look the whole thing like this:

Fine. Now that your fragile hardware's entire "biometric" data is at your fingertips - would you want to keep an eye on it yourself? Day in, day out? ThermoProtect offers a way to define specific threshold values. If any of these limits is exceeded an audible alarm will pop up. In addition, there's a special "ThermoAlarm" tag which can be monitored by its own named pipe too. It will be toggled from "false" to "true". As Sysbar/2 can launch a user-specified command whenever the content of a specific display cell changes, you're able to do almost anything you want if ever this alarm happens to take place.

In the readme file, the author stresses not to set the thresholds too "tight", because of slight differences among the sensor chips being manufactured, which makes their peak values differ. Even more, the mainboard layouts differ between manufacturers - that's to say, that e.g. the distance between the CPU temperature probe and the CPU itself can differ from one manufacturer to another, even between two identical mainboards, which might result in the sensor showing different values while both mainboards may run at the same temperature.
At this point, we take a long breath, put aside our microscope and soldering iron and prepare to leave the crypt of electrical principles to get back to our application:

All thresholds are stored in the configuration file as well. In case of a fan, this will be some kind of "rotation per minute" value. There's no alarm threshold for voltages. I guess such alarm would be too late anyway... For temperatures, there are thresholds again - both upper and lower in case of CPU.
What's that? Pardon? - "lower"?
That's correct; ThermoProtect is able to alert even when the CPU gets too cold... which makes us get back to my first question (and that little anecdote).

### CPU on the rocks

Imagine you go out and get yourself one of those killer processor coolers with Peltier technique to help take care of your overclocked CPU. This lightspeed processor of yours keeps crunching numbers day and night to help the search for extraterrestrial intelligence (did someone discover any terrestrial one so far? <g>). Your SETI client is set up to transmit results and receive new work units via dial-up automatically. Now it happens that once the only time you were *not* at home (of course) dial-up was broken for some reason and your SETI worker was unable to reach the server. In this case, your SETI client might think "Fine. That's okay with me." and sets himself to sleep some amount of time before trying to dial-up again. This whole procedure takes place several times - let's say for about some hours. Having nothing to do makes the CPU being cooled down to freezing point or even below.

Well, "Great" you might say, "coldness does not harm a CPU!" - and you're right: It doesn't... but water does:
The humidity of the surrounding air will start to freeze on top of the cooling cap. Then, sooner or later, your dial-up will be back. The SETI client gets in contact with its server, returns its result file and gets itself a new work unit. Happy to finally have something to do again, your CPU will begin to analyze and analyze... and heat up... making the ice crystals on top of the cooling cap start to melt... and making the board do the big oops first and the big sleep next. Whew - to me this is definitely the "coolest"way to get rid of a mainboard...;)

To be serious: This is not a hypothetical scenario. It might not happen to everyone but it happened just that way to David Wei. As a conclusion of that mishap, he went off to create an additional feature of ThermoProtect: If the CPU's temperature falls below a user-defined threshold, ThermoProtect will launch a separate thread to do loads of floating-point operations until the temperature is back in its "usual" range.

### To be continued?

On top of the author's wish list, there's APM power-off (besides support of more chipsets). I can't tell what it will mean to compatibility to Warp 3 and the aspects of OS/2 APM drivers. Sure, any audible and/or visible notification won't help if there's a fan breakdown and you're not at home... except maybe for people with trained pets. An automated shutdown would surely be of great use, but... wait. By using a "custom pipe listener" to watch the ThermoAlarm tag within Sysbar/2 we can almost do the job right now: The only extra thing you need is called APM/2 - it's a freeware tool by Roman Stangl. You just need to launch it using the "/poweroff" parameter and that's all.

So what's my conclusion? ThermoProtect provides great monitoring tools with minor resource footprint. By using the tools included, you're able to create processes for almost every kind of usage without having to be a great programmer. If only someone out there could give the missing technical hint to the author, we soon might have support for additional chipsets - making ThermoProtect become a real "cool" choice... so folks: Keep cool - but don't get frozen... ;)

References: ThermoProtect Developer: David Wei Price: Freeware ThermoProtect home page: http://www.dcviewer.com/ThermoProtect/TP-index-e.html ThermoProtect V1.34 (at LEO): http://archiv.leo.org/pub/comp/os/os2/leo/systools/tp-134.zip APM/2 home page: http://www.geocities.com/SiliconValley/Pines/7885/APM2/DownloadAPM2.html Steve Wendt's Widget List (-> Widget Library): http://www.os2bbs.com/os2news/XCenter StHwMon home page: http://home.t-online.de/home/stefan.milcke/hwmon_en.html Sysbar/2 (at LEO): http://archiv.leo.org/pub/comp/os/os2/leo/pmtools/sbr2_017.zip XWorkplace home page: http://www.xworkplace.org

Thomas Klein is an IT consultant at Systor GmbH & Co. KG and is currently involved in software quality control in a large-scale project at IBM. He's been using OS/2 since version 2.11

[Feature Index]
editor@os2voice.org
[Previous Page] [Newsletter Index] [Next Page]
VOICE Home Page: http://www.os2voice.org