Heater Temperature Controller

- Heating from -200 °C to 400 °C
- Two Channels Capable of Independent or Synchronized Operation
- User-Configurable PID
TC300
Heater Temperature Controller
Front Panel Allows Stand-Alone Operation

Please Wait
Specifications | |
---|---|
Output Power per Channel | 48 W (Max) |
Output Current per Channel | 2 A (Max) |
Output Voltage per Channel | 24 V (Max) |
Temperature Setting Range | -200 to 400 °C Maxa |
Set Point Resolution | 0.1 °C |
Temperature Stability | ±0.1 °C |
Sensor Types | Thermistor, AD590, Thermocouple, 2-Wire and 4-Wire Platinum 100 Ω, 2-Wire and 4-Wire Platinum 1000 Ω |
Output Connector Type | Hirose HR10A-7R-6S(73) |
USB Interface | USB 2.0, Standard B |
Power Supply | 100 - 240 VAC, 50 - 60 Hz, 165 VA Max |
Operating Temperature | 0 - 40 °C |
Storage Temperature | -15 - 65 °C |
Dimensions (H x W x D) | 86.6 mm x 154.3 mm x 327.8 mm (3.41” x 6.07” x 12.91”) |
Weight | 1.8 kg |
Features
- Heating from -200 °C to 400 °C
- Run Standalone or via Software
- Dual Channel Resistive Heater Controller
- Can Drive Various Types of Heaters, Including Foil and Resistor Types
- User-Configurable PID
Thorlabs’ TC300 Heater Temperature Controller is a general-purpose benchtop controller intended for use with resistive heating elements, including foil (such as Item # HT10K) and resistive coil (such as Item # HT15W) types. It also accepts feedback from a variety of temperature sensor types including positive (such as Item # TH100PT) or negative (such as Item # TH10K) temperature coefficient thermistors and thermocouples.
The two channels of the front of the TC300 controller are capable of either independent or synchronized operation. Each channel has programmable P, I, and D gains. The back of the TC300 controller has connectors for analog output and input and output triggers for each channel. An output proportional to the actual temperature of the channel is given in the analog output, and the input and output trigger allows the user to enable or disable the channel. For more information, please see the Front & Back Panel tab.
User-programmable maximum temperature and current/voltage limits protect the connected heating element from being overheated or over driven. Other safety features include an Open Sensor Alarm that will shut down the driver if the temperature sensing element is missing or becomes disconnected.
A simple keypad interface allows stand-alone operation, but the TC300 can also be interfaced with a PC using a standard USB Type B connector and our TC300 Application Program. Interfacing with a PC can also be achieved by using LabVIEW or LabWindows with a simple command-line interface from any terminal window.
The TC300 heater controller uses female Hirose connectors to read the temperature of the heating element and supply current. Please note that the cable for connecting this heater controller to a heating element is not provided; we recommend the TC200CAB10 male-to-male Hirose connector cable (sold separately below). For the pin assignments needed to adapt the TC300 controller to your heater, please see the Front & Back Panel tab.
Front Panel
Channel 1 and Channel 2 Hirose Connectors
HR10A-7R-6S(73)
Callout | Connection | Callout | Connection |
---|---|---|---|
1 | LCD Screen | 5 | Enable/Disable Button for Channel 1 |
2 | Adjustment Knob | 6 | Hirose Connector for Channel 1 |
3 | Power Switch | 7 | Enable/Disable Button for Channel 2 |
4 | Keypads | 8 | Hirose Connector for Channel 2 |
Pin | Assignment |
---|---|
1 | Heater Output + |
2 | Heater Output - |
3 | Sensor + (4-Wire PT100/PT1000 Only) |
4 | Sensor + |
5 | Sensor - |
6 | Sensor - (4-Wire PT100/PT1000 Only) |
Back Panel
TRIG1 and TRIG2
BNC Female
+5 V CMOS
When set to input: +5 V input will enable the channel, and 0 V input will disable it.
When set to output: outputs +5 V when the channel is enabled and outputs 0 V when the channel is disabled.
ANLG1 and ANLG2
BNC Female
0 to +5 V, 20 kΩ Impedance
Proportional to the actual temperature of the channel; 0 V corresponds to the minimum temperature setting and +5 V corresponds to the maximum temperature setting
Callout | Connection | Callout | Connection |
---|---|---|---|
1 | Analog Output of Channel 1 (ANLG1) | 5 | Analog Output of Channel 2 (ANLG2) |
2 | AC Input Connector | 6 | Cooling Fan |
3 | Trigger of Channel 1 (TRIG1) | 7 | Trigger of Channel 2 (TRIG2) |
4 | USB Type B Connector | 8 | Mono Jack for External Sensor |
External Sensor Connector
2.5 mm Mono Jack
Accepts 2.5 mm stereo earphone jack. The TC300 controller can support thermistors with resistance up to 999 kΩ.
Computer Connection
USB Type B
USB Standard B Cable Included
The TC300 controller is compatible with thermistors such as the TH10K thermistor as well as PT100 (such as Item # TH100PT) and PT1000 types of Platinum Resistance Temperature Detectors. The following specifications are used for determining the set-point and read back values for these types of thermistors and sensors.
Thermistors
When the sensor type is set to NTC1, the TC300 controller measures the resistance value of the thermistors wired to the Hirose connectors on front panel and calculates the temperature based on the “Beta” formulas defined below.R = R0 * eβ[(1/T) - (1/T0)]
R is the resistance in Ω at temperature T
R0 is the nominal resistance in Ω at temperature T0
β is the constant associated with the particular thermistor
T is the temperature in K
T0 is the nominal temperature temperature (usually 298.15 K = 25 °C)
The TC300 controller allows users to set the values of β, R0, and T0. For different thermistors, the actual value of these parameters can vary and can usually be found on their datasheets.
When the sensor type is set to NTC2, the TC300 controller also supports the Steinhart-Hart method to approximate the relation between temperature and thermistor resistance, defined by the following formula:
1/T = A + B * ln(R) + C * (ln(R))3
T is the temperature in K
R is the resistance in Ω at temperature T
A, B, and C are Steinhart-Hart parameters
The TC300 controller allows user input of the A, B, and C parameters. For thermistors that support the Steinhart-Hart method, the actual value of A, B, and C can usually be found on their datasheets.
PT100 and PT1000 Sensors
When the sensor type is set to PT100 or PT1000, the TC300 controller measures the resistance and calculates the temperature of the PT100 or PT1000 platinum resistance temperature detector using the following formula:
R = R0 (1 + A * T + B * T2)
(In accordance with IEC 751, 2:1995-07 [DIN EN 60751; 1996-07])
A = 3.9083 x 10-3 °C-1
B = -5.775 x 10-7 °C-2
R is the resistance in Ω at temperature T
T is the temperature in °C
R0 = 100 Ω for the PT100
R0 = 1000 Ω for the PT1000
The TC300 controller supports 2- and 4-wire connections for both PT100 and PT1000 sensors. When the sensor type is set to PT100 or PT1000, select the “Parameter” option to toggle between the 2-wire and 4-wire connection setting.

Click to Enlarge
Software GUI
Software for the TC300 Heater Temperature Controller
PID Basics
The PID circuit is often utilized as a control loop feedback controller and is very commonly used for many forms of servo circuits. The letters making up the acronym PID correspond to Proportional (P), Integral (I), and Derivative (D), which represents the three control settings of a PID circuit. The purpose of any servo circuit is to hold the system at a predetermined value (set point) for long periods of time. The PID circuit actively controls the system so as to hold it at the set point by generating an error signal that is essentially the difference between the set point and the current value. The three controls relate to the time-dependent error signal; at its simplest, this can be thought of as follows: Proportional is dependent upon the present error, Integral is dependent upon the accumulation of past error, and Derivative is the prediction of future error. The results of each of the controls are then fed into a weighted sum, which then adjusts the output of the circuit, u(t). This output is fed into a control device, its value is fed back into the circuit, and the process is allowed to actively stabilize the circuit’s output to reach and hold at the set point value. The block diagram below illustrates very simply the action of a PID circuit. One or more of the controls can be utilized in any servo circuit depending on system demand and requirement (i.e., P, I, PI, PD, or PID).

Through proper setting of the controls in a PID circuit, relatively quick response with minimal overshoot (passing the set point value) and ringing (oscillation about the set point value) can be achieved. Let’s take as an example a temperature servo, such as that for temperature stabilization of a laser diode. The PID circuit will ultimately servo the current to a Thermo Electric Cooler (TEC) (often times through control of the gate voltage on an FET). Under this example, the current is referred to as the Manipulated Variable (MV). A thermistor is used to monitor the temperature of the laser diode, and the voltage over the thermistor is used as the Process Variable (PV). The Set Point (SP) voltage is set to correspond to the desired temperature. The error signal, e(t), is then just the difference between the SP and PV. A PID controller will generate the error signal and then change the MV to reach the desired result. If, for instance, e(t) states that the laser diode is too hot, the circuit will allow more current to flow through the TEC (proportional control). Since proportional control is proportional to e(t), it may not cool the laser diode quickly enough. In that event, the circuit will further increase the amount of current through the TEC (integral control) by looking at the previous errors and adjusting the output in order to reach the desired value. As the SP is reached [e(t) approaches zero], the circuit will decrease the current through the TEC in anticipation of reaching the SP (derivative control).
Please note that a PID circuit will not guarantee optimal control. Improper setting of the PID controls can cause the circuit to oscillate significantly and lead to instability in control. It is up to the user to properly adjust the PID gains to ensure proper performance.
PID Theory
The output of the PID control circuit, u(t), is given as

where
Kp= Proportional Gain
Ki = Integral Gain
Kd = Derivative Gain
e(t) = SP - PV(t)
From here we can define the control units through their mathematical definition and discuss each in a little more detail. Proportional control is proportional to the error signal; as such, it is a direct response to the error signal generated by the circuit:

Larger proportional gain results is larger changes in response to the error, and thus affects the speed at which the controller can respond to changes in the system. While a high proportional gain can cause a circuit to respond swiftly, too high a value can cause oscillations about the SP value. Too low a value and the circuit cannot efficiently respond to changes in the system.
Integral control goes a step further than proportional gain, as it is proportional to not just the magnitude of the error signal but also the duration of the error.

Integral control is highly effective at increasing the response time of a circuit along with eliminating the steady-state error associated with purely proportional control. In essence integral control sums over the previous error, which was not corrected, and then multiplies that error by Ki to produce the integral response. Thus, for even small sustained error, a large aggregated integral response can be realized. However, due to the fast response of integral control, high gain values can cause significant overshoot of the SP value and lead to oscillation and instability. Too low and the circuit will be significantly slower in responding to changes in the system.
Derivative control attempts to reduce the overshoot and ringing potential from proportional and integral control. It determines how quickly the circuit is changing over time (by looking at the derivative of the error signal) and multiplies it by Kd to produce the derivative response.

Unlike proportional and integral control, derivative control will slow the response of the circuit. In doing so, it is able to partially compensate for the overshoot as well as damp out any oscillations caused by integral and proportional control. High gain values cause the circuit to respond very slowly and can leave one susceptible to noise and high frequency oscillation (as the circuit becomes too slow to respond quickly). Too low and the circuit is prone to overshooting the SP value. However, in some cases overshooting the SP value by any significant amount must be avoided and thus a higher derivative gain (along with lower proportional gain) can be used. The chart below explains the effects of increasing the gain of any one of the parameters independently.
Parameter Increased | Rise Time | Overshoot | Settling Time | Steady-State Error | Stability |
---|---|---|---|---|---|
Kp | Decrease | Increase | Small Change | Decrease | Degrade |
Ki | Decrease | Increase | Increase | Decrease Significantly | Degrade |
Kd | Minor Decrease | Minor Decrease | Minor Decrease | No Effect | Improve (for small Kd) |
Tuning
In general the gains of P, I, and D will need to be adjusted by the user in order to best servo the system. While there is not a static set of rules for what the values should be for any specific system, following the general procedures should help in tuning a circuit to match one’s system and environment. In general a PID circuit will typically overshoot the SP value slightly and then quickly damp out to reach the SP value.
Manual tuning of the gain settings is the simplest method for setting the PID controls. However, this procedure is done actively (the PID controller turned on and properly attached to the system) and requires some amount of experience to fully integrate. To tune your PID controller manually, first the integral and derivative gains are set to zero. Increase the proportional gain until you observe oscillation in the output. Your proportional gain should then be set to roughly half this value. After the proportional gain is set, increase the integral gain until any offset is corrected for on a time scale appropriate for your system. If you increase this gain too much, you will observe significant overshoot of the SP value and instability in the circuit. Once the integral gain is set, the derivative gain can then be increased. Derivative gain will reduce overshoot and damp the system quickly to the SP value. If you increase the derivative gain too much, you will see large overshoot (due to the circuit being too slow to respond). By playing with the gain settings, you can maximize the performance of your PID circuit, resulting in a circuit that quickly responds to changes in the system and effectively damps out oscillation about the SP value.
Control Type | Kp | Ki | Kd |
---|---|---|---|
P | 0.50 Ku | - | - |
PI | 0.45 Ku | 1.2 Kp/Pu | - |
PID | 0.60 Ku | 2 Kp/Pu | KpPu/8 |
While manual tuning can be very effective at setting a PID circuit for your specific system, it does require some amount of experience and understanding of PID circuits and response. The Ziegler-Nichols method for PID tuning offers a bit more structured guide to setting PID values. Again, you’ll want to set the integral and derivative gain to zero. Increase the proportional gain until the circuit starts to oscillate. We will call this gain level Ku. The oscillation will have a period of Pu. Gains are for various control circuits are then given below in the chart.
Posted Comments: | |
user
 (posted 2023-05-12 22:10:28.16) Dear Thorlabs,
I would like to use the TC300 on a new lab laptop with windows 11. Unfortunately the software is only compatible with windows 7 and 10. Are there any possibilities to still use it on windows 11? jdelia
 (posted 2023-05-18 11:57:24.0) Thank you for contacting Thorlabs. Per our experience, TC300 software will be fine to work on Win11. We will contact you for some further troubleshooting. user
 (posted 2023-01-13 16:34:12.457) Dear Thorlabs Team,
I purchased the TC300 a while ago and am a little dissapointed about its limited usability.
While I understand that its primary application is to drive resistive heaters I do not understand why it does not allow for a negative set temperature. For Example, it is not possible to heat from -200 C to -195 C and keep the temperature stable via the PID. (The current mode is no solution either because it does not read out the temperature. Custom programming with the SDK is also out of the question since I don't have access to a PC at its intended location and it would also defeat the purpose of an integrated PID controller)
Also a big shortcoming is the lack of a "cooling" mode, since you already offer Single-Stage TEC Elements with matching specifications.
Those two things are in my eyes the biggest shortcomings of this device. Otherwise, it would have made for a great and versatile temperature controller with its 6-pin Hirose cable connector. Right now it is "fine".
I hope those shortcomings will be addressed with future firmware updates. jdelia
 (posted 2023-01-18 10:26:03.0) Thank you for contacting Thorlabs. At the moment, the TC300 is shipped with the range of the target temperature set to 0 to 200 ⁰C by default. The lower and upper limit of this range can be extended to -200 ⁰C and 400 ⁰C respectively by changing the value of corresponding parameters in the channel setting menu. However, the default PID settings are configured for room temperature applications and thus may not be suitable when the temperature is significantly lower. Users may need to manually fine tune the P, I, and D share value in order to achieve optimum performance. We are working on a new firmware with a new feature of PID auto-tune which could help users to find the best PID settings for their application without the need of lengthy manual tuning. Unfortunately, the current hardware of TC300 does not support cooling by TEC. The development of a new generation of TC300 that are compatible with TECs are already underway. user
 (posted 2022-10-24 22:22:28.837) Dear Thorlabs,
I am interested in your TC300 Temperature Controller. I hope control it with Python. Is it possible to control TC300 by Python programming? If possible, could you please offer the example files?
Thanks. cdolbashian
 (posted 2022-10-31 01:02:24.0) Thank you for contacting Thorlabs. The software v1.0.0 for the TC300 contains the SDK that supports Python. The SDK manual and example can be found by clicking the "Help" button within the software application. user
 (posted 2022-10-07 11:02:00.21) We experience a problem with the TC300 with long-term usage. It switches off the output automatically after about 1 week. Is there a temporal usage limit in the firmware or counters resetting? ksosnowski
 (posted 2022-10-10 12:51:40.0) Thank you for contacting Thorlabs. Our TC300 does not have any temporal usage limit or counters. Your local tech support team has reached out directly to you for trouble shooting. Martin Callejo
 (posted 2022-08-31 17:52:03.25) Hello,
I would appreciate some technical support.
I'm currently trying to use the TC300 to heat a vapor reference glass cell using a couple of GCH25R thorlabs cap heaters.
I'm having trouble reaching a temperature of 80deg celsius with PID=(0.04, 0.04, 0.0), tau=100ms. The system reaches 77deg and is stable to +-0.01, but the PI control is unable to correct the steady state error of aprox. 3deg.
Increasing P creates oscillations, increasing I above the P value doesn't seem to do nothing.
What are the precise definitions of the PID parameters? Does the PID algorithm have modifications to protect from overshoot?
(i would be nice to include a PID formula in the manual)
Thanks in advance! cdolbashian
 (posted 2022-09-07 03:11:21.0) Thank you for contacting Thorlabs. The "P" portion of the PID loop seems appropriate, but the "I" component needs further tuning, considering increase "I" share to decrease the offset. More PID information can be found in the “PID Tutorial” tab (https://www.thorlabs.com/newgrouppage9.cfm?objectgroup_id=14852&tabname=PID%20Tutorial). Additionally, it's worth checking if the current and voltage limits are set correctly to avoid that there is not enough heating power provided by the heating element in combination with TC300 to eliminate the 3 degree offset. And to avoid dissipating too much heat into the environment at higher temperature, a better thermal isolation would be helpful. |

- Heating from -200 °C to 400 °C
- Run Standalone or via Software
- Programmable PID
The TC300 Heater Temperature Controller is a benchtop controller intended for use with resistive heating elements rated up to 48 W. User-programmable maximum temperature and current/voltage limits protect the connected heating element from being overheated or over driven. Other safety features include an Open Sensor Alarm that will shut down the driver if the temperature sensing element is missing or becomes disconnected.
Capable of standalone operation from a simple keypad interface, this controller can be interfaced with a PC using a standard USB Type B connector using our TC300 Application Program, LabVIEW drivers, LabWindows drivers, or using a simple command-line interface from any terminal window.

Pin | Color | Pin | Color | Pin | Color |
---|---|---|---|---|---|
1 | Orange | 2 | Blue | 3 | Green |
4 | Red | 5 | White | 6 | Yellow |
Specifications | |
---|---|
Connectors | 6-Pin, Male Hirose |
Length | 10 Feet (3 m) |
- 6-Pin, Male-to-Male Hirose Connector Cable
- Compatible with Several of Our Products
- Cut and Expose Wire for Custom Applications
The TC200CAB10 is a 6-pin, male-to-male Hirose connector cable. This 10-foot-long cable is compatible with our TC300 heater temperature controller*, SH05R(/M) and SH1(/M) beam shutters, and SC10 shutter controller. This is not a straight-through cable; the wires in this cable cross, as seen in the drawing to the right.
This Hirose connector cable can also be cut to length, leaving one connectorized end and one bare end. The colored wire diagram and table to the right shows the relationship between the six colored wires and the pins in the connector so the cut cable can be incorporated into a variety of custom applications.
* Note that the maximum output current of the TC300 Heater Temperature Controller is 2 A per channel, which exceeds the maximum current of this cable. When using this controller and cable together, it is important to set a current limit of 1.2 A, following the procedure in Chapter 6.3 of the TC300 manual.