• We have a new forum and it needs your help! Homebrewing Deals is a forum to post whatever deals and specials you find that other homebrewers might value! Includes coupon layering, Craigslist finds, eBay finds, Amazon specials, etc.

TiltBridge - Tilt-to-WiFi Device for Tilt Hydrometer

HomeBrewTalk.com - Beer, Wine, Mead, & Cider Brewing Discussion Community.

Help Support Homebrew Talk:

mwayne112

Well-Known Member
Joined
Jan 18, 2012
Messages
78
Reaction score
5
Location
Birmingham
@mwayne112 Did you ever get this sorted?

I'm having the exact same issue...my Tiltbridge is communicating on my network (I can hit the web interface) and it is bound to my Fermentrack instance, but it doesn't seem to be able to pass temp/gravity readings to the Fermentrack.View attachment 681027

I did not get this resolved, abandoned it and went back to the native TiltPi image.
 
Joined
Nov 23, 2014
Messages
24
Reaction score
3
Location
Burlington, WA
I did not get this resolved, abandoned it and went back to the native TiltPi image.
I just took a look at my setup and immediately figured out where I made my mistake. I didn't specify the full URL of my Fermentrack instance in my Tiltbridge settings...I only had the IP address of the Fermentrack instance (in my case 192.168.2.233). I added the "/tiltbridge" (and added the http:// just for good measure) waited 30 seconds for a communication cycle and...boom...recording Tilt data on my Fermentrack.
TiltBridge.jpeg
 
OP
T

Thorrak

Supporting Member
HBT Supporter
Joined
Feb 7, 2016
Messages
2,350
Reaction score
1,255
Location
New York, NY
@Thorrak I don't recall what version I flashed. I looked but didn't see an obvious firmware version listed anywhere on the Tiltbridge web interface. Can I query the device in any way to see the firmware version?
You know... That's a really good thing to have. I probably should add that somewhere...
 

Cougar281

Well-Known Member
Joined
Nov 22, 2017
Messages
56
Reaction score
9
What is the expected behavior of the TFT firmware Tiltbridge? If you recall, when I first tried to use it, it was determined that the code is waiting for an input from the TFT touch interface, and as a result, it was never fully booting and so the web interface never came up. Now that I have a TFT, I tried the firmware again and it's still behaving 'oddly'. After setting it to connect to my AP, it comes up with the 'Access your TiltBridge at:' message, but the Web interface still does not come up. I had stopped playing with it for a bit and just decided to give it a whirl with the latest firmware. Same thing - however, somehow, something made it start working - While I had it sitting here on my desk, I noticed all of a sudden it came up with the TiltBridge logo, followed by the headers for the Tilt info (It's not receiving any Tilt data because my Tilt is sleeping right now). The web interface was then accessible. I noticed in that time that it went back and forth between the logo and the headers. Is this normal?

But then after a power cycle, it was back to sitting at the 'Access your TiltBridge at:' message. So far it's been about 10 minutes and it still can't be reached. I have no idea what caused it to 'start working' before. Any thoughts?
 
OP
T

Thorrak

Supporting Member
HBT Supporter
Joined
Feb 7, 2016
Messages
2,350
Reaction score
1,255
Location
New York, NY
What is the expected behavior of the TFT firmware Tiltbridge? If you recall, when I first tried to use it, it was determined that the code is waiting for an input from the TFT touch interface, and as a result, it was never fully booting and so the web interface never came up. Now that I have a TFT, I tried the firmware again and it's still behaving 'oddly'. After setting it to connect to my AP, it comes up with the 'Access your TiltBridge at:' message, but the Web interface still does not come up. I had stopped playing with it for a bit and just decided to give it a whirl with the latest firmware. Same thing - however, somehow, something made it start working - While I had it sitting here on my desk, I noticed all of a sudden it came up with the TiltBridge logo, followed by the headers for the Tilt info (It's not receiving any Tilt data because my Tilt is sleeping right now). The web interface was then accessible. I noticed in that time that it went back and forth between the logo and the headers. Is this normal?

But then after a power cycle, it was back to sitting at the 'Access your TiltBridge at:' message. So far it's been about 10 minutes and it still can't be reached. I have no idea what caused it to 'start working' before. Any thoughts?
That is definitely not the expected behavior.

Once your Tiltbridge is configured, it should come up within ~10 seconds. At boot, the TiltBridge connects to your wifi, displays the "access your tiltbridge" screen, waits 1 second then triggers the bluetooth scan and waits 5 additional seconds for the scan to complete (while the "Access your TiltBridge" screen is still visible). Then, it brings up the web interface.

