• Please visit and share your knowledge at our sister communities:
  • If you have not, please join our official Homebrewing Facebook Group!

    Homebrewing Facebook Group

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

Homebrew Talk

Help Support Homebrew Talk:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.
Not seeing any attachments.

Is this the same complex you had problems with the day before - or are both acting flakey now?
sorry i guess I needed to click the attach button. The first one you can see the beer is ramping up like set in my profile then the next one you see it gets a setpoint of 60 says from beer profile. Fermentrack cant connect to script after that and beer went to 60. 60 is at least where that beer started. The problem I had yesterday with the other controller was a setting of 10.3F and the server itself being haywire too. Im really not sure but nothings seeming to work right. But yea this is a defferent controller than the first one that acted up.
 
Unless you've been making changes on the host side, I'd start by making sure power to the host(s) is in good shape. I have had wall warts slowly fail...

Cheers!
 
Unless you've been making changes on the host side, I'd start by making sure power to the host(s) is in good shape. I have had wall warts slowly fail...

Cheers!
not a bad idea. This Pi runs raspberry pints, fermentrack, pihole, and an mqtt server that interfaces with a bunch of diy sensors and devices for home automation. I haven't had problems with its other tasks just fermentrack. Ive had wall warts fail on some diy devices super annoying to track down. Ill go see if I have another one to try just in case.
 
Are both controllers connected to the same host?
Yeah they both sit next to eachother out in my shed. I have an ehternet cable that runs to the shed and run a wifi network out there for the controllers and ispindels to connect to. The server is on a raspberry pi in the house connected via ethernet.
 
Update on my last post. Today controller 1 had a strange failure too. it was ramping up slowly just fine for a dactyl rest then it shows a set point of 60 by fermentation profile. I have attached the profile I'm at a loss as to why it would do this. It became unreachable by the fermentrack script. The device itself showed beer profile mode with a setpoint of 60 working lcd and working relays maintaining 60. I tried rebooting the brewpi it still wouldn't connect to fermentrack so I assumed the problem was on the fermentrack end and rebooted the raspberry pi and it connected back up. Im at a loss as to why it's not behaving.
Does the weird setpoint coincide with the setpoint of the other chamber by any chance? I've had issues a couple times where Fermentrack seemed to cross up the set points when running multiple controllers, both running beer profiles
 
Does the weird setpoint coincide with the setpoint of the other chamber by any chance? I've had issues a couple times where Fermentrack seemed to cross up the set points when running multiple controllers, both running beer profiles
no it was a very random point of 10.3F which is way colder than anything I would ever set I always use a warmer than freezing setting even when cold crashing just in case plus the fridge isn't powerful enough to achieve that. So II have no idea where that setting came from. In beer profile mode Fermentrack sends the profile to the controller and it should run in therory regardless of server connection correct?
 
Very strange about the random data point. The annotation is actually generated by/sent by the controller - not Fermentrack - as part of a status message so the fact that you’re getting an annotation makes this even more interesting.

To reduce the number of variables in play, what version of the firmware are you using? V16?
 
Is there any way to get what beer name your fermenting under the Device Control panel, on the main GUI page? I often forget what beer is in the right or left conical, and what controller is running the script. I would then have to switch- "Select Device to Control" panel, to see the beer name for the given controller.
Screenshot 2025-04-03 at 14-34-11 Fermentrack.png
 
Is there any way to get what beer name your fermenting under the Device Control panel, on the main GUI page? I often forget what beer is in the right or left conical, and what controller is running the script. I would then have to switch- "Select Device to Control" panel, to see the beer name for the given controller.
View attachment 872413
1743710311781.png
 
Is there a List, of color Codes to change the Graph line colors under - Django Admin Panel -Constance-Config-Graph Colors ??
I do see Python "color codes" out there, but before I smoke my working Ftrack, I better axe the Pro's

I may use @ClaudiusB tags on my Home Screen GUI, but trying to get the tags to communicate with Fermentrack...... is a sure busted software waiting...
 
Are they not just standard HTML color codes?

