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.
Hope u have a backup of your sd card. sounds like the power failure borked your card.

I definitely have a bad card. Weird thing is it reads fine, just can't write to it. I took an image of it before re-imaging and I thought I made the bozo move of re-imaging it with my backup that I just took. Nope. Tis no good!

The good thing in all this is I probably won't have to go through the reload process. I'm hoping I can just write my backup image back to a new card and viola! We'll see. Thanks anyways!
 
Thanks so much!

lol

Ok, I'll offer this: if referring to http://docs.brewpi.com/advanced-setups/multiple-arduinos-single-rpi.html, there's a better mechanism to exploit than using kernel ids.

That is, use the Arduino serial numbers instead, which has the major advantage that the symlink value never, ever changes, no matter how many/how few Arduinos are connected.

It's pretty much the same procedure to find the serial number for each Arduino, then you edit the same arduino.rules file, but the key parameter is different.

eg:

Code:
$ udevadm info -a -n /dev/ttyACM0 | less > info.log

$ sudo nano info.log
.
.
.
	KERNEL=="ttyACM0"
	ATTRS{manufacturer}=="Arduino (www.arduino.cc)"
	ATTRS{serial}=="9543231383735150F0D1"
.
.
.

Record the serial number, then repeat for each Arduino.

Then, create the rules file:

Code:
$ sudo nano /etc/udev/rules.d/99-arduino.rules

SUBSYSTEM=="tty", KERNEL=="ttyACM*" , ATTRS{serial}=="9543231383735150F0D1", SYMLINK+="brewpi1", GROUP="brewpi"
SUBSYSTEM=="tty", KERNEL=="ttyACM*" , ATTRS{serial}=="9425672387582557E2F0", SYMLINK+="brewpi2", GROUP="brewpi"

Cheers!
 
