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'm having an issue with the temperature offset calibration of my OneWire sensor. My sensor is about 7 degrees high, so I am setting the offset to -7 (I assume this is what I should be doing), but the temp reading always remains the same, no matter the value I choose, and it displays the offset as a very small fraction of what I picked. Am I doing something wrong?
 

Attachments

  • Screen Shot 2020-07-25 at 11.33.17 AM.png
    Screen Shot 2020-07-25 at 11.33.17 AM.png
    110.5 KB · Views: 19
  • Screen Shot 2020-07-25 at 11.33.49 AM.png
    Screen Shot 2020-07-25 at 11.33.49 AM.png
    122.8 KB · Views: 14
7 degrees high? Woof. Something ain't right with that sensor - which may correlate with the wonky behavior.

fwiw, I run over two dozen ds18b20 sensors between brewery stuff and home management stuff and having qualified each one against a standard found one probe that was 1.5°F high, but the rest were within a few tenths °F.

I suggest either doing some solid analysis on that sensor to understand how it could be so wrong, or simply picking up a replacement...

Cheers!
 
The sensor may be faulty, but my other sensor is only about a degree off, and I’m having the same issue in Fermentrack. I can’t get the calibration offset to work right. I’ll get around to replacing the sensor at some point, but in the meantime I figured I could make do with it if I could correct it.
 
There's not much to it:
  • The three ds18b20 temperature sensors go on A4, draw 5V power and ground from the Uno, and requires a 4.7K pull-up resistor to Uno 5V.
  • Cold relay goes on GPIO 5 set to "inverted"
  • Heat relay goes on GPIO 6 set to "inverted"

Cheers!
How do I set to "inverted". Is that in the flash image?
 
I am having difficulty getting an LCD screen to work with my nascent setup. I am using a Fermentrack installation in a virtual machine running Ubuntu Server 18.04. I have an ESP 8266 attached to Justin Angevaare's PCB running as the controller that is properly flashed and recognized by the system. The virtual LCD screen in Fermentrack is showing the script is running and sending data to that output. I am trying to get the data displayed on an LCD as well. I have wired the 5v, GND, SCL and SDA pins on the PCB to the corresponding headers on the LCD board. The LCD is receiving power, but no data apparently. Instead, it shows alternating row of white and black boxes, as seen in the attached picture. Can anybody offer some advice as to how to get the LCD to output the data?
 

Attachments

  • IMG_6778.jpg
    IMG_6778.jpg
    3.1 MB · Views: 50
The easiest thing to check would be the contrast. There should be a pot on the LCD.

I also don't see a level shifter unless the circuitry is underneath. Do you have a link to the schematic or board files?
 
Well, I don't see a schematic on his website but that pic looks like the logic converter is there. That looks like the proper LCD as well. Can't say I have an idea. Maybe Justin or John will see this and offer an opinion.
 
If the LCD interface is never initialized, what you're seeing is quite normal.
For whatever reason, the LCD is not hearing the host properly...

Cheers!
 
Or different pins used, maybe? (thinking about using an I2C LCD on your Remix).
I don't know anything about the expected connectivity for this fork to support the LCD vs which version of firmware to use...

Cheers!
 
Oh! Good call Dave. Maybe the address is different?

The firmware scans the entire I2C bus and attempts to initialize every address so it shouldn’t be an address thing

Pretty sure I2C was in from the get-go, John never offered a parallel variant.

This. Parallel is for people with loads of DuPont wires.
 
Yes, This is the board I'm using. I had PCBway assemble the components as well, so there is less of a chance that there is any error due to bad soldering.

though I don’t really feel I have much to offer, I’m a bit surprised not to see the pins soldered on to the 8266 (at least they don’t look it). It looks like the 8266 is just sitting on top of the PCB. Could this be a bad/sporadic contact issue?

I know I had a loose DuPont connection that gave me some wonky LCD issues.
 
though I don’t really feel I have much to offer, I’m a bit surprised not to see the pins soldered on to the 8266 (at least they don’t look it). It looks like the 8266 is just sitting on top of the PCB. Could this be a bad/sporadic contact issue?