https://htmlcolorcodes.com/
OK, good. I "found" codes that did not have the same syntax as what is in this, so I figured - better not poke the bear and end up inserting a backup SD card in to save the beer.
thanks Thorrak!

Edit - Yes, that worked ! -
I changed my Beer Setting Color, so now I can see it better on the graph from the default color

#DE3163

 

Attachments

  • Screenshot 2025-04-07 at 10-29-23 Left Control (Seinsmart Uno) Dashboard.png
    Screenshot 2025-04-07 at 10-29-23 Left Control (Seinsmart Uno) Dashboard.png
    210.1 KB
Last edited:
Backups are always a good plan! I’ve had way too many SD card failures over the years to trust them at all. Almost all of the Pi’s that I have use SSDs these days as a result, but I also don’t use Pi’s for much other than testing.
 
Has anyone had issues with Pushing data to Brewfather? I've recently had to reload everything on my RPI 3 and Arduino Uno, and for the life of me, I can not push data through to Brewfather. I get the first lot of data and then nothing. LAN connection is fine. Any help would be appreciated.
 
Has anyone had issues with Pushing data to Brewfather? I've recently had to reload everything on my RPI 3 and Arduino Uno, and for the life of me, I can not push data through to Brewfather. I get the first lot of data and then nothing. LAN connection is fine. Any help would be appreciated.
Did you changed the frequentie of Pushing data? The limit of BF is not less then 900 sec or 15 min otherwise your data will be ignored.
see: https://docs.brewfather.app/integrations/ispindel

1744303641875.png
 
@Thorrak I've had an interesting setback in using Fermentrack and I'm wondering if there's a way to fix it.

Some background: I've been using Fermentrack with an ESP8266 controller since 2019. The controller is a HiLetgo ESP8266 NodeMCU LUA CP2102 ESP-12E. That setup worked fine several years, and I hadn't needed to flash the board in for quite a while.

Recently I built a glycol chiller and discovered the issue with the 8266 overshooting due to the minimum cooling time, so I tried implementing a BrewPiLess build. That didn't work because the board could not find the OneWire sensors and kept rebooting. When I tried to revert I flashed the board again and the issue of not discovering the OneWire sensors persisted.

I think one of the firmware updates in the intervening years contained a breaking change in one of the dependencies...at which point I guess I'm at a loss. I tried to go back to the brewpi-8266 repo and find an older version of the firmware, but that in turn seems to want to download branches from other repos that no longer exist.

It seems clear that I could upgrade to an ESP32 board and save myself the trouble of fixing this issue, but it looks like the pin geometry on those newer boards isn't compatible with my existing PCB. Is there any straightforward way of reverting to a different version of the firmware?
 
@Thorrak I've had an interesting setback in using Fermentrack and I'm wondering if there's a way to fix it.

Some background: I've been using Fermentrack with an ESP8266 controller since 2019. The controller is a HiLetgo ESP8266 NodeMCU LUA CP2102 ESP-12E. That setup worked fine several years, and I hadn't needed to flash the board in for quite a while.

Recently I built a glycol chiller and discovered the issue with the 8266 overshooting due to the minimum cooling time, so I tried implementing a BrewPiLess build. That didn't work because the board could not find the OneWire sensors and kept rebooting. When I tried to revert I flashed the board again and the issue of not discovering the OneWire sensors persisted.

I think one of the firmware updates in the intervening years contained a breaking change in one of the dependencies...at which point I guess I'm at a loss. I tried to go back to the brewpi-8266 repo and find an older version of the firmware, but that in turn seems to want to download branches from other repos that no longer exist.

It seems clear that I could upgrade to an ESP32 board and save myself the trouble of fixing this issue, but it looks like the pin geometry on those newer boards isn't compatible with my existing PCB. Is there any straightforward way of reverting to a different version of the firmware?

You can see previous versions of the firmware here: https://github.com/thorrak/brewpi-esp8266/tags

