HOWTO - Make a BrewPi Fermentation Controller For Cheap

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.
Status
Not open for further replies.
And all that looks fine, so it doesn't look like a device problem at least at this level.
Did you install apache2? If that's missing it would explain why you can't pull a web page off your 'Pi.

Cheers!
 
Yes I installed Apache2 and I had got around the PHP5 not available issue by changing a line in install .sh to "libapache2-mod-php php-cli php-common php-cgi php" instead of the one that had the php5 references in it.

I also dug into the failed boot item
"failed to start Raise network interfaces. See 'systemctl status netwok.services'"
So I ran this and am searching for clues as to the cause of my issues

pi@raspberrypi:~ $ sudo systemctl status networking.service
â networking.service - Raise network interfaces
Loaded: loaded (/lib/systemd/system/networking.service; enabled; vendor prese
Active: failed (Result: exit-code) since Mon 2018-12-17 16:30:03 EST; 5min ag
Docs: man:interfaces(5)
Process: 266 ExecStart=/sbin/ifup -a --read-environment (code=exited, status=1
Process: 248 ExecStartPre=/bin/sh -c [ "$CONFIGURE_INTERFACES" != "no" ] && [
Main PID: 266 (code=exited, status=1/FAILURE)

Dec 17 16:30:02 raspberrypi systemd[1]: Starting Raise network interfaces...
Dec 17 16:30:02 raspberrypi sh[248]: ifquery: unknown interface wlan0
Dec 17 16:30:02 raspberrypi ifup[266]: ifup: unknown interface wlan0
Dec 17 16:30:03 raspberrypi systemd[1]: networking.service: Main process exited,
Dec 17 16:30:03 raspberrypi systemd[1]: Failed to start Raise network interfaces
Dec 17 16:30:03 raspberrypi systemd[1]: networking.service: Unit entered failed
Dec 17 16:30:03 raspberrypi systemd[1]: networking.service: Failed with result '
lines 1-15/15 (END)
â networking.service - Raise network interfaces
Loaded: loaded (/lib/systemd/system/networking.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Mon 2018-12-17 16:30:03 EST; 5min ago
Docs: man:interfaces(5)
Process: 266 ExecStart=/sbin/ifup -a --read-environment (code=exited, status=1/FAILURE)
Process: 248 ExecStartPre=/bin/sh -c [ "$CONFIGURE_INTERFACES" != "no" ] && [ -n "$(ifquery --read-envi
Main PID: 266 (code=exited, status=1/FAILURE)

Dec 17 16:30:02 raspberrypi systemd[1]: Starting Raise network interfaces...
Dec 17 16:30:02 raspberrypi sh[248]: ifquery: unknown interface wlan0
Dec 17 16:30:02 raspberrypi ifup[266]: ifup: unknown interface wlan0
Dec 17 16:30:03 raspberrypi systemd[1]: networking.service: Main process exited, code=exited, status=1/FA
Dec 17 16:30:03 raspberrypi systemd[1]: Failed to start Raise network interfaces.
Dec 17 16:30:03 raspberrypi systemd[1]: networking.service: Unit entered failed state.
Dec 17 16:30:03 raspberrypi systemd[1]: networking.service: Failed with result 'exit-code'.
~
 
Ah, now, see, that is why I thought the article I linked earlier might apply.
You might give the first option listed after "I don't like this, how do I disable this?"

Cheers!
 
I feel like I'm making progress but I'm not there yet. I think some of my problem was that I tried to do the legacy build with the RPI3 and Arduino Uno headless using info from too many different sites. So I went back to square one and tried to use onlly the site by day trippr. But then doing the NOOBS copy files onto the reformatted SD didn't work. So I made a fresh flash of the full Raspian image using Etcher and it worked. I then borrowed a keyboard, mouse and screen borrowed from another computer to see if I can get to the dashboard but no luck. I can ssh in from other computers on my network but no access to the dashboard thru any computer or the RPI. I get this message from the browser "brewpi is currently unable to handle this request". Did I miss something crucial to seeing the dashboard by not using NOOBS to put the Raspian on the RPI?
 
Solved! I looked into my apache error.log and saw a uncaught error which led me to

https://stackoverflow.com/questions...convert-encoding-although-mbstring-is-enabled

Then from there I installed this leaving out the 7.2 in the article because the modified install.sh left out the "5" behind the php resulted in 7.0 being installed.

sudo apt-get install php-mbstring

then

sudo reboot

and ......Voila! I've now got a dashboard!!
 
I had my brewpi running flawlessly a few years ago but we moved and I'm just now getting it back up and running but I can't load up the dashboard.

I figured out what ip address the brewpi was assigned through my routers gui (which is 192.168.0.244) but that ip address just times out when loading it up in my browser. I can ping it just fine.

I can't remember if I had to set the ip address manually in the brewpi.

Please help
 
I'm not sure what putty or what that other thing is but I can hook up a monitor and a USB keyboard. I can't remember if I had set up the ip address in the brewpi.
 
Not much to go on. Can you connect a local console to the host? Or can you Putty (or WinSCP) into it?

Cheers!
When I hook up a monitor... What Will I have to do? Sorry it's been so so long since I originally built it
 
I don't think you'll need to do anything aside from plugging the monitor in and booting up the RPi. Unless you installed a Raspbian package that doesn't provide a desktop manager it should just work.

Putty is a popular terminal emulator supporting ssh logins. WinSCP is a remote file manager that also supports ssh connections. Along with a browser they are what I use to manage my fleet of machines big and tiny, but they do require a working network stack at each end to be of any use at all. With a local console one can have a shot at figuring out what ails the wee beastie...

Cheers!
 
I don't think you'll need to do anything aside from plugging the monitor in and booting up the RPi. Unless you installed a Raspbian package that doesn't provide a desktop manager it should just work.

Putty is a popular terminal emulator supporting ssh logins. WinSCP is a remote file manager that also supports ssh connections. Along with a browser they are what I use to manage my fleet of machines big and tiny, but they do require a working network stack at each end to be of any use at all. With a local console one can have a shot at figuring out what ails the wee beastie...

Cheers!
I hooked up a monitor and this log screen came up.

I had everything working before I moved not sure what to do. I am not very computer savvy but I just followed the instructions on this thread.

Do you think I need to rewrite the SD card?

Cheers [emoji482]
1219181913.jpeg
 
There are numerous possible ways, the most prevalent being power failure/removing power without having shut down the OS first. Then there's "bit rot", where cells in the flash card lose content over time.

I periodically live-clone the SD cards on my wee machine fleet, switching to the clone and saving the original for backup purposes. There have been times that an older cloned card has failed to boot, which is an unnerving reality of flash technology...

Cheers!
 
There are numerous possible ways, the most prevalent being power failure/removing power without having shut down the OS first. Then there's "bit rot", where cells in the flash card lose content over time.

I periodically live-clone the SD cards on my wee machine fleet, switching to the clone and saving the original for backup purposes. There have been times that an older cloned card has failed to boot, which is an unnerving reality of flash technology...

Cheers!

Since I need new image software should I stick with the "wheezy" or try the "stretch"?
 
Personally, I'd try for Jessie with LXDE and php-mysql5 if I had my druthers and knew how to do it cold.

If you go to the Raspbian.org page what you'll end up with is Stretch, apparently still with the LXDE desktop manager. And the package archive pointers won't have php-mysql5 by default, you'll have to find where it's hiding and add the archive path to the active package list file on your machine. Could be a bit of an adventure, but iirc someone either in this thread or near the end of the RaspberryPints thread has basically done it...

Cheers!
 
I'm beginning to believe that's the way to go from a standing start.
One of these days I'll put in on a testbed and see how it fits my hardware 'n' stuff...

Cheers!
 
At this point, the only reason I see not to go from the start using Stretch and Fermentrack is if you are going to run RaspberryPints on the same Pi. The Stretch 'pints installation seems to be close but not as standard as running it on Jessie. But even that implementation on Jessie is getting more fidgety by the day...
 
<sigh>
OK.
I have been avoiding changing as it's been tracking fine for years, and I've got the latptop-not-Rpi thing going against me too. But it does seem to be that Fermentrack is inevitable.
 
I’ve used one that drops onto the pins of the RPI which took some fiddling to get working, think I had to add some drivers but it worked. This one looks like it connects via HDMI so you shouldn’t have any problems with it displaying.

I also used kiosk which meant that whenever I turned on the RPI it went straight to the temp panel rather than me having to open the web browser and log onto Brewpi
 
Advanced Settings question -?
I have been using for years now, the BrewPi with great success. Only issue I have is my chilled water I use to cool, when the relay kicks on, the temperature crashes down too damn fast and cools too much. Eventually the under and overshoot dials in to keep the O/U close, but by then its 2-3 days into fermentation.
I looked at all the Advanced Settings and I am not sure which ones to adjust to turn off my chilled water pump sooner, and try to keep the Over/Under closer to my Beer Setting.
I don't use a fridge "Chamber". My Heat is from Flex Watt heating strips taped to the sides of the Conicals, used for keeping warm reptiles. My cooling is pumped from my barrel of cold water stored in my walk-in-cooler through the heat exchanger coils on my SsBrewTech Conicals. This 35 degree water is why it cools too quick - Its not a Fridge!
 
Long time no chat folks!

Looks like my "uber-simple install from scratch instructions" no longer work with Stretch and the new versions of PHP. By far the easiest method to get working now is via Fermentrack, but I'm stubborn so I'm going to see if I can make it work (simply) with the new Stretch images.
 
Long time no chat folks!

Looks like my "uber-simple install from scratch instructions" no longer work with Stretch and the new versions of PHP. By far the easiest method to get working now is via Fermentrack, but I'm stubborn so I'm going to see if I can make it work (simply) with the new Stretch images.
I just went the stretch fermtrack route myself after many failed attempts to install php5. Brewpi seemed more robust.
 
You need to set some package repository pointers to the last php-mysql5 archive to install it, but I do believe that should do the trick - I don't think there's more to it than that. As well I'm pretty sure someone documented the needed edits in the current R'Pints thread - somewhere...

Cheers!
 
Well, I was more thinking one could make BrewPi Legacy run on PHP 7.x and (somewhat) future-proof it.

Maybe.

Yes, Fermentrack is bound to be more robust, but this is a scholastic (and maybe nostalgic) endeavor. :)
 
I got Brewpi/Fermentrack legacy working with Stretch a few days ago. Got around the PHP5 not available by removing the 5 in each php5 instances in install.sh. And "libapache2-mod-php php-cli php-common php-cgi php" installed php 7.0. Then got around the apache error log issue with

sudo apt-get install php-mbstring

and a reboot.
 
Okay ... I spent WAY too much time on this but I've been having fun. I think some folks will get some use out of what I've (almost) put together. I've run into a Python issue I can't seem to figure out though. I thought one of you fine folks would be able to help. Here's how to recreate the issue:

Create a file named "test.sh:"
Code:
#!/bin/bash

python ./test.py

And a file named "test.py:"
Code:
#!/usr/bin/python

name = raw_input("What is your name? ")
print "Hello, %s." % name

If you call "test.sh" normally, it works as expected:
Code:
pi@raspberrypi:~ $ ./test.sh
What is your name? Lee
Hello, Lee.
pi@raspberrypi:~ $

However if you pipe "test.sh" through a bash shell (it would take forever to explain why I want to do this, just take for granted for a minute it has to be this way) it does not wait on the raw_input:
Code:
pi@raspberrypi:~ $ cat ./test.sh | sudo bash
What is your name? Hello, .
pi@raspberrypi:~ $

This one is driving me crazy ... anyone have any ideas? When I had a similar issue with a bash script calling a bash script I fixed it by redirecting /dev/tty to the read command like this:
Code:
read -p "What is your name? " name < /dev/tty
... but I'm at a loss to figure this out in Python.

I've even been contemplating scheduling the python job, and looping until I can read a semaphore from it in the bash script, but that seems awful heavy-duty for what I'm doing.

A (virtual) beer for the person who knows how to get past this!
 
And ... I found it. Of course, after I took the time to post here. Here's my answer:

https://bugs.python.org/issue512981

So I came up with this kludge:

Code:
#!/usr/bin/python

import sys
saved_stdin = sys.stdin
sys.stdin = open('/dev/tty', 'r')
name= raw_input('What is your name?: ')
sys.stdout.write('Hello, ' + name + '.\n')
sys.stdin = saved_stdin

That was ... well, I don't want to tell you how long I spent on that. :)
 
And ... I found it. Of course, after I took the time to post here. Here's my answer:

https://bugs.python.org/issue512981

So I came up with this kludge:

Code:
#!/usr/bin/python

import sys
saved_stdin = sys.stdin
sys.stdin = open('/dev/tty', 'r')
name= raw_input('What is your name?: ')
sys.stdout.write('Hello, ' + name + '.\n')
sys.stdin = saved_stdin

That was ... well, I don't want to tell you how long I spent on that. :)
On the upside, you just earned yourself a (virtual) beer ;-)

Cheers,

Kal
 
It seems like I've been searching the web for days (here, the BrewPi forums, Reddit) and can't seem to find a good answer to my situation. I've found lots of bits and pieces, but nothing with a decisive conclusion. I'm just getting back into homebrewing after losing 95% of my equipment to a housefire about a year ago. One of the few things I was actually able to salvage was my legacy BrewPi setup (based on rpi+arduino).

For my new setup I've decided to go with a SS Brewtech Chronical BME and am planning on chilling it with a cooled glycol reservoir and heat with a heater wrap on the conical. I also have an inkbird controller so I was going to use that to hold the glycol to a set temp and wanted to use the BrewPi to control a pump that circulated the glycol through the conical chiller.

It seems people have gotten somewhat acceptable results using the chamber TC in the conical thermowell and using the fridge constant mode, but there are several caveats such as not being able to run a profile or requiring to control the glycol to just under the beer setpoint to avoid cooling spikes. I'm already way over budget and can't really afford to upgrade to the new BrewPi Spark or rebuild to a different controller. I guess I'm looking for recommendations given my situation. Here's some ideas/questions based on where I'm at now:

  • resolve to just using fridge constant mode (simplest, but not ideal given the above caveats)

  • Switch over to Fermentrack. This seems like it would be pretty simple for me, I just haven't been able to find a find any documentation on someone actually getting this to work with a glycol chiller any better than the standard BrewPi install although it may be easier if I want to update to the latest OS on the Pi. If someone knows of documentation out there, please point me in the direction.

  • Switch to BrewPiLess. Honestly, I really don't know much about this other than it seems like it has glycol chiller control functionality. It seems like I'd be tossing half of my current setup to switch and would be some amount of labor but not that expensive?

  • Just use the Inkbird controller (not my preferred way at all).

  • Build a DIY BrewPi Spark. I've seen some tutorials, but honestly this looks like more work than I'd like to do right now (I really just want to get back to brewing) and might be a little on the expensive side and overkill for just doing fermentation control.

  • Any other suggestions?
The amount of information and support from so many individuals available on these forums is just incredible. I really appreciate any input, opinions, and help/suggestions.
 
It seems like I've been searching the web for days (here, the BrewPi forums, Reddit) and can't seem to find a good answer to my situation. I've found lots of bits and pieces, but nothing with a decisive conclusion. I'm just getting back into homebrewing after losing 95% of my equipment to a housefire about a year ago. One of the few things I was actually able to salvage was my legacy BrewPi setup (based on rpi+arduino).

For my new setup I've decided to go with a SS Brewtech Chronical BME and am planning on chilling it with a cooled glycol reservoir and heat with a heater wrap on the conical. I also have an inkbird controller so I was going to use that to hold the glycol to a set temp and wanted to use the BrewPi to control a pump that circulated the glycol through the conical chiller.

It seems people have gotten somewhat acceptable results using the chamber TC in the conical thermowell and using the fridge constant mode, but there are several caveats such as not being able to run a profile or requiring to control the glycol to just under the beer setpoint to avoid cooling spikes. I'm already way over budget and can't really afford to upgrade to the new BrewPi Spark or rebuild to a different controller. I guess I'm looking for recommendations given my situation. Here's some ideas/questions based on where I'm at now:

  • resolve to just using fridge constant mode (simplest, but not ideal given the above caveats)

  • Switch over to Fermentrack. This seems like it would be pretty simple for me, I just haven't been able to find a find any documentation on someone actually getting this to work with a glycol chiller any better than the standard BrewPi install although it may be easier if I want to update to the latest OS on the Pi. If someone knows of documentation out there, please point me in the direction.

  • Switch to BrewPiLess. Honestly, I really don't know much about this other than it seems like it has glycol chiller control functionality. It seems like I'd be tossing half of my current setup to switch and would be some amount of labor but not that expensive?

  • Just use the Inkbird controller (not my preferred way at all).

  • Build a DIY BrewPi Spark. I've seen some tutorials, but honestly this looks like more work than I'd like to do right now (I really just want to get back to brewing) and might be a little on the expensive side and overkill for just doing fermentation control.

  • Any other suggestions?
The amount of information and support from so many individuals available on these forums is just incredible. I really appreciate any input, opinions, and help/suggestions.
Honestly, I think you should use what you've got! The biggest issues around glycol setups is when the temperature differential between the glycol and the beer is too great, but you can overcome that with the inkbird.

Cheers,

Kal
 
Meatballosaurus your intended setup seems very close to what I'm doing for my brewery. This past week I got an Arduino Uno and raspberry pi 3 up and running using the brewpi/Fermentrack setup documentation with a couple changes I mentioned in my previous posts regarding php. The pi is running under Stretch and PHP 7 is being used.
I've got it running and controling on a beer fridge as a test now but I'm awaiting a Tilt hydrometer to incorporate as well.
I've got a chiller in my brewery with a pump that will supply cold 30% glycol to a supply and return loop that will have take offs to & from each of three conical fermentors. But I need them to able to be at different temperatures and follow profiles. I'm building "feed & bleed" systems for each. These systems will each have a circulating pump that will pump glycol through the jacket in a localized loop. When more cooling is needed it will open a valve on the return from the jacket to the main return side of the chiller loop. The pressure at the suction side of the jacket circulating pump will then drop below the supply side of the chiller loop and hence colder glycol will be pulled into the jacket circulation loop until that jacket return valve to the chiller loop is closed. Then the pressure from the jacket return will be higher than the chiller supply loop so no more cold glycol will enter even though there is no valve. If the heat expands the glycol in the jacket loop it can expand into the chiller supply side. Hopefully I'll be able to read the return glycol or fermentor temperature and use the cold side relay to open that return valve when needed to follow a profile. The heating relay could also be used to heat an element inserted in the jacket loop for heating if more than pump energy is needed to heat the loop if needed.

I've designed these "feed & bleed" systems as a Chem Engr in my previous life. I'll let you know if it works out in the brewery.
 
day_trippr as I mentioned in a previous post I only had to get around the PHP5 not available issue by changing a line in install .sh to "libapache2-mod-php php-cli php-common php-cgi php" instead of the one that had the php5 references in it. It then installed php7. Then there was an apache log error that I fixed with

sudo apt-get install php-mbstring

and a reboot.
 
[*]Switch to BrewPiLess. Honestly, I really don't know much about this other than it seems like it has glycol chiller control functionality. It seems like I'd be tossing half of my current setup to switch and would be some amount of labor but not that expensive?


[/LIST]
The amount of information and support from so many individuals available on these forums is just incredible. I really appreciate any input, opinions, and help/suggestions.

Well, you can buy an NodeMcu or D1 mini to try my BrewPiLess. If you don’t like it, you can switch to Fermentrack easily with an additional RPI.


The way BrewPiLess supports glycol is what 0.4.x BrewPi does: if Fridge sensor is not found, the fridge temperature reading will be from beer sensor. To use BPL to control fermentation temperature, simply un-assign "fridge sensor" and adjust PID parameters.

The "glycol temperature control" is optional, you can still use your controller for glycol temperature. Given the fact that the original fridge sensor is assigned to be room sensor and used to measure temperature of glycol, I added some simple code to control temperature of glycol with my unused heating actuator. I guess there are few people use this feature.(Maybe I am the only user.)
 
Last edited:
Thanks for the suggestions so far. It sounds like maybe in the short term I'll just run with my current setup and in parallel I'll work on building up a BrewPiLess system when I get a little free time.

@pocketmon - So you would have two temp sensors (one for beer, and one for glycol but assigned as room) and two control actuators (one for glycol pump, one for glycol chilling, but no heater), did I understand that correctly?

@MacDee - I'd be very interested in learning more about your setup (maybe it's the MechEng in me) and hearing updates on how it works out. Maybe you could send a pic of the setup or a schematic if you have one.

@kaljade - If I stick with my current setup, are you recommending just using the one sensor in fridge constant mode, or do you think if I use the beer sensor in the conical thermowell, and fridge sensor for glycol (or between insulation jacket and conical?) with the glycol controlled to just below beer temp then I can run it in normal profile mode?

Thanks again everyone, what an awesome community.
 
Last edited:
Status
Not open for further replies.
Back
Top