Tiny PID controller to control the temperature of anything!

Similar projects worth following
Therm is a very small PID controller with an OLED display and USB. It supports driving a solid-state relay for driving large loads, or a transistor for driving small loads. When attached to a computer, it will support live graphing and uploading of data. The design is based around a STM32F0 microcontroller and the MAX31855 thermocouple-to-digital IC.

I started this project as a way to start developing with the STM32 line of ARM microcontrollers, as most of my previous experience has been with AVRs. My goal is to create a very small PID controller with onboard display and USB on a single-side-populated PCB so they can be manufactured cheaply.

Currently I have all of the peripherals (except USB) up and running and my code is partially complete. Over time I will post more information about what I've already done and problems that I have solved. The source code will be made open-source once I'm a little further along.

  • 1 × STM32F042 Microprocessors, Microcontrollers, DSPs / ARM, RISC-Based Microcontrollers
  • 1 × SSD1306 128x32 OLED Display
  • 1 × MAX31855

  • Rev.2 Up and Running

    ethanzonca04/07/2015 at 16:56 0 comments

    Therm rev2 is up and running! I don't have any photos of it actually powered up at the moment, but I have it running a sous vide setup to verify that everything is working properly. Software has been ported to the new micro and basic temperature reporting over a USB virtual serial port works as well.

    Since my new micro does not have EEPROM, I need to rewrite my save/restore functionality to read and write from flash. Once I wrap that up along with some other tweaks, therm should be completely usable!

    I'll add photos of the updated design and links to source in the coming weeks.

  • Rev 0.2

    ethanzonca12/01/2014 at 21:52 0 comments

    The second revision of Therm is out for fabrication! I included breakaway mounting tabs and switched to a new (smaller) processor. More updates will come soon...

  • Up and running!

    ethanzonca09/22/2014 at 17:21 0 comments

    The first prototype therm board is up and running! I currently have it regulating the temperature on my espresso machine. Thermocouple readings seem much more stable than my last design based on the MAX6675, and a faster PID loop has greatly increased temperature stability at rest. I'll post some photos and more information soon.

View all 3 project logs

Enjoy this project?



Brandon Myles wrote 04/14/2020 at 08:43 point

Hey Ethan do you still have this prototype available 

  Are you sure? yes | no

David H. wrote 03/06/2019 at 19:05 point

There are commercially available STM32 based soldering iron controller with an OLED screen, rotary encoder and a beeper available for $30, surely the code can be adapted to run an espresso boiler instead. Someone reverse engineered and made this

  Are you sure? yes | no

Chauncey wrote 11/25/2018 at 06:05 point

Could  you share your code with us? I want to learn more about this project.

Thank you.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates