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.
As mentioned earlier in this thread, and just a couple posts above, try swapping cables. Sometimes it’s easy to grab a charging cable, that doesn’t support the transfer of data.

The other recommendation would be to Download Brew Flasher and use that to flash your device.
 
As mentioned earlier in this thread, and just a couple posts above, try swapping cables. Sometimes it’s easy to grab a charging cable, that doesn’t support the transfer of data.

The other recommendation would be to Download Brew Flasher and use that to flash your device.

the ides abort the cable is good. I have actually been in the situation before with a bad cable.

But I still think my problem is, that I cannot put the device into “flash mode”. I have tried all kinds of combinations of Dlash and Reser button, but it is like it will not accept flashing.
 
the ides abort the cable is good. I have actually been in the situation before with a bad cable.

But I still think my problem is, that I cannot put the device into “flash mode”. I have tried all kinds of combinations of Dlash and Reser button, but it is like it will not accept flashing.

sorry about the typing. Forgot to switch to English keyboard
 
Hi,

I have bought a Lolin ESP32 OLED, and trying to flash it with Fermentrack. But i keep getting the same error:

Result Text: Flash process returned code 2

esptool.py v2.8
Serial port /dev/ttyUSB0
Connecting....

A fatal error occurred: Timed out waiting for packet header


I can see other people have also struggled with this error, but I can't find an answer in the posts here on how to solve it?

I can see someone have had some luck pressing a "Boot" button, but my Lolin device doesn't have such a button. There is a reset button, that does what it says, and a Flash button.

I have tried pressing the flash button once, and also keeping it pressed, but is doesn't make any difference.

Does anyone know what to do?

Also i was considering using esptool but the documentation tells me to get 3 files from get hub. But I can only see 2 (I thing the one missing is "partitions.bin".

I am somewhat confused ...:)

Unfortunately, I have no idea. Those issues are a big part of why I stopped recommending the OLED-style boards. The "boot" button is probably the same as the "flash" button - so you'll want to do whatever people who use that button have success with. (Unfortunately, none of my boards use it, so I can't provide any hints here. Sorry about that :( )

With regards to the three files, they're available here: https://github.com/thorrak/tiltbridge/tree/master/bin

I would still recommend using BrewFlasher though, as BrewFlasher is just calling esptool behind the scenes.
 
got mine flashed and working today using BrewFlasher!! Can't wait to brew my next batch. Thanks to Thorrak for all you've done on this and all of your projects!
 
Unfortunately, I have no idea. Those issues are a big part of why I stopped recommending the OLED-style boards. The "boot" button is probably the same as the "flash" button - so you'll want to do whatever people who use that button have success with. (Unfortunately, none of my boards use it, so I can't provide any hints here. Sorry about that :( )

With regards to the three files, they're available here: https://github.com/thorrak/tiltbridge/tree/master/bin

I would still recommend using BrewFlasher though, as BrewFlasher is just calling esptool behind the scenes.


Where can I download BrewFlasher? I’m not that familiar with GitHub but found the project there today. But I can’t find an .exe or .img for the executables?

do I have to compile it myself or run it in Python?
 
Unfortunately, I have no idea. Those issues are a big part of why I stopped recommending the OLED-style boards. The "boot" button is probably the same as the "flash" button - so you'll want to do whatever people who use that button have success with. (Unfortunately, none of my boards use it, so I can't provide any hints here. Sorry about that :( )

With regards to the three files, they're available here: https://github.com/thorrak/tiltbridge/tree/master/bin

I would still recommend using BrewFlasher though, as BrewFlasher is just calling esptool behind the scenes.

I have now also tried BrewFlasher both on Windows and Mac, no luck unfortunately. The device does not turn up under devices.

But I am beginning to suspect that the dealer sent me a wrong unit. The chip on the device reads ESP8266mod1 and not ESP32 or Wroom32 as the pictures on the website.

so I have written to them and asked
 
I have now also tried BrewFlasher both on Windows and Mac, no luck unfortunately. The device does not turn up under devices.

But I am beginning to suspect that the dealer sent me a wrong unit. The chip on the device reads ESP8266mod1 and not ESP32 or Wroom32 as the pictures on the website.

so I have written to them and asked