Unfortunately, I didn't always understand how git worked, so I didn't always do a good job of tagging versions. There shouldn't be any breaking changes that I'm aware of with the OneWire support - I'm pretty sure that I've been using the current OneWire library for the ESP8266 for quite awhile (and can personally guarantee that the OneWire support works in v16-beta1, at least, as I tested in on an ESP8266 prior to release).

Before you start to try to bisect versions, however, you might want to give the wiring test firmware a try:

Screenshot 2025-04-14 at 12.31.11 AM.png


As long as you have a screen hooked up, it should tell you if the OneWire devices are responding (and also test the rest of your setup). If it doesn't detect your OneWire sensors, the more likely culprit is either a bad connection to them, or that the sensors themselves have gone bad.
 
Thanks for the prompt reply! I wasn't aware of this tool. One more data point for you: I was messing around with the Flash Device workflow and I was able to re-flash the controller to v11. The sensors immediately showed up and now the device is working properly.

Not sure what that means...GitHub copilot was the first to raise the possibility of some kind of mismatch between my older board and the new firmware.

I'm content to leave this as-is for now, although I plan to do a new build soon around the ESP32 so I can control my glycol.

You can see previous versions of the firmware here: https://github.com/thorrak/brewpi-esp8266/tags

Unfortunately, I didn't always understand how git worked, so I didn't always do a good job of tagging versions. There shouldn't be any breaking changes that I'm aware of with the OneWire support - I'm pretty sure that I've been using the current OneWire library for the ESP8266 for quite awhile (and can personally guarantee that the OneWire support works in v16-beta1, at least, as I tested in on an ESP8266 prior to release).

Before you start to try to bisect versions, however, you might want to give the wiring test firmware a try:

View attachment 873264

As long as you have a screen hooked up, it should tell you if the OneWire devices are responding (and also test the rest of your setup). If it doesn't detect your OneWire sensors, the more likely culprit is either a bad connection to them, or that the sensors themselves have gone bad.
 
Although I knew that I had made a change to the OneWire libraries for the ESP32, looking back through the code just now it appears I also made them for the ESP8266 back in v15. That said, there shouldn't be any compatibility difference, unless potentially the sensors are parasitic (and parasitic support was somehow enabled for v11). Regardless: Very strange, but glad to hear you're up and running!

The ESP32 is definitely the way to go in my opinion. Lots of benefits to the platform - not least of which is ongoing vendor support. If you had the "D1 Mini" form factor you would have the ESP32-S2 as a drop in replacement, but the NodeMCU board you're using unfortunately doesn't have an ESP32 analogue that I'm aware of.
 
@Thorrak I went ahead and put together a ESP32 implementation of Fermentrack, and it's up and running. One issue I would request a steer on is how to configure the ESP32 for glycol as mentioned here in your rundown of the various BrewPi implementations. It says here

"BrewPi-ESP allows for configurable compressor protection, allowing much faster cycling in a glycol system than would otherwise be allowed. BrewPiLess also adds support for "fridge profiles" which are similar to Beer Profiles, but do not integrate the beer PID loop."

Correct me if I'm wrong, but I don't believe the cycling minimum times are configurable via the Fermentrack UI. Is the solution then to flash the controller using a different firmware version? If so, which one and how? Thanks again.
 
Did you changed the frequentie of Pushing data? The limit of BF is not less then 900 sec or 15 min otherwise your data will be ignored.
see: https://docs.brewfather.app/integrations/ispindel

View attachment 872918
I thought your suggestion was onto a winner when I checked the push frequency but alas everything was set to 15 minutes. I went through the motions of deleting the push target and re-doing again with the logging data a 30 minutes. This worked for 24 hrs and then nothing again. I'm still getting my iSpindle data but no Fermentrack
1745910740734.png
 
@Thorrak I went ahead and put together a ESP32 implementation of Fermentrack, and it's up and running. One issue I would request a steer on is how to configure the ESP32 for glycol as mentioned here in your rundown of the various BrewPi implementations. It says here

"BrewPi-ESP allows for configurable compressor protection, allowing much faster cycling in a glycol system than would otherwise be allowed. BrewPiLess also adds support for "fridge profiles" which are similar to Beer Profiles, but do not integrate the beer PID loop."

