Fermentrack: Fermentation monitoring & BrewPi-www Replacement for Raspberry Pi

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.
yeh I was thinking of maybe getting better probes. The probes i bought from eBay were only $4.95 each. The probes I can get from another supplier Aus electronic direct are $21 each but I want to make sure they aren’t the same eBay cheapies they are selling.

Are you in Australia, if so the ones from Altronics are good to go
 
Hi, i'm new here and i've been brewing and fermenting in a manual manner for a couple of years, and i have now gotten to the point equipmentwise where i can start to automate stuff. I got a fridge, tilt, an inkbird and a heat belt. My questions about Fermentrack are: Does it have support for a inkbird itc 308? And is it possible to get it to interact with google docs the way TiltPI does (Uploading sg and temp and making a graph in a calc?)
 
Ah, sorry for being a tad unclear. I didn't know they existed without wifi.

I just bought one from my local brewing shop and assumed that was the concept so to speak
 
Wondering if you can help - I have Fermentrack installed on a fresh installation of Buster 32 bit - without issue - except when I am trying to flash a controller - I have tried esp8266, Wavgat Uno R3 they just report failure - managed to flash a nano but fermentrack would not recognise pin allocations - been into Raspi config and enabled USB serial - followed the fermentrack doc instructions to the letter - just frustrated
 
Hi, i'm new here and i've been brewing and fermenting in a manual manner for a couple of years, and i have now gotten to the point equipmentwise where i can start to automate stuff. I got a fridge, tilt, an inkbird and a heat belt. My questions about Fermentrack are: Does it have support for a inkbird itc 308? And is it possible to get it to interact with google docs the way TiltPI does (Uploading sg and temp and making a graph in a calc?)

Currently, that hardware is not supported. I don't necessarily object to having support for other temperature controllers added to Fermentrack, but it's not a feature that I am likely to build myself. That said - Fermentrack is open source, and pull requests are welcome!

Google Docs integration is a bit trickier -- my experience with TiltBridge has not been stellar, unfortunately. For Google Docs integrations to work, typically users have to go in, edit scripts, fiddle with the developer console, etc. -- none of which are conducive to a positive end user experience. I actually have a project planned to help move away from google docs for active data collection, though there is no ETA on that as it's a ways down in the queue.

Wondering if you can help - I have Fermentrack installed on a fresh installation of Buster 32 bit - without issue - except when I am trying to flash a controller - I have tried esp8266, Wavgat Uno R3 they just report failure - managed to flash a nano but fermentrack would not recognise pin allocations - been into Raspi config and enabled USB serial - followed the fermentrack doc instructions to the letter - just frustrated

It's hard to tell exactly what you might be experiencing. Which hardware exactly are you trying to flash -- you mention an ESP8266, an Arduino Uno clone, and a "nano" - exactly which boards/firmware did you try? Did the flashing itself fail, or are the issues just related to pin assignment?
 
I have five fermenters, not necessarily going all at once but could be - so I need at least 11 io pins (10 for heat/cool and one for DS18B20 probes) and the esp8266 doesn't have that many so I'm stuck with the Arduino boards and have Fermentrack running on a RP3B with 32 bit Buster Legacy, I had tried the latest OS version and then tried the legacy both have the same result.
When I get to flash a controller, I initially tried a Wavgat Uno R3 from Ali Express after downloading the drivers and ensuring the Blink program uploads and works which it does, but after selecting the uno board and having it found by fermentrack, the flashing process fails, so I tried an Arduino Nano which flashed successfully but Fermentrack doesn't recognise the pinouts will not allow me to assign pins. Then i tried the ESP8266 NodeMCU V3 30 PINS IoT WiFi Dev Board which also fails to flash.
The RP3B has enough pins, why I can't just use the Pi and dispense with the Arduino.
I would also like to measure Pressure but can't see anywhere if Fermentrack can do that. Happy to use an Arduino Mega if need be, but no option available in Fermentrack to use that board.
I have ordered a genuine Uno R3 to see if that helps.
Your advice would be greatly appreciated.
 
I have five fermenters, not necessarily going all at once but could be - so I need at least 11 io pins (10 for heat/cool and one for DS18B20 probes) and the esp8266 doesn't have that many so I'm stuck with the Arduino boards and have Fermentrack running on a RP3B with 32 bit Buster Legacy, I had tried the latest OS version and then tried the legacy both have the same result.
When I get to flash a controller, I initially tried a Wavgat Uno R3 from Ali Express after downloading the drivers and ensuring the Blink program uploads and works which it does, but after selecting the uno board and having it found by fermentrack, the flashing process fails, so I tried an Arduino Nano which flashed successfully but Fermentrack doesn't recognise the pinouts will not allow me to assign pins. Then i tried the ESP8266 NodeMCU V3 30 PINS IoT WiFi Dev Board which also fails to flash.
The RP3B has enough pins, why I can't just use the Pi and dispense with the Arduino.
I would also like to measure Pressure but can't see anywhere if Fermentrack can do that. Happy to use an Arduino Mega if need be, but no option available in Fermentrack to use that board.
I have ordered a genuine Uno R3 to see if that helps.
Your advice would be greatly appreciated.

Ahh, got it. Unfortunately, each individual fermenter/fridge combination needs its own Arduino or ESP8266 -- you can't use a single controller to manage multiple chambers, regardless of how many pins that controller has. You're welcome to use whatever architecture you like, but my recommendation is almost always to use ESP-based controllers over Arduinos for new builds.

Fermentrack does not natively support using the pins on a Raspberry Pi for temperature control. Fermentrack also (currently) does not log or manage pressure.
 
OK I'll rewire to only one ESP8266 and see how that goes but confused what fermentrak actually does - if a separate controller is required for each fermenter may as well have a nano wired to a 1306 with rotary encoder to control each fermenter..
 
OK I'll rewire to only one ESP8266 and see how that goes but confused what fermentrak actually does - if a separate controller is required for each fermenter may as well have a nano wired to a 1306 with rotary encoder to control each fermenter..

Historically, a BrewPi was a combination of a hardware controller (Arduino) running the BrewPi firmware and a Raspberry Pi running BrewPi-www (the web interface). These were matched 1:1 -- Every BrewPi controller required its own copy of BrewPi-www running, which in many cases was implemented by users purchasing separate Raspberry Pis for each BrewPi instance or spending substantial time in the terminal in order to manually "hack" the legacy interface to run on different ports using custom settings.

Fermentrack is a replacement for BrewPi-www, and allows multiple BrewPi controllers to be managed from the same web app. It additionally brings a modern web interface, support for logging gravity readings from iSpindels and Tilt Hydrometers, and adds functionality like the guided firmware flashing process to make finishing a build easier. Fermentrack was designed alongside my ESP8266 port of the BrewPi firmware and is built with the end user experience in mind.

One thing to note - after Fermentrack was released, @LBussy created BrewPi Remix which provides the same multi-controller functionality, but using the historical BrewPi-www user interface. While I'm (obviously) partial to Fermentrack, both BrewPi Remix and Fermentrack work well, and the choice of which to use largely comes down to personal preference.
 
Hi, i'm new here and i've been brewing and fermenting in a manual manner for a couple of years, and i have now gotten to the point equipmentwise where i can start to automate stuff. I got a fridge, tilt, an inkbird and a heat belt. My questions about Fermentrack are: Does it have support for a inkbird itc 308? And is it possible to get it to interact with google docs the way TiltPI does (Uploading sg and temp and making a graph in a calc
Fermetrack uses the BrewPi DIY controller for managing the temperature of your fridge. It supports both cooling and heating. There is not yet any support for other controllers. See: GitHub - thorrak/brewpi-esp8266: An implementation of the BrewPi device code on an ESP8266 (No arduino needed!)
 
Hi guys, I know its been asked before bit there are so many posets in this thread now. But what’s the best way to copy my SD card for when the one Im using gets corruoted and I have to start again?

I assume Ill need to connect my raspberry pi to a monitor and keyboard etc and do it within raspian but will it boot up to raspbian?

Or can I do it via terminal commands?
 
Quick question.

Whenever I have a power outage my fermentrack device home page gives me the "Cannot receive LCD text from Controller/Script" error.

This is fixed by hitting the reset button on the power strip the devices are plugged in.

Is there any way to fix this from within fermentrack? The power strip is a little awkward to access as it's behind some mini fridges.
 
Quick question.

Whenever I have a power outage my fermentrack device home page gives me the "Cannot receive LCD text from Controller/Script" error.

This is fixed by hitting the reset button on the power strip the devices are plugged in.

Is there any way to fix this from within fermentrack? The power strip is a little awkward to access as it's behind some mini fridges.

Honestly, it's difficult to say as it depends on which part of the stack is having issues. If it's the controller/firmware itself, trying the v14_beta firmware might resolve the issue. If it's BrewPi-script, then some of the latest changes on the docker-dev branch may help (though admittedly, they're some pretty dramatic changes in some cases, so they could make things much much worse).
 
