What's New

CPU Cooler
VCool 2.0 
Waterfall Pro 
Current Tests 
Test Archives

UDMA Driver 
Windows 95
Windows 98
Windows NT

Way 2 Cool 
Compaq 1800T
1800T Temp Monitor
Going for 504
More on 504
Cheap Sandwich
BX6r2 Diode Fix
Lap that Slug
Celeron PPGA
Journey to 1080
Building an NT Box
Heat Pipe 1
Heat Pipe 2
Heat Pipe 2.2

Heat Sinks 
A&C Prototype Sink
Alpha P125
Alpha P521
CPU Cooler
Tom's Sink
Water Cooler 1
Water Cooler 2
Water Cooler 3
Water Cooler 4
Water Cooler 6
Water Cooler 7

Way 2 Cool
Thermometer 2
K-6 heat sink
Case Cooling
Heat Sink Tester
More Case Cooling
Klamath heat sink
Q500A Cooling
My Server Temps
Temp Calculators
CKS400 Rack Case
Fan Controller
Cooling Links
Downloads Page

Tips and Trix
Dual Boot Win95 / 98
Dual Boot Linux/NT4
D-B Linux/Win2k
Hot Flash your BIOS

Family Stuff
Prom / St. John

Email Jim

I have finally finished coding the gp_Temp4 software (more or less) as I originally envisioned it.  If you're interested in building the thermometer, I suggest that you take a look at the previous gp_Temp article for some background and a little history of the project.   I went into a bit more detail in the original article than I will do here.

gp_Temp4 will allow you to read four - 10 k to 200 k thermistors from the gameport connector of your computer or soundcard.  The resolution is 1° on either Celsius or Fahrenheit scales.  The accuracy is within a degree in the center of the range and within 2 to 3 at the extreme ends of the range, depending on thermistor type and resistance value.  The range for different values of thermistors are as follows:

10 k ohm thermistors can register a range of -40°C to 25°C (-41°F to 77°F).
50 k ohm thermistors can register a range of  -3°C to 65°C (26°F to 150°F).
100 k ohm thermistors can register a range of  7°C to 77°C (46°F 171°F).

The setup of the hardware is identical to the gp_Temp project with the exception that you will want to build two thermistor pairs rather than just one.  The setup of a thermistor pair can be found here.  The connections for the thermistors are made as follows:

One pair of thermistors connects to 1,3 and 6 and one pair connects to 8 or 9, 11 and 13.

Thermistor pair ready to be plugged in.

In this shot I am using pin 8 for the +5 volts for the second thermistor pair instead of pin 9.   Either will work for the second pair.  The connection for pin 11 is hidden under pin 3.

Hopefully I have simplified the setup interface a bit.  I have taken away the choice of multiple thermistors on each port as I didn't really think it would be used by anyone but me.  I initially used it for checking thermistors of different values while writing and testing the program.

The program screen.

The setup screen.
The room temp is being measured at about 2 feet above the computer, therefore hotter. (I figured that someone would ask.)

To get gp_Temp4 going, you'll need the program:

and the Excel spreadsheet for figuring the coefficients:

A screenshot of the spreadsheet can be found here.

Here is the software portion of the readme from the program.  It should give enough information to get the program up and running.

Windows 98 SE Driver Setup

WARNING: Do not use Windows Calibration utility!

1. Click "Start" | "Settings" | "Control Panel"

2. Double click "Gaming Options" (Joystick Icon)

3. Click "Add"

4. Choose "2-axis, 2-button joystick" | Click "OK"

5. Click the "Controller IDs" tab

6. Make sure that the "Port Driver" box reads "Standard Gameport"

7. Make sure that the "Poll with interrupts enabled" check box is checked | Click "OK"

8. Repeat Steps 2 through 7 to add a second "2-axis, 2-button joystick"

9. Make sure that the "status" for both joysticks reads "OK"

NOTE: You may use "Gravis Analog Joystick" instead of the "2-axis, 2-button joystick."  However, whichever you use, make sure that both joystick drivers are the same.