Correct me if I'm wrong, but I don't believe the cycling minimum times are configurable via the Fermentrack UI. Is the solution then to flash the controller using a different firmware version? If so, which one and how? Thanks again.

You are correct that this is one of a few options that are not configurable from within Fermentrack. I may decide to add these later, but for now BrewPi-ESP compressor protection changes are configurable within the on-device web interface for v16. Just enter your device’s address in a web browser and check the configuration options on the left.
 

Fermentrack 2 - Arduino (Serial) Support​


I'm excited to share the alpha release of Serial-to-Fermentrack, a new tool designed to connect your legacy serial-based BrewPi controllers (Arduino or ESP) to Fermentrack 2 -- including Fermentrack.net.

Serial-to-Fermentrack is my reimagining of the legacy BrewPi-script - a complete, ground-up rebuild to help harden it and eliminate many of the errors seen with legacy Fermentrack installs. Like BrewPi-script, it runs on a local device (such as a Raspberry Pi) and reads the serial connection to your BrewPi controller -- but rather than then relying on a serial backhaul to Fermentrack it uses Fermentrack 2's REST interface to eliminate a common source of failure.

Regardless of whether you end up using Fermentrack 2 at Fermentrack.net or - once source is available - on the same Raspberry Pi or in your own cloud deployment, Serial-to-Fermentrack bridges the gap for your legacy serial controllers.

Installing Serial-to-Fermentrack​


The easiest way to install it is using the Fermentrack Local Tools installer. Just log into your Pi and run this one-liner:

