TiltBridge - Tilt-to-WiFi Device for Tilt Hydrometer

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.
TiltBridge v0.2.2 is released!

This release contains the changes necessary to support the brand new high-resolution Tilt Pro, MQTT, and toggleable Fahrenheit vs. Celsius support, amongst many, many other things. The full change log is below:
  • Added support for Tilt Pro devices
  • Added MQTT support (Thanks @pletch)
  • Add gravity smoothing support - except when sending to Fermentrack/BrewPiRemix (Thanks @pletch)
  • Add toggleable Celsius support (Thanks ricnewton!)
  • Add support for rotated (e.g. Lolin v1.1.0) TFT Screens (Thanks @pletch)
  • Numerous bugfixes/cleanups (Thanks @pletch)
  • Properly capture/filter the "version" info sent on wake by v3/Tilt Pros
  • Properly capture/send the "weeks on battery" sent by v3/Tilt Pros
  • Added version information to about.htm
  • Results are now expired after 5 minutes if no signal is received from a Tilt
  • Renamed Fermentrack support to indicate it also works for BrewPi Remix (Thanks @LBussy)
  • Changing the mDNS ID now resets the controller
  • Update to the latest version of the NimBLE Bluetooth library
If you can't tell from the changelog, a special thanks goes out to @pletch for the MQTT support, a number of bugfixes, and the gravity smoothing implementation.

This update is now available through BrewFlasher, the Fermentrack firmware flasher, or by direct download from GitHub.
 
TiltBridge v0.2.2 is released!

This release contains the changes necessary to support the brand new high-resolution Tilt Pro, MQTT, and toggleable Fahrenheit vs. Celsius support, amongst many, many other things. The full change log is below:
  • Added support for Tilt Pro devices
  • Added MQTT support (Thanks @pletch)
  • Add gravity smoothing support - except when sending to Fermentrack/BrewPiRemix (Thanks @pletch)
  • Add toggleable Celsius support (Thanks ricnewton!)
  • Add support for rotated (e.g. Lolin v1.1.0) TFT Screens (Thanks @pletch)
  • Numerous bugfixes/cleanups (Thanks @pletch)
  • Properly capture/filter the "version" info sent on wake by v3/Tilt Pros
  • Properly capture/send the "weeks on battery" sent by v3/Tilt Pros
  • Added version information to about.htm
  • Results are now expired after 5 minutes if no signal is received from a Tilt
  • Renamed Fermentrack support to indicate it also works for BrewPi Remix (Thanks @LBussy)
  • Changing the mDNS ID now resets the controller
  • Update to the latest version of the NimBLE Bluetooth library
If you can't tell from the changelog, a special thanks goes out to @pletch for the MQTT support, a number of bugfixes, and the gravity smoothing implementation.

This update is now available through BrewFlasher, the Fermentrack firmware flasher, or by direct download from GitHub.


Sorry to do this: But as far as I know only @pletch and I were the only ones using the MQTT functionality. Well, it's not following MQTT best practices. Meaning that each device should be it's own subtopic. Additionally, I think the attribute names should "match" those produced by the TiltPi for consistency.

MQTT Best practices:
https://www.hivemq.com/blog/mqtt-essentials-part-5-mqtt-topics-best-practices/http://www.steves-internet-guide.com/understanding-mqtt-topics/
Tiltpi JSON:
```
{"uuid":"a495bb30c5b14b44b5121370f02d74de",
"major":67,
"minor":1008,
"measuredPower":1,
"rssi":-86,
"accuracy":1.468410193941099e-141,
"proximity":"immediate",
"Color":"BLACK",
"Beer":["black",true],
"actualSGPoints":"",
"unCalSGPoints":"",
"actualTempPoints":"",
"unCalTempPoints":"",
"timeStamp":1608455934688,
"formatteddate":"2020-12-20 04:18:54",
"Timepoint":44185.17979962963,
"fermunits":"",
"SG":1.008,
"hd":false,
"Temp":67,
"tempunits":"°F",
"doclongurl":"",
"defaultcloudURL":["https://script.google.com/macros/s/AKfycbwNXh6rEWoULd0vxWxDylG_PJwQwe0dn5hdtSkuC4k3D9AXBSA/exec",true],
"logCloudDataCheck":true,
"logLocalDataCheck":true,
"localloggingInterval":15,
"loggingInterval":15,
"minRSSI":-105}
```


