Flite - Keg Level, Temperature, and Pressure Sensor

Homebrew Talk - Beer, Wine, Mead, & Cider Brewing Discussion Forum

Help Support Homebrew Talk - Beer, Wine, Mead, & Cider Brewing Discussion Forum:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.
I have just discovered this Flite solution and love it. I had thought about a ToF based solution using a modified lid many years ago, but while I have experience building Arduino & RPi solutions, my software skills are lacking. Good to see you guys have something proven & available for download.

I have six kegs in Komos kegerators with very limited headroom. I would like to build my own lids with only the ToF sensors wired to one ESP8266 (or RPi Zero) per kegerator. Do I have to buy the lids from the Flite website or can I build my own?

Thanks
 
I am looking deeper into this and ordering some parts to give it a try. The most expensive part of the system, as somebody already noted here, is the Honeywell temperature/pressure sensor at ~$65. If I forgo the ability to monitor Temperature and pressure, and just put the ToF sensor in the lid for volume measurement, will the software still run or will it throw an error?
 
Thanks @LBussy for sending the DIY documentation!

I am looking deeper into this and ordering some parts to give it a try. The most expensive part of the system, as somebody already noted here, is the Honeywell temperature/pressure sensor at ~$65. If I forgo the ability to monitor Temperature and pressure, and just put the ToF sensor in the lid for volume measurement, will the software still run or will it throw an error?

@Merkur I'm glad to hear you're interested in this project. If you just want to measure level, you dont NEED to wire in a pressure/temp sensor. The ToF sensor by itself on the I2C bus will still work. I even created an enclosure that omits the hole for the pressure nipple. You can download that here:
https://www.thingiverse.com/thing:4836813
Another thing to take into consideration is that the ToF sensor communicates I2C bus, so you can't have more than 1 sensor per controller with the same I2C address. If you dig into my Flite arduino library here (ARDUINO INTEGRATION | Flite), you will see that when a Flite object is constructed, you pass a color, which ultimately initializes the VL530X with a pre-defined I2C address. I began building this color based model out with the future mindset of more than 1 sensor per controller. At this time I only developed with 4 colors in mind, so you would have to tweak my library if you wanted to try and do 6. You should also review the VL530X documentation to determine how to configure I2C addresses and if you can ultimately have a 6:1 ratio. I don't recall why I left off at 4, there was a limiting factor, I just don't remember what it was. At this time, the firmware that is developed for the entire controller only supports a 1:1 ratio.

Keep us posted on your progress and let me know if you have any other questions!

Cheers!
 
Thanks. I saw that and concluded that it was safer for me to use one controller per sensor. I bought Five of them for $17 so it’s not going to break the bank and I’ll have some redundancy. I assume that the front end iOS/Android app doesn’t have any problem communicating with six controllers and displaying the status of all six kegs?

I notice that it works with the Taplist.io using an API key and token. I tried using Taplist but found that TapItGood was cheaper and offered more flexibility to display the six beers I have on one screen. It too has Plaato integration. Has anyone integrated Flite with TapItGood?

Paul
 
They are really cheap enough, so a 1:1 model seems to work out for most, and it adds unlimited scalability without dependency on yours truly. You can download the firmware with Brewflasher (thanks @Thorrak!) and you are ready to configure.

No limit on the number of Flite controllers you want to view on mobile app. If you want to view the data on a mobile app, reach out to me privately and i'll give you an API key that you will configure in both your Flite controller and mobile app. See user's manual here for configuration of the API keys as well as general configuration info:
https://www.flitesense.com/_files/ugd/a9f504_ed780f49256c40ccb4e992320af0506a.pdf
As of now, we don't support TapItGood integration. I can certainly put it on the list to look into, but I've been pretty busy with my day job and just had a baby last year, so my free time is not what it used to be!
 
I just discovered this project through my local HBC (thanks @Merkur!) and will absolutely be building a few for myself, most likely w/ headless controllers. Very impressed with the approach, the implementation, and the support!

It's good to know I can forgo the temp/pressure sensor, which seems to have nearly doubled in price since Flite first got off the ground. UncleD, what are your thoughts on providing support for one of the many inexpensive i2c temperature sensors on the market? While an extra $50 for temp+pressure isn't really worth it for many of us, I wouldn't think twice about spending <$10 to have temperature data alone.

I found the controller and library code and I might see if I can build my own controller using a different temperature sensor. On first glance, it looks like it might be possible to support a small variety of sensors without even requiring user configuration, just based on what I2C addresses are being used. I'm even toying with aiming an infrared temp sensor through the original pressure-sensor hole to measure the beer surface temp.