Oh, yikes - Yeah, that would be a problem. :( Hopefully they can get you out a replacement.
 
I'm having a problem setting up logging via Google Sheets. I've followed the steps of copying and publishing the master sheet. I've pasted the cloud URL into the TiltBridge settings and named the beer. TiltBridge is reading my Tilt and my router logs show it is accessing www.tiltbridge.com every 15 minutes -but I'm not getting anything back? I must have missed a step but I can use some help to figure out what it is.
 
I'm having a problem setting up logging via Google Sheets. I've followed the steps of copying and publishing the master sheet. I've pasted the cloud URL into the TiltBridge settings and named the beer. TiltBridge is reading my Tilt and my router logs show it is accessing www.tiltbridge.com every 15 minutes -but I'm not getting anything back? I must have missed a step but I can use some help to figure out what it is.
Speaking for @Thorrak here, but here's my opinion:

He got burned by development board "inconsistencies" and almost had to completely go back to the drawing board to re-factor this project on a platform that could be a little more consistent. When you do these projects it's exceedingly important to put enough workable "stuff" out there to eliminate support headaches because - one person. There's no tech support behind this other than the guy that also has to write the code, also has to design the hardware (if any) and also has to do the tech writing.

The impression I got from our last discussion about this was that he was under the impression that Google Sheets might not be working at all. That being the case, and because he is in the middle of trying to strain out the baby as he throws out the bathwater, I'd suggest waiting a bit till he's ready to release a more tenable version and going from there.

Again, I'm not a Tiltbridge developer, but I did stay in a nice Hotel last night.
 
I'm having a problem setting up logging via Google Sheets. I've followed the steps of copying and publishing the master sheet. I've pasted the cloud URL into the TiltBridge settings and named the beer. TiltBridge is reading my Tilt and my router logs show it is accessing www.tiltbridge.com every 15 minutes -but I'm not getting anything back? I must have missed a step but I can use some help to figure out what it is.

Google Sheets support is its own house of cards, thanks to the limitations of the ESP32. There’s not quite enough power to run the Bluetooth stack, WiFi stack, and crypto stack necessary to support HTTPS, which means that everything has to go unencrypted. Unfortunately, Google Scripts require encryption. Fun times. :(

The way that it works is to have a proxy in between. Your TiltBridge speaks to TiltBridge.com, which then in turn passes the data over to Google Scripts. It is anything but ideal, but it’s the best I’ve figured out for now. The problem with this is that it introduces a bunch of potential points of error (and actually may no longer be supported by Google later this year - I haven’t been able to find a straight answer on whether their push for OAUTH also impacts scripts).

The end result is that while an important component, Google Scripts integration also ends up being one of the most fragile pieces of the TiltBridge stack. It worked when I released it last year, but I’m not shocked it has issues at the moment. For what it’s worth - this (and the case) are the final two pieces holding up the “v2” release of the revised firmware. (Assuming you don’t count the flashable “beta” firmware as a release ;) )


Speaking for @Thorrak here, but here's my opinion:

He got burned by development board "inconsistencies" and almost had to completely go back to the drawing board to re-factor this project on a platform that could be a little more consistent. When you do these projects it's exceedingly important to put enough workable "stuff" out there to eliminate support headaches because - one person. There's no tech support behind this other than the guy that also has to write the code, also has to design the hardware (if any) and also has to do the tech writing.

The impression I got from our last discussion about this was that he was under the impression that Google Sheets might not be working at all. That being the case, and because he is in the middle of trying to strain out the baby as he throws out the bathwater, I'd suggest waiting a bit till he's ready to release a more tenable version and going from there.

Again, I'm not a Tiltbridge developer, but I did stay in a nice Hotel last night.

Basically this. :)

It doesn’t help that TiltBridge was already using 99.7% of available program flash, and the latest espressif firmware release bumped that up to 100.1%. Just another problem to solve I guess! :p
 
I'm having a problem setting up logging via Google Sheets. I've followed the steps of copying and publishing the master sheet. I've pasted the cloud URL into the TiltBridge settings and named the beer. TiltBridge is reading my Tilt and my router logs show it is accessing www.tiltbridge.com every 15 minutes -but I'm not getting anything back? I must have missed a step but I can use some help to figure out what it is.

I am guessing since you are using Google sheets that you don't user Brewersfriend. I brewed last weekend and have been logging to BF using the latest firmware. It was easy to get working and has worked really well. There was one small issue where it stopped logging overnight. A quick power cycled of the device in the morning quickly fixed that.

Just in case that is an option wanted to report that it was working well for me so far.
 
I got mine working with brewers friend on Tuesday I think it was.
IMG_20200304_153001_902.jpg
 
I am guessing since you are using Google sheets that you don't user Brewersfriend. I brewed last weekend and have been logging to BF using the latest firmware. It was easy to get working and has worked really well. There was one small issue where it stopped logging overnight. A quick power cycled of the device in the morning quickly fixed that.

Just in case that is an option wanted to report that it was working well for me so far.
Yeah - the brewers friend and Brewfather support actually uses pipelines supported by both projects. Highly recommend either. ;)

