JoyTemp - Measure temperatures using the game port
(Project from 2002) Using the joystick port is the most simple solution to add custom temperature sensors to your system. Each port has 4 analog
inputs (one per joystick axis) which we can use. Reading, calculating, calibration and data hand-over into
is done by the (windows) freeware available on this site.
Joystick connector pinout
Pin Configuration JoyTemp
1 +5 V
2 Joystick 1: Button 1
3 Joystick 1: x axis Sensor 1
6 Joystick 1: y axis Sensor 2
7 Joystick 1: Button 2
8 +5 V
9 +5 V
10 Joystick 2: Button 1
11 Joystick 2: x axis Sensor 3
12 GND (MIDI)
13 Joystick 2: y axis Sensor 4
14 Joystick 2: Button 2
15 +5 V (MIDI)
Connect the sensors between the axis input pins and +5 V. Measurements inside the room temperature zone turned out to be most accurate using 100 kOhm NTCs
For higher temperatures I recommend using a 200 kOhm NTC
. You can use up to 4 sensors total, but note that you have to connect them in pair (x and y axis)
or Windows won't detect them at all. So it is either 2 or 4 sensors.
After connecting the hardware, you have to install the "joystick" using Windows's control panel. In "Gaming options" click "Add" and choose
"Two 2-axis, 2-button joysticks on one gameport". This will create two entries which should display their status as "OK". If so, you did
everything right and may proceed with calibration. Important: Never use Windows' own joystick calibration on your NTC joystick!
Instead, download the freeware off this site (see below) and start it.
The software can perform a three-point calibration to achieve best accuracy (but please don't expect any surprises). It is a bit complex and involves
warming the sensors to stable and defined temperatures. Because of this you also need an actual thermometer (the more accurate the better).
The most easy way is to tie the sensors up together, make them waterproof using some plastic bag and tape and submerge them. You have to perform three
measurements at for example 20, 35 and 50 degrees (Celsius). The software just calls the temperatures "low", "medium" and "high" since you can choose them
freely. They just have to be minimium 10 degrees apart. In "Calibration" choose the sensors you would like to calibrate (most probably the ones you tied
up). A simple trick is to use the room temperature as the lowest value. After the values have settled (stopped moving into one direction), read the actual
temperature measured by your accurate thermometer, enter the value near the "low", "medium" or "high" button and then click the button. Repeat for every
button and after that, click "Finish calibration".
Integration into WebTemp
On the right side of the main window you can choose the slot in which WebTemp is to display your new temperature sensors. The values will be automatically
carried over to WebTemp if it is running.