HopperHawk

My pellet monitoring system for pellet smokers!

HopperHawk

Similarly to KegWatch, HopperHawk (creativity points to my friend Teagan for coming up with the name) was born out of a need from one of my many hobbies…smoking meat! I personally have a pellet smoker and sometimes on those long overnight smokes it is hard to gauge if there are enough pellets in the hopper. Some smokers actually include pellet monitoring as a feature, and Traeger sells a pretty expensive add-on that you can buy.

I was already in the process of working on KegWatch and decided to build my own hopper monitor to practice my (very very amateur) EE skills. HopperHawk is designed to sit inside of your hopper either on top of the grid (if you left it installed) or on the inside lid (attaches magnetically). Based around the ESP32, HopperHawk is a custom designed PCB that contains a lithium-ion battery and an ultrasonic sensor (to do the actual measurement).

How it works

Hardware

This was a fun and frustrating project to build. I started using an ultrasonic sensor, which worked perfectly in bench tests. The minute I placed the sensor inside the hopper of my smoker the measurements were all over the place. They were also wildly inconsistent, I tried several times to correct for this programmatically but it just wasn’t going to work. I noticed that if the smoker was off, the readings would be stable so my best guess is either the vibration or noise from the auger motor in the hopper was enough to throw off the ultrasonic sensor. I swapped the ultrasonic sensor out for a TOF10120 laser based range sensor and the system stabilized immediately. All of my tests have gone incredibly well, and it’s become quite reliable.

I used HopperHawk as a chance to try designing my own PCB so I went all in by designing a board based around the ESP32, a few LEDs for power/charging indication, and the MCP73871 battery management IC. The board holds a Lithium Ion 18650 battery and can charge, do load sharing, or be powered from USB alone. First few tests with the battery went really well, over 24 hours of operation on a full charge with measurements being done every 5 minutes!

Software

A lot of work still to be done here, everything is written in micropython and I actually have an API on the board itself so you can configure it or query it on the network. For status updates I am using MQTT to push to Home Assistant.

I have been toying around with a mobile app and web interface, but am starting to run into issues due to using micropython on the esp32. I would like to implement a web server that works over HTTPS, but the esp32 keeps running out of memory. My goal is to learn and swap over to esp-idf for this project to get that working (then I would consider selling these things if people were interested).

What’s next?

I have a lot of ideas for this project still and although I haven’t had a chance to work on it as much lately…I hope to keep adding things here and there, maybe even making it available for sale one day. As I work on it I will continue to provide updates on my blog, so be sure to follow!

Here is the project on GitHub!