I imagine you may have already have already thought about this stuff, so if you have any suggestions or are interested in any code I come up with, let me know.

Again, thanks for all your work on this. I'm really excited about building a few of these for myself.
 
Glad to hear you are interested in this solution @Jopher! Unfortunately, I don't really have the time right now to offer different libraries for different combinations of available sensors.

That being said, you can implement an alternative I2C temp sensor with no changes to wiring, just modifications to the library. Good luck and post your feedback here for others, I'm sure there are others that would be interested in a cheaper solution and code that has already been written!

Cheers!
 
Oh, absolutely, you can't be expected to maintain multiple libraries.

I've ordered a couple different cheap sensors (LM75A and HTU21D) and will see if (a) they work at all when encased in epoxy and (b) whether I can add support for them in the library while still supporting the Honeywell sensor.
Will post updates here once I have them, and thanks again!
 
I am breadboarding the Flite sensor, drilled the hole in the lid and mounted the connector and wired it up. The Wemos controller is flashed and the App set up on the iPhone. I went through the set-up instructions and entered the API keys.

I changed the update interval to 10 secs just for trouble-shooting and expected to see the keg level change when I move the sensor or put a piece of card in front of it. So far I have not seen any change in the level on the App. Note that I currently only have the ToF sensor, so I am not expecting the Temperature and Pressure readings to change. Presumeably 302F and 168.7PSI is the default or garbage data in the RAM!

1649516850773.png

When I log into the controller using the IP address, it looks to me that the sensor data is out of range or the sensor isn't working since the volume is 'nan' Not a Number. I just tried another sensor and get the same thing.

1649517019029.png


To those people that have been through troubleshooting with this, what troubleshooting steps should I take to get this working? Under 'WiFi Configuration', I see the cloud update timer count down but the data doesn't update in the app. If I click 'Test Cloud Update', it comes back with 'Sent Update to Cloud Services' which seems ok but the instructions say a WiFi icon should appear in the upper right and the disappear after 30-40secs. I do not see that. Does the controller only write to the cloud every 60 minutes?

Thanks.
 
Last edited:
Update.

I put this in an empty keg overnight with the sensor just hanging down from the lid. I do not have the 3D printed housing yet. This morning I have data! It appears that the data is updated every hour or so. Is this normal?

I am not sure how the sensor works, but I am guessing that when I had the sensor just laying on the bench, the sensor never ’saw’ reflected light and hence didn’t come up with a ToF solution. In the keg it is dark and more reflective so I get data.

I will try it with some water in the keg. Is there a way of seeing the level directly? A near real-time ranging solution?

Paul
 
Paul, Regarding the cloud update interval, this is hard coded at 1 hour in the firmware to avoid storing too much data or updating too often and running cloud service costs through the roof.

Looking at your screenshot of the configuration, there is an issue with your calibration. The high distance cal and low distance call should not be the same number. These fields represent the distance (in mm) corresponding to the level cal values. If you fill your keg with 4 gallons of water, and enter 4.0 in the high level cal, and clicking "CALIBRATE HIGH LEVEL", you should see the high distance cal change to the measured distance at the time that you clicked "CALIBRATE HIGH LEVEL". If it's reading 0 mm, that means that there is something wrong with the sensor reading. Double check the wiring, specifically to the I2C pins. You can also download the sensor library and load it into Arduino IDE and test with the example program. This will allow you to check the raw output in mm.

https://github.com/DJMarlow/Flite_Arduino
Be aware that the controller firmware uses the serial pins (Rx/Tx) for I2C comms, if you want to run a test program, you can use the default pins.
 
Is there a way of seeing the level directly? A near real-time ranging solution?

The display only updates as often as the sensor update interval. It averages the readings between that interval for better stability. You can shorten it, but I don't think you can go any faster than every 10 seconds.
 
I notice that it works with the Taplist.io using an API key and token. I tried using Taplist but found that TapItGood was cheaper and offered more flexibility to display the six beers I have on one screen.

Hey Paul! What sort of flexibility/layout are you looking for? I'm... certain we can do it; and we're always happy to respond to feature requests.. Shoot me a note and we'll dig into it! ~mike
 
Hey Paul! What sort of flexibility/layout are you looking for? I'm... certain we can do it; and we're always happy to respond to feature requests.. Shoot me a note and we'll dig into it! ~mike
Hi - this is a home brewery/bar and I wanted six taps that showed quite a bit of information on each beer to educate friends & family. I set up a Taplist account to try it out but it didn’t offer the flexibility I needed. In addition, the TapItGood solution was half the price ($20/year vs $39/year.)