Sending a PR now
 
@Thorrak Sent PR my latest comment on this release is being moderated :confused:
No worries - I saw the PR come through. I have seen additional edits on it since it was originally submitted - let me know when the MQTT bits are all working and I'll merge it into a new fork to test the other core functionality before releasing 2.2.3. :)
 
@Thorrak @pletch and I worked together last night to sanitize, standardize, and finalized all the MQTT bits. Including enabling discovery for www.home-assistant.io. I'm very happy with the results.

Home Assistant aside, If your aren't familiar with MQTT, I'd suggest looking into it. MQTT has pretty much become the de-facto standard for sensor data, smart appliances, automation, and IoT in general.

I'm sure my circumstances are not that unique. I have 2 fermentation locations. A pantry with buckets for my ales and unitanks in the garage for my lagers. The tiltbridge brings these together. Now, I can watch both and trigger events based on status of the tilts.

Now, I can get rid of TiltPi and the kludgy way I was doing things before.
 
This is fantastic! I *asked* for a Tilt for Christmas, and while I was hopeful/semi-sure my wife got one, I wasn't certain. But I decided to start looking at the Tilt hardware info and pairing and look into reflashing my raspberry pi 4 with the necessary support stuff. That's when I found this page. OMFG, this is perfect! I know ESP32 development (well, not the python side being used here, I do more of the VSC C++ and platformIO compiled code development, and while it operates MUCH faster than the interpreted python, it can be a bit finnicky on drivers and libraries).

...Anyway, I decided to attempt to flash one of the Heltec OLED WiFi 32 kits I had laying around, and it popped up, I set it up in AP mode and viola! that's when I was a little surprised. Yup...it found a RED Tilt within range, and began logging Temp and SG. So, apparently I have a 1.075 OG happily bubbling away at 68'F under our living room tree! Yes! Don't tell my wife! I *really* want to go out and tip the present a little just to see it change... *giggle*

Jeff
 
Last edited:
This is fantastic! I *asked* for a Tilt for Christmas, and while I was hopeful/semi-sure my wife got one, I wasn't certain. But I decided to start looking at the Tilt hardware info and pairing and look into reflashing my raspberry pi 4 with the necessary support stuff. That's when I found this page. OMFG, this is perfect! I know ESP32 development (well, not the python, I do more of the VSC C++ compiled code development, and while it operates MUCH faster than the interpreted python, it can be a bit finnicky on drivers and libraries).

...Anyway, I decided to attempt to flash one of the Heltec OLED WiFi 32 kits I had laying around, and it popped up, I set it up in AP mode and viola! that's when I was a little surprised. Yup...it found a RED Tilt within range, and began logging Temp and SG. So, apparently I have a 1.075 OG happily bubbling away at 68'F under our living room tree! Yes! Don't tell my wife! I *really* want to go out and tip the present a little just to see it change... *giggle*

Jeff
How bad is it that you can peek into presents digitally these days. 🤣

That's amazing! Congratulations on the new Tilt, as well as the new TiltBridge! Good luck, and happy brewing! :)
 
Love that little Heltec. I know Thorrak had issues with them related to manufacturing consistency, but that's a great package to use for projects.

I never had an issue with the actual Heltecs - the issue was with the consistency of the knock-off ones (and the fact that for the longest time I didn’t realize there was an OEM, and when I realized it was Heltec they were relatively expensive when including shipping).

I’m starting to come back around on the OLED version in general though thanks to the new Bluetooth stack. It’s amazing what a difference being at 47% vs 99.7% of available flash makes...
 