If there are any other destinations people would like support for, raise them as issues on GitHub. There’s a way I can get more flash space to add more features to TiltBridge, but I’ve been actively working to avoid using it. If there’s enough benefit to be had though, I might be convinced to pull the trigger...
 
Thanks for your responses! The Google Sheets problem may just be me so I was posting to see if anyone else had gotten it working -and if they had any thoughts of why I can't. I took a quick look at the script, but my understanding is pretty limited. I'll take a look at Brewer's Friend this weekend. Thanks again to @Thorrak . I think it's amazing what you've done here!
 
Thanks for your responses! The Google Sheets problem may just be me so I was posting to see if anyone else had gotten it working -and if they had any thoughts of why I can't. I took a quick look at the script, but my understanding is pretty limited. I'll take a look at Brewer's Friend this weekend. Thanks again to @Thorrak . I think it's amazing what you've done here!
Naaaaaah, not just you. ;)

I’ll post as I work on getting this fixed, but Brewers Friend works well regardless. Let me know if you have any issues!
 
@Thorrak just reading this thread, great idea. My biggest complaint with the tilt is the need to have an auxiliary piece of BT equipment like a tablet or something that is sacrificed to read the gravity and log to the cloud.

I have been working on my own hydrometer projects with an arduino ESP. I recently contributed to the Parse server arduino github project to "resurrect" it for back4app (which I use for other projects).

https://github.com/parse-community/Parse-SDK-Arduino

I am in no way affiliated with them, but I figured I'd let you know that I have had success using them as a back-end DB for my ESP projects if you are looking for solutions in the future. They have additional APIs for server side code, mobile apps, etc...
 
@Thorrak just reading this thread, great idea. My biggest complaint with the tilt is the need to have an auxiliary piece of BT equipment like a tablet or something that is sacrificed to read the gravity and log to the cloud.

I have been working on my own hydrometer projects with an arduino ESP. I recently contributed to the Parse server arduino github project to "resurrect" it for back4app (which I use for other projects).

https://github.com/parse-community/Parse-SDK-Arduino

I am in no way affiliated with them, but I figured I'd let you know that I have had success using them as a back-end DB for my ESP projects if you are looking for solutions in the future. They have additional APIs for server side code, mobile apps, etc...
I see dead people:
WARNING ⚠ - this project has been retired due to lack of use & contribution, if you wish to continue to use it please fork or if you wish to maintain this project make yourself known ⚠
 
I've been 'out f the game' for a while now... haven't made any beer in a few years! But just jumping back in and found this - awesome development! My Tilt was the only reason I still had my Fermentrack on a RPi. I just flashed my ESP with the latest firmware and built a Ubuntu-based Fermentrack VM and tagged them up, and now I'm just waiting for some ESP32's to arrive to build a TiltBridge.

Maybe I missed it in the 200+ posts, but what are the chances of a firmware that combines the TiltBridge and ESP8266-based 'BrewPi' into one ESP32 device?
 
I've been 'out f the game' for a while now... haven't made any beer in a few years! But just jumping back in and found this - awesome development! My Tilt was the only reason I still had my Fermentrack on a RPi. I just flashed my ESP with the latest firmware and built a Ubuntu-based Fermentrack VM and tagged them up, and now I'm just waiting for some ESP32's to arrive to build a TiltBridge.

Maybe I missed it in the 200+ posts, but what are the chances of a firmware that combines the TiltBridge and ESP8266-based 'BrewPi' into one ESP32 device?

Slim - at least until the framework shrinks. Not impossible, but TiltBridge uses ~99.9% of the available flash space. Most recently it was over 100% - hence why I had to delete the logo. :(
 
For some reason, my tiltbridge can no longer connect to fermtrack. I can add it to fermtrack successfully, but it remains blank. My tiltbridge is otherwise working fine. I just updated it today to beta v0.2 rev1 OLED wtih brewflasher.

Can anyone help me troubleshoot this? Currently in fermentrack I am able to connect to my tilt with bluetooth... but that shouldnt prevent fermentrack from receiving info from tiltbridge, right?
 
Last edited:
For some reason, my tiltbridge can no longer connect to fermtrack. I can add it to fermtrack successfully, but it remains blank. My tiltbridge is otherwise working fine. I just updated it today to beta v0.2 rev1 OLED wtih brewflasher.

Can anyone help me troubleshoot this? Currently in fermtrack I am connect to my tilt with bluetooth... but that shouldnt prevent me from fermtrack receiving info from tiltfridge, right?
Relatively certain I'm having the same issue. I'll keep poking @Thorrak till he gets tired of hearing me and fixes it. :)

In the meantime, some porn:
IMG_8536.jpg
 