I'm installing a new BrewPi controller built with the ESP32-S2 board. Everything set up fine, but I wanted to adjust a .8 deg F temperature difference for the chamber probe. I couldn't find any way to set the offset without unassigning the probe and reassigning it. The problem is it fails to assign the probe if there is any offset entered for it. I attempted many times, both entering a value by hand and using the dropdown numbers. It fails every time unless I remove the offset number. Am I missing something or is this a glitch?
 
Hey @Thorrak, I'm making a new controller using a Lolin D1 Mini v. 4 and I'm getting failures when trying to flash the controller. See below. I tried using the old firmware, but I'm getting the same error. I tried using choosing Node-MCU and non-node MCU but get the same error. What am I doing wrong?


Flash Status

Flashed: Feb. 19, 2023, 7:26 p.m.

Status: failed

Firmware Flashed: BrewPi-ESP8266 - 0.11 - - Serial

Board Type Selected: NodeMCU (ESP-12E) - ESP8266

Serial Port Used: /dev/ttyUSB0

Result Text: Flash process returned code 2

b'esptool.py v2.8\nSerial port /dev/ttyUSB0\nConnecting....\nDetecting chip type... ESP8266\nChip is ESP8266EX\nFeatures: WiFi\nCrystal is 26MHz\nMAC: 7c:87:ce:b5:2d:35\nUploading stub...\nRunning stub...\nStub running...\nConfiguring flash size...\nAuto-detected Flash size: 4MB\nCompressed 314912 bytes to 226809...\n\rWriting at 0x00000000... (7 %)\rWriting at 0x00004000... (14 %)\rWriting at 0x00008000... (21 %)\rWriting at 0x0000c000... (28 %)\rWriting at 0x00010000... (35 %)\rWriting at 0x00014000... (42 %)\rWriting at 0x00018000... (50 %)\rWriting at 0x0001c000... (57 %)\rWriting at 0x00020000... (64 %)\rWriting at 0x00024000... (71 %)\rWriting at 0x00028000... (78 %)\rWriting at 0x0002c000... (85 %)\rWriting at 0x00030000... (92 %)\rWriting at 0x00034000... (100 %)\rWrote 314912 bytes (226809 compressed) at 0x00000000 in 24.6 seconds (effective 102.3 kbit/s)...\n\nA fatal error occurred: Timed out waiting for packet header\n'



Flash Status

Flashed: Feb. 19, 2023, 7:28 p.m.

Status: failed

Firmware Flashed: BrewPi-ESP8266 - 0.11 - - Serial

Board Type Selected: Non-NodeMCU ESP8266 (Default Flash Mode) - ESP8266

Serial Port Used: /dev/ttyUSB0

Result Text: Flash process returned code 2

