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.
I rearranged my standoffs to accommodate an old Uno and an ugly 90deg USB-B to connect the pi. Currently lagering a carboy of water. I'll have to pull out a temp gun but I'm curious if I can close the gasketed weather-tight enclosure long term.

@Thorrak I got my D32 and will make another build from what I've learned once that sweet new PCB becomes available. I really appreciate you all being so prompt and helpful on here to all of us.
 
I recently installed a room temperature sensor and it worked well for a few hours, but then pegged at 185°F. Since then, it will randomly cycle from reading the correct room temperature, to displaying the (what I assume is) max temp of 185°F. I have used two different sensors now, with the same results.

Any idea what might be causing this?

I am running the non-docker version, controlling an Arduino.

View attachment 767363View attachment 767364
@Thorrak thank you for all of your help. Between this thread and the ESP8266 thread, I was able to replace my Arduino controller with an ESP8266 and get everything working exactly how I'd like. It took a little trial and error, but everything is great now!


Capture 1.PNG

Capture 2.PNG
 
@Thorrak any chance you have that D32 PCB committed somewhere I'm building a new controller and have a D32 pro sitting around. Don't mind being a beta tester.

I haven't finished the write ups yet, but if you're comfortable accepting that there may be mistakes/missing pieces, you can find them here for now.

I'm still working on the updated case lid design for the various TFTs. Let me know which screen you're looking to use, and I can try to figure out what you need on that front.
 
So...long time lurker, first time poster.

I'm trying to run a version of Fermentrack on a Raspberry Pi 400 (only device I can find at the moment that is not being resold at a large markup) and controlling a WEMOS D1 Mini (V.3.1.0) and Tiltbridge. Tiltbridge functionalty is fantastic. However, I am unable to get Fermentrack to change temperature control modes for my ESP-8266 BrewPi controller via WiFi. I've tried both ver .11 and .14. I can config the device (temperature probes and relays) via Fermentrack with some occasional errors/reboots, but everything seems to ultimately work. However, whenever I try to enable temperature control in any configuration (Beer, Chamber, or Profile), I get a "Unable to parse temperature control settings provided" message.

I've done a fair amount of googling and digging through the various documentation sources (thanks for all of everyone's efforts!) but can't seem to find many references to this issue. Does anyone have any pointers/ideas to get past this roadblock. My apologies in advance if this more of a function of the ESP-8266 firmware thread vs. Fermentrack.
 
Hello fellow Home Brewers! I’ve been using Fermentrack for a few years now. I recently upgraded to the “Docker” version of the software. I still get this warning banner at the top of the software . How can I fix this problem. Thank you all for your help.
 

Attachments

  • 9345F38C-8792-41C0-99BB-68B8707D1316.jpeg
    9345F38C-8792-41C0-99BB-68B8707D1316.jpeg
    734.7 KB · Views: 0
Hello fellow Home Brewers! I’ve been using Fermentrack for a few years now. I recently upgraded to the “Docker” version of the software. I still get this warning banner at the top of the software . How can I fix this problem. Thank you all for your help.

Are you sure that you removed the other version of Fermentrack and are actually logging into the docker-based install? (And, separately, does the install actually work??)

The message pops up when the "USE_DOCKER" setting is false which should only happen if the environment settings aren't being loaded into the Docker container. These same settings, however, contain the information on how to connect to the database behind Fermentrack, what secret key to use for internal storage, how to access, redis, and a bunch of other things that - if missing - are likely to cause Fermentrack to either act very strangely or to not work at all.

My recommendation is always to just re-run the fermentrack-tools installer. Assuming you run it from the same directory, it should be idempotent -- the worst case scenario should just be a little bit of downtime.
 
So after a completely fresh build (let every bit of smoke out...), I'm having a problem with my temp sensors dropping out after 5 min or so. Anyone have any suggestions? Have checked wiring
 
Typically a sign of unstable or insufficient power to the Arduino or ESP controller. At least for the former it's a good idea to run the UNO on its DC barrel socket using a 9V/1A wall wart, as opposed to relying on the USB port...

Cheers!
 
Typically a sign of unstable or insufficient power to the Arduino or ESP controller. At least for the former it's a good idea to run the UNO on its DC barrel socket using a 9V/1A wall wart, as opposed to relying on the USB port...

Cheers!
Interesting, has a new 2a power supply. The temp sensors are on 3.3v at the moment, could this effect my problem? Would like to run on 5v anyway (my board is setup for 3.3v). Can just supply the sensors with 5v or do I need a resister?
 