So has anyone tried using the BrewPi to control a standalone conical? Was thinking of ditching the extremely inefficient freezer, which seems to have a lot of problems keeping a fermenting batch at temp, and certainly does poorly trying to cold crash. (Can't even consider lagering) and using a pad/peltier system. A spot of googling does show topics of it on BrewPi's own forums, but they seem to be kaput.
 
So has anyone tried using the BrewPi to control a standalone conical? Was thinking of ditching the extremely inefficient freezer, which seems to have a lot of problems keeping a fermenting batch at temp, and certainly does poorly trying to cold crash. (Can't even consider lagering) and using a pad/peltier system. A spot of googling does show topics of it on BrewPi's own forums, but they seem to be kaput.

Peltier systems are incredibly inefficient, unfortunately. There are the made-for-fermenting peltier chillers that may be sized to work, but you're likely to find they suck down more juice than many inefficient fridges/freezers.

I don't have much experience using BrewPi with anything other than a fridge, but there is information on using it with Glycol out there - I would imagine the setup would be similar.
 
Peltier systems are incredibly inefficient, unfortunately. There are the made-for-fermenting peltier chillers that may be sized to work, but you're likely to find they suck down more juice than many inefficient fridges/freezers.

I don't have much experience using BrewPi with anything other than a fridge, but there is information on using it with Glycol out there - I would imagine the setup would be similar.

Huh. Was more thinking of doing something like this unit:

https://www.morebeer.com/products/ultimate-conical-fermenter-14-gallon.html

but controlled by a BrewPi instead of a "standard" temperature controller like a Johnson or an STC. I suppose when I mentioned inefficiency I should have phrased it differently - not in terms of energy consumption, but in terms of cooling wort quickly. My fermentation chamber can keep wort at temp during fermentation, but any cold crashing is impossible. The freezer runs constantly for 48 hours, and I'll see a 10 degree drop. (With the contents of my blowoff tube freezing solid!) These will at least get it down quickly, even if it chomps energy for the few hours it needs to do so.
 
Holy $$$$ cow! There's some serious commitment right there.

I don't see why you couldn't use BrewPi in place of the Ranco.
While the latter is capable of maintaining temp within a degree F it isn't web accessible/controllable.
If I was so insane to buy one of those beasts that'd be a Zero Day mod for sure :)

btw, my low-end 17cf top-freezer fridges can drop 11 gallons of beer from 68°F to 34°F in under 48 hours.
If a full-on freezer can't do better than that there's something wrong with it.

Also, one should never, ever cold-crash with a blow-off rig connected.
Bad juju, it'll suck whatever's in the catch vessel right back into the fermentor.
Use an S-lock instead, if not crashing under CO2...

Cheers!
 
Good god man - I wouldn't buy one of those things. I already have a conical, and was going to add the peltier coolers after the fact, if I can find someplace that can mill the aluminium. And yep, definitely thinking there's something afoot with the chamber, which is making me think of either buying another one ($200-300 if I can find one) or do the Peltier thing (cheaper).

Oh, and good point about the blow-off. Was more of an oops situation. You'd think I'd pay more attention - derpa derp derp... :tank:
 
Hey day_trippr, did you have to do anything special when using your sainsmart unos or did they work out of the box?
 
Awesome! Thanks for the response, when running separate 5V are you using same p/s or different?
 
I've been using the brewpi for about 5 brews now, installed on a Rasberry Pi generation I

Today I got my Tilt hydrometer (check here: http://tilthydrometer.com/products/brewometer)

I wanted to include this in the brewpi interface following these instructions: https://github.com/sibowler/brewpi-brewometer

However, after updating with the updater.py command, my brewpi no longer works :(

Now I'm getting "script not running". It's been over 6 months that I installed my raspberry so updating took a long time, something in that update must have screwed something up...

Somebody here that might have an idea on what went wrong?
 
Euhm, there is a possibility that I did :-/

That's wrong I assume :)

If that is the case, what should I do next?
 
I would run the updater again, using the --ask command and choose the legacy branch. If that doesn't fix it, we'll have to start there.

Run..
Code:
sudo python updater.py --ask

Then choose the legacy option
 
so running it from the legacy branch is correct?

Either way, I tried that and he is telling me I'm up to date. So it did not make any changes..

this is the log I get out of the UI in the maintenance panel:

ERROR: the newest version of BrewPi is not compatible with Arduino.
You can use our legacy branch with your Arduino, in which we only include the backwards compatible changes.
To change to the legacy branch, run: sudo ~/brewpi-tools/updater.py --ask , and choose the legacy branch.
Oct 29 2016 19:28:52 Opening serial port
Oct 29 2016 19:28:52 Notification: Script started for beer 'None'
Oct 29 2016 19:29:02 Checking software version on controller...
Oct 29 2016 19:29:02 Found BrewPi v0.2.10 build unknown, running on an Arduino Uno with a revC shield on port /dev/ttyACM0

Oct 29 2016 19:29:02 Warning: minimum BrewPi version compatible with this script is 0.4.0 but version number received is 0.2.10

ERROR: the newest version of BrewPi is not compatible with Arduino.
You can use our legacy branch with your Arduino, in which we only include the backwards compatible changes.
To change to the legacy branch, run: sudo ~/brewpi-tools/updater.py --ask , and choose the legacy branch.

But like I said, re-updating with --ask and choosing "legacy" does not do the trick
 
I did a clean install, now it works again. Now I need to figure out how to set up my remote access again :-/
 
I did a clean install, now it works again. Now I need to figure out how to set up my remote access again :-/

I hear what you are saying, but the output you are posting is saying that you weren't running the legacy branch.

Regarding remote access, one must set up port forwarding properly. Make sure your BrewPi's I.P. address has not changed and that you have set up your router to forward outside requests to that I.P.
 
I did a clean install, now it works again. Now I need to figure out how to set up my remote access again :-/


Take a look at weaved (it may be remote.id now) it works well you get 5 mins access remotely per session which is more than enough in my experience but it means you don't need to mess with the brewpi files
 
thanks, I was running it from the legacy branch, the problem is the files that I copied over from github to get the Tilt sensor to work. Those are written for the spark version. That's why things got screwed up. I found a different entry on Github specified for legacy. Now it's no longer throwing version errors, but now I'm getting this:

Oct 29 2016 22:38:15 Opening serial port
Oct 29 2016 22:38:15 Notification: Script started for beer 'My First BrewPi Run'
Oct 29 2016 22:38:25 Checking software version on controller...
Oct 29 2016 22:38:25 Found BrewPi v0.2.10 build unknown, running on an Arduino Uno with a revC shield on port /dev/ttyACM0

Traceback (most recent call last):
File "/home/brewpi/brewpi.py", line 421, in
startBeer(config['beerName'])
File "/home/brewpi/brewpi.py", line 296, in startBeer
changeWwwSetting('beerName', beerName)
File "/home/brewpi/brewpi.py", line 229, in changeWwwSetting
wwwSettingsFile = open(wwwSettingsFileName, 'r+b')
IOError: [Errno 13] Permission denied: '/var/www/userSettings.json'
Exception in thread Thread-1 (most likely raised during interpreter shutdown):
Traceback (most recent call last):
File "/usr/lib/python2.7/threading.py", line 810, in __bootstrap_inner
File "/usr/lib/python2.7/threading.py", line 763, in run
File "/home/brewpi/backgroundserial.py", line 81, in __listenThread
File "/usr/local/lib/python2.7/dist-packages/serial/serialutil.py", line 572, in inWaiting
File "/usr/local/lib/python2.7/dist-packages/serial/serialposix.py", line 456, in in_waiting
: 'NoneType' object has no attribute 'ioctl'

This is what I copied to the raspberry: https://github.com/jlvnyc/brewpi-brewometer
 
Well I have a small update. Since there is an error in the list talking about permission rights, I tried to run the "runafterupdate" script from brewpi. That made it work, script is running again. Now it's throwing bluetooth errors, which can be logical since I'm using a RP1. I should recieve a new RP3 today with build in bluetooth. Hopefully this wil work :)

And I hope I can just use the RP1 image on the RP3, otherwise I need to start over completely (benefit is that I now know what to do)

EDIT: Ugh, no such luck :-( Need to reinstall the raspberry. Not booting from the same image! I know what to do :-/
 
edithey guys!

I manage to install brewpi too but I have few issues, however, arduino still isn't connected, could be because of that.

software won't run without internet connectin and when it works it works wit LAN connection type only, no chance to make it work with wifi, I spent more than 3 hours trying to solve that but I'm helpless now.

my first post from wheezy powered pc! ;)

EDIT: everything solved, reinstalled application and it works now. waiting for arduino. :)
 
Take a look at weaved (it may be remote.id now) it works well you get 5 mins access remotely per session which is more than enough in my experience but it means you don't need to mess with the brewpi files


Actually you get 30 min of access remotely per session. URL is remot3.it.
 
I did a clean install, now it works again. Now I need to figure out how to set up my remote access again :-/


I guess the trick would be to do a legacy branch fresh install then flash hex file with avr/encoder?
 
Hey guys, another quick question... am I correct in assuming that the Arduino version of the BrewPi is no longer being updated?

Have decided to go the direction of the SS Brewing conicals, given that I'm stepping up to larger batches, and won't have the space to have chambers for two conicals. I know SS Brewing uses what are essentially STC-1000s for their control - obviously would rather use BrewPi.

Since the SS Brewtech would be using glycol/ice water through the internal coils to cool, I've heard less than stellar reports of controlling it with one, however with a lot of spiking - the chiller is so effective, it brings the temp down too quickly and overshoots. From nosing around on BrewPi, seems that it's been addressed (as Elco himself is using these to ferment) via PWM, and that's only available on the Spark version?
 
Hey guys, another quick question... am I correct in assuming that the Arduino version of the BrewPi is no longer being updated?

Have decided to go the direction of the SS Brewing conicals, given that I'm stepping up to larger batches, and won't have the space to have chambers for two conicals. I know SS Brewing uses what are essentially STC-1000s for their control - obviously would rather use BrewPi.

Since the SS Brewtech would be using glycol/ice water through the internal coils to cool, I've heard less than stellar reports of controlling it with one, however with a lot of spiking - the chiller is so effective, it brings the temp down too quickly and overshoots. From nosing around on BrewPi, seems that it's been addressed (as Elco himself is using these to ferment) via PWM, and that's only available on the Spark version?


The arduino version isn't being officially supported now by brewpi.
 
Since the SS Brewtech would be using glycol/ice water through the internal coils to cool, I've heard less than stellar reports of controlling it with one, however with a lot of spiking - the chiller is so effective, it brings the temp down too quickly and overshoots. From nosing around on BrewPi, seems that it's been addressed (as Elco himself is using these to ferment) via PWM, and that's only available on the Spark version?

Right now there are two (main) branches of the software:

Legacy - v0.2.x - Used on Arduino (official), ESP8266 (unofficial), & Native Python (unofficial)

Develop - v0.4.x - Used on Spark Core (official), and Spark Photon (official)

The main difference between Legacy & Develop is the temperature control algorithm which was completely rewritten between the two. If I recall correctly, PWM is supported in Develop (but not in Legacy).


There may be either updates to the Legacy-branch hardware with features/software from the Develop branch or new ports of hardware to the Develop branch that may change these lists in the future, but this is the state as of this moment.
 
There may be either updates to the Legacy-branch hardware with features/software from the Develop branch or new ports of hardware to the Develop branch that may change these lists in the future, but this is the state as of this moment.

Got it, that's what I was kinda afraid of - so PWM may come to the Arduino side of things, but it's not something to hold my breath over. So the Spark is probably the way to go for me, which is a shame since my BrewPi is soooo purty! (And will be used somewhere else, am sure.)
 
So a resistive heater will work with PWM, but what cooling solution won't get fried by a PWM-switched power source?
It'd totally kill anything with a compressor or pump.

Or is "PWM" a misnomer?

Cheers!
 
So a resistive heater will work with PWM, but what cooling solution won't get fried by a PWM-switched power source?
It'd totally kill anything with a compressor or pump.

Or is "PWM" a misnomer?

Cheers!

Son of fermentation chamber with a fan maybe?

Seriously though, there's a minimum pulse width component that could help moderate things. Set the pulse width for a pump in tens of seconds (and compressor based system in minutes) and it would probably work.
 
Ok, so that's not what "PWM" classically means.
And it still reads like a solid accelerated life test strategy for any compressor...

Cheers!
 
Son of fermentation chamber with a fan maybe?

Seriously though, there's a minimum pulse width component that could help moderate things. Set the pulse width for a pump in tens of seconds (and compressor based system in minutes) and it would probably work.

If your in minutes though, you basically have the current BrewPi.

Im with Day_trippr i dont know what they really mean by PWM. That said, the new Spark is geared more towards overall brewery/mash control, are you sure they arent saying PWM for electric heating element controls for a Ebrewery setup?
 
Does anyone know why the log interval time keeps resetting to 10 seconds on my brewpi?

Since I'm now using a SG (tilt) sensor, I increased the log interval to 2 minutes, otherwise the interface is running really slow after a couple of days. However, when I check back a while later (not straight after), it reseted itself back to 10 seconds interval.. Quite annoying..
 
If your in minutes though, you basically have the current BrewPi.

Im with Day_trippr i dont know what they really mean by PWM. That said, the new Spark is geared more towards overall brewery/mash control, are you sure they arent saying PWM for electric heating element controls for a Ebrewery setup?


I agree - it sounds strange. To quote elco from the thread:

Cooler (pump): PWM period of 120s, 10s min ON time. Kp=10, Ti=3600, Td=120

I haven't had a chance to what exactly the code in the 0.4.x line is doing when it says "PWM", but I can confirm the same PWM code appears to be active on both the heating and cooling elements.
 
PWM means "pulse-width modulation". It says nothing about the period, which could be microseconds or weeks.
 
No, I think you're right - think the PWM is for microcontrol of a heating element during a mash, for example. But he's referencing it here for this application, incorrectly.
 
Status
Not open for further replies.
Back
Top