b'esptool.py v2.8\nSerial port /dev/ttyUSB0\nConnecting....\nDetecting chip type... ESP8266\nChip is ESP8266EX\nFeatures: WiFi\nCrystal is 26MHz\nMAC: 7c:87:ce:b5:2d:35\nUploading stub...\nRunning stub...\nStub running...\nConfiguring flash size...\nAuto-detected Flash size: 4MB\nCompressed 314912 bytes to 226809...\n\rWriting at 0x00000000... (7 %)\rWriting at 0x00004000... (14 %)\rWriting at 0x00008000... (21 %)\rWriting at 0x0000c000... (28 %)\rWriting at 0x00010000... (35 %)\rWriting at 0x00014000... (42 %)\rWriting at 0x00018000... (50 %)\rWriting at 0x0001c000... (57 %)\rWriting at 0x00020000... (64 %)\rWriting at 0x00024000... (71 %)\rWriting at 0x00028000... (78 %)\rWriting at 0x0002c000... (85 %)\rWriting at 0x00030000... (92 %)\rWriting at 0x00034000... (100 %)\rWrote 314912 bytes (226809 compressed) at 0x00000000 in 24.6 seconds (effective 102.5 kbit/s)...\n\nA fatal error occurred: Timed out waiting for packet header\n'
 
Hey @Thorrak, I'm making a new controller using a Lolin D1 Mini v. 4 and I'm getting failures when trying to flash the controller. See below. I tried using the old firmware, but I'm getting the same error. I tried using choosing Node-MCU and non-node MCU but get the same error. What am I doing wrong?


Flash Status

Flashed: Feb. 19, 2023, 7:26 p.m.

Status: failed

Firmware Flashed: BrewPi-ESP8266 - 0.11 - - Serial

Board Type Selected: NodeMCU (ESP-12E) - ESP8266

Serial Port Used: /dev/ttyUSB0

Result Text: Flash process returned code 2

b'esptool.py v2.8\nSerial port /dev/ttyUSB0\nConnecting....\nDetecting chip type... ESP8266\nChip is ESP8266EX\nFeatures: WiFi\nCrystal is 26MHz\nMAC: 7c:87:ce:b5:2d:35\nUploading stub...\nRunning stub...\nStub running...\nConfiguring flash size...\nAuto-detected Flash size: 4MB\nCompressed 314912 bytes to 226809...\n\rWriting at 0x00000000... (7 %)\rWriting at 0x00004000... (14 %)\rWriting at 0x00008000... (21 %)\rWriting at 0x0000c000... (28 %)\rWriting at 0x00010000... (35 %)\rWriting at 0x00014000... (42 %)\rWriting at 0x00018000... (50 %)\rWriting at 0x0001c000... (57 %)\rWriting at 0x00020000... (64 %)\rWriting at 0x00024000... (71 %)\rWriting at 0x00028000... (78 %)\rWriting at 0x0002c000... (85 %)\rWriting at 0x00030000... (92 %)\rWriting at 0x00034000... (100 %)\rWrote 314912 bytes (226809 compressed) at 0x00000000 in 24.6 seconds (effective 102.3 kbit/s)...\n\nA fatal error occurred: Timed out waiting for packet header\n'



Flash Status

Flashed: Feb. 19, 2023, 7:28 p.m.

Status: failed

Firmware Flashed: BrewPi-ESP8266 - 0.11 - - Serial

Board Type Selected: Non-NodeMCU ESP8266 (Default Flash Mode) - ESP8266

Serial Port Used: /dev/ttyUSB0

Result Text: Flash process returned code 2

b'esptool.py v2.8\nSerial port /dev/ttyUSB0\nConnecting....\nDetecting chip type... ESP8266\nChip is ESP8266EX\nFeatures: WiFi\nCrystal is 26MHz\nMAC: 7c:87:ce:b5:2d:35\nUploading stub...\nRunning stub...\nStub running...\nConfiguring flash size...\nAuto-detected Flash size: 4MB\nCompressed 314912 bytes to 226809...\n\rWriting at 0x00000000... (7 %)\rWriting at 0x00004000... (14 %)\rWriting at 0x00008000... (21 %)\rWriting at 0x0000c000... (28 %)\rWriting at 0x00010000... (35 %)\rWriting at 0x00014000... (42 %)\rWriting at 0x00018000... (50 %)\rWriting at 0x0001c000... (57 %)\rWriting at 0x00020000... (64 %)\rWriting at 0x00024000... (71 %)\rWriting at 0x00028000... (78 %)\rWriting at 0x0002c000... (85 %)\rWriting at 0x00030000... (92 %)\rWriting at 0x00034000... (100 %)\rWrote 314912 bytes (226809 compressed) at 0x00000000 in 24.6 seconds (effective 102.5 kbit/s)...\n\nA fatal error occurred: Timed out waiting for packet header\n'