P.S. On a side note, I've followed the logging to Google Sheets instructions to a T twice now and first, there is no "publish" that I can find in the script editor (there is a Deploy button now?) and that pulls up a blank page that you have to click on the gear icon. Maybe minor, and I know keeping up with changes to google is going to be a nightmare. But I *think* I got that ok. At least I can email the URL to my gmail account and I put that in the TiltBridge settings, put in my gmail and name a beer "Pilsner". But for over 12 hours now, I have no difference in this google sheets doc. Where will new "beer sheets" show up? I've done it from scratch now twice... :( I must be very stupid or something.
 
P.S. On a side note, I've followed the logging to Google Sheets instructions to a T twice now and first, there is no "publish" that I can find in the script editor (there is a Deploy button now?) and that pulls up a blank page that you have to click on the gear icon. Maybe minor, and I know keeping up with changes to google is going to be a nightmare. But I *think* I got that ok. At least I can email the URL to my gmail account and I put that in the TiltBridge settings, put in my gmail and name a beer "Pilsner". But for over 12 hours now, I have no difference in this google sheets doc. Where will new "beer sheets" show up? I've done it from scratch now twice... :( I must be very stupid or something.

I just did a little quick debugging. The existing instructions seem to no longer work as written as the /dev endpoint URL provided under the Tilt menu in the Tilt Cloud App Google Sheet throws a 401 unauthorized. I think the /exec endpoint must be used instead.

New instructions once you go to Script Editor.
  1. Select the Deploy button and select "New Deployment"
    1. On New deployment pop-up, select type (gear icon) and choose "Web app"
    2. Enter Description as 'Tiltbridge Google Sheets" or whatever you like.
    3. 'Execute as' should be configured as Me ([email protected])
    4. Set 'Who has access' to Anyone.
    5. Click Deploy
    6. Click Authorize access.
      1. New dialog will pop up and choose your Google account.
      2. Second dialog will appear indicating "Google hasn't verified this app". Click Advanced and then select "Go to Tilt Cloud Template for TiltBridge (unsafe)"
      3. A dialog box with permission requests will appear. Select "Allow".
      4. New Deployment summary appears. Copy the URL under Web App. URL should end in /exec.
  2. Copy/paste the Web URL into the "Google Script URL" field on the Settings page of your TiltBridge.
  3. Enter the email address used to copy this script into the "Google Script Email" field on the Settings page of your TiltBridge.

If you need to get the URL again, go back to the script editor, select the Deploy button and go to Manage Deployments. The app should be there and the URL is visible with the option to copy to clipboard.
 
Last edited:
Thank you! That is working perfectly now! I see a new sheet in my google drive, and the TiltBridge home page now shows the beer name I picked on the google sheets and says it is shared (it didn't say this before and I never got any new sheets). What great support on XMas day! :D

BR,
Jeff

P.S. you guys really need to set up a "buy them a beer" donation page. I know it is a "group" of folks with a couple key contributors, but this is easily worth $5 for me and I would click it if it was displayed on the TiltBridge page and you guys could meet on zoom and have a virtual beer together! Thank you all again! And Merry Christmas!

P.P.S. No big deal, but I also notice similar time zone discrepancy another user noticed in the google sheets. For example, I'm in MST (-7 GMT) and it shows 10:56 on the google sheets data logger, but it is 11:56 local (not sure if this is truly a timezone issue or a DST issue...but it feels like it "wants" to represent the logs in PST, which is 1 hour different from me). Also, the date/time on the Google Sheets "Report" page isn't even the same DAY (it is showing 12/23/2020 and 13:56 or what looks like EST and I'm sure this is just something on google sheets and the formula being used for D/T in the templates)...
 
Last edited:
P.P.S. No big deal, but I also notice similar time zone discrepancy another user noticed in the google sheets. For example, I'm in MST (-7 GMT) and it shows 10:56 on the google sheets data logger, but it is 11:56 local (not sure if this is truly a timezone issue or a DST issue...but it feels like it "wants" to represent the logs in PST, which is 1 hour different from me). Also, the date/time on the Google Sheets "Report" page isn't even the same DAY (it is showing 12/23/2020 and 13:56 or what looks like EST and I'm sure this is just something on google sheets and the formula being used for D/T in the templates)...

I have figured out why this is happening and will work with Thorrak on a fix.
 
Hi,
For some reason after updating my Tiltbridge to 0.2.2, my Fermentrack is not updating the gravity anymore. Seems like the tiltbridge is not pushing any data to fermentrack, even though I have tiltbridge configured to push to http://X.X.X.X/tiltbridge/ on the Local Target Settings
Any ideas on what that might be? Is there a way to debug/see logs on the tiltbridge?

Thanks,
 
For some reason after updating my Tiltbridge to 0.2.2, my Fermentrack is not updating the gravity anymore. Seems like the tiltbridge is not pushing any data to fermentrack, even though I have tiltbridge configured to push to http://X.X.X.X/tiltbridge/ on the Local Target Settings
Any ideas on what that might be? Is there a way to debug/see logs on the tiltbridge?
You might try to upgrade again and this time erase settings (checkbox.) You will need to re-join your WiFi, and then configure the rest. I had a similar issue. I suspect your upgrade did not go according to plan, because the target settings should have been wiped out upon flashing the first time.
 
You might try to upgrade again and this time erase settings (checkbox.) You will need to re-join your WiFi, and then configure the rest. I had a similar issue. I suspect your upgrade did not go according to plan, because the target settings should have been wiped out upon flashing the first time.
Hi, thanks for your help, unfortunately it didn’t work. I upgraded again with erase all settings checked but same issue, weird thing is that all seems to work, it’s just that it doesn’t do the push to fermentrack. I had alpha 0.2.1 working and tried to upgrade via fermentrack the first time, but unfortunately I unplugged the cable a little bit early and the flashing hadn’t finished yet. Next time I did it via the desktop app (deleting settings, which is the default) on a Mac and it was successful, it’s just that it doesn’t do the push to fermentrack.
Appreciate any help on this
Thanks,
 
Hi, thanks for your help, unfortunately it didn’t work. I upgraded again with erase all settings checked but same issue, weird thing is that all seems to work, it’s just that it doesn’t do the push to fermentrack. I had alpha 0.2.1 working and tried to upgrade via fermentrack the first time, but unfortunately I unplugged the cable a little bit early and the flashing hadn’t finished yet. Next time I did it via the desktop app (deleting settings, which is the default) on a Mac and it was successful, it’s just that it doesn’t do the push to fermentrack.
Appreciate any help on this
Thanks,

There was a bug in Fermentrack handling the increased temperature resolution in the message that was added for Tilt Pros. I just pushed a bugfix to Dev - let me know if it works again after updating.
 
Just noticed the Tilt's not displaying on fermentrack. I can confirm the patch in the dev branch solves it for me. Just in time tomorrow's a brew day! :)
 
Hello, hoping this is the right forum for the ask. I'm having an issue with flashing TiltBridge firmware onto an D32Pro + TFT, and I have the board, cable, and screen. I'm attempting to flash via Fermentrack, which says it finishes the firmware; but the ESP32 never broadcasts any WiFi. I was told the firmware for for the TFT build requires the TFT screen in order to boot. I believe I have board and screen cabled correctly, but i'll add a picture. Anybody have this experience before?
 

Attachments

  • ca2e9d4e-548c-4cb6-80a2-483bf4170b9e.jpg
    ca2e9d4e-548c-4cb6-80a2-483bf4170b9e.jpg
    44.4 KB · Views: 30
Hello, hoping this is the right forum for the ask. I'm having an issue with flashing TiltBridge firmware onto an D32Pro + TFT, and I have the board, cable, and screen. I'm attempting to flash via Fermentrack, which says it finishes the firmware; but the ESP32 never broadcasts any WiFi. I was told the firmware for for the TFT build requires the TFT screen in order to boot. I believe I have board and screen cabled correctly, but i'll add a picture. Anybody have this experience before?

Hm. You have the D32 pro and TFT, so it should work as long as there isn't an issue with the cable or the screen itself. The fact that your TFT is lighting up makes me think that you have the cable plugged into the right places - I don't think the backlight would function if the cable wasn't plugged in right.

The LED you mentioned in the other thread blinking constantly is a "feature" of the specific type of D32 pro you bought - the "LED" variant has an LED that blinks constantly when a battery isn't connected. I wish they'd restock the non-"LED" boards, but they haven't been posted in awhile. Regardless - it's a red herring in this case - the LED has nothing to do with the issue you're having here.

The TFT screen version is likely either v1.1.0 or v1.0.0. Either of those should work, but the v1.1.0 screens will appear "inverted" in some case designs until you update a setting on the TiltBridge after connecting it to your wifi.

For your Brewflasher issues, I would follow @garzlok's suggestion and try a different USB cable. Some USB cables are "charge only" vs. "charge and data" - you need one that has all the wires connected.
 
Welp, I'm not sure what changed, but I got it to work. Maybe it the cable wasn't seated well. Ended up trying to flash it a few more times via fermentrack, unplugged, and plugged the USB, and screen to board cable. None of that seemed to work, so I went back to brewflasher, and fixed my issue with that; I was missing a driver. Got that squared away, which allowed me to finally see the device, and attempted to flash just to get the same issue. I did the unplug, plug back in thing, because willpower/frustration I suppose, and flashed one last time via brewflasher. Everything ran swell, immediately noticed my D32 and screen booted with something besides white. Success!

While it's currently working, it does seem to drop off my WiFi quite a bit. I haven't seen this with the OLED variant, so before I go chasing issues has this been a problem for folks with this board? Alternatively, is there a way to monitor this on the D32? I have a pretty good view of my network and I'm not seeing any issues, normally I can tell if a client has DNS/DHCP issues, or has bad signal strength. Nothing strikes me as out of the ordinary, but it inexplicably just drops and then sticks on trying to reconnect.
 
You might wait a bit for what's cooking as an upgrade.

When you say "drops" do you mean stops reporting upstream, or stops being able to be connected to?

Both; it seems to just disassociate from the WiFi. Sometimes it'll go through the screens as normal, acting as though it's not disconnected (it's not pingable at these times). Other times, it'll display it's trying to reconnect, but it never does (also not pingable). I have an access point where I can view if a device tries to connect and fails because of a bad password, or weak signal; and yet I don't see any attempts from the board trying to connect to my WiFi.
 
I *think* some of these may be addressed by current work. Generally speaking, the new stuff is much more performant, and chasing what you are describing in the current branch would be frustrating.

Stay tuned! :)
 
Just getting into this ... using brewflasher i'm seeing 0.2.3 and a "alpha" 0.2.2. When i put 0.2.3 on i don't see any MQTT messages post or brewpi/fermtrack updates.

Anyway to diagnose or t/s what the titlbridge is doing? I've tried posting directly to fermentrack/brewpi-remix API and get updates fine. I subscribe to the tiltbridge topic and post a message from another machine and it comes through fine. I suspect i have an issue with my firmware setup.
 
disregard... I just tried running netcat listening and using URL from tiltbridge; it seems data is being sent out.

I'll need to debug/check my MQTT broker, fermentrack, and brewpi-remix. Maybe the update for higher resolution temp readings is causing grief on the last two, not sure why mqtt wouldn't work out of the box though.
 
You can always set up MQTT on a Pi or whatever you have laying around and just subscribe all at the console. I did a lot of debugging that way.
 
Got MQTT working, my mistake for using "titlbridge/*" instead of "tiltbridge/#" for subscription.

Worked on fermentrack second... the "73.0" vs "73" in payload was causing the issue. I'll go over to that thread and see if the fix is in since it just recently had an update to handle tilt pro. My git for fermentrack does show that, but perhaps tiltbridge update is still in Dev.

I'll give brewpi-remix another shot too... maybe the int vs float is causing headaches over there too.
 
Got MQTT working, my mistake for using "titlbridge/*" instead of "tiltbridge/#" for subscription.
I know, right?! When does * not mean "everything!? (banged my head against a wall on that one for a while.)
I'll give brewpi-remix another shot too... maybe the int vs float is causing headaches over there too.
Latest works for sure. @Thorrak may have added me as an indentured servant to help with some TiltBridge stuff so it's near and dear to my heart. :)
 
Back
Top