When running, your TiltBridge should alternate between the headers and the logo.
 

Cougar281

Well-Known Member
Joined
Nov 22, 2017
Messages
56
Reaction score
9
That is definitely not the expected behavior.

Once your Tiltbridge is configured, it should come up within ~10 seconds. At boot, the TiltBridge connects to your wifi, displays the "access your tiltbridge" screen, waits 1 second then triggers the bluetooth scan and waits 5 additional seconds for the scan to complete (while the "Access your TiltBridge" screen is still visible). Then, it brings up the web interface.

When running, your TiltBridge should alternate between the headers and the logo.
Any thoughts why it's sitting at the 'Access your TiltBridge at:' screen? As of now, it's been sitting there since I last posted... This is on one of my Lolin D32 Pro units. Originally, I thought maybe something was goofy with the touch portion of the screen based on the previous issue of it not completing the boot without a screen (I have been looking for but failed to find some sort of 'demo' sketch or binary to load that would allow me to test the touch functionality of the display), but it seems that's fine as I discovered by accident that when you touch the screen while the TiltBridge logo is up, it gave me the 'Touch screen again to reset wifi' screen.

There doesn't seem to be anything useful coming out of the serial interface - when I reset it, I get:
Code:
rst:0x1 (POWERON_RESET),boot:0x17 (SPI_FAST_FLASH_BOOT)
flash read err, 1000
ets_main.c 371 
ets Jun  8 2016 00:22:57

