Open-Source Thermostat Won’t Anger Your Landlord

[Nathan Petersen] built a Hackable Open-Source Thermostat to smooth out temperature fluctuations caused by the large hysteresis of the bimetallic strip thermostat in his apartment. While it may be tempting to adjust the “anticipator” to take care of the problem or even replace the bimetallic thermostat with an electronic version, building your own thermostat from scratch is a good way to add to your project portfolio while making your way through college. Plus, he got to hone his hardware and software design chops.

The hardware is designed around the STM32, using a cheap, minimal variant since the device just needs to sense temperature and control the furnace in on-off mode. The TMP117 high-accuracy, low-power, temperature sensor was selected for temperature measurement since accuracy was an essential feature of the project. Dry-contact output for the furnace is via a normally-open solid state relay (opto-isolator). For the user interface, instead of going the easy-route and using an I2C/SPI OLED or LCD display, [Nathan] used three 7-segment LED displays, each driven by an 8-channel constant current driver. The advantage is that the display can be viewed from across the room, and it’s brightness adjusted via PWM. Temperature set-point adjustment is via a simple slide potentiometer, whose analog voltage is read by the micro-controller ADC. To remind about battery replacement, a second ADC channel on the micro-controller monitors the battery voltage via a voltage divider. The PCB components are mostly surface mount, but the packages selected are easy enough to hand solder.

[Nathan]’s Github repo provides the hardware and firmware source files. The board is designed in Altium, but folks using KiCad can use either the awesome Altium2KiCad converter or the online service for conversion. (The results, with some minor errors that can be easily fixed, are quite usable.) Serendipitously, his PCB layout worked like a charm the first time around, without requiring any rework or bodge wires.

The firmware is a few hundred lines of custom bare-metal C code, consisting of drivers to interface with the hardware peripherals, a UI section to handle the user interface, and the control section with the algorithm for running the furnace. [Nathan] walks us through his code, digging into some control theory and filtering basics. After making a few code tweaks and running the thermostat for some time, [Nathan] concludes that it is able to achieve +0.1°F / -0.5°F temperature regulation with furnace cycles lasting about 10-15 minutes (i.e. 4-6 cycles per hour). Obviously, his well insulated apartment and a decent furnace are also major contributing factors. Moving on, for the next version, [Nathan] wants to add data collection capabilities by adding some memory and SD card storage, and use an RTC to allow seasonal adjustments or time-based set-points.

This is his first attempt at a “functional’ useful project, but he does love to build the occasional toy, such as this POV Top.

Old Gas Meter Gets Smart With The ESP8266

Measuring the usage of domestic utilities such as water, gas or electricity usually boils down to measuring a repetitive pulse signal with respect to time. To make things easy, most modern utility meters have a pulsed LED output, which can be used to monitor the consumption by using an external optical sensor. But what do you do if your meter isn’t so cooperative?

That’s exactly what [Francesco] had to figure out while developing the non-invasive gas tracking system he calls ESPmeter. His meter might not have an LED, but it did have a magnet attached to the counter disk which activated an internal hall sensor. With some hacking, he was able to attach an external Hall-effect sensor to pick up this magnet and use the signal to monitor his daily gas consumption.


A big stumbling block in such projects is the issue of powering the device for an extended period, and remembering when it’s time to change the batteries. With the clever use of commonly available parts, he was able to reduce power consumption allowing three AA batteries to last about a year between changes. For one thing, he uses an ATtiny13 to actually read the sensor values. The chip doesn’t run continuously, its watchdog is set at 1 Hz, ensuring that the device is woken up often enough so that it has time to power up the sensor and detect the presence of the magnet. Battery voltage is also measured via a voltage divider connected to the chip’s ADC pin.

At regular intervals throughout the day, the ESP8266 polls the ATtiny13 to pull the stored sensor pulses and voltage measurement. Then at midnight, the ESP transmits all the collected data to a remote server. Overall, this whole scheme allows [Francesco] to reliably gather his gas consumption data while not having to worry about batteries until he gets the low voltage notification. Since the data visualization requirements are pretty basic, he is keeping things simple by using Plotly to display his time series data.

If you are unfortunate enough to have an even older meter which doesn’t use optical or magnetic rotation sensing, you can use a disassembled mouse to keep track of the Gas Meter.

A Heat Reclaimer For Your Woodstove; The One Thing It’s Not Is Cool

It’s the middle of winter for those of us who live in the Northern Hemisphere, which naturally turns minds towards heating, or sometimes the lack of it. It’s particularly difficult for those who rely on a wood stove to escape the feeling that perhaps most of that hard-won heat may be whistling up the chimney rather than keeping them warm. It’s a problem [Lou] has addressed with his DIY chimney heat reclaimer.

As can be seen from the video below the break, his stove appears to be in a workshop, and has a long single-wall metal stove pipe. Over the outside of this he’s placed a pair of T pieces joined by a longer length of pipe all of a larger bore, and a mains-powered fan forces air through this air jacket. The result is a continuous flow of hot air that he claims delivers a 45% heat reclamation. We’re curious though whether the reduction in flue temperature might cause extra tar condensation and thus the build-up of flammable material further up the chimney. The stove itself is a double barrel affair with access for smoking, and the video describing it is worth a look in itself.

Whatever the stove, be sure to ensure a constant supply of fuel!

Continue reading “A Heat Reclaimer For Your Woodstove; The One Thing It’s Not Is Cool”

Keeping An Eye On The Water Heater Pilot Light

[WJCarpenter]’s gas water heater uses a small pilot light that needs to stay burning permanently to ignite the main burners as required. Four or five times a year, the pilot light goes out and needs to be manually lit. This involves an expedition from the upstairs bathroom to the basement, always in the early morning, after having spent a few fruitless minutes waiting for hot water. Having grown tired of this exercise, [WJCarpenter] built Water Watcher, a pilot light monitoring system with some ESPs and a light sensor.

Water Watcher consists of an ESP8266 connected to a light sensor taped to the inspection window of the water heater. It reports the status of the pilot light over MQTT to an ESP32-based M5 Atom Matrix in the main bedroom, which displays it using a 5×5 RGB matrix, as demonstrated after the break. Both ESPs run ESPHome, so programming is as easy as giving it a YAML config file. [WJCarpenter] tested a few different light sensors, until he found the TSL2591, which is sensitive to the right wavelengths and has enough dynamic range for watching a pilot light.

This might not be a complicated hack, but we do not doubt that it reduces frustration a bit on those fateful mornings. Be sure to check out the Water Watcher project page, it’s an entertaining read! Continue reading “Keeping An Eye On The Water Heater Pilot Light”

Automated Balcony Shade Uses NFC

[Udi] lives in an apartment with a pleasant balcony. He also has three kids who are home most of the time now, so he finds himself spending a little more time out on the balcony than he used to. To upgrade his experience, he installed a completely custom shade controller to automatically open and close his sunshade as the day progresses.

Automatic motors for blinds and other shades are available for purchase, but [Udi]’s shade is too big for any of these small motors to work. Finding a large servo with a 2:1 gear ration was the first step, as well as creating a custom mount for it to attach to the sunshade. Once the mechanical situation was solved, he programmed an ESP32 to control the servo. The ESP32 originally had control buttons wired to it, but [Udi] eventually transitioned to NFC for limit switch capabilities and also implemented voice control for the build as well.

While not the first shade controller we’ve ever seen, this build does make excellent use of appropriate hardware and its built-in features and although we suppose it’s possible this could have been done with a 555 timer, the project came together very well, especially for [Ubi]’s first Arduino-compatible build. If you decide to replicate this build, though, make sure that your shade controller is rental-friendly if it needs to be.

Continue reading “Automated Balcony Shade Uses NFC”

Serving The Feline Masters: A Chair To Follow The Sunny Spot

Terry Pratchett once wrote, “In ancient times cats were worshipped as gods; they have not forgotten this”. [Jonathan]’s cat has clearly not forgotten, and makes it loudly known whenever her favorite chair needs to be moved to stay in the spot of sunlight. He was looking for a fun hack anyway, so he decided to give in to her majesty’s demands, and automated the task.

[Jonathan] first considered adding motorizing the chair itself, but decided to keep it simple and just drag the chair across the room with a spool attached to a motor. The rope spool was attached to a small geared DC motor, mounted on a salad bowl base, and connected to an ESP8266 via a motor driver. The ‘8266 is running  NodeMCU with a web server that accepts simple motor commands through a RESTful API. This setup can’t reset the chair to it’s starting position at the end of the day, but this is a small price to pay for simplicity. The motor was a bit underpowered, but it only needed to move the chair in small distances at a time, so [Jonathan] removed the chair’s back to reduce the weight, and upped the motor voltage.

Determining when and how far to move the chair is the second part of the challenge. [Jonathan] considered a simple lookup table for the time of day, but the motor’s movement wasn’t consistent enough. The final solution was a set of three BH1750 digital ambient light sensors to give feedback. A pair of sensors on the chair determines its position relative to the sunny spot, by comparing light levels to a reference sensor mounted in the window. These light sensors are also attached to NodeMCUs, and send movement commands to the winding unit as necessary.

Continue reading “Serving The Feline Masters: A Chair To Follow The Sunny Spot”

Is Your Echo Flex Listening?

We are always surprised that Amazon or Google doesn’t employ Kelsey Grammer — TV’s Frasier — as a spokesman for their smart home devices. After all, his catchphrase was, “I’m listening…” Maybe they don’t want to remind you that the device could, theoretically, be sending everything you say to them or a nefarious hacker or government agency. Sure, there’s a mute button and it lights up a red LED.

But if you are truly paranoid, that’s not enough. After all, the same people want to eavesdrop on you would be happy to fake a red light. [Electronupdate] had the same thought and decided to answer the question: does the mute button really mute your microphone? The answer required not only some case opening and analysis, but there was even some IC decapsulation.

We were impressed with the depth of the analysis. The tiny SMD parts are marked confusingly, and if you are really paranoid you don’t believe them anyway. But looking at the actual circuit die is pretty unambiguous. The  parts in question turned out to be a Schmitt trigger, a flip flop, and a NAND gate.

Continue reading “Is Your Echo Flex Listening?”