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.
My "classic" install must be older than yours. ;)

I'm pretty sure my install is from late 2013 or early 2014.
 
[shrug] Installed 0.2 on March 2, 2014. Upgraded through 0.2.4 to 0.2.10 over the years...

Cheers!

Well, beats the heck out of me then. I'm installing a fresh download of Raspi and BrewPi Remix right now. If that doesn't work, then something really weird is afoot.
 
Mine has:

<!-- Load scripts after the body, so they don't block rendering of the page -->
<script type="text/javascript" src="js/jquery-1.9.1.js"></script>
<script type="text/javascript" src="js/jquery-ui-1.10.3.custom.min.js"></script>
<script type="text/javascript" src="js/jquery-ui-timepicker-addon.js"></script>
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript" src="js/spin.js"></script>
<script type="text/javascript" src="js/dygraph-combined.js"></script>
<script type="text/javascript">
// pass parameters to JavaScript
window.tempFormat = <?php echo "'$tempFormat'" ?>;
window.beerName = <?php echo "\"$beerName\""?>;
window.profileName = <?php echo "\"$profileName\""?>;
window.dateTimeFormat = <?php echo "\"$dateTimeFormat\""?>;
window.dateTimeFormatDisplay = <?php echo "\"$dateTimeFormatDisplay\""?>;
</script>
<script type="text/javascript" src="js/main.js"></script>
<script type="text/javascript" src="js/device-config.js"></script>
<script type="text/javascript" src="js/control-panel.js"></script>
<script type="text/javascript" src="js/maintenance-panel.js"></script>
<script type="text/javascript" src="js/beer-chart.js"></script>
<script type="text/javascript" src="js/profile-table.js"></script>
 
fwiw, I use the google graphing js api in my temperature logger so I did have an inkling what to look for. And best as I can remember the BrewPi plot functionality has been consistent since my first installation - and quite different from what I've gotten out of Google...

Cheers!
 
I got Remix running on my ancient Raspberry Pi with no problems and it works great... plus the graphing works now. ;)

Not too much work and now I have an up to date OS and a modern BrewPi install. Win-Win.

Now I just have to wait until the lager in my other ferment chamber finishes so I can upgrade the other one.

Awesome work Remix guys! Can I send you some beer or something?
 
Seeking help from the community!

I'm looking for a set of data files, preferably from a long-running batch (or two or three.) Maybe a lager? Something with Tilt would be ideal. I want to do some performance comparisons and to be honest, I don't keep my old log directories around. If you have such an archive and don't mind zipping it up and PMing me with it, I'd appreciate it very much.

If this post is still here, I'm still looking! :)
 
OK, I seem to have messed something up ...

Started a new batch of beer. I realized that I had left BPR still logging from the last brew. Clicked "stop logging". Now, I am trying to start a new log, but when I try to change the name of the Fermenting beer, I first get a dialog box:

"You are currently not logging data.
What would you like to do?
Start new brew"

So, I enter the new beer name, and click "Start new brew", and instantly get this:

"Error: Could not receive reply from script"

A reboot didn't help. What am I missing here?
 
Did you notice if your controller was still communicating with the host before you tried to start a new brew?
Check the log files via the gui...

Cheers!
 
I believe that it was, since it was plotting the temps just fine. Here is what the error log says:


Traceback (most recent call last):
File "/home/brewpi/brewpi.py", line 598, in
result = startNewBrew(newName)
File "/home/brewpi/brewpi.py", line 320, in startNewBrew
"a name with at least 2 characters" % urllib.unquote(newName)}
TypeError: not all arguments converted during string formatting
 
Skidmark, I'm going to give you a few steps - might be good to stop poking at it for a couple minutes so I know where you are now and can get you out of it.
 
Okay let's try this:
  • Stop the script via the webpage or with sudo touch /var/www/html/do_not_run_brewpi
  • If you are running BPR, issue the command: sudo systemctl stop brewpi
  • Reboot, just because we'll know where everything is at that point
  • Delete (or backup/move) any folders underneath /var/www/html/data/ and /home/brewpi/data/ - it's up to you whether you delete Sample Data or not. If you use profiles, do not delete /var/www/html/data/profiles/
  • Edit /home/brewpi/settings/default.cfg and /home/brewpi/settings/config.cfg and remove any lines starting with beerName
  • In the same files, change any dataLogging entries to stopped
  • Just for good measure run sudo /home/brewpi/utils/doPerms.sh
  • Delete /var/www/html/do_not_run_brewpi
  • Start BrewPi with sudo systemctl start brewpi
  • Refresh your web page and try to start a new brew. Try one without spaces or special characters for now and see how it works out
 
Last edited:
Well, dang.