rst:0x10 (RTCWDT_RTC_RESET),boot:0x17 (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:1044
load:0x40078000,len:10044
load:0x40080400,len:5872
entry 0x400806ac
Seems like once it boots, it stops sending any data out the serial port.
 
OP
T

Thorrak

Supporting Member
HBT Supporter
Joined
Feb 7, 2016
Messages
2,350
Reaction score
1,255
Location
New York, NY
Any thoughts why it's sitting at the 'Access your TiltBridge at:' screen? As of now, it's been sitting there since I last posted... This is on one of my Lolin D32 Pro units. Originally, I thought maybe something was goofy with the touch portion of the screen based on the previous issue of it not completing the boot without a screen (I have been looking for but failed to find some sort of 'demo' sketch or binary to load that would allow me to test the touch functionality of the display), but it seems that's fine as I discovered by accident that when you touch the screen while the TiltBridge logo is up, it gave me the 'Touch screen again to reset wifi' screen.

There doesn't seem to be anything useful coming out of the serial interface - when I reset it, I get:
Code:
rst:0x1 (POWERON_RESET),boot:0x17 (SPI_FAST_FLASH_BOOT)
flash read err, 1000
ets_main.c 371
ets Jun  8 2016 00:22:57

rst:0x10 (RTCWDT_RTC_RESET),boot:0x17 (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:1044
load:0x40078000,len:10044
load:0x40080400,len:5872
entry 0x400806ac
Seems like once it boots, it stops sending any data out the serial port.
I’ll build you firmware with the serial debug turned on. Give me a bit.
 

duncan.brown

Supporting Member
HBT Supporter
Joined
Apr 8, 2020
Messages
27
Reaction score
13
Location
Syracuse
I've successfully installed TiltBridge on a TTGO T-Display ESP32 from Amazon:


WiFi is configured, set it up to post to my brewstat.us page using the google sheets proxy, and tested with one of my tilts. Everything looks good, so it's doing what I need, thanks!

The only niggle is that nothing is displayed on the board's display. The display is working as it showed the manufacturer's splash screen when I first powered it up, but after flashing with the TiltBridge firmware and rebooting, it's blank.

I flashed from the files in the bin directory at commit 2e0c5e75b8110a84fddad0363192ff6fb29ad15e using the command:
Bash:
esptool.py --chip esp32 --before default_reset --after hard_reset write_flash 0x10000 firmware.bin 0x8000 partitions.bin 0x3D1000 spiffs.bin
Any ideas what I need to poke to get it working?

Edit: Ack, my old iPad was in the basement running the Tilt app. Looks like that's what was broadcasting to brewstat.us.

The web page is up and updating with my tilt's data, but not updating the display or sending data to brewstat.us. Time for some debugging...

Edit 2: I used platformio to install a TTGO Hello world test program on the board and confirmed that the display is working. I then re-built the TiltBridge code from commit 2e0c5e by patching the 2e0c5e by patching the platformio.ini file for my board:
Diff:
diff --git a/platformio.ini b/platformio.ini
index 2a5803f..f407a74 100644
--- a/platformio.ini
+++ b/platformio.ini

@@ -11,14 +11,17 @@


 [common]
-;platform = espressif32
-platform = https://github.com/platformio/platform-espressif32.git#feature/stage
+platform = [email protected]
+;platform = https://github.com/platformio/platform-espressif32.git#feature/stage
 ;platform = https://github.com/platformio/platform-espressif32.git
 ;platform = https://github.com/thorrak/platform-espressif32.git#feature/stage
-board = lolin32
+board = esp32dev
 framework = arduino
 board_build.partitions = min_spiffs.csv

+monitor_speed = 115200
+upload_speed = 921600
+

 ; -D_GLIBCXX_USE_C99 is to fix an issue with the xtensa toolchain that precludes the use of std::to_string
 ; See: https://github.com/espressif/esp-idf/issues/1445
 build_flags =
and reinstalling with

Bash:
/Users/dbrown/.platformio/penv/bin/platformio run --target upload
This seemed to work:
Code:
Wrote 1933536 bytes (1109981 compressed) at 0x00010000 in 18.2 seconds (effective 847.6 kbit/s)...
Hash of data verified.
Leaving...
Hard resetting via RTS pin...
==== [SUCCESS] Took 72.36 seconds ====
However, the display is still blank.

I confirmed that it is also not uploading to the proxy. I ran Wireshark to sniff packets from the ESP board's IP and I see the traffic between my laptop and the board, but there are no packets going from my network to the proxy on tiltbridge.org. Here's a HTTP/200 packet from the board to my laptop showing that the board is seeing my tilt and communicating with my browser:
JSON:
{"Red":{"color":"Red","gravity":"1.139","gsheets_name":"Red","temp":73}}
So Tilt->TiltBridge works, but the display does not work.
Browser<->TiltBridge works, but the TiltBridge is not sending to the proxy.

This looks like a weekend debugging project now...
 
Last edited:
OP
T

Thorrak

Supporting Member
HBT Supporter
Joined
Feb 7, 2016
Messages
2,350
Reaction score
1,255
Location
New York, NY
I've successfully installed TiltBridge on a TTGO T-Display ESP32 from Amazon:


WiFi is configured, set it up to post to my brewstat.us page using the google sheets proxy, and tested with one of my tilts. Everything looks good, so it's doing what I need, thanks!

The only niggle is that nothing is displayed on the board's display. The display is working as it showed the manufacturer's splash screen when I first powered it up, but after flashing with the TiltBridge firmware and rebooting, it's blank.

I flashed from the files in the bin directory at commit 2e0c5e75b8110a84fddad0363192ff6fb29ad15e using the command:
Bash:
esptool.py --chip esp32 --before default_reset --after hard_reset write_flash 0x10000 firmware.bin 0x8000 partitions.bin 0x3D1000 spiffs.bin
Any ideas what I need to poke to get it working?

Edit: Ack, my old iPad was in the basement running the Tilt app. Looks like that's what was broadcasting to brewstat.us.

The web page is up and updating with my tilt's data, but not updating the display or sending data to brewstat.us. Time for some debugging...

Edit 2: I used platformio to install a TTGO Hello world test program on the board and confirmed that the display is working. I then re-built the TiltBridge code from commit 2e0c5e by patching the 2e0c5e by patching the platformio.ini file for my board:
Diff:
diff --git a/platformio.ini b/platformio.ini
index 2a5803f..f407a74 100644
--- a/platformio.ini
+++ b/platformio.ini

@@ -11,14 +11,17 @@


[common]
-;platform = espressif32
-platform = https://github.com/platformio/platform-espressif32.git#feature/stage
+platform = [email protected]
+;platform = https://github.com/platformio/platform-espressif32.git#feature/stage
;platform = https://github.com/platformio/platform-espressif32.git
;platform = https://github.com/thorrak/platform-espressif32.git#feature/stage
-board = lolin32
+board = esp32dev
framework = arduino
board_build.partitions = min_spiffs.csv

+monitor_speed = 115200
+upload_speed = 921600
+

; -D_GLIBCXX_USE_C99 is to fix an issue with the xtensa toolchain that precludes the use of std::to_string
; See: https://github.com/espressif/esp-idf/issues/1445
build_flags =
and reinstalling with

Bash:
/Users/dbrown/.platformio/penv/bin/platformio run --target upload
This seemed to work:
Code:
Wrote 1933536 bytes (1109981 compressed) at 0x00010000 in 18.2 seconds (effective 847.6 kbit/s)...
Hash of data verified.
Leaving...
Hard resetting via RTS pin...
==== [SUCCESS] Took 72.36 seconds ====
However, the display is still blank.

I confirmed that it is also not uploading to the proxy. I ran Wireshark to sniff packets from the ESP board's IP and I see the traffic between my laptop and the board, but there are no packets going from my network to the proxy on tiltbridge.org. Here's a HTTP/200 packet from the board to my laptop showing that the board is seeing my tilt and communicating with my browser:
JSON:
{"Red":{"color":"Red","gravity":"1.139","gsheets_name":"Red","temp":73}}
So Tilt->TiltBridge works, but the display does not work.
Browser<->TiltBridge works, but the TiltBridge is not sending to the proxy.

This looks like a weekend debugging project now...
ACK! I am so sorry for missing this.

Without drilling into the commit IDs you linked, what branch are you using? Whatever you're doing, make sure you are on the d32_pro branch. I was actually able to eliminate the need for the proxy entirely with that branch, as well as incorporate a number of fixes.

That branch will become master as soon as LOLIN actually restocks their damn store (or I find an alternative board to use where TiltBridges can be built consistently - ideally with touchscreens - consistently without soldering).
 

duncan.brown

Supporting Member
HBT Supporter
Joined
Apr 8, 2020
Messages
27
Reaction score
13
Location
Syracuse
Thanks! I was on the master branch, not the d32_pro branch. I spent some time hacking master to get the display on my board working. i2c_device_at_address() wasn't seeing the display on my TTGO T-Display board, so I switched to using the TFT_eSPI library to drive the display. The display is now working and I hacked the code to show gravity and temperature, and use the font color to identify the tilt.

My display code is in a fork at duncan-brown/tiltbridge

I'll check out the d32_pro branch and try that to see if pushes to brewstat.us are working. If the display doesn't work on that branch, I'll port my display changes and put in a pull request.
 

Attachments

OP
T

Thorrak

Supporting Member
HBT Supporter
Joined
Feb 7, 2016
Messages
2,350
Reaction score
1,255
Location
New York, NY
Thanks! I was on the master branch, not the d32_pro branch. I spent some time hacking master to get the display on my board working. i2c_device_at_address() wasn't seeing the display on my TTGO T-Display board, so I switched to using the TFT_eSPI library to drive the display. The display is now working and I hacked the code to show gravity and temperature, and use the font color to identify the tilt.

My display code is in a fork at duncan-brown/tiltbridge

I'll check out the d32_pro branch and try that to see if pushes to brewstat.us are working. If the display doesn't work on that branch, I'll port my display changes and put in a pull request.
Oh - You have the USB-C version - that explains it. Happy to take a PR for that into the d32_pro branch if you send one through - I'll get it set up as an additional firmware target and we should be good to go. From looking at your branch, we'd probably need to break out the new display into its own #ifdef blocks similar to how the ILI9341 TFT support was added, but that should be easy enough to do in order to support all 3 targets.

Brewstat.us support was never something I designed support/tested for, so I'd be curious how it works for you depending on which target type you use. It's easy enough add support for a new target if it needs custom code - now that I've switched bluetooth drivers there's a lot more flash space available.
 

duncan.brown

Supporting Member
HBT Supporter
Joined
Apr 8, 2020
Messages
27
Reaction score
13
Location
Syracuse
Happy to take a PR for that into the d32_pro branch if you send one through
I added the code with proper #defines and created a pull request at Add support for the TTGO T-Display board using TFT_eSPI by duncan-brown · Pull Request #25 · thorrak/tiltbridge

The display now works fine and sees my three tilts, but now I can't access the web server. When I try and connect to the IP displayed on the Tilt (which is correct according to my router) it closes the connection without responding. I tried to see the index page manually and the board closes the connection as soon as I start typing GET:

Code:
[[email protected] tiltbridge]$ telnet 10.0.1.118 80
Trying 10.0.1.118...
Connected to 10.0.1.118.
Escape character is '^]'.
GET Connection closed by foreign host.
I'll keep hacking, but I'm making progress.
 

duncan.brown

Supporting Member
HBT Supporter
Joined
Apr 8, 2020
Messages
27
Reaction score
13
Location
Syracuse
nvm, I forgot to update the SPIFFs after changing the partitioning on the card so the web server couldn't find any files to server. Fixed with a --target uploadfs. Now on to debugging brewstat.us
 
Top