Slim - at least until the framework shrinks. Not impossible, but TiltBridge uses ~99.9% of the available flash space. Most recently it was over 100% - hence why I had to delete the logo. :(

I kind of had a feeling that something along those lines was the case. Still, TiltBridge is an awesome development in my opinion. One concern though... I was tinkering in Fermentrack and found for adding a TiltBridge, the only option seems to be using mDNS ID... I'm not really familiar with mDNS, but my assumption is that either uses broadcasts on the local segment or some kind of registration with something out in the 'cloud'... Either way, that's a significant problem for my setup. All of my IoT devices, including my Fermentrack firmware 'BrewPi' and soon to be TiltBridge, among other 'IoT devices', reside in an isolated 'IoT' VLAN - these devices have no access anywhere at all and anything on my IoT VLAN can't even see each other. The only access to anything on my IoT VLAN is from a device on a 'more trusted' VLAN. So the problem is, if it registers with something 'out there', well, it can't get 'out there' (And I don't want my stuff registering 'out there' -there's NO Need - that's been a source of contention with me an Plex, an otherwise awesome media server), and if it relies on broadcasts, broadcasts don't work across subnets.... So you can see the issue....

Is there a way that I'm missing in Fermentrack to add based on specific IP, like how Fermentrack connects to the 'BrewPi'? If not, might it be possible to add it?
 
I kind of had a feeling that something along those lines was the case. Still, TiltBridge is an awesome development in my opinion. One concern though... I was tinkering in Fermentrack and found for adding a TiltBridge, the only option seems to be using mDNS ID... I'm not really familiar with mDNS, but my assumption is that either uses broadcasts on the local segment or some kind of registration with something out in the 'cloud'... Either way, that's a significant problem for my setup. All of my IoT devices, including my Fermentrack firmware 'BrewPi' and soon to be TiltBridge, among other 'IoT devices', reside in an isolated 'IoT' VLAN - these devices have no access anywhere at all and anything on my IoT VLAN can't even see each other.
mDNS is "Multicast DNS" - it uses a multicast UDP packet sent using 224.0.0.251, port 5353 (MAC 01:00:5E:00:00:FB). If you're smart enough to get yourself where you are now, you're smart enough to allow that. While I completely understand the desire for isolation and security, you'd be missing out on a lot by not allowing mDNS and intra-device communication.

If you are set up as you say, your only solution would be to move your Fermentrack to your trusted VLAN and that only if you allow a device on the untrusted VLAN to initiate contact with a trusted device. Assuming that the trusted VLAN is bridged to the IoT VLAN, mDNS will work. If not, you'll have to wait till @Thorrak tells you where that can be manually configured.

Honestly, I'm not sure why you thought this would work at all if all intra-device communication is blocked?
 
I kind of had a feeling that something along those lines was the case. Still, TiltBridge is an awesome development in my opinion. One concern though... I was tinkering in Fermentrack and found for adding a TiltBridge, the only option seems to be using mDNS ID... I'm not really familiar with mDNS, but my assumption is that either uses broadcasts on the local segment or some kind of registration with something out in the 'cloud'... Either way, that's a significant problem for my setup. All of my IoT devices, including my Fermentrack firmware 'BrewPi' and soon to be TiltBridge, among other 'IoT devices', reside in an isolated 'IoT' VLAN - these devices have no access anywhere at all and anything on my IoT VLAN can't even see each other. The only access to anything on my IoT VLAN is from a device on a 'more trusted' VLAN. So the problem is, if it registers with something 'out there', well, it can't get 'out there' (And I don't want my stuff registering 'out there' -there's NO Need - that's been a source of contention with me an Plex, an otherwise awesome media server), and if it relies on broadcasts, broadcasts don't work across subnets.... So you can see the issue....

Is there a way that I'm missing in Fermentrack to add based on specific IP, like how Fermentrack connects to the 'BrewPi'? If not, might it be possible to add it?

To @LBussy 's point, if you've completely blocked any communication between devices on that vlan, then that's an issue as the whole idea is for the TiltBridge to communicate with your Fermentrack install (or the internet - but it sounds like you want to prevent that). Blocking broadcasts (or mDNS specifically if you went that route) will make your life slightly mre difficult, but it won't prevent anything from working outright.

Just to clarify a bunch of design decisions that I made with regards to how devices interact with each-other & the internet:

Fermentrack (currently) accesses external sites on the internet for three reasons - only one of which involves sending data, and that can be disabled during setup. Fermentrack accesses GitHub for checking for updates and it accesses fermentrack.com to get the list of available firmware as part of the firmware flash procedure. Fermentrack sends error reports to my Sentry server - but if that option is enabled during setup. Disabling this option (or disabling internet access) won't impact anything other than my ability to know what bugs you've encountered. ;) There also may be CDN-hosted elements on some of Fermentrack's pages, but the package isn't accessing those - your web browser is.

My ESP8266 port of the BrewPi firmware doesn't access anything whatsoever either on your network or on the internet. It is accessed by brewpi-script as part of your Fermentrack (or BPR) installation. In the case of Fermentrack, it will attempt to use mDNS to locate any of these controllers you have on your network, but they can be added manually using the IP address if you prefer.

TiltBridge (currently) accesses the internet for two reasons, all of which have to either be triggered or configured by the user. TiltBridge accesses the TiltBridge website in order to check for updates when you click the option in its UI. TiltBridge also accesses the internet to send data to configured external push targets. If you configure a Fermentrack push target, it will access your (presumably internal) Fermentrack install to push its data. The TiltBridge will send its mDNS id to Fermentrack to identify itself as part of this process - but it doesn't require the use of mDNS to work.
 
To @LBussy 's point, if you've completely blocked any communication between devices on that vlan, then that's an issue as the whole idea is for the TiltBridge to communicate with your Fermentrack install (or the internet - but it sounds like you want to prevent that). Blocking broadcasts (or mDNS specifically if you went that route) will make your life slightly mre difficult, but it won't prevent anything from working outright.

Just to clarify a bunch of design decisions that I made with regards to how devices interact with each-other & the internet:

Fermentrack (currently) accesses external sites on the internet for three reasons - only one of which involves sending data, and that can be disabled during setup. Fermentrack accesses GitHub for checking for updates and it accesses fermentrack.com to get the list of available firmware as part of the firmware flash procedure. Fermentrack sends error reports to my Sentry server - but if that option is enabled during setup. Disabling this option (or disabling internet access) won't impact anything other than my ability to know what bugs you've encountered. ;) There also may be CDN-hosted elements on some of Fermentrack's pages, but the package isn't accessing those - your web browser is.

My ESP8266 port of the BrewPi firmware doesn't access anything whatsoever either on your network or on the internet. It is accessed by brewpi-script as part of your Fermentrack (or BPR) installation. In the case of Fermentrack, it will attempt to use mDNS to locate any of these controllers you have on your network, but they can be added manually using the IP address if you prefer.

TiltBridge (currently) accesses the internet for two reasons, all of which have to either be triggered or configured by the user. TiltBridge accesses the TiltBridge website in order to check for updates when you click the option in its UI. TiltBridge also accesses the internet to send data to configured external push targets. If you configure a Fermentrack push target, it will access your (presumably internal) Fermentrack install to push its data. The TiltBridge will send its mDNS id to Fermentrack to identify itself as part of this process - but it doesn't require the use of mDNS to work.

I’m trying to get my tiltbridge to communicate with fermentrack. Not sure if it’s something I’m doing wrong or a bug.

In the tiltbridge settings page i have the fermentrack URL as http://192.168.xx.xxx/tiltbridge/ , however when i go to this URL i get the following error:


Code:
{
    "status": "failed",
    "message": "Malformed JSON - Unable to parse!"
}
 
mDNS is "Multicast DNS" - it uses a multicast UDP packet sent using 224.0.0.251, port 5353 (MAC 01:00:5E:00:00:FB). If you're smart enough to get yourself where you are now, you're smart enough to allow that. While I completely understand the desire for isolation and security, you'd be missing out on a lot by not allowing mDNS and intra-device communication.

If you are set up as you say, your only solution would be to move your Fermentrack to your trusted VLAN and that only if you allow a device on the untrusted VLAN to initiate contact with a trusted device. Assuming that the trusted VLAN is bridged to the IoT VLAN, mDNS will work. If not, you'll have to wait till @Thorrak tells you where that can be manually configured.

Honestly, I'm not sure why you thought this would work at all if all intra-device communication is blocked?

I guess it wasn't super clear - Fermentrack is on my LAN. Since it is on a more trusted VLAN and initiates traffic to the BrewPi to poll it, it works perfectly because I DO allow devices on my LAN to initiate traffic to devices in my IoT VLAN. If the BrewPi pushed traffic to Fermentrack, that wouldn't work unless I set up a specific exception. I'm honestly not missing a thing with not using mDNS. Never had a need for it. I suspect it was created to make things 'more plug and play'.

To @LBussy 's point, if you've completely blocked any communication between devices on that vlan, then that's an issue as the whole idea is for the TiltBridge to communicate with your Fermentrack install (or the internet - but it sounds like you want to prevent that). Blocking broadcasts (or mDNS specifically if you went that route) will make your life slightly mre difficult, but it won't prevent anything from working outright.

Just to clarify a bunch of design decisions that I made with regards to how devices interact with each-other & the internet:

Fermentrack (currently) accesses external sites on the internet for three reasons - only one of which involves sending data, and that can be disabled during setup. Fermentrack accesses GitHub for checking for updates and it accesses fermentrack.com to get the list of available firmware as part of the firmware flash procedure. Fermentrack sends error reports to my Sentry server - but if that option is enabled during setup. Disabling this option (or disabling internet access) won't impact anything other than my ability to know what bugs you've encountered. ;) There also may be CDN-hosted elements on some of Fermentrack's pages, but the package isn't accessing those - your web browser is.

