In my family, we’ve never had a normal television set, using projectors for our entertainment needs instead. Now, while projectors have their benefits over normal televisions, they are more temperamental and have some drawbacks. For me, the largest drawback is the fan noise and, as I currently have a DLP projector, the whine of the color wheel. So, I decided to create a hushbox. My biggest requirement was that the hushbox requires no user input to turn it on or off. I didn’t need another step that I could potentially forget and fry my projector. With that, I decided on a microcontroller-based system that took periodic temperature samples and turned the fans on and off as needed. I was exploring the STM32F4 at the time and decided to use the Discovery board as my basis. I also wanted to include an LCD temperature display so I could see how hot the inside of the box was getting and also to act as an interface to detect if anything was going wrong.
I separated the project into three parts — electronics hardware, firmware, and hushbox enclosure. Let’s start with the electronics.
As the key to the project was to reduce noise, I needed the quietest fans I could find. I settled on two 140-mm 12-VDC fans, which, honestly, are still louder than I’d like but not too bad. I chose the TMP36 from Analog Devices as it has a simple analog output that I could read with an ADC. I chose a Lumex 2.5-character TN 7-segment display as I wanted a non-light-producing display and minimal power consumption. I settled on 2.5 characters because if my temperature goes over 199 degrees, I have big issues.
You can see how I connected it all in the figure. I want you to note that the FET controlling the fans is “downstream” of the fan. The STM32F4 runs on 5 VDC with the fans on 12 VDC, while they share a ground. If you put the FET above the fan, then the 5-VDC GPIO output of the STM32F4 won’t reach a high enough voltage to get the FET conducting. It makes sense, but if you’re like me, you may not have thought about it. Also, please note that PD15_COMMON is not connected to ground but to a GPIO on the microcontroller. The rationale for this will be explained later.
I’ll do a post on the software next, which may not be more interesting than the hardware but certainly much more complicated. As it is, you can see what the setup looks like using a breadboard — a bit of a jumbled mess!