Try using the v0.14 (No Spiffs Init) firmware (link)

There's a bug with the Lolin v4 revision boards that causes esptool to hang when trying to flash the filesystem partition.
 
Try using the v0.14 (No Spiffs Init) firmware (link)

There's a bug with the Lolin v4 revision boards that causes esptool to hang when trying to flash the filesystem partition.
Yes, that version flashed successfully, but I'm trying to setup a serial controller, not wifi. The v0.14 serial version of the firmware failed also. Is there a serial version that might work with the v4 D1 Mini?
 
Yes, that version flashed successfully, but I'm trying to setup a serial controller, not wifi. The v0.14 serial version of the firmware failed also. Is there a serial version that might work with the v4 D1 Mini?
Added.

That said - if you don’t mind, I’d like to hear if you have the same issue with BrewFlasher or BrewFlasher web for a “regular”(not “no spiffs”) firmware. Searching online, supposedly an upgrade to esptool seems to work for these boards.
 
Last edited:
I'm installing a new BrewPi controller built with the ESP32-S2 board. Everything set up fine, but I wanted to adjust a .8 deg F temperature difference for the chamber probe. I couldn't find any way to set the offset without unassigning the probe and reassigning it. The problem is it fails to assign the probe if there is any offset entered for it. I attempted many times, both entering a value by hand and using the dropdown numbers. It fails every time unless I remove the offset number. Am I missing something or is this a glitch?
Does anyone know the answer to this?
 
The brewpi firmware was the 0.14 beta wifi. The Fermentrack branch is Dev. Commit Date was 10-17-22 and it is set to install all updates
There were bugs in setting calibration offsets that I fixed in the experimental branches, but I don’t remember if they’re on the Fermentrack or BrewPi firmware side. Let me take a look.
 
The brewpi firmware was the 0.14 beta wifi. The Fermentrack branch is Dev. Commit Date was 10-17-22 and it is set to install all updates

I'm still digging through code at the moment, but I've got two options for how to proceed:

Option A: If you want to try something now, you can change to the "recover_brewpi" branch of Fermentrack which includes a handful of fixes to the calibration offset processing. That said, the branch also contains a substantial refactoring of the BrewPi-script interface which I'm still stress-testing.

If you want to try this, inside Fermentrack, go to the Gear icon > Django admin panel > (Constance) Config, and check "ALLOW_GIT_BRANCH_SWITCHING" then hit save. Once done, go back to the main site, click the gear icon again, then click "Update from GitHub". At the bottom of the screen, you should now see a "Switch Branch" option with "recover_brewpi" listed. Select that, and click "Switch Branch"


Option B: I've been working over the past few weeks on a new version of the firmware which provides an additional pathway for setting the calibration offset. If you want to wait a bit longer (I'm guessing ~1 week) I can try to get an alpha version of that together which you could then test.

Again -- this version is significantly different from v0.14 in ways other than processing calibration offsets, but I think it should solve this problem at least.
 
I'm still digging through code at the moment, but I've got two options for how to proceed:
Thanks Thorrak, I'm actually putting this controller together for a buddy who wants to try it out. I hate to give him something that might have bugs still. For the moment, I may be better off just leaving the temp probe off a little and compensating for it in the temp setting. Maybe by the time he's had a chance to try it out and buys all the parts needed to build his own, you'll have it worked out anyway. Thanks again for all you do!
 
Jokes on me, I just found a massive bug in v14 that people had been complaining about for ages (but I never thought was happening to me). Oops.