I know I had a loose DuPont connection that gave me some wonky LCD issues.

Oh wow - I didn't notice that. I actually think this might be it...
 
I haven't soldered it yet. I wanted to make sure that the unit was working. I've had issues before where an ESP unit was no good. I wanted to make sure that everything was working before I made it permanent, or had to desolder so I could replace the ESP. I suppose that I can do the soldering if you think that it is the likely problem.
 
I'm moving pretty slow on this build. (Everyone is away so I have to keep house and cook and work and water and brew and find time for this. Phew!) Two questions tonight
First is easy. I need to drive 5v from the arduino to both the temp probes and the sainsmart relay. There's one 5V receptacle pin. Thinking I'll crimp the two wires into a new pin and insert it. Is there a better way?

Second. I bought these temp probes and they are very snug in the thermowell for my SS brewbucket. I'm afraid that if I push it in, I may never pull it back out. Looks like they are 6mm. Are there smaller diameter options?
 
I'm moving pretty slow on this build. (Everyone is away so I have to keep house and cook and work and water and brew and find time for this. Phew!) Two questions tonight

I’ll be honest, my Fermentrack build and most others I’ve seen use an external 5V 2A PSU to deliver power. I fear using the Arduino to deliver power to the other devices may give you less than an ideal set-up, but let others with a more definitive understanding guide you.

As far as probes and thermowells. I think mine are also 6mm. I too have a Brew Bucket, but I had to mod mine for a Thermowell. This is the Thermowell I use in my Brew Bucket: Thermowell - TW4-L-1/4-R

If you have the Brewmasters Edition of the Brew Bucket, I would not expect the part I just shared to be a drop in fix for your situation. (But instead of looking for smaller probes, you could look for a larger Thermowell)
 
Oh wow - I didn't notice that. I actually think this might be it...

Turns out, the bad electrical connection was exactly the problem. I took Garzlok's suggestion and soldered a set of female headers to the 8266, popped it onto the PCB male headers, and the problem was immediately solved. Your project is really great Thorrak, but even better is the way you guys continue to offer help to everyone trying to get their build off the ground. Thanks so much!
 
I’ll be honest, my Fermentrack build and most others I’ve seen use an external 5V 2A PSU to deliver power. I fear using the Arduino to deliver power to the other devices may give you less than an ideal set-up, but let others with a more definitive understanding guide you.
THanks. I'm sure I have a 5v supply around.
As far as probes and thermowells. I think mine are also 6mm. I too have a Brew Bucket, but I had to mod mine for a Thermowell. This is the Thermowell I use in my Brew Bucket: Thermowell - TW4-L-1/4-R

If you have the Brewmasters Edition of the Brew Bucket, I would not expect the part I just shared to be a drop in fix for your situation. (But instead of looking for smaller probes, you could look for a larger Thermowell)
I cut the shrink wrap from off the probes and it slid right into the current well. I may add a dab of silicone to protect it.
 
Linux assigns TTY numbers based on the order in which devices pop up after a reboot. With multiple Arduinos, this creates an issue as you can't guarantee the order in which each Arduino will appear to the kernel every time. The recommendation @day_trippr had solves it - but you should check that "Prefer connecting via udev" is ticked in the device setup, as that should replicate the functionality he's referring to. If it doesn't, let me know and I can try to see if I can figure out what is happening.

So 2 months later and I'm finally getting to this. I followed through day_trippr's steps and I'm just getting hung up on the last set of steps. I'm guessing that's because the file structure with fermentrack is set up differently. When running the following it states the directory doesn't exist, which is probably because I've entered it in wrong....

Here is what I've been trying:

sudo nano /home/fermentrack/kegchamber/settings/config.cfg

scriptPath = /home/fermentrack/kegchamber/
wwwPath = /var/www/kegchamber/
port = /dev/kegchamber
altport = /dev/null
boardType = uno

Thanks for the help!
 
So 2 months later and I'm finally getting to this. I followed through day_trippr's steps and I'm just getting hung up on the last set of steps. I'm guessing that's because the file structure with fermentrack is set up differently. When running the following it states the directory doesn't exist, which is probably because I've entered it in wrong....

