I just wanted to share a temperature controller setup I just put together.
I converted a chest freezer into a fermentation chamber controlled by a Ranco ETC. I strapped a hot/cold pack to the side of the carboy to cover the probe since I don't have a thermowell. From some preliminary tests, it seems to be within ± 0.5 °F from the actual wort temperature.
It was working pretty well, except every heating/cooling cycle was overshooting the setpoint by about 3-4 °F. After playing around with a few different configurations, I remembered something from the herpetological community. For extra safety, some people will chain temperature controllers together with the first set a couple degrees above the second to prevent one from failing open. In this case I setup the first controller to measure the ambient temperature inside the chamber set about 10 °F above/below the setpoint of the controller measuring the carboy.
This kept the chamber temperature from becoming too drastically different from the desired temperature of the carboy. So far it has completely eliminated overshoot.
In case what I'm describing sounds convoluted, here's the gist of it:
power -> chamber controller -> carboy controller -> heater/freezer
set @ 58 °F set at 68 °F
5 °F deadband 1 °F deadband
In that example, the chamber will cool down to 58 °F then cut off the power to the carboy controller (and subsequently the freezer) until the chamber temperature is back up to 63°F.
You can tweak those settings until you eliminate overshoot.
Somewhat kludgey, but it's infinitely better than bouncing temperatures across a 5 °F range.
One of these days I'll get around to building an Arduino based PID controller, but until then it's pretty good.