v15 incoming soon (but not with the calibration offset thing I was talking about -- that's for later)
 
Added.

That said - if you don’t mind, I’d like to hear if you have the same issue with BrewFlasher or BrewFlasher web for a “regular”(not “no spiffs”) firmware. Searching online, supposedly an upgrade to esptool seems to work for these boards.
Hi @Thorrak. Thanks for your help with this.

I see that there are now two v0.14 beta No Spiffs options, but they are both named "WiFi". I'm guessing it's just a naming oversight and that the one at BrewFlasher Web Edition is actually for serial, not WiFi. Do I have that right? In any event, I was able to successfully flash the one at BrewFlasher Web Edition to my controller and it does connect successfully by serial, but it's got some weird behavior. No matter what I set for temp control, either by Beer Constant or by Beef Profile, it sets the beer temp to 3.2 F.

Per your request, I tried flashing firmware v 0.11 serial to my Lolin v4 using Brewflasher Windows app and it failed. See below.

Verifying firmware list is up-to-date before downloading...
Downloading firmware...
Downloading main firmware file...
Downloaded successfully!

Command: esptool.py --chip esp8266 write_flash 0x00000 C:\Users\...\AppData\Local\Temp\firmware.bin -fs detect

esptool.py v4.1
Found 3 serial ports
Serial port COM4
Connecting....
Chip is ESP8266EX
Features: WiFi
Crystal is 26MHz
MAC: 7c:87:ce:b5:2d:35
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Auto-detected Flash size: 4MB
Flash will be erased from 0x00000000 to 0x0004cfff...
Compressed 314912 bytes to 226809...
Writing at 0x00000000... (7 %)
Writing at 0x0000613f... (14 %)
Writing at 0x0000bf7c... (21 %)
Writing at 0x000119d0... (28 %)
Writing at 0x00016ca7... (35 %)
Writing at 0x0001bcbe... (42 %)
Writing at 0x00020e57... (50 %)
Writing at 0x000263a2... (57 %)
Writing at 0x0002b77d... (64 %)
Writing at 0x000310e9... (71 %)
Writing at 0x00036b38... (78 %)
Writing at 0x0003c1f3... (85 %)
Writing at 0x000417c0... (92 %)
Writing at 0x00047d61... (100 %)
Firmware flashing FAILED. esptool.py raised an error.

Try flashing again, or try flashing with a slower speed.

I
 
Just as an FYI to anyone who uses my BrewPi-ESP port -- I just pushed v15-beta out to BrewFlasher. This version incorporates a number of bugfixes and "under-the-hood" tweaks in preparation for additional features to come. As a reminder, features included with the v14 beta include:
  • Support for the ESP32 and ESP32-S2 chipsets
  • Support for Tilt Hydrometer and Inkbird temperature sensors (Tilt Pro recommended)
  • Support for TPLink Kasa WiFi Switches
  • "EEPROM Reset" Confirmation Requirement
  • TFT-Display Support
Bugfixes in v15 include:
  • Resolves issues preventing calibration from being properly captured/appliedm
  • Allows for calibration to be applied to Tilt and Inkbird temperature sensors
  • Fixes a bug that may prevent sensor setup from persisting through reboots

Migration to v15 is recommended for all new builds, and for any v14-based builds that are having issues.
 
I have seen this discussed but not sure if there ever was a fix for "the numpy python package is not available which is required for calibration". This happens when I am trying to recalibrate my tilt/ tiltbridge. I tried to do an github update but I see that am running the most recent version. Any suggestions?
 
I used Fermentrack a few years back with not problems downloading. Was going to give it a go again, and I get this Error -
Not sure what a Docker Install is, as you said in past posts, so sorry if my programming ignorance gets in the way
Will this command @Thorrak work?
curl -L https://raw.githubusercontent.com/thorrak/fermentrack-tools/docker/automated_install/auto-install.sh | bash

here is my error -
Screenshot from 2023-03-01 14-52-58.png
 
I used Fermentrack a few years back with not problems downloading. Was going to give it a go again, and I get this Error -
Not sure what a Docker Install is, as you said in past posts, so sorry if my programming ignorance gets in the way
Will this command @Thorrak work?
curl -L https://raw.githubusercontent.com/thorrak/fermentrack-tools/docker/automated_install/auto-install.sh | bash

here is my error -
View attachment 813956
Can you access http://get.docker.com/ ? That's what that error indicates -- your RPi isn't able to access the installation script for Docker itself.

Separately, the correct install command for Fermentrack is now:

curl -L install.fermentrack.com | bash

 
Back
Top