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.
@LBussy Based on your suggestions I've revamped my wiring diagram and think I have things sorted. I have an active fermentation going at the moment, but when it's finished up I'll rewire everything and report back.
Cold_Circuit_Issues_v3.JPG
 

Attachments

  • Cold_Circuit_Issues_v3.JPG
    Cold_Circuit_Issues_v3.JPG
    102.2 KB · Views: 9
I think so? For some reason, I find it hard to follow those straight lines. I think I traced all of them though, can't find a problem.
 
If I’m following this right, I don‘t think the SSR pin 1 should connect to the NC contact on the relay. This will still draw all the startup current through that contact and there is no need to do so unless you are trying to guarantee heating and cooling are not on at the same time. The software does a fine job of that... Instead, run pin 1 of the SSR straight to hot.
 
If I’m following this right, I don‘t think the SSR pin 1 should connect to the NC contact on the relay. This will still draw all the startup current through that contact and there is no need to do so unless you are trying to guarantee heating and cooling are not on at the same time. The software does a fine job of that... Instead, run pin 1 of the SSR straight to hot.
You are correct, that's how I showed it. I don't think however that it poses the risk to the relay you are suggesting. The current will not be switched, and therefore not (potentially) arc which is what damages the relays. Yes, one could make the change you suggest. I guess it's a belt and suspenders thing.
 
I'm doing some experimentation with using fermenter-produced CO2 to purge kegs and because the tubing I'm using (EVAbarrier 5mm ID) is so skinny there's the existential thread of krausen plugging it up and causing perhaps exciting results. There are two carboys chugging away, and I do have a solution that will mitigate krausen issues if needed - wide bore blowoffs leading to a 1/2 gallon PET bottle that has a outlet port for the thin tubing, but I'd prefer not to use it yet.

So, I have an esp32-cam trained on the exhaust bottle at the very end of the line, and I just stuck another one in the ferm chamber. Which, of course, gets very dark when the door is closed, so what to do?

BrewPi is the answer!

I disconnected my chamber heater ('cuz I sure as heck won't need it for awhile), plugged in a small lamp that I could perch on a door shelf - next to the esp cam - then changed the BrewPi setting for GPIO6 from Chamber Heater to Chamber Light. Et voila! By toggling the Pin type setting between Inverted/Non-inverted I can turn the light on and off remotely!

fermcam.jpg


Now I can periodically turn on the light and check the carboys. If that krausen gets close to the neck it'll be time to implement Plan B.

btw, no issues having the esp32 inside the fridge, even though its access point is a room away...


Cheers! (BrewPi! Is there anything it can't do? :D)
 
I'm doing some experimentation with using fermenter-produced CO2 to purge kegs and because the tubing I'm using (EVAbarrier 5mm ID) is so skinny there's the existential thread of krausen plugging it up and causing perhaps exciting results. There are two carboys chugging away, and I do have a solution that will mitigate krausen issues if needed - wide bore blowoffs leading to a 1/2 gallon PET bottle that has a outlet port for the thin tubing, but I'd prefer not to use it yet.

So, I have an esp32-cam trained on the exhaust bottle at the very end of the line, and I just stuck another one in the ferm chamber. Which, of course, gets very dark when the door is closed, so what to do?

BrewPi is the answer!

I disconnected my chamber heater ('cuz I sure as heck won't need it for awhile), plugged in a small lamp that I could perch on a door shelf - next to the esp cam - then changed the BrewPi setting for GPIO6 from Chamber Heater to Chamber Light. Et voila! By toggling the Pin type setting between Inverted/Non-inverted I can turn the light on and off remotely!

View attachment 687521

Now I can periodically turn on the light and check the carboys. If that krausen gets close to the neck it'll be time to implement Plan B.

btw, no issues having the esp32 inside the fridge, even though its access point is a room away...


Cheers! (BrewPi! Is there anything it can't do? :D)
You should have a look at BrewPiLess pressure sensors
 
Right now I guesstimate the system pressure is well under 0.1 psi, based on flow characterization using a 0.4 psi CO2 source.
A skim of the linked discussion leaves the impression the sensor referenced has major accuracy issues up in the dispensing range.
I doubt it would be of any use down where I'm working :)

Cheers!
 
I think (and not trying to sound like I am bashing another product because I am not) that forcing a controller to monitor/actuate something that works perfectly fine in analog mode is asking for trouble. Freeze or heat a beer, that's one thing. Overpressure a fermentor and that's another.
 
I've been away for a while... is there a way to show the Tilt Gravity reading in addition to, or in lieu of, the Tilt Temp on the status board? I'd love to have a quick at-a-glance reading.
 
is there a way to show the Tilt Gravity reading in addition to, or in lieu of, the Tilt Temp on the status board?
You mean you'd prefer it shown up in the title bar vs in the chart? Not in the current code, no. I can look at maybe adding that the next time I get in there.
 
You mean you'd prefer it shown up in the title bar vs in the chart? Not in the current code, no. I can look at maybe adding that the next time I get in there.

Probably not instead of in the chart... just an added feed of the current gravity to go along with the battery age and current temp from the Tilt would be perfect.

BTW, thanks for all your work on this! I remember a few years back, trying to cobble together all the different instructions trying to get this to work was a major chore. Your effort, along with Elco's, is greatly appreciated by us all!
 
Last edited:
I love BrewPi, I could not see it die (although I'm sure Elco wishes it would.) I'm happy to give back to the community. A few years ago I was one of those folks looking for help.

I have the SG in the object already, I think I just need to add it to the scroll. I just tried looking and noticed my mule system died sometime last night so ... :p
 
is there a way to show the Tilt Gravity reading in addition to, or in lieu of, the Tilt Temp on the status board?
I just pushed this to a development branch. You can check it out (if you are comfortable doing this) by issuing the following commands:
Code:
cd /home/brewpi
sudo git fetch origin
sudo git checkout -b tilt_sg origin/tilt_sg
(assuming nothing here breaks ... continue)
Code:
sudo /home/brewpi/utils/doPerms.sh
sudo systemctl restart brewpi
Let me know if you are able to test. Otherwise, "It Works Here™". :)

(Tracking as #128 in the Scripts repo)
 
I just pushed this to a development branch. You can check it out (if you are comfortable doing this) by issuing the following commands:
Code:
cd /home/brewpi
sudo git fetch origin
sudo git checkout -b tilt_sg origin/tilt_sg
(assuming nothing here breaks ... continue)
Code:
sudo /home/brewpi/utils/doPerms.sh
sudo systemctl restart brewpi
Let me know if you are able to test. Otherwise, "It Works Here™". :)

(Tracking as #128 in the Scripts repo)
Received an error on the third command.
Your local changes to the following files would be overwritten by check out: brewpi.py
Please commit your changes or stash them before you switch branches.

it could very well have to do with my installation, or maybe updates?

EDIT: Worked like a charm after getting every updated and back on track.
 
Last edited:
If I'm running Fermentrack currently, can I install BrewPi on the same RPi and play around with one or the other with different ferments? Or would I need to erase everything and start fresh?
 
Interesting question. I suspect they would conflict on perhaps a couple of levels, depending on hardware configuration.
If both programs target the same controller (which would have to be an Uno) you're going to have a bad time. One of the two would have to be steered away from pinging the Uno allowing unfettered access by the program you want running. Might be as simple as editing the config file that defines the RPi port used by the controller in the program you don't want to get in the way of the other.

The other possible gotcha is the web service. I don't know enough about Fermentrack (apologies to Thorrak ;)) and don't know what server and port it runs on. A work-around there might be to use a file-level fully qualified url to access the particular web page...

Cheers!
 
If I'm running Fermentrack currently, can I install BrewPi on the same RPi and play around with one or the other with different ferments? Or would I need to erase everything and start fresh?
Technically you can, but I think John and I both defaulted towards the "it's just easier to tell people no." Fermentrack uses nginx and BrewPi Remix uses Apache. Both of the default to using port 80 which is what you get when you use your web browser by default. One or the other would need to be changed manually to use a different port. Then there are the potential serial port conflicts. I am not sure how Fermentrack makes assumptions about serial port availability.

So, I'll give you two answers:
  1. You would absolutely need to do a manual BrewPi Remix install (thus eliminating one of the parts that make this Remix so attractive.) You would have to follow these instructions, and leave out any part about removing nginx. I would also move nginx off port 80 before you start. Otherwise, Apache will throw a fit.
  2. I need to figure this out anyway since John and I do help each other on occasion. If you are not the sort who takes apart a new toy before playing with it, you may not enjoy the first answer. Give me a little time and I'll report back.
 
If I'm running Fermentrack currently, can I install BrewPi on the same RPi and play around with one or the other with different ferments? Or would I need to erase everything and start fresh?
Okay, I enabled this functionality in the installer. New post/release announcement coming momentarily.
 
Last edited:
Minor Feature Release / Bugfixes 0.5.4.3

This is a minor feature + bugfix rollup release.

‼With this release, BrewPi Remix may be installed on the same system as Fermentrack.‼

Changes

- Clean up socket error handling
- Append stderr
- Handle temperature conversion from external API
- Fix pin definitions for brewpi-esp8266
- Update apt keys
- Allow reconfiguring nginx if present to alternate port
- Add Tilt and iSpindel to Header
- Add ISO8601 Date format as an option
- Address missing ack in socket comms
- Make SG report 3 decimals

Upgrading

Existing users of BrewPi Remix 0.5.3.0 and above may upgrade with:
Code:
sudo /home/brewpi/utils/doUpdate.sh

If you are not on version 0.5.3.0 or above, use the following command to upgrade to the latest version:
Code:
curl -L upgrade.brewpiremix.com | sudo bash

This must be run from within your /home/brewpi directory or from each chamber directory in multi-chamber mode.

SPECIAL NOTE:

If you have installed a non-master version of BrewPi Remix (such as if you worked with me on a fix or feature) you may revert back to the master branch using these commands:
Code:
cd /home/brewpi
sudo git fetch origin
sudo git checkout -b master origin/master
If the last command gives you the error fatal: A branch named 'master' already exists., use this command:
Code:
sudo git checkout master

Then, proceed with:
Code:
sudo git pull
cd /var/www/html
sudo git fetch origin
sudo git checkout -b master origin/master
If the last command gives you the error fatal: A branch named 'master' already exists., use this command:
Code:
sudo git checkout master

Then, proceed with:
Code:
sudo git pull
cd ~
sudo /home/brewpi/utils/doPerms.sh
sudo systemctl restart brewpi
 
Last edited:
Late to the thread and ready to ask silly questions...setting up my electric brewery with an Arduino Yun and wondering if I can use BrewPi Remix with just the Arduino (which has onboard wifi, Linux, and web server) or do I also need the RaspberryPi?
 
Late to the thread and ready to ask silly questions...setting up my electric brewery with an Arduino Yun and wondering if I can use BrewPi Remix with just the Arduino (which has onboard wifi, Linux, and web server) or do I also need the RaspberryPi?
I thought the YÚN was discontinued?

Anyway, from what I understand of the premise, it might work. That said there's never been any testing that I know of, and it's not what I would consider a supported platform. If the installer works, great! If not, I'm likely not going to put a lot of effort into figuring out why. No snarkiness, just practicality.
 
The Yun Rev 2 rose from the ashes!

Thanks for quickly considering the possibility. It may be worth a try.
 
Is this something that might be of interest?
Lightweight justice for your SBC!
I downloaded it and loaded it up. Not impressed. First of all, it defaults to a root login. It's 2020, root is not for logging in. It also did not support the wpa_supplicant settings, so there was no headless operation available after the first boot. Finally, I tried three times to get the damned wireless running and it will not for whatever reason. I don't care why. I should not have to work this hard at it.

At this point, if you can't afford an SD card big enough to run Raspbian, maybe this is the wrong pastime. :)
 
Very cool! I'll give it a try when I get a chance.
Well, I gave it a try, and with all my noob enthusiasm ended up with this error:

Installed /usr/local/lib/python3.7/dist-packages/aioblescan-0.2.5-py3.7.egg
Processing dependencies for aioblescan==0.2.5
Finished processing dependencies for aioblescan==0.2.5

***Script doDepends.sh complete.***

Searching for default web location.

Found /var/www/html in /etc/apache2/sites-enabled/000-default*.

Using '/var/www/html' for web directory.

Web directory is not empty, backing up the web directory to:
/home/pi/2020-08-0621:36:52-WWW-Backup
mkdir: cannot create directory ‘/var/www/html’: Permission denied

Cloning web site to /var/www/html.
fatal: could not create work tree dir '/var/www/html': Permission denied

*** ERROR ERROR ERROR ERROR ERROR ***
-------------------------------------



See above lines for error message.
Setup NOT completed.

Further up the install, I also found this Apache error as well:

Aug 06 21:30:06 raspberrypi apachectl[9842]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Aug 06 21:30:06 raspberrypi apachectl[9842]: (98)Address already in use: AH00072: make_sock: could not bind to address [::]:80
Aug 06 21:30:06 raspberrypi apachectl[9842]: (98)Address already in use: AH00072: make_sock: could not bind to address 0.0.0.0:80
Aug 06 21:30:06 raspberrypi apachectl[9842]: no listening sockets available, shutting down
Aug 06 21:30:06 raspberrypi apachectl[9842]: AH00015: Unable to open logs
Aug 06 21:30:06 raspberrypi apachectl[9842]: Action 'start' failed.
Aug 06 21:30:06 raspberrypi apachectl[9842]: The Apache error log may have more information.
Aug 06 21:30:06 raspberrypi systemd[1]: apache2.service: Control process exited, code=exited, status=1/FAILURE
Aug 06 21:30:06 raspberrypi systemd[1]: apache2.service: Failed with result 'exit-code'.
Aug 06 21:30:06 raspberrypi systemd[1]: Failed to start The Apache HTTP Server.

My first mistake was using "install.brewpiremix.com" instead of "upgrade.brewpiremix.com" as per the instructions above. The first error is different than the "fatal: A branch named 'master' already exists.," error above, so before I start pushing more wrong buttons, I figured I'd stop and ask what else I screwed up first. First thought is to run the uninstaller script then reinstall with the upgrade command.
 
Well, I gave it a try, and with all my noob enthusiasm ended up with this error:
We can fix ya up.

What was the state of the system before you started? Was it running a version of BrewPi? If so, which one? Was it running Fermentrack?

If you were trying the BrewPi over Fermentrack, then the "install" was the right path. If that was the direction you took, I'd like to see the whole install log. I'll drop you a PM with my address.
 
We can fix ya up.

What was the state of the system before you started? Was it running a version of BrewPi? If so, which one? Was it running Fermentrack?

If you were trying the BrewPi over Fermentrack, then the "install" was the right path. If that was the direction you took, I'd like to see the whole install log. I'll drop you a PM with my address.
Thanks Lee! I should be able to PM that to you tonight.
 
Hey guys, I'm hoping someone can point me in the right direction here.

I have two identical BrewPi setups that I built years ago. They've been working flawlessly for forever.

They're built using the old BrewPi.com kit, with Raspberry Pi 3's, Arduino's, and have the LCD panel and rotary encoder.

Since I brewed last (probably back in March), the graphs have stopped working on both. If I start a new brew, the graph will display once after I click the "refresh" button that comes up when you start a new brew, but if I reload the web page or refresh from the browser, the graph will never display again. Interestingly, the graphs work for "previous brews" just fine.

I suspect it has something to do with the google.com/jsapi (which is referenced by the code) that has changed recently, but I'm not sure.

Any suggestions on where I could start looking to fix it?

I don't think I'm running the latest version of BrewPi that Elco released. I've compared, for example, my index.php main page against the latest (circa 2018) on the Git repository and they're different. I noticed the latest version didn't reference externally to google.

Is there any easy way to update to the latest BrewPi that supported my hardware? Looks like docs.brewpi.com is dead now.

Thanks for any help/suggestions.
 
Yes, each time I'll stop the brew at the end of fermentation and create a new brew when I start fermenting a new batch. Occasionally I'll SSH in and delete some of the old brews.

It was interesting that they both stopped displaying the active graph at the same time. I use one ferment chamber more often than the other, so they have vastly different numbers of previous brews stored on them. (maybe 15ish on one and half that on the other)

Its working and controlling the ferment chamber temp perfectly, as always. I just can't see the graph data. The web page has the LCD readout info at the top and the settings for mode at the bottom, but just a big empty white space where the graph should be.

I don't mind grabbing a new SD card and doing a new installation. Is the Remix install still working fully for everyone?

Thanks!
 
Well, I'm the guy that maintains it so I'm sort of biased - but I think yes, it's pretty clean. Especially on a new SD card.

One major change you will see is that multiple chambers are supported. Be on the lookout for that and you can set it up as such during the install.
 
Well, I'm the guy that maintains it so I'm sort of biased - but I think yes, it's pretty clean. Especially on a new SD card.

One major change you will see is that multiple chambers are supported. Be on the lookout for that and you can set it up as such during the install.

Dude, you are frickin' awesome for keeping this project alive.
 
Close!

Let me know if you have any issues setting up. If you're a bit more advanced than Noobs, I have also written a tool to enable Headless. With Raspbian's new imager, and then Headless Pi, setup is a breeze.

Then of course - the magic:
Code:
curl -L install.brewpiremix.com | sudo bash
 
fwiw, I have numerous BrewPi "classic" instances running - most for many years now - and graphing same as always.
If there's an issue it doesn't seem likely to be found at the google end...

Cheers!
 
That's interesting. I've tried many different browser (Chrome, FF, IE, Edge, Safari) and all have the same issue. Any chance you can check your index.php in the /var/www folder and see if it has any references to google.com/jsapi? That is the only thing that I could quickly find that seemed related to the graph generation and was external. Nothing else should have changed on my installs.
 
Status
Not open for further replies.
Back
Top