Code:
bash <(curl -sSL http://localtools.fermentrack.net)

This command will guide you through installation of Serial-to-Fermentrack and any other optional tools (like BrewFlasher CLI). When prompted, choose to install Serial-to-Fermentrack and to run it automatically at startup.

Configuring Serial-to-Fermentrack​


Once installed, use the included serial_to_fermentrack_config tool to:
  1. Set up the connection to your Fermentrack 2 instance (e.g. Fermentrack.net)
  2. Add each of your serial-based BrewPi controllers
  3. Assign each controller a name for Fermentrack to recognize
The daemon will take it from there—connecting and forwarding automatically on startup.


Notes​


For anyone interested in more info than is contained here, I have a full write up in this blog post.

Serial-to-Fermentrack must have the only serial connection to the controller, meaning that if you want to use it on a Raspberry Pi you already have BrewPi-Remix or Fermentrack on, you will need uninstall the controller within those tools.

Serial-to-Fermentrack uses the physical USB port to track which device is which - so be sure to track which port you have each device plugged into. If you plug a device into the wrong port, it may either not be detected at all, or may be confused for a different controller.

Serial-to-Fermentrack is an alpha release, and while it's functional and stable in my testing, there is always the chance that something specific to your hardware or use case may throw it for a loop. If you encounter any issues (missing functionality, connectivity issues with Fermentrack.net, etc.) please let me know.
 
I just released v0.0.2 of Serial-to-Fermentrack, which brings with it a bugfix for a potential scenario where the daemon could deadlock when attempting to read from a controller.

To upgrade:
  1. Log into your Pi (or other device) with SSH
  2. Change to the FT2 Tools directory (cd ft2_tools/)
  3. Run the upgrade script (./upgrade.sh) which will upgrade the upgrade script
  4. Run the upgrade script again (./upgrade.sh) to upgrade Serial-to-Fermentrack
As this prevents a potential deadlock, this upgrade is highly recommended for anyone using v0.0.1.

As always, if you have any issues, let me know!
 
I pushed out a few updates to both Serial-to-Fermentrack and to Fermentrack 2 yesterday based on some feedback from @playhouse (thank you!)

When you set a Beer or Fridge temperature setpoint in Fermentrack 2, you will now use your Fermentrack preferred units rather than whatever units the specific device you selected currently seems to be using. This means that if your preferred units are Fahrenheit but you haven't changed the controller from Celsius yet, you'll still enter the temperature setting in Fahrenheit. If the two are not in sync, you will get a warning in the user interface just so you don't make a mistake.

Additionally, as Fermentrack 2 always sends temperatures dimensionally, Serial-to-Fermentrack will now handle all the conversion for firmware that doesn't support dimensional temperatures (e.g. Arduino firmware).

Fermentrack.net is currently running with this change - to update Serial-to-Fermentrack just follow the instructions in my post above.
 
I was trying to setup my Arduino Controller and got through the serial-to-fermentrack setup to the point of configuring devices. I have a Arduino controller, Raspberry Pi 3B+ and a tilt bridge connected and working fine. Then I get this:

Select a device to configure or go back:
/dev/cu.debug-console - n/a [NOT CONFIGURABLE - No Location]
/dev/cu.Bluetooth-Incoming-Port - n/a [NOT CONFIGURABLE - No Location]

I have been using this setup for years and it working great. Do I need to update something on the Pi? I haven't made any changes in a few years. Any suggestions
 
I was trying to setup my Arduino Controller and got through the serial-to-fermentrack setup to the point of configuring devices. I have a Arduino controller, Raspberry Pi 3B+ and a tilt bridge connected and working fine. Then I get this:

Select a device to configure or go back:
/dev/cu.debug-console - n/a [NOT CONFIGURABLE - No Location]
/dev/cu.Bluetooth-Incoming-Port - n/a [NOT CONFIGURABLE - No Location]

I have been using this setup for years and it working great. Do I need to update something on the Pi? I haven't made any changes in a few years. Any suggestions
Do you happen to be using a Mac as your primary computer?
 
Do you happen to be using a Mac as your primary computer?
Yes. I just realized I installed it on my Mac not the Pi. Im an idiot. I now have it installed on the Pi and get to this:

[?] Select a device to configure or go back:
> /dev/ttyACM0 - ttyACM0 (Location: 1-1.1.2:1.0) [Not Configured]
/dev/ttyAMA0 - ttyAMA0 [NOT CONFIGURABLE - No Location]
Back to Main Menu

Device: /dev/ttyACM0

Description: ttyACM0

Hardware ID: USB VID:pID=2341:0043 SER=9523234373335130D031 LOCATION=1-1.1.2:1.0

Location: 1-1.1.2:1.0

Vendor ID: 9025

Product ID: 67

Serial Number: 9523234373335130

Device is not configured

[?] What would you like to do?:

> Configure device
Go back

Configuring device: /dev/ttyACM0
Description: ttyACM0
Hardware ID: USB VID:pID=2341:0043 SER=9523234373335130D031 LOCATION=1-1.1.2:1.0
Location: 1-1.1.2:1.0

Connecting to device...

Requesting firmware version...
Device responded with:
Invalid response - retrying in 2 seconds...
Requesting firmware version...
Device responded with:
Invalid response - retrying in 2 seconds...
Requesting firmware version...
Device responded with:
Response does not start with 'N:' - not a BrewPi device.

ERROR: This device did not respond to the version info command, and therefore does not appear to be a working BrewPi connected via Serial.

Only working BrewPi devices can be configured.
Configuration cancelled.
 
Yes. I just realized I installed it on my Mac not the Pi. Im an idiot. I now have it installed on the Pi and get to this:

[?] Select a device to configure or go back:
> /dev/ttyACM0 - ttyACM0 (Location: 1-1.1.2:1.0) [Not Configured]
/dev/ttyAMA0 - ttyAMA0 [NOT CONFIGURABLE - No Location]
Back to Main Menu

Device: /dev/ttyACM0

Description: ttyACM0

Hardware ID: USB VID:pID=2341:0043 SER=9523234373335130D031 LOCATION=1-1.1.2:1.0

Location: 1-1.1.2:1.0

Vendor ID: 9025

Product ID: 67

Serial Number: 9523234373335130

Device is not configured

[?] What would you like to do?:

> Configure device
Go back

Configuring device: /dev/ttyACM0
Description: ttyACM0
Hardware ID: USB VID:pID=2341:0043 SER=9523234373335130D031 LOCATION=1-1.1.2:1.0
Location: 1-1.1.2:1.0

Connecting to device...

Requesting firmware version...
Device responded with:
Invalid response - retrying in 2 seconds...
Requesting firmware version...
Device responded with:
Invalid response - retrying in 2 seconds...
Requesting firmware version...
Device responded with:
Response does not start with 'N:' - not a BrewPi device.

ERROR: This device did not respond to the version info command, and therefore does not appear to be a working BrewPi connected via Serial.

Only working BrewPi devices can be configured.
Configuration cancelled.
I figured that might be the case. Not speaking from experience, or anything. ;)