Here is what I've been trying:

sudo nano /home/fermentrack/kegchamber/settings/config.cfg

scriptPath = /home/fermentrack/kegchamber/
wwwPath = /var/www/kegchamber/
port = /dev/kegchamber
altport = /dev/null
boardType = uno

Thanks for the help!
on my install, everything is under /home/fermentrack/fermentrack. /home/fermentrack is the user home directory and /fermentrack is where the app is installed.

Try this (YMMV):
sudo nano /home/fermentrack/fermentrack/kegchamber/settings/config.cfg

scriptPath = /home/fermentrack/fermentrack/kegchamber/
 
So 2 months later and I'm finally getting to this. I followed through day_trippr's steps and I'm just getting hung up on the last set of steps. I'm guessing that's because the file structure with fermentrack is set up differently. When running the following it states the directory doesn't exist, which is probably because I've entered it in wrong....

Here is what I've been trying:

sudo nano /home/fermentrack/kegchamber/settings/config.cfg

scriptPath = /home/fermentrack/kegchamber/
wwwPath = /var/www/kegchamber/
port = /dev/kegchamber
altport = /dev/null
boardType = uno

Thanks for the help!

Which steps specifically are you following? Those sound like steps for a traditional BrewPi build using BrewPi-www (or potentially BrewPi-Remix). That doesn't sound like a Fermentrack script.

Fermentrack should allow you to set everything up from within the web interface.
 
Which steps specifically are you following? Those sound like steps for a traditional BrewPi build using BrewPi-www (or potentially BrewPi-Remix). That doesn't sound like a Fermentrack script.

Fermentrack should allow you to set everything up from within the web interface.

This is referring back to my question post #1269. I was following day_trippr's steps outlined in #1270. I originally configured everything through the web interface. It's been running pretty consistently for several months, but if the RPi reboots, the arduinos scramble in Fermentrack. The arduinos keep doing their thing as they should, the names are just scrambled in the web interface and it messes up the logging.

I did check to make sure that prefer connecting via udev was selected as you mentioned in post #1276. I have 4 chambers and they are set up as serial ports, ttyACM0,1,2,3 through the web interface. Example here:

1596384544540.png

I can post the exact modified script I was attempting to use to resolve it if needed but sounds like there may be something else I should try in the web interface?

Appreciate the help!
 
Updated to the latest dev build the other day,, now fermentrack doesn't seem to start. Rpi3b+ running buster.
Found the following in an error log

Code:
Traceback (most recent call last):
  File "/home/fermentrack/venv/lib/python3.7/site-packages/tornado/ioloop.py", line 605, in _run_callback
    ret = callback()
  File "/home/fermentrack/venv/lib/python3.7/site-packages/tornado/stack_context.py", line 277, in null_wrapper
    return fn(*args, **kwargs)
  File "/home/fermentrack/venv/lib/python3.7/site-packages/zmq/eventloop/zmqstream.py", line 542, in <lambda>
    self.io_loop.add_callback(lambda : self._handle_events(self.socket, 0))
  File "/home/fermentrack/venv/lib/python3.7/site-packages/zmq/eventloop/zmqstream.py", line 452, in _handle_events
    zmq_events = self.socket.EVENTS
  File "/home/fermentrack/venv/lib/python3.7/site-packages/zmq/sugar/attrsettr.py", line 48, in __getattr__
    return self._get_attr_opt(upper_key, opt)
  File "/home/fermentrack/venv/lib/python3.7/site-packages/zmq/sugar/attrsettr.py", line 52, in _get_attr_opt
    return self.get(opt)
  File "zmq/backend/cython/socket.pyx", line 472, in zmq.backend.cython.socket.Socket.get
  File "zmq/backend/cython/socket.pyx", line 135, in zmq.backend.cython.socket._check_closed
zmq.error.ZMQError: Socket operation on non-socket

Was hoping someone might have an idea on how to restore to a working device without having to reinstall.
Thanks very much
 
Updated to the latest dev build the other day,, now fermentrack doesn't seem to start. Rpi3b+ running buster.
Found the following in an error log