Before I could get to this through Putty (I couldn't remember my BPR password), MS decided that I needed to install Win10 v.2004.

That seemed to take forever, but now, all is well again.


Thanks for your help, Lee!
 
Hi Lee, I just thought I'd mention that it seems that your script didn't get Python 3.7 installed. Mine came up with 3.5.2, which was preventing BrewPi.py from running.

I tried 2 fresh installs and both did the same thing.

Anyway, I'm halfway through a manual install of 3.7 now, hopefully that gets me on my way.


Edit: It seems my beloved Pi-Prep program, PiBakery, is not being updated anymore and installed Raspbian Stretch., hence the old version of Python! Re-flashing now.
 
Last edited:
Looks like I'm working with the new version of Raspbian, though now I can't get my onewire temp sensor to be found. I've tried 2 sensors now and 2 different wiring styles for the pull-up resistor... well, I'm going to keep digging at it!
 
Buster comes with 3.7, that's where all my testing is done. Strange you're not on it if you are on Buster. I can add something to force that check/update.
 
Hey, I'm finishing my setup here with my Arduino clone that uses the CH340G. However, I didn't have problems with flashing it on Brewpi or running the script. Is everything fine to continue with my project? I'm not noticing anything strange but I'm yet to connect the thermometers which are due to arrive tomorrow.

I've used that board with other projects and also never had problems with it.
 
Well, I got it going. I'm not sure what the problem was, but I just kept re-trying things and eventually it recognized it. Soldered it all and it's still showing, so we're good!

Now, a couple of questions:

I couldn't get the i2c firmware to flash to my Uno, should it have worked? Will I have to run my LCD in parallel? I'd like to avoid a lot of cabling inside the box.

What do people use the rotary encoder for? Does it give me access to changing settings at the box instead of web?
 
The LCD has a screen-blanking time-out function that the encoder switch can terminate thus waking the display. It also allows changing modes and temperature settings remotely...

Cheers!
 
Well, I got it going. I'm not sure what the problem was, but I just kept re-trying things and eventually it recognized it. Soldered it all and it's still showing, so we're good!
A weak solder joint could definitely have done it. When you say "soldered up", what board are you using?

I couldn't get the i2c firmware to flash to my Uno, should it have worked? Will I have to run my LCD in parallel? I'd like to avoid a lot of cabling inside the box.
Yes, no reason it should flash one not the other. How are you flashing it?

What do people use the rotary encoder for? Does it give me access to changing settings at the box instead of web?
Dave got it. I should note that you can ground pin 7 I thing it is and the encoder (and screen blanking) features will be disabled.
 
A weak solder joint could definitely have done it. When you say "soldered up", what board are you using?

I just soldered connectors on the ends of the probe cables.

Yes, no reason it should flash one not the other. How are you flashing it?

I had to do it from updateFirmware.py, it wouldn't complete from the web console.

I just switched to the i2c firmware and it took it this time. Odd.


Is there an article on wiring up the i2c LCD somewhere, or is it buried in this thread?
 
I just soldered connectors on the ends of the probe cables.
Maybe it's because I do it so much, but I found investing in a DuPont crimper a pretty good way to go.

I had to do it from updateFirmware.py, it wouldn't complete from the web console.
Right, it's currently disabled there. I need to get back to that.

I just switched to the i2c firmware and it took it this time. Odd.
If it worked, RDWHAHB! :)

Is there an article on wiring up the i2c LCD somewhere, or is it buried in this thread?
Um ... looking - will edit the response. Standby.

ETA: Found it:
That should get ya.
 
Last edited:
Thanks @LBussy!

I'm curious, what did you design your case in? Would it be possible to get the source file so I can modify it easily?
 
I printed one of the boxes a couple of months ago. Everything fits really well. The LCD screen will be tight in the hole provide, the Arduino holes are spot on. You won't be able to use a GFIC outlet though. So make sure you have one of those upstream from the controller.
 
You won't be able to use a GFIC outlet though.
Is that because of the depth of the outlet? I need to make myself a new box, so maybe I'll look at that and try to enhance it.

Secondary related question: Why worry about a GFI on a refrigerator?
 
If it's in a garage built in the last almost 20 years, every outlet out there and in the bathrooms are already going through a GFI circuit. Standing water, leaking pipes/water heater? I don't know otherwise.
 
If it's in a garage built in the last almost 20 years, every outlet out there and in the bathrooms are already going through a GFI circuit. Standing water, leaking pipes/water heater? I don't know otherwise.
I guess that's right. I am not sure what the code is around here but a GFI is not a bad idea. I agree, there should be one there already. Doubling up on GFI on the same circuit is bad I think.
 
Just because you don't see one on the wall, don't assume that it is not already controlled on the circuit. I have one circuit that goes from panel to GFCI outlet in garage to interior bathroom-exterior back outlets. Anything on that line is controlled through that outlet in the garage. That is a sometimes DIY'er mistake, they replace an outlet in a bathroom or somewhere and think they have to put another GFCI outlet in. That's what all those stickers are for. Code has required garages, kitchens, bathrooms, exterior outlets GFCI for many, many years. More than you need to know, but here. So anyplace you would be thinking of placing it within 20 feet of water, is probably already on a GFI circuit. Non-issue, I'd be more concerned at the amperage trip of whatever is plugged in wouldn't trip a breaker. My last garage, better than the one I am in now, had a dedicated 20 amp breaker and line for the chest freezer outlet. Probably another non-issue with todays equipment.

1971 Receptacles within 15 feet of pool walls
1971 All equipment used with storable swimming pools
1973 All outdoor receptacles
1974 Construction Sites
1975 Bathrooms, 120-volt pool lights, and fountain equipment
1978 Garages, spas, and hydromassage tubs
1978 Outdoor receptacles above 6ft.6in. grade access exempted
1984 Replacement of non-grounding receptacles with no grounding conductor allowed
1984 Pool cover motors
1984 Distance of GFCI protection extended to 20 feet from pool walls
1987 Unfinished basements
1987 Kitchen countertop receptacles within 6 feet of sink
1987 Boathouses
1990 Crawlspaces (with exception for sump pumps or other dedicated equip.)
1993 Wet bar countertops within 6 feet of sink
1993 Any receptacle replaced in an area presently requiring GFCI
1996 All kitchen counters – not just those within 6 feet of sink
1996 All exterior receptacles except dedicated de-icing tape receptacle
1996 Unfinished accessory buildings at or below grade
1999 Exemption for dedicated equipment in crawlspace removed
 
I do have one in my garage and I think I have replaced that damned thing about 6 times. Does amperage "weaken" them, or is it like a flyback current thing from compressors and the like?

I'm sure it makes sense when they are roughing stuff in, but the logic behind which GFI controls which receptacles defies me.
 
Status
Not open for further replies.
Back
Top