My ESP8266 port of the BrewPi firmware doesn't access anything whatsoever either on your network or on the internet. It is accessed by brewpi-script as part of your Fermentrack (or BPR) installation. In the case of Fermentrack, it will attempt to use mDNS to locate any of these controllers you have on your network, but they can be added manually using the IP address if you prefer.

TiltBridge (currently) accesses the internet for two reasons, all of which have to either be triggered or configured by the user. TiltBridge accesses the TiltBridge website in order to check for updates when you click the option in its UI. TiltBridge also accesses the internet to send data to configured external push targets. If you configure a Fermentrack push target, it will access your (presumably internal) Fermentrack install to push its data. The TiltBridge will send its mDNS id to Fermentrack to identify itself as part of this process - but it doesn't require the use of mDNS to work.

Thanks - I wasn't concerned with your firmware or Fermentrack, I keep my IoT type stuff in its own VLAN first to avoid cluttering up my LAN with a ton of devices and also for general security.

Just to be clear, it sounds like unlike the BrewPi which sits there with its data and is polled by Fermentrack, the TiltBridge pushes the data to Fermentrack? Did I read that right?
 
I guess it wasn't super clear - Fermentrack is on my LAN. Since it is on a more trusted VLAN and initiates traffic to the BrewPi to poll it, it works perfectly because I DO allow devices on my LAN to initiate traffic to devices in my IoT VLAN. If the BrewPi pushed traffic to Fermentrack, that wouldn't work unless I set up a specific exception. I'm honestly not missing a thing with not using mDNS. Never had a need for it. I suspect it was created to make things 'more plug and play'.