Do you happen to have an existing Fermentrack or BrewPi remix instance running with the device still connected/set up? If so, it's still likely connecting to the controller (and thus preventing it from responding to S2F).

In Fermentrack, you should only need to delete the controller to prevent it from being automatically connected. For BPR, you'll need to disable the BrewPi service (see @LBussy 's note earlier in the thread).

Assuming you've done that, unplug the Arduino from the RPi, plug it back in, and re-run the script. If that doesn't fix it, then run:

sudo apt-get install picocom
picocom -b 57600 /dev/ttyACM0

...and then type a single "n" -- and see what happens.
 
Hi Thorrak (and team?),

First, thanks for all your hard work on this software. I have been using fermentrack successfully to track my ferments for about 5 years now.

I built an iSpindel years ago and now am now finally trying to connect and calibrate it. The hardware and firmware seem to be working just fine. I can connect directly to the iSpindel in wifi setup mode and see the tilt and temperature update. It even connects to my network. However, I can't connect the iSpindel to my Raspberry Pi4 server.

I've tried following the instructions in your video:
I've also tried updating the connection settings based on the advice from other folks on this forum post.

Two quick questions for you that would help me resolve this:

1) Is the path/URI setting in the iSpindel config mode supposed to point to the server_ip/ispindel) or the ispindel_ip/ispindel
2) Anyway to determine from the raspberry pi what the server port was set to? I set up this iteration a couple years ago and forgot.

I appreciate any other feedback or troubleshooting steps you can think of.

Thanks!
 
Hi Thorrak (and team?),

First, thanks for all your hard work on this software. I have been using fermentrack successfully to track my ferments for about 5 years now.

I built an iSpindel years ago and now am now finally trying to connect and calibrate it. The hardware and firmware seem to be working just fine. I can connect directly to the iSpindel in wifi setup mode and see the tilt and temperature update. It even connects to my network. However, I can't connect the iSpindel to my Raspberry Pi4 server.

I've tried following the instructions in your video:
I've also tried updating the connection settings based on the advice from other folks on this forum post.

Two quick questions for you that would help me resolve this:

1) Is the path/URI setting in the iSpindel config mode supposed to point to the server_ip/ispindel) or the ispindel_ip/ispindel
2) Anyway to determine from the raspberry pi what the server port was set to? I set up this iteration a couple years ago and forgot.

I appreciate any other feedback or troubleshooting steps you can think of.

Thanks!

Hey there! Glad to hear it's been working for you over the years!

To answer your questions:

1. http://server_ip/ispindel/
2. Yes -- but you can tell from the URL you use to access Fermentrack as well, if you are still able to access it. If you are accessing it at http://<server_ip>/ then the port is 80. If you're accessing it at, for example, http://<server_ip>:1234/ then the port is 1234 (or whatever follows the colon). If you can't access the site then how you can tell depends on if you are using the docker or non-docker version.

If you are using the non-docker version then you can tell from you can also tell from the nginx configuration (if you're using the non-docker version) which is in /etc/nginx/sites-available/something.conf (I don't recall offhand what "something" is here -- if you ssh into the Pi and do 'cd /etc/nginx/sites-available' and then 'ls' you should see the file, and can just run 'cat <filename>'


If you are using the docker version, you can tell by changing to the Fermentrack tools directory and running `grep listen /compose/production/nginx/nginx.conf` . There should be a line like "listen [::]:123 default_server ipv6only=off;"(where 123 in this case is the port number)
 
Back
Top