Code:
Traceback (most recent call last):
  File "/home/fermentrack/venv/lib/python3.7/site-packages/tornado/ioloop.py", line 605, in _run_callback
    ret = callback()
  File "/home/fermentrack/venv/lib/python3.7/site-packages/tornado/stack_context.py", line 277, in null_wrapper
    return fn(*args, **kwargs)
  File "/home/fermentrack/venv/lib/python3.7/site-packages/zmq/eventloop/zmqstream.py", line 542, in <lambda>
    self.io_loop.add_callback(lambda : self._handle_events(self.socket, 0))
  File "/home/fermentrack/venv/lib/python3.7/site-packages/zmq/eventloop/zmqstream.py", line 452, in _handle_events
    zmq_events = self.socket.EVENTS
  File "/home/fermentrack/venv/lib/python3.7/site-packages/zmq/sugar/attrsettr.py", line 48, in __getattr__
    return self._get_attr_opt(upper_key, opt)
  File "/home/fermentrack/venv/lib/python3.7/site-packages/zmq/sugar/attrsettr.py", line 52, in _get_attr_opt
    return self.get(opt)
  File "zmq/backend/cython/socket.pyx", line 472, in zmq.backend.cython.socket.Socket.get
  File "zmq/backend/cython/socket.pyx", line 135, in zmq.backend.cython.socket._check_closed
zmq.error.ZMQError: Socket operation on non-socket

Was hoping someone might have an idea on how to restore to a working device without having to reinstall.
Thanks very much

Have you tried running the fix-environment script? The script fixes a number of potential environment issues that might cause problems like this. More info is at the link above, or you can just run the following command:

curl -L "https://raw.githubusercontent.com/thorrak/fermentrack-tools/master/fix-environment.sh" | sudo bash
 
Can anyone tell me how to determine which port is in use so I can configure ispindel? I know the ip but not the port number. Came configured to 8080, but it is not showing any results in fermentrack so I have to assume that they aren't communicating.
 
Can anyone tell me how to determine which port is in use so I can configure ispindel? I know the ip but not the port number. Came configured to 8080, but it is not showing any results in fermentrack so I have to assume that they aren't communicating.

The ispindel itself is probably port 8080, but it's the configuration on the ispindel that determines where the data gets sent. Fermentrack's port is generally 80.
 
Firstly, thanks again for such a great project and help received here in this thread. I am happily fermenting a Blonde Ale to a custom beer profile!

Another question though....I did a handful of water tests prior to using Fermentrack on an actual beer. All went well except for one...when I tried to stay at 90 deg. I am planning on doing a sour soon and would like to ferment warm. I set the beer constant at 90 deg but fermentrack never called for a fridge temp higher than .Obviously, I will never hit 90 deg that way. Is this a built in limitation or safe guard? Thanks for any insight..Paul

Fermentrack 1.jpg
 
The original BrewPi controller defaults limit the high side to 86°F regardless of your Set Point. Those settings can be changed by the user if needed. Hopefully Fermentrack kept that functionality. Check the controller settings...

Cheers!
 
The original BrewPi controller defaults limit the high side to 86°F regardless of your Set Point. Those settings can be changed by the user if needed. Hopefully Fermentrack kept that functionality. Check the controller settings...

Cheers!

I think I actually never built that bit. I probably should...
 
Deleted, resolved my own issue. Make sure relays are inverted. I couldn't get them cooperate inverted initially, so set them as not inverted, but they're happy inverted now.
 
Last edited:
Which steps specifically are you following? Those sound like steps for a traditional BrewPi build using BrewPi-www (or potentially BrewPi-Remix). That doesn't sound like a Fermentrack script.

Fermentrack should allow you to set everything up from within the web interface.

Hey Thorrak,
I think I may have found the source of my problem, but not sure on how to fix. I ran the debug tool on the online interface and all 4 of my arduinos are failing the udev availability test.

1599360312761.png

Should I just try re-flashing the controllers? Prefer connecting via udev is checked on all controllers. Thanks for all the help.
 
Back
Top