Interesting, has a new 2a power supply. The temp sensors are on 3.3v at the moment, could this effect my problem? Would like to run on 5v anyway (my board is setup for 3.3v). Can just supply the sensors with 5v or do I need a resister?
You will want to swap your sensors vcc from 3v3 to 5v. If you have my latest PCB design, you just swap the jumper on the board.

Edit -- Removed the bad advice I posted about the pullup. Definitely do not want to do that.
 
Last edited:
^NO!^ Don't do that unless the sensors are hooked up to a device using 3.3V IO!

Yes, there is a significant "anti-sag" benefit using 5V to the sensors (while still maintaining a 3.3V pull-up, however!)
I use that configuration on everything that uses ds18b20s here...

[edit] RPi = 3.3V IO, Arduino UNO = 5V IO, ESP = 3.3V IO

Cheers!
 
^NO!^ Don't do that unless the sensors are hooked up to a device using 3.3V IO!

Yes, there is a significant "anti-sag" benefit using 5V to the sensors (while still maintaining a 3.3V pull-up, however!)
I use that configuration on everything that uses ds18b20s here...

[edit] RPi = 3.3V IO, Arduino UNO = 5V IO, ESP = 3.3V IO

Cheers!

Thanks @day_trippr - brain fart there.
 
You (should) currently have a pullup resistor between the 3v3 line and your sensor's data line. You would want to replace it with a pullup resistor between the 5v line and your sensor's data line, while swapping your sensors vcc from 3v3 to 5v. If you have my latest PCB design, you just swap the jumper on the board.
1660759593707.png

The diagram you posted last week doesn't show a pull up on the 5v circuit. Should it be or is the current on the 3.3v ok?
 
View attachment 777949
The diagram you posted last week doesn't show a pull up on the 5v circuit. Should it be or is the current on the 3.3v ok?

Ignore my comment about the pullup. You definitely do not want to do that.

If you have THIS EXACT PCB, just swap the jumper for "ONEWIRE_VSEL" -- thats what it is there for. If you have the earlier PCB, it's going to be tough..
 
Ignore my comment about the pullup. You definitely do not want to do that.

If you have THIS EXACT PCB, just swap the jumper for "ONEWIRE_VSEL" -- thats what it is there for. If you have the earlier PCB, it's going to be tough..
Have an older board. So one can't just disconnect the 3.3v out wire and jump 5v to the sensor's feed?
 
Ignore my comment about the pullup. You definitely do not want to do that.

If you have THIS EXACT PCB, just swap the jumper for "ONEWIRE_VSEL" -- thats what it is there for. If you have the earlier PCB, it's going to be tough..
1660760270402.png


This is more in line with the pcb I'm using
 
Have an older board. So one can't just disconnect the 3.3v out wire and jump 5v to the sensor's feed?
If you (physically) can, then yes - that solves it. I just don't know how the traces are wired, and if you can cut it without disconnecting something else.

Be very careful to check to make sure that the 3f3 is fully disconnected before jumping 5V or you will risk letting the magic smoke out of your controller.
 
I switched the temp sensors to 5v and everything seemed solid for 40 min, then both readings dropped out again. I have another new ps hooked up now, will see how it goes. When everything booted back up, both temp readings were around 212f then started creeping down slowly. I have not seen this behavior before.
 
I switched the temp sensors to 5v and everything seemed solid for 40 min, then both readings dropped out again. I have another new ps hooked up now, will see how it goes. When everything booted back up, both temp readings were around 212f then started creeping down slowly. I have not seen this behavior before.
Which version of the firmware are you using? v14 or earlier?

There is a bug that I (thought was?) squished in v14 that has existed for ages where the data for the temp sensors isn't properly initialized at boot. If the first reading is incorrect, it takes a bit for the "filter" to drift back down to the valid range.
 
Which version of the firmware are you using? v14 or earlier?

There is a bug that I (thought was?) squished in v14 that has existed for ages where the data for the temp sensors isn't properly initialized at boot. If the first reading is incorrect, it takes a bit for the "filter" to drift back down to the valid range.
Loaded whatever the latest in the fermentrack listed firmware was. 11, 12 maybe
 
That makes sense then. It's a bug that is fixed in the v14 beta.
Funny, been running nodemcu for years on probably every firmware and never had that happen. Switch to mini, new problems everywhere
 
I have a little problem with my setup! I turned off everything in my setup over the Summer, raspberry pi and controllers, as I can't cool and everything here was too hot to ferment "properly". Temperatures are now more sensible for yeast and people and I want to start more wine, however, one of my controllers is not behaving properly.