Thanks - I wasn't concerned with your firmware or Fermentrack, I keep my IoT type stuff in its own VLAN first to avoid cluttering up my LAN with a ton of devices and also for general security.

Just to be clear, it sounds like unlike the BrewPi which sits there with its data and is polled by Fermentrack, the TiltBridge pushes the data to Fermentrack? Did I read that right?

You’re exactly right with the point of mDNS. Makes life easier. :)

Yes - the TiltBridge pushes data to Fermentrack so it has to be able to access devices on your LAN to work.
 
So I got my ESP32's a few days earlier than expected - USPS showed up with them today, but I'm not having any luck with the firmware.

I used your BrewFlasher to flash it and I've tried several different things - the first time I' flashed it, I selected 'yes, wipes all data' for the 'erase flash' option, and I think it erased the bootloader as well, as looking at the serial output showed a bootloop that indicated it couldn't read the bootloader. I got the booloader from espressif and after erasing the flash and flashing the booloader with their tool, I get this:

Code:
ets Jun  8 2016 00:22:57

rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0018,len:4
load:0x3fff001c,len:5564
load:0x40078000,len:0
load:0x40078000,len:13756
entry 0x40078fb4
[0;32mI (29) boot: ESP-IDF v3.0.3 2nd stage bootloader[0m
[0;32mI (29) boot: compile time 08:53:32[0m
[0;32mI (29) boot: Enabling RNG early entropy source...[0m
[0;32mI (33) boot: SPI Speed      : 40MHz[0m
[0;32mI (37) boot: SPI Mode       : DIO[0m
[0;32mI (41) boot: SPI Flash Size : 4MB[0m
[0;32mI (45) boot: Partition Table:[0m
[0;32mI (49) boot: ## Label            Usage          Type ST Offset   Length[0m
[0;32mI (56) boot: End of partition table[0m
[0;31mE (60) boot: No bootable app partitions in the partition table[0m
user code done

No surprise there.

I then flashed 'Tiltbridge v0.1 rev 1' (With 'erase flash' = no) and after power cycling it, I get the following:

Code:
ets Jun  8 2016 00:22:57

rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0018,len:4
load:0x3fff001c,len:5564
load:0x40078000,len:0
load:0x40078000,len:13756
entry 0x40078fb4
[0;32mI (28) boot: ESP-IDF v3.0.3 2nd stage bootloader[0m
[0;32mI (29) boot: compile time 08:53:32[0m
[0;32mI (29) boot: Enabling RNG early entropy source...[0m
[0;32mI (33) boot: SPI Speed      : 40MHz[0m
[0;32mI (37) boot: SPI Mode       : DIO[0m
[0;32mI (41) boot: SPI Flash Size : 4MB[0m
[0;31mE (45) flash_parts: partition 6 invalid magic number 0xebeb[0m
[0;31mE (51) boot: Failed to verify partition table[0m
[0;31mE (57) boot: load partition table error![0m
user code done

It seems like it doesn't like one of the partitions flashed by BrewFlasher - any thoughts?
 
Last edited:
So I got my ESP32's a few days earlier than expected - USPS showed up with them today, but I'm not having any luck with the firmware.

I used your BrewFlasher to flash it and I've tried several different things - the first time I' flashed it, I selected 'yes, wipes all data' for the 'erase flash' option, and I think it erased the bootloader as well, as looking at the serial output showed a bootloop that indicated it couldn't read the bootloader. I got the booloader from espressif and after erasing the flash and flashing the booloader with their tool, I get this:

Code:
ets Jun  8 2016 00:22:57

rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0018,len:4
load:0x3fff001c,len:5564
load:0x40078000,len:0
load:0x40078000,len:13756
entry 0x40078fb4
[0;32mI (29) boot: ESP-IDF v3.0.3 2nd stage bootloader[0m
[0;32mI (29) boot: compile time 08:53:32[0m
[0;32mI (29) boot: Enabling RNG early entropy source...[0m
[0;32mI (33) boot: SPI Speed      : 40MHz[0m
[0;32mI (37) boot: SPI Mode       : DIO[0m
[0;32mI (41) boot: SPI Flash Size : 4MB[0m
[0;32mI (45) boot: Partition Table:[0m
[0;32mI (49) boot: ## Label            Usage          Type ST Offset   Length[0m
[0;32mI (56) boot: End of partition table[0m
[0;31mE (60) boot: No bootable app partitions in the partition table[0m
user code done

No surprise there.

I then flashed 'Tiltbridge v0.1 rev 1' (With 'erase flash' = no) and after power cycling it, I get the following:

Code:
ets Jun  8 2016 00:22:57

rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0018,len:4
load:0x3fff001c,len:5564
load:0x40078000,len:0
load:0x40078000,len:13756
entry 0x40078fb4
[0;32mI (28) boot: ESP-IDF v3.0.3 2nd stage bootloader[0m
[0;32mI (29) boot: compile time 08:53:32[0m
[0;32mI (29) boot: Enabling RNG early entropy source...[0m
[0;32mI (33) boot: SPI Speed      : 40MHz[0m
[0;32mI (37) boot: SPI Mode       : DIO[0m
[0;32mI (41) boot: SPI Flash Size : 4MB[0m
[0;31mE (45) flash_parts: partition 6 invalid magic number 0xebeb[0m
[0;31mE (51) boot: Failed to verify partition table[0m
[0;31mE (57) boot: load partition table error![0m
user code done

It seems like it doesn't like one of the partitions flashed by BrewFlasher - any thoughts?
Which ESP32 did you get?
 
Looks like I got it working. The first time I tried flashing it with BrewFlasher after I flashed the 'ESP32-WROOM-32_AT_Bin_V2.0' bootloader, after it flashed and I rebooted it, it wouldn't stay connected to my PC over USB like it was constantly rebooting. After some messing around and retrying flashes, I got to where I was able to see a 'brownout detector tripped' message as it kept rebooting. So I powered it with an external PS and re-flashed everything and now it is booting ok and I'm getting the 'TiltBridgeAP' network, however, it appears to be WPA2 secured. I tried using 'TiltBridgeAP' as the key, but it didn't like that and I don't see any mention of a key for it.
 
It's this one, which uses the exact same ESP-WROOM-32 module as the one you linked from Aliexpress. The differences are mainly in the voltage regulator and USB to serial bridge.

Ah. Unfortunately, this project is a lot more hardware-sensitive than other projects of mine. These days I'm not even officially attempting to support boards other than the LoLin D32 Pro /w TFT screen, though I am continuing to compile the OLED firmware. Unfortunately, that means you're going to be on your own with any problems you experience. That said, it sounds like you got it figured out from your next post.

Looks like I got it working. The first time I tried flashing it with BrewFlasher after I flashed the 'ESP32-WROOM-32_AT_Bin_V2.0' bootloader, after it flashed and I rebooted it, it wouldn't stay connected to my PC over USB like it was constantly rebooting. After some messing around and retrying flashes, I got to where I was able to see a 'brownout detector tripped' message as it kept rebooting. So I powered it with an external PS and re-flashed everything and now it is booting ok and I'm getting the 'TiltBridgeAP' network, however, it appears to be WPA2 secured. I tried using 'TiltBridgeAP' as the key, but it didn't like that and I don't see any mention of a key for it.

Yeah - the TiltBridge firmware displays the AP name & password on the attached screen (if any) at boot. You're right though - I should probably get the AP/pass added to the documentation for those intrepid souls that attempt to run the firmware on a controller without an attached screen. The AP name is "TiltBridgeAP" and the pass is "tiltbridge". The password is mostly there to prevent a pesky neighbor from thinking you have free WiFi if they happen to find it before you get it fully configured. ;)
 
Ah. Unfortunately, this project is a lot more hardware-sensitive than other projects of mine. These days I'm not even officially attempting to support boards other than the LoLin D32 Pro /w TFT screen, though I am continuing to compile the OLED firmware. Unfortunately, that means you're going to be on your own with any problems you experience. That said, it sounds like you got it figured out from your next post.



Yeah - the TiltBridge firmware displays the AP name & password on the attached screen (if any) at boot. You're right though - I should probably get the AP/pass added to the documentation for those intrepid souls that attempt to run the firmware on a controller without an attached screen. The AP name is "TiltBridgeAP" and the pass is "tiltbridge". The password is mostly there to prevent a pesky neighbor from thinking you have free WiFi if they happen to find it before you get it fully configured. ;)


Great, that did it - everything's working now. Fermentrack complained about not finding the TiltBridge via mDNS and not being able to set it up as expected, but I had already set up the Fermentrack address on the TiltBridge and allowed HTTP between it and Fermentrack, so it happily reports back on schedule.

It's odd that the project is hardware sensitive. While the supporting hardware can vary greatly, the ESP module soldered to it should be the same regardless of who put it together. One would think that if it has a 'ESP-WROOM-32' module on it with what I assume is part number 211-161007, which is what the LoLin D32 linked in the documentation has, it would work the same. Mine was really weird. After flashing the TiltBridge firmware, it didn't want to work right with 5v applied to the VIN and GND pins, and it apparently didn't get enough power through a 6' USB cable, which is a pretty standard length, even when connected to a 2A port on my USB hub, but with both VIN and USB connected, it worked. I then found that the buck/boost power supply that I use to power my 3d printers OctoPi powered it fine with USB only, so I set another one up to power this and the BrewPi, so all is well. If anyone tries some other hardware than the LoLin and has weird issues like this, they might try a shorter (or different) USB cable. Maybe the issues people have with other modules are actually weird power related issues like I had. I wouldn't think something as low power as this wouldn't be able to get enough power over a 6' cable, but apparently it had issues with it.
 
Great, that did it - everything's working now. Fermentrack complained about not finding the TiltBridge via mDNS and not being able to set it up as expected, but I had already set up the Fermentrack address on the TiltBridge and allowed HTTP between it and Fermentrack, so it happily reports back on schedule.

It's odd that the project is hardware sensitive. While the supporting hardware can vary greatly, the ESP module soldered to it should be the same regardless of who put it together. One would think that if it has a 'ESP-WROOM-32' module on it with what I assume is part number 211-161007, which is what the LoLin D32 linked in the documentation has, it would work the same. Mine was really weird. After flashing the TiltBridge firmware, it didn't want to work right with 5v applied to the VIN and GND pins, and it apparently didn't get enough power through a 6' USB cable, which is a pretty standard length, even when connected to a 2A port on my USB hub, but with both VIN and USB connected, it worked. I then found that the buck/boost power supply that I use to power my 3d printers OctoPi powered it fine with USB only, so I set another one up to power this and the BrewPi, so all is well. If anyone tries some other hardware than the LoLin and has weird issues like this, they might try a shorter (or different) USB cable. Maybe the issues people have with other modules are actually weird power related issues like I had. I wouldn't think something as low power as this wouldn't be able to get enough power over a 6' cable, but apparently it had issues with it.

Issues like that are exactly why I have found the project is so hardware (see: manufacturer) sensitive. :p

The issues I keep running into all involve the supporting hardware around the WROOM - rarely the ESP32 itself. In general the various boards have mixed success with regards to their power management - including the ones you noted. Some boards come pre-flashed with firmware that then subsequently requires a full "hard" reset - some boards can flash damn near anything without issue. For the OLED branch, I found that even identical-looking boards could have different OLED pinouts resulting in the firmware needing to support (at current count) 3 different potential configurations. It's... frustrating, to say the least.
 
I'm very strongly contemplating giving up on the over-the-air update functionality for TiltBridge, as the size of the core libraries have grown past the ability of the current partition scheme to support both them and the full feature set that TiltBridge provides.

The good thing about doing this is that it will potentially open the door for adding additional features down the line but it will mean that each TiltBridge will need to be connected to a PC/Raspberry Pi/Mac/etc. for each firmware update.
 
Back
Top