DIY Temperature Controlled Chamber Box With Peltier TEC Module




Introduction: DIY Temperature Controlled Chamber Box With Peltier TEC Module

About: DIY Master

I have assembled Temperature Controlled Chamber Box for testing small electronic boards. In this tutorial I have shared my project including source files and link to Gerbers files to make the PCB.

I have used only cheap commonly available materials that where found in my stock. All electronic parts are DIP throughole for easy soldering.

The key of this project is controlling software that I still working on it. PIC controller uses PWM to control TEC current in cooling mode. You can see the graph of TEC current vs PWM dutycycle. Your setup maybe different.

To allow heating mode the circuit uses 2 high quality relays to reverse TEC polarity. Heating mode of the firmware currently works only as on/off mode that is not ideal for TEC lifetime, however since heating require less current and here in my location I not really need heating, I was less focused on heating mode programming.

Step 1: Heatsink Assembly

Order and prepare parts and materials according the BOM.

1. Install MF40101VX-1000U-A99 fan on ATS-CPX060060025-132-C2-R0 heatsink with self tapping screws.

2. Peltier 12704 module is placed with thermal grease between Accelero S1 and ATS-CPX060060025-132-C2-R0 Heatsink. The heatsink fixed with 4pcs of 50M020040N016 screws, M3x6mm standoffs spacers and M2 nuts. Some Accelero revisions does not need the M2 nuts as M2 screws can be inserted directly into the stock holes. Check that Peltier is fixed properly and evenly. Hot side is toward Accelero S1.

3. Install EE80251S2-1000U-999 fans on hot heatsink. For hot side you can use cable ties.

4. Test that the assembly is working and generate heat and cold.

5. Make or find 2 Litre internal volume styrofoam box.

6. Make 6x6 cm hole in the box to install the heatsink assembly. The cold side heatsink have to be inserted properly into the internal space. Use Super 7 Hybrifix Sealant to insulate around the heatsink.

7. Insert Adafruit Waterproof DS18B20 into the box.

8. Add additional styrofoam layer to the box for better insulation.


Step 2: Making the Electronics

1. Burn the TController.hex firmware into PIC16F628A

2. Solder controller and driver boards. On XL4005 module you need to wire FB pin to the FB marked pad on the PCB with small wire. See the photos.

3. In 12V 10A power supply adjust the output to 13V, it has small potentiometer close to the terminals. Connect 13V to the driver electronic boards. Connect 5V to the VCNTL terminal block connector input and set XL4005 poterntiometer to get about 2.00V on the TEC output.

4. Wire controller board with LCD. Remember to wire from the controller board to driver board RL1, RL2, VCTRL wires. Connect the TEC, electronics and fans to the 10A 13V power supply.

You can download PCB Gerber files here:

You can download the firmware source file here:

Step 3: Testing Box and Adjusting Source File

Test the thermobox default firmware. With 2 litre volume box you should be able to set from 0C to 60C. In heating mode you may need to keep the door open, depend on temperature, of course. In cooler mode check that the door is closed well.

Thermobox controller will be less stable on temperatures close to your room temperature because the fimware algorithm is far from being ideal. The code is open source, so you are welcome to modify it or to send me your suggestions.

You can modify and recompile the firmware with freeware demo version Mikroe MikroBasic IDE because the code is less than 4K. When you change temperature the box need setup time to reach the temperature value, it may overcold or overheat until it gets the correct levels, it normal!

Things to do:

- make the door with cable terminals for easy connection of the board under test to the external meters

- improve PIC controller algorithm

- add termistor probe for additional control / monitor

Step 4: Adding Door With Cable for Connecting Board Under Test

Later I made the door with additional 10K termistor sensor and USB cable for connecting the board under test. The door internal terminal should enter the box tightly. I smeared hybrifix super-7 on the styrofoam part to make it stronger and less crumble.

Be the First to Share


    • Summer Fun: Student Design Challenge

      Summer Fun: Student Design Challenge
    • Fandom Contest

      Fandom Contest
    • Backyard Contest

      Backyard Contest


    Richard Greymans
    Richard Greymans

    2 months ago

    Hello, I tried burning your TController.hex on my Pic K150 programmer and it came with an error at eeprom 0x0001. Can you help me solve this problem?
    Thank you!


    Reply 2 months ago

    K150 does not read and not set configuration words from the hex file. You need to set configuration words manually or to use Pickit programmer.

    Richard Greymans
    Richard Greymans

    Reply 2 months ago

    Thank you for your response, I have bought a Pickit3 programmer and I am now able to burn your hex code on the PIC. The second row of the LCD shows 0.0625 C. I tried changing the mbas source code, I created a new project in mikrobasic in order to generate a new hex file but when I try to burn it on the PIC the following error occurs: ".HEX contains code that is located at addresses that do not exist on the PIC16F628A". Is there a way to directly compile your mbas in mikrobasic without creating a new .mbppi file?


    11 months ago

    Is the fan on the left meant to cool the power supply, or something else that I'm missing?


    Reply 11 months ago

    The cheap eBay XL4005 buck module I have used to drive the TEC current is not designed well to dissipate heat, it has very small ground poligone for current above 1A. That's why it require active cooling like fan.