So my Pi is coming up nicely and connecting to one controller but I'm getting "Cannot receive LCD text from Controller/Script" from the other. Both controllers are housed in one box and both displays are working as normal. Back on the Pi the Control Mode option is "debug connection" and says that everything passes except the connection test which fails "unable to connect". I've restarted everything, Pi first and then controllers IP addresses are correct. The dev-3-stderr.log says;

Aug 27 2022 10:01:33 Refreshing dbConfig
Traceback (most recent call last):
File "/usr/local/lib/python3.9/site-packages/pid/base.py", line 149, in _inner_check
pid = int(pid_str)
ValueError: invalid literal for int() with base 10: '\x00\x00\x00\x00\x00'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/local/lib/python3.9/runpy.py", line 197, in _run_module_as_main
return _run_code(code, main_globals, None,
File "/usr/local/lib/python3.9/runpy.py", line 87, in _run_code
exec(code, run_globals)
File "/app/brewpi-script/brewpi.py", line 186, in <module>
pidFile.create()
File "/usr/local/lib/python3.9/site-packages/pid/base.py", line 204, in create
check_result = self.check()
File "/usr/local/lib/python3.9/site-packages/pid/base.py", line 189, in check
return self._inner_check(self.fh)
File "/usr/local/lib/python3.9/site-packages/pid/base.py", line 152, in _inner_check
raise PidFileUnreadableError(exc)
pid.base.PidFileUnreadableError: invalid literal for int() with base 10: '\x00\x00\x00\x00\x00'
Sentry is attempting to send 2 pending error messages
Waiting up to 2 seconds
Press Ctrl-C to quit


This isn't stopping me fermenting but it would be good to get everything working, at least until I get the new PCB and controllers....
 
I have a little problem with my setup! I turned off everything in my setup over the Summer, raspberry pi and controllers, as I can't cool and everything here was too hot to ferment "properly". Temperatures are now more sensible for yeast and people and I want to start more wine, however, one of my controllers is not behaving properly.

So my Pi is coming up nicely and connecting to one controller but I'm getting "Cannot receive LCD text from Controller/Script" from the other. Both controllers are housed in one box and both displays are working as normal. Back on the Pi the Control Mode option is "debug connection" and says that everything passes except the connection test which fails "unable to connect". I've restarted everything, Pi first and then controllers IP addresses are correct. The dev-3-stderr.log says;

Aug 27 2022 10:01:33 Refreshing dbConfig
Traceback (most recent call last):
File "/usr/local/lib/python3.9/site-packages/pid/base.py", line 149, in _inner_check
pid = int(pid_str)
ValueError: invalid literal for int() with base 10: '\x00\x00\x00\x00\x00'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/local/lib/python3.9/runpy.py", line 197, in _run_module_as_main
return _run_code(code, main_globals, None,
File "/usr/local/lib/python3.9/runpy.py", line 87, in _run_code
exec(code, run_globals)
File "/app/brewpi-script/brewpi.py", line 186, in <module>
pidFile.create()
File "/usr/local/lib/python3.9/site-packages/pid/base.py", line 204, in create
check_result = self.check()
File "/usr/local/lib/python3.9/site-packages/pid/base.py", line 189, in check
return self._inner_check(self.fh)
File "/usr/local/lib/python3.9/site-packages/pid/base.py", line 152, in _inner_check
raise PidFileUnreadableError(exc)
pid.base.PidFileUnreadableError: invalid literal for int() with base 10: '\x00\x00\x00\x00\x00'
Sentry is attempting to send 2 pending error messages
Waiting up to 2 seconds
Press Ctrl-C to quit


This isn't stopping me fermenting but it would be good to get everything working, at least until I get the new PCB and controllers....
Huh. That's a first...

It sounds like there's an issue with the pidfile, which is a small file that gets written out to ensure that you don't have two instances of BrewPi-script launched at the same time, with both trying to control the same device. This shouldn't happen -- but clearly, in your case, it did. I would be concerned that this is a sign that there might be an issue with your SD card -- before you do anything, I would back up whatever data you have on it you want to save. Once that's done, you've got three options for how to handle it:

Option 1 - Restart the RPi. This is the easiest option, but the one least likely to solve the problem. Still though, might be worth a shot!

Option 2 - Delete the BrewPi device and recreate it. This should result in a brand new device ID being assigned which means a new pidfile. Not guaranteed to fix the problem, but highly likely!

Option 3 - Re-run the install script. I think this should nuke your Docker container which should delete the pidfile. I'd try this last, unless you don't want to delete the BrewPi device, in which case you can try this second. You can use the exact same install script that you have saved from when you first installed Fermentrack here - the script is idempotent.
 
There's a lot to absorb and unpack in this thread... My mind is spinning.

The background is I started down the path of an automated gas system and quickly evolved to electric. So I bought my first Pi and soon played with CraftBeerPi which works well. I currently have a controller to manage my Chest Freezer and Kegerator. While updating things, I purchased a Brewzilla 4 setup with the RAPT web-logging. So I started looking at the RAPT Pill for data logging. I want to update my existing controller and potentially ditch CBP.

I'd like to automate and use the data from the pill, or perhaps a tilt or whatever to determine when my temps need updating, etc. My controller has 2 1-wire sensors to manage the ferment chest freezer, and 3 more that monitor the kegerator (Beer, Cold Plate, Tower).

EDIT: Forgot to mention, I'm in the process of switching from Beersmith to Brewfather as well.

I'm interested in the data logging perhaps using the RAPT data setup of the digital hydrometer. Is Fermentrack the right project to update my Pi controller to manage both my ferment and kegerator?
 
Last edited:
There's a lot to absorb and unpack in this thread... My mind is spinning.

The background is I started down the path of an automated gas system and quickly evolved to electric. So I bought my first Pi and soon played with CraftBeerPi which works well. I currently have a controller to manage my Chest Freezer and Kegerator. While updating things, I purchased a Brewzilla 4 setup with the RAPT web-logging. So I started looking at the RAPT Pill for data logging. I want to update my existing controller and potentially ditch CBP.

I'd like to automate and use the data from the pill, or perhaps a tilt or whatever to determine when my temps need updating, etc. My controller has 2 1-wire sensors to manage the ferment chest freezer, and 3 more that monitor the kegerator (Beer, Cold Plate, Tower).

I'm interested in the data logging perhaps using the RAPT data setup of the digital hydrometer. Is Fermentrack the right project to update my Pi controller to manage both my ferment and kegerator?

A lot to unpack, indeed! I may have misunderstood a couple of things here - if I did, I apologize —

There are two components here to be aware of - BrewPi-ESP and Fermentrack. Fermentrack is a web interface that can track/log/control BrewPi-ESP temperature controllers, as well as Tilt/GravityMon/Ispindel gravity sensors. BrewPi-ESP is a port of the hyper-accurate BrewPi temperature controller firmware to the ESP32, ESP8266, and ESP32-S2.

Fermentrack supports controlling multiple BrewPi builds simultaneously, meaning it can control the temperature in your fermenter and your serving kegerator at the same time, so long as you have a separate BrewPi build for each. I am guessing you have some kind of custom controller with DS18B20s now based on what you describe — Fermentrack isn’t designed to integrate with temperature controllers other than BrewPi, so your build would probably require tweaking. That said, I use Fermentrack/BrewPi-ESP to control both my kegerator and fermentation chamber temps now, and have for years with great success.

Fermentrack supports Tilt Hydrometers, ISpindels, and GravityMon builds out of the box. It does not support RAPT. There is an open issue against this on GitHub if you want to see what the latest is. Regardless, Fermentrack tracks gravity from these devices, it doesn’t use their gravity/temp readings to control temperature/fermentation.

I built some of the support I designed for TiltBridge into BrewPi-ESP for ESP32, and it can now use Tilt (Pro) Hydrometers as a temperature sensor for controlling fermentation. This can be done in conjunction with Fermentrack tracking gravity if you like.

BrewPi-ESP for ESP32 also supports Inkbird Bluetooth temperature sensors and Kasa WiFi plugs, meaning that you can build a completely solder-free BrewPi if you want (and trust your WiFi ;) )
 
Huh. That's a first...

It sounds like there's an issue with the pidfile, which is a small file that gets written out to ensure that you don't have two instances of BrewPi-script launched at the same time, with both trying to control the same device. This shouldn't happen -- but clearly, in your case, it did. I would be concerned that this is a sign that there might be an issue with your SD card -- before you do anything, I would back up whatever data you have on it you want to save. Once that's done, you've got three options for how to handle it:

Option 1 - Restart the RPi. This is the easiest option, but the one least likely to solve the problem. Still though, might be worth a shot!

Option 2 - Delete the BrewPi device and recreate it. This should result in a brand new device ID being assigned which means a new pidfile. Not guaranteed to fix the problem, but highly likely!

Option 3 - Re-run the install script. I think this should nuke your Docker container which should delete the pidfile. I'd try this last, unless you don't want to delete the BrewPi device, in which case you can try this second. You can use the exact same install script that you have saved from when you first installed Fermentrack here - the script is idempotent.
Thanks for the info, I have a "skill" for finding these things 🤪

I decided to get some wine on the go as I'm down to my last dozen demijohns 😱! So I'll give this a go in a few weeks, unless I decide to get some ESP32s and new PCBs in the mean time before the wine making season really takes off?
 
@Thorrak Is the PCB and BOM in a state that I can start ordering bits? I'm thinking of starting the building of new setup next month so I can start ordering stuff from China.


Chris
 
Huh. That's a first...

It sounds like there's an issue with the pidfile, which is a small file that gets written out to ensure that you don't have two instances of BrewPi-script launched at the same time, with both trying to control the same device. This shouldn't happen -- but clearly, in your case, it did. I would be concerned that this is a sign that there might be an issue with your SD card -- before you do anything, I would back up whatever data you have on it you want to save. Once that's done, you've got three options for how to handle it:

Option 1 - Restart the RPi. This is the easiest option, but the one least likely to solve the problem. Still though, might be worth a shot!

Option 2 - Delete the BrewPi device and recreate it. This should result in a brand new device ID being assigned which means a new pidfile. Not guaranteed to fix the problem, but highly likely!

Option 3 - Re-run the install script. I think this should nuke your Docker container which should delete the pidfile. I'd try this last, unless you don't want to delete the BrewPi device, in which case you can try this second. You can use the exact same install script that you have saved from when you first installed Fermentrack here - the script is idempotent.
I believe I had the same issue last week with a couple controllers that had been unplugged for a while. After restarting the pi all devices showed back up.
 
Yep! I’ve been using the boards on my end for a bit now with no issues. Let me know if you have any questions as you order!
@Thorrak Just double checking the BOM... I'm going surface mount, I've got the resistors, capacitors and MOSFET. So my order list is quite small, just the PCB and D32 Pro. Unless you have a strong recommendation for the new display?

I'm making the assumption that I can initially use my existing PSU (2A), relays (SSR) and display (LCD2004)?


Chris
 
@Thorrak Just double checking the BOM... I'm going surface mount, I've got the resistors, capacitors and MOSFET. So my order list is quite small, just the PCB and D32 Pro. Unless you have a strong recommendation for the new display?

I'm making the assumption that I can initially use my existing PSU (2A), relays (SSR) and display (LCD2004)?


Chris

Yep! My recommendation is for the new display as it's pretty, but functionally you're fine to use an LCD2004. (Or use an LCD2004 initially and upgrade later)

I would go ahead and pick some 10 pin (5x2) box headers up if you're placing an order from China just so you can solder it on now if you think you may ever want to upgrade later, but that just saves you having to disconnect/reconnect everything at a later date.
 
@Thorrak Am I right in saying that if I went for the D32 Pro and the (recommended) TFT, then I don't need the box header and the display plugs into the D32 Pro rather than the PCB?

I think I'll still follow your recommendation and add the box header though, future proofing???? Just going through the PCB and BOM double checking what I might need to order.


Chris
 
Oh, just went to Oshpark to order PCBs, a bit pricier than I expected, going to have to wait 'till next month... Think I'll get everything else ordered this week though.
 
Last edited:
Oh, just went to Oshpark to order PCBs, a bit pricier than I expected, going to have to wait 'till next month... Think I'll get everything else ordered this week though.

Is it the UK shipping that's killing it? If so, ping me -- there's a fab that I've been told is cheaper to get shipped to some international destinations, but isn't one I've used personally.
 
@Thorrak Not the shipping, but I guess it's just price increases we're all seeing everywhere. I got some PCBS from Oshpark back in May for under $10, $26 for these. I've recently retired so have to be a bit more circumspect with expediture.
 
@Thorrak Am I right in saying that if I went for the D32 Pro and the (recommended) TFT, then I don't need the box header and the display plugs into the D32 Pro rather than the PCB?

I think I'll still follow your recommendation and add the box header though, future proofing???? Just going through the PCB and BOM double checking what I might need to order.


Chris

Correct. The box header allows the use of screens other than the LoLin one, including a few that are physically larger if you were ever so inclined. My thought is that if you ever mount the PCB in a case you would have to remove it to add the box header later, so it’s cheap insurance to add it now.

@Thorrak Not the shipping, but I guess it's just price increases we're all seeing everywhere. I got some PCBS from Oshpark back in May for under $10, $26 for these. I've recently retired so have to be a bit more circumspect with expediture.

Unfortunately, that’s more a function of the size of the PCB than inflation. :( OSHPark has never been cheap - especially for “mid-size” PCBs like this one which is why the cost is so high vs. the smaller PCBs you likely ordered before. I’ll shoot you a PM with some of what I’ve found from looking at fabs.
 
Back
Top