I may take another look at it, but it works for me now.
A400F67C-0279-46AD-A724-6A11715B36F0.jpeg
 
An update on my project. I have two controllers running, one with the Honeywell Temperature/pressure sensor. While expensive ($55), I like the integration and it offers some safety features like the ability to see signs of impending kegerator failure or a CO2 leak. At this point I plan to build six lids with one controller per lid.

I decided to build the display outlined in the DIY instructions and have the ‘ThingPulse’ breakout board. The Wemos D1 fits nicely on the board, however I believe the display has been updated since the instructions were written. The display I bought was the one called out (ILI9341 240x320 TFT LCD Display with Touch Panel) but the pin layout is different and the pin/signal names are not the same as on the breakout board. See photo.

it there a way of making this work by hardwiring the necessary signals between the display and the breakout board?
59F20951-3D46-4F8F-B407-EDB8ECE1587B.jpeg
 
It's definitely the wrong display. If you do a search for it using the description, there may be multiple types of displays that fit that criteria. Make sure the dimensions and header pins match the breakout board. I have updated the DIY to reflect this note. I apologize if the DIY was not more clear.

It looks like you have this one:

And you want something like this one:

With enough research you could probably "make" yours work, but I would just get the correct display and you know everything will mount up and work from the start.

Save the other display for another project down the road :cool:
 
Thanks to your link (and Amazon!) I got the correct part, wired it up and flashed the firmware. After a couple of false starts it works wonderfully and the instructions are excellent.

Just to be clear I haven’t printed the enclosures or potted the sensors yet but they have been working well in my test keg of water for the past week or so. This has given me the confidence to spring for more of the temperature/pressure sensors and investigate the food safe epoxy options.

Thanks.
EA588DEA-A8BC-47EB-9E77-75A6EA318A4C.jpeg
D09890FD-F427-4D42-BC0A-EB278D1804FD.jpeg
64144865-B56B-4658-8371-CCAE36E6A507.jpeg
6B42E8DC-4867-4A7F-9856-E116C4EB6C9D.jpeg
 
@Merkur glad it's working, and thanks for providing feedback!

Let me know if you have any questions regarding assembling the sensors, that is the trickiest part. I've tried to make the DIY as clear as possible.

Cheers!
 
Have a question about calibration.

Built 1 headless setup with only the TOF sensor. Want to see if I'm doing something wrong, possibly have a faulty sensor or everything is fine.

With the headless setup there appears to be no way to see the current reading from the sensor while calibrating. In order to see a reading you need to hit the calibrate low/high button and then look at what value it recorded in the current calibration settings area.

I've hit the calibrate buttons 10-20 times over a 1-3 minute span in order to get an idea of an average reading. On both low and high readings there appears to be an 8-10mm range of possible values.

Does this 8-10mm range seem normal? Or is my sensor possibly bad?

If I've read the documentation correctly it will take a reading every 1 second and then take the average over the update interval time. That would seem to be fine if you set the calibration points in the middle of the range.

But without knowing the realtime readings you might be setting the calibration points on the edge of the average range. I'm thinking this might cause some inaccuracies.
 
Have a question about calibration.

Built 1 headless setup with only the TOF sensor. Want to see if I'm doing something wrong, possibly have a faulty sensor or everything is fine.

With the headless setup there appears to be no way to see the current reading from the sensor while calibrating. In order to see a reading you need to hit the calibrate low/high button and then look at what value it recorded in the current calibration settings area.

I've hit the calibrate buttons 10-20 times over a 1-3 minute span in order to get an idea of an average reading. On both low and high readings there appears to be an 8-10mm range of possible values.

Does this 8-10mm range seem normal? Or is my sensor possibly bad?

If I've read the documentation correctly it will take a reading every 1 second and then take the average over the update interval time. That would seem to be fine if you set the calibration points in the middle of the range.

But without knowing the realtime readings you might be setting the calibration points on the edge of the average range. I'm thinking this might cause some inaccuracies.
I’m not sure if this is your problem, but I noticed more variation when testing with plain water. I believe this was because the light pulses reflected off the water surface and also the bottom of the new, clean shiny keg. I got less variation when I threw in some old hibiscus dried flowers to color the water so it was more like beer.

Paul
 
I’m not sure if this is your problem, but I noticed more variation when testing with plain water. I believe this was because the light pulses reflected off the water surface and also the bottom of the new, clean shiny keg. I got less variation when I threw in some old hibiscus dried flowers to color the water so it was more like beer.