gp_Temp4 Setup

After unzipping the "gp_Temp4.zip" file, double click "setup.exe" and follow the instructions to install.

Open  gp_Temp4.  If the Windows driver and/or thermistors are not installed correctly, you will receive error messages on the "setup" screen.

NOTE: When the program opens for the first time, don't worry that the temperature readings are off (way off for most cases).  The only thing we need at this point is when you go into "setup" for both "port status" to read "port status: sensors connected."   If they don't, recheck your thermistor hookup and joystick driver installation.  (See the end of this text for Error Messages.)

1. With gp_Temp4 open, click "File" | "Setup."
Below the "port status" text and 4 "Sensor Names" boxes are the "Raw Data" boxes.   These are the raw readings from the thermistors through the gameport.  You will use these "Raw Data" readings to compute the coefficients (labeled A, B, and C for each of the thermistors).  The readings will be from a minimun of "0" to a maximum of "65535." 

2. If you wish to rename the sensors, change them now.

3. Click "Save to Registry," then "Refresh Settings."  This creates the necessary registry keys for the rest of the process.  It will also change the sensor names at the top of the form (if you chose to rename them).

4. If all 4 thermistors are the same resistance value, bundle your 4 thermistors together with the probe from a Celsius reading thermometer.  Seal them in plastic wrap if you are going to use the water method (See instructions here).  Leave the 5 sensors alone until the readings from the thermometer and 4 "Raw Data" boxes stabilize. You will need a total of 3 readings at least 10°C apart (15° is preferable).  If the thermistors are of different resistance values, it is best to calibrate each one individually.

7. Note the temperature in degrees C (it MUST be Celsius or converted to Celsius) along with the raw data readings for that temperature. Copy these down for later use.
Something like
Sensor 1: 0°C = 7903  (Readings from my 10 k thermistor)
Sensor 2: 0°C = 53133 (Readings from my 50 k thermistor)
Sensor 3: 0°C = 53133 (Readings from my 50 k thermistor)
Sensor 4: 0°C = 53133 (Readings from my 50 k thermistor)

8. Raise or lower the temperature at least 10°C and take the readings again.
Again, something like
Sensor 1: 10°C = 5203
Sensor 2: 10°C = 31036
Sensor 3: 10°C = 31036
Sensor 4: 10°C = 31036

9. One more time. Raise or lower the temperature at least 10°C and take the readings again.
Once again, something like
Sensor 1: 25°C = 3296
Sensor 2: 25°C = 17283
Sensor 3: 25°C = 17283
Sensor 4: 25°C = 17283

It doesn't matter what temperatures you read the Raw Data at, as long as they are at least 10°C apart.  However, I have found that the thermistors are most accurate at the following

 10 k: -15°C ± 25°C (5°F ± 45°F)
 50 k:  10°C ± 25°C (50°F ± 45°F)
100 k:  35°C ± 30°C (95°F ± 50°F)

If you are using a 10 k with a 50 k or 100 k thermistor, it is probably best to calibrate the 10 k thermistor separately.  On my system, the absolute temps I can read with any accuracy are

10 k Ohm thermistors: -40.5°C to 25°C (-41°F to 77°F)
50 k Ohm thermistors  -3.5°C to 65.5°C (26°F to 150°F)
100 k Ohm thermistors  7.7° to 77°C (46°F 171°F)

Setting the Temperature Coefficients

1. Download steinhart.zip.  It's a tiny 15 kb file that will plot the temperature setup coefficients using the Steinhart-Hart equation.

2. Unzip steinhart.zip and double click on the ST&HT_EQ.xls file to open it in Excel.

3. Starting with the lowest temperature and Raw Data reading for Sensor 1, enter the temperature into cell B14 and the Raw Data into cell C14.

4. Enter the mid-range temp and data into B15 and C15.

5. Enter the high temp and data to B16 and C16.

6. Click on any blank cell to compute the coefficients.

NOTE: If any of the coefficients (B24, B25, and B26) have a negative value (-0.003 or whatever) your temperature/data readings are incorrect and cannot be correctly computed.  Negative values WILL NOT work in gp_Temp4.  Try taking the Raw Data/temperature readings again and using a wider range (15°C, rather than 10°).   For some shots of the ST&HT_EQ.xls worksheet, click here.

7. Reopen gp_Temp4 to the setup screen and start with the coefficient for Sensor 1 "A".

8. Switch back and forth between Excel and gp_Temp4 to copy and paste the coefficient for "A" in cell B24 into the text box labeled A1 under Sensor 1 "Setup Coeficients" in the gp_Temp4 setup screen.

9. Copy the coefficient for "B" (cell B25 on the Excel sheet) to Sensor 1 "B".

10. Repeat for "C" (cell B26 on the Excel sheet) to Sensor 1 "C".

11. Click "Save to Registry" and "Refresh Settings."

12. Repeat steps 3 through 11 for the Sensor 2 temperature readings and Raw Data.

13. Repeat steps 3 through 11 for the Sensor 3 temperature readings and Raw Data.

14. Repeat steps 3 through 11 for the Sensor 4 temperature readings and Raw Data.

15. Close Excel.

16. If all is correct, you should have a working gameport thermometer.

Program Docking
If you close gp_Temp4 by clicking "File" | "Exit," it will remember its position on the screen.  It will not remember its new position if closed by the "X" in the upper right corner of the
program screen.

"File" | "Log" | "log it" - logs: Date - Time - Sensor1 temperature - Sensor2 temperature - Sensor 3 temperature - Sensor 4 temperature in comma separated value form to (default)
C:\Program Files\gp_Temp4\gp_TempLog.csv.  gp_TempLog.csv may be opened in Microsoft Excel or a text editor. The file will be overwritten each time logging is started, so rename the file if you wish to keep it.

Logging intervals
1 second
5 seconds
6 seconds (This corresponds with Motherboard Monitor 4.X's shortest logging interval.)
10 seconds
15 seconds
30 seconds
60 seconds


Click "Save Registry Settings" to save settings to the registry.  (HKEY_CURRENT_USER/Software/Megadyne/gp_Temp4/)

Click "Delete Registry Settings" to remove all values and sub-keys from the /gp_Temp4/ key.  Next, exit program by clicking the "X" in the upper right corner of the program if you do not want the program position to be written to the registry.


"File" | "Graph" - opens the graph.  The temperatures are graphed every 1 second. Use the "Print Screen" key to save a screenshot of the graph then paste it into an image editor.

Error Messages

1. "Couldn't detect the Sensors." - Make sure gameport driver is installed."  Make sure the Windows gameport driver is installed and "Standard Gameport" is chosen.

2a. "Port status: sensors 1 and 2 unplugged" - One or both of the 2 sensors have become disconnected.
2b. "Port status: sensors 3 and 4 unplugged" - One or both of the 2 sensors have become disconnected.

3. "Port status: joyGetPosEx error, rc = ???" - I have only seen this set when the wrong joystick(s) was(were) chosen from the Windows gameport drivers.

4a. "Port status: sensors 1 - 2 connected" - This is what you want!
4b. "Port status: sensors 3 - 4 connected" - This is what you want!

5. If temperature values are off, recheck calibration coefficients.

Hopefully you will find this utility as useful as I have.  While it is not as accurate as a thermocouple temperature logger, it's a heck of a lot cheaper to put together and reads with enough accuracy to compute the °C/W figures I'm after.  I am going to assemble a Pentium 133 out of the parts bin in the workshop and dedicate it to monitoring the heat sink tester.  I will also leave a copy of the program running on my main Windows box for monitoring the water cooler.

Now that I have a way to "automate" the temperature taking process, it's time to start on the heat sink tester.  I need to order a couple items and get to work building the contraption.  Once I get a more accurate tester running, it's back to working on some more heat pipes.  Hopefully with the new tester, I will be able to "fine tune" some heat pipes to produce the kind of results I'm looking for.

page 1
page 2
page 3
page 1
page 1
page 2
page 3