ATtiny2313 Based Thermostat Final Update

Finally, I had some time to do video on my thermostat project, and to upload all the project files.

Here’s previous project posts:

I made this project specifically for beginners, so they can learn some stuff from it. Not just blindly copy it, but to pick some new things, to actually learn.

In the video I promised high-res photos, but currently I’ve put out only screenshots. I’ll upload high-res photos after my next video about making front panels.

This project is released under Creative Commons Attribution-ShareAlike 3.0 License, which simply means, that you can do pretty much anything you want with it, but you have to link back to my website as a original source and use similar or the same license.

I hope you enjoyed it! Project files down below!

Project Files


1 ping

  1. Chiper says:

    Very nice view.

    1. admin says:

      But still lacking some color :)

      1. JasonG says:

        I thought the B&W design looks pretty nice and clean, don’t sweat it :)

  2. Chiper says:

    I look forward to the next video

  3. BTFdev says:

    Once again, great article.

    We enjoyed it very much. Phil, if possible we recommend you make a video or article on

    1. Programming Microprocessor
    - Microprocessor selection (why select 2313 for this thermo project)
    - Talk about development platform (Atmel AVR studio usage, tips and tricks)
    - Program upload to chip and testing

    2. Prototyping to Eagle drawing
    - Once prototyping is completed, how Eagle drawing is create
    - Simple Eagle usage, tips and tricks
    - Side by side breadboard and Eagle drawing comparison

    Thanks and Cheers. BTFdev

    1. admin says:

      I thought about that topics before, but there is plenty of high-quality tutorials could be found on the Internet (Eagle tutorials, stuff about AVR Studio, etc.)

      And I’ve talked about selecting MCU for this project in previous parts (if I remember correct).

      But anyways, thanks for your recommendation!
      - Phil

      1. JasonG says:

        Yes, I was wondering about the programming of the 2313, if you used a separate board to do that, or if you managed a direct hookup.

        In school I recently worked on a digital thermometer project using a 2313 and TMP03 sensor (no control, just BCD temp display using 7 leds). We hosted the 2313 on the Evil Mad Scientist dev board and were using the MkII programmer from AVR. We found the programming was quirky from the AVR Studio and didn’t work at all using an alternate programmer (the USBtiny from ADAfruit). No amount of fiddling would allow the USBtiny to work from AVR studio, WinAVR command line or anything; very frustrating :(

        So what programmer are you using? The programmers from AVR are expensive!

  4. John Sweden says:

    Good to see you back Phil. I’ve missed you :) Once again, beautiful construction of your thermostat project!

    1. admin says:


  5. Bruno-Lundh says:

    Looking forward to next video. :)

  6. zorif says:

    good one.
    i liked the front panel design.
    is it laser engraved or screen print?

  7. Bengt samuelsson says:


    I realy like tour stuff here, and im wating for next video on that panel making.

  8. Opt says:


    Nice project, but i have a questions.
    How to programming 2313.
    How do you set the fuse bite?
    The clock set 8Mhz internal. Is this correct?
    Do you have picture how do you set settings in avr studio?

  9. DGK Electronics says:

    Hello, I am David Kräuter and I have one question. Can you tell me how to make this paper texture, example: on your Thermostat. I need it. Thanks! Bye

  10. Laszlo Toth says:


    Built the thermostat functions work well. Two bug fixes to help me.
    Thermometer not accurate +2 C higher than the measurement.
    LED display flashes rhythmically dimmed / 1 Hz /
    Where to look for the error? I

    I thank Laszlo Toth of Hungary

  11. Luciano says:

    Hi, congratulations, beautiful project
    are still impractical with micro, I would like to ask you some information:
    I plan on micro 1) flash hex file + 2) eep file
    sets fuse bits
    Low = 0×64
    High = 0xDF
    Extended = 0xFF.
    The display works but flickers and does not read the DS18B20.
    You tell me where I’m wrong?
    Thanks to Luciano

  12. Beny says:

    Nice project in the video, but I built the thermostat and didn’t work properly.
    I have the same problems as Luciano: the display works but it flickers and the microprocessor does not read the DS18B20.
    I think something is wrong with the hex file. Can you help?

    1. admin says:

      Hi Beny,

      I think that the problem is in timing. By default in most (if not all) Atmel microcontrollers fuse bit number 7 (CKDIV8) is set (“0″), which effectively divides system clock by 8.
      What you want to do is to unset that fuse bit, so that system clock would be exactly what’s written on the crystal you put in.
      So, check the system clock frequency. (Fuses)


      1. Beny says:

        Hi Phil,

        Thanks for your quick answer. I omitted that option, although I have followed “AVR Fuse Calculator” instructions and I have tried different timing settings, with same results, except the frequency of flickering and finally the burning of the microprocessor :)
        Now I understood what the problem is. As soon as I buy another microprocessor, I’ll try to fix it.
        Thanks again!

  13. Skleb says:

    Hi Phil,

    I’m still waiting for your next video on how to make front panel labels.
    I need it for my next project.


  14. benedetto says:

    Hi Phil,
    I built your termometer but the avr doesn’t read the sensor Ds18B20,
    i bougth two sensor and each one have two different address but no one are working with my termometer.
    Are the address different from your original device and if so which address i have to set on my sensor or which address modify on your program to work with my termometer?
    or the address is non important and i have another problem?
    Thank a lot for your help.

  15. yannick says:


    great job, i like it.
    where did you find/ buy the display smd connector …

    thank for your help.

  16. Me says:

    Hello dear phil how do you do?
    I did make the project which you share it in the net all are ok and good but no reading from sensor is happen also I changed and test with different sensor but no reading I don’t know why? Also all display work with fast blink.
    No relay function also so please if possible give me some idea that I can solve my problem. That’s good idea you know I am not professional in avr microcontroller and if possible write me in simple language that I can understand it so easy
    Best regards media
    few days ago I posted this massage but no answer that’s why I post it again.

  17. Ant101 says:

    Hey Phil,
    Nice project I have learnt so much trying to build this and thank you for sharing.
    I have a question, why does the display show OFL? Sometimes, according to the code this is the display buffer overflow? What does this mean.
    Also on Atmel studio 6 (not 5) the C code compiles larger than the attiny2313 2K limit, can you advise a better compiler for your code to make it nice and small like you have, or should I try and download atmel studio 5.
    Thanks for a great and well documented project , it rocks!

  18. mamerto says:

    ,,,hello good morning nice project?

  1. Термостат на Attiny2313 | MyLinks says:

    [...] мощной нагрузкой стемпературным гистерезисом - здесь. Питание – от сети переменного напряжения 230В. [...]

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>