Paul
Thanks for the info. Definitely a possibility since I'm using water and the keg is brand new, very shiny. Won't be brewing for a couple weeks but am making some hop seltzer soon. Maybe the green tint in the seltzer will yield better results.
 
10mm seems a bit higher than normal. I usually see only a couple mm. That being said, it just depends on how accurate you want it to be. At the end of the day, even an error of 10mm distance is probably less than a pint. Need to do some pi r squared to determine the exact volume error that would be...
 
10mm seems a bit higher than normal. I usually see only a couple mm. That being said, it just depends on how accurate you want it to be. At the end of the day, even an error of 10mm distance is probably less than a pint. Need to do some pi r squared to determine the exact volume error that would be...
Honestly I don't need it to be super accurate. Just looking for a general its around 1 gallon, time to brew again type thing.

Gonna try to calibrate with hop water soon. Will see if the green tint makes a difference.
 
Just to update, the hop water is producing much more consistent results. The range in now about 6-8mm but the majority of the readings are 1-4mm.

Thanks
 
Just to update, the hop water is producing much more consistent results. The range in now about 6-8mm but the majority of the readings are 1-4mm.

Thanks

Glad to hear!
 
Are there any uppdates on this project? Now the holidays are over and the winter has set it, I am looking to complete the project I started last April.

I have six new corny keg lids, ESP8266, connectors, casting resin and TOF sensors. I only bought one of the Honeywell HSCMAND150PA4A3 Pressure/Temp sensors as they were so expensive. Now they are even more expensive! Has anyone found a cheaper (<$65) source of supply or alternative?

Paul
 
Yeah I was originally thinking of doing that, but I'm a geek and I really like the assurance I get from monitoring Temperature & Pressure per keg :) . I have the one I bought to try the system out and it works well.

Damn Honeywell! I worked for them for 39 years and probably would have been able to get a good employee discounted price on these!

Paul
 
A project update (and plea for help!)

I have been working on this for close to a year and decided it’s time to finish it. I took the breadboard sensors that I had dangling in a keg above some hop water and packaged them in a lid as in the Flite DIY documentation. Prior to encapsulating it all in Food Grade Epoxy, I decided to check it out and (predictably) it didn’t work!

The setup seems good and I can connect to the controller. I can connect to the controller using the local IP address and get the ‘Flite Controller Configuration’ page. The ‘Test Cloud Update‘ reports back that it was successful and the countdown starts for the next update. I can see on the App that the data has been updated, but the temp is reading 302F and the pressure 153.7PSI. I can assure you that those values are incorrect here in Pennsylvania!

I have changed out the (overpriced) Honeywell sensor with the same result. What are my next steps for troubleshooting this?

TIA.
982D40C7-80CD-422E-BAC7-09C9B5DE4850.jpeg
 
I'd first try clearing the controller and EEPROM. You can do that with the various tools available and see how that works.

Next, I might see if the devices actually change values at all with input (change pressure, change temperature.)

My personal guess would be a connection that is open or shorted. That's not going to be real easy to figure out with the parts sealed in epoxy.
 
Thanks Lee. My first thought was the sensor package in the lid as it had suffered quite a bit of physical handling and abuse during installation in the housing and lid. It is not epoxy sealed at the moment. However I tried the sensor package with a different 8266 Wemos mini and it works OK. I feel it is the controller.

Can I just re-flash the controller using Brewflasher?

Paul
 
UPDATED: I found that if I reset, or power cycled the controller between the Low and the high level calibration steps, I could calibrate the lids OK. I still never got the small yellow print on the bottom of the display indicating the calibration distance.​

This project is finally nearing completion, but I have a few issues regarding the calibration that someone may be able to help with. I have built four of the sensor lids and have a display header I have been using to calibrate the system.

The calibration instructions state that at the bottom of the display, there should be a small yellow message stating ‘sensors updated, distance: XXX’. I have never seen that. Instead there is a message stating ‘Updated current interval (sec): 10’. Is this a change in the firmware?
39C67E8C-B3B4-477A-82DB-E46DC670BDA1.jpeg


I did manage to get it calibrated using the web interface And the display. I found that calibting with 5 gallons of water in the keg, would not work. Maybe the distance between the water and the sensor was too close? I calibrated at 4.5 gallons in the keg and it worked ok. After calibrating however the keg is indicating that the level is between 4.3 and 4.8 gallons. Maybe I just need to give it time?
82E5F6D3-E612-47A0-993C-EB01E1816ADF.jpeg

Thanks for all the work that has gone into this.

Paul
 
Last edited:

Latest posts

Back
Top