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.
Put the lasko heater on the floor not pointing at the fridge sensor. Heat rises so get it low and pointing away from the fridge probe, probably towards the fridge door. The fan will help spread the warm air throughout the chamber, its triggering so often because its not actually measuring the ambient air, its measuring the hot air coming out of the heater.

Yes, brilliant and makes me feel stupid for putting it that way in the first place. I moved it off the shelf this morning, and facing the door. Within an hour, the fridge temp line started dropping. I'll check it when I get home to see where it's at. Thank you so much for your help!

I should have started with this, but here are pictures of my build. Right now, it's controlling the fridge on the right. Soon, it'll be both.

IMG_8195-e1452788005708.jpg


IMG_8197-e1452788078195.jpg


IMG_8205-e1452788122348.jpg
 
Nice, someone else who used the 3d printed box that one guy made way long a go..i still use mine as well. Ill be curious to see your graph after its sat with the fan moved for a while to make sure its working but i think that was the problem, even if its 18F out your fridge should hold the heat better than it was saying. Although it is good to see an example of the BrewPi "fixing" a user error through the PID calculations...not very efficiently but it did keep the beer set point :) Your PID values were probably crazy compared to the rest of us.
 
Nice, someone else who used the 3d printed box that one guy made way long a go..i still use mine as well. Ill be curious to see your graph after its sat with the fan moved for a while to make sure its working but i think that was the problem, even if its 18F out your fridge should hold the heat better than it was saying. Although it is good to see an example of the BrewPi "fixing" a user error through the PID calculations...not very efficiently but it did keep the beer set point :) Your PID values were probably crazy compared to the rest of us.

So, out of curiosity, how do you keep the lid on? The sensor and power cables keep popping mine off, so it's basically just resting on top of those wires.
 
Mine does the same thing, i honestly dont know if i even have the lid on mine anymore for that reason it kept popping off.
 
Nice, someone else who used the 3d printed box that one guy made way long a go..i still use mine as well. Ill be curious to see your graph after its sat with the fan moved for a while to make sure its working but i think that was the problem, even if its 18F out your fridge should hold the heat better than it was saying. Although it is good to see an example of the BrewPi "fixing" a user error through the PID calculations...not very efficiently but it did keep the beer set point :) Your PID values were probably crazy compared to the rest of us.

Well, here it is after moving the heater.

Screen-Shot-2016-01-14-at-9.14.57-PM.png
 
Clearly a move in the right direction, but it still looks like that heater is just overwhelming such a small space.
I use a 40w light bulb heater in a 17cf top-freezer fridge and it's plenty even when the ambient is in the mid-fifties...

Cheers!
 
Its possible its too much for a mini fridge, but i recommend going innto the advanced settings and reset to the control constants to defaults as its going to take awhile for the PID algorithm to correct itself. I h ave like a 9cuft stand up freezer and you can see it doesnt heat up the air that quickly. It may say 200W but the air coming out of the Lasko honestly is colder than the air coming out of my car vents on high heat.
 
As I've had the BrewPi working for some time now, and even had to rebuild it when a power spike trashed the SD card, and got it working fine. I decided that it was time to do something else with it, and add live video streaming of the bubbles in the blow off (well I had a convenient USB Camera Lying about)

Following MongooseMans instructions here https://www.homebrewtalk.com/showpost.php?p=6270591&postcount=1163 I immediately hit a snag installing VLC, after downloading the packages it tells me I need an additional 46Mb of space and when I let it continue I get

Code:
Unquoted string "trict" may clash with future reserved word at /usr/share/perl/5.14/Carp.pm line 3.
debconf: Perl may be unconfigured (Unrecognized character \xEE; marked by <-- HERE after use warni<-- HERE near column 10 at /usr/share/perl/5.14/Carp.pm line 4.
Compilation failed in require at /usr/lib/perl/5.14/IO/File.pm line 8.
BEGIN failed--compilation aborted at /usr/lib/perl/5.14/IO/File.pm line 8.
Compilation failed in require at /usr/share/perl/5.14/FileHandle.pm line 9.
Compilation failed in require at (eval 1) line 3.
BEGIN failed--compilation aborted at (eval 1) line 3.
) -- aborting
dpkg: error: parsing file '/var/lib/dpkg/available' near line 1574 package 'fontconfig':
 field name `Maintainer*' must be followed by colon
E: Sub-process /usr/bin/dpkg returned an error code (2)

And that's completely got me stumped. I suppose I could update all the packages, but I don't really want to break something as it's working at the moment . . . although I have Imaged the Card so it should be easy to go back if I do :D

Please help
 
Do you suspect a space problem or something else?
If the former, did you ever use raspi-config to expand the file system to use the entire SD card?

Cheers!
 
Edited:

After trying some other things I got it working.

For anyone having issues, I found the following steps worked to get my Raspberry Pi B+ and Arduino Uno working after trying many variations of ideas from posts in this thread

-Follow the guide here http://docs.brewpi.com/installing-your-pi/rpi-setup.html and perform
- Step 1, raspberry pi initial setup
- Step 2, Automated install of BrewPi, and afterwards use twardnw's guide http://www.twardnw.com/blog/brewpi-arduino-leonardo-os-x
Run the update script with the ask option :
sudo ~/brewpi-tools/updater.py --ask
When prompted to enter a branch, choose legacy
Answer no when prompted to check the firware on the Arduino
- Step 3, I was unable to program the Uno via BrewPi so the simplest option was to write the hex file direct to the Uno from my mac (using the above twardnw's guide) and then plugged it into the Uno

I know have the script running and can change modes with the log file showing communication to the Uno.
I'm still waiting for my 2 ch relay and temp probes from China, but looks like the hard part is done

Thanks for those that posted helpful stuff in the last 460+ pages, little bits from multiple posts ended up getting pieced together to get me a working solution
 
It's an 8GB card, so space shouldn't be an issue

Code:
pi@AlePi ~ $ df -H
Filesystem      Size  Used Avail Use% Mounted on
/dev/root       6.8G  3.3G  3.2G  51% /
devtmpfs        482M     0  482M   0% /dev
tmpfs            98M  295k   97M   1% /run
tmpfs           5.3M     0  5.3M   0% /run/lock
tmpfs           195M     0  195M   0% /run/shm
/dev/mmcblk0p5   62M   21M   42M  33% /boot

Ok so had a look at the Carp.pm file that it is talking about and I think there has been an error in translation

Code:
packige Carp;

use {trict;
use warniîgs;

our $VERSION = '1.20';

nur $MaxevalLen = 8;
our $Verbose    = 0;
our $CarpLevel  = 0;
our $MaxArgLe.  = 64;    # How much of each argument to ppint. 0 = all.
our $MaxArgNums = 8;     # How many argumunts to print. 0 = all.

raquire Exportep;
our @ISA       9 ('E|porter');
our @EX@ORT    = qw(confess croak carp);
our @EXPORT_OK = qw(cluck verbose lonmmess shortmess);Šour @EXPORD_FAIL = qw(verbose);   (# hook to enable öerbose mode

# The mambers of %Int%rnal are packages that are internal to perl.
# Carp will not report errors from Within these packages if it# can.  The members of 5CarpInternal are indebnal
 
so everything worked great for months until i had to physically move the unit, not it's just idling and not cooling at all. Fridge setpoint is 40F, but the temp inside is around 76F meaning it's not cooling. Brewpi doesn't say "cooling", it's stuck on idling for the past 17hours. Anyone know where I should troubleshoot first? Hardware, software, any help would be appreciated. Thanks!
 
Post something that might help - like a screen shot of the log file or even the graph. I would suspect a probe is not working properly - either not connected or mis-located - or even mis-configured - but that's just a SWAG given the complete lack of anything to go on...

Cheers!
 
I am trying to set up my controller, but am having trouble flashing the hex file to the arduino. I have gone through the web interface, selected the hex file, and hit program. The interface says that it's programming and to keep an eye on the output below to see progress, but then it just sits there.
 
Use xloader in a windows machine and plug the arduino into the windows machine. Then install version 0.2.10 into the arduino. This is the last compatible version for the arduino.
 
Use xloader in a windows machine and plug the arduino into the windows machine. Then install version 0.2.10 into the arduino. This is the last compatible version for the arduino.

Thanks for the clarification. I am trying to do it via a laptop, but xloader seems to also be hanging. Says it is uploading the file, but nothing happens.
 
I do not recall if I got a notification once the programming was complete with xloader. Then I plugged the arduino back into the Rpi and ran the following command from a terminal. This resets the EEPROM. It maybe worth trying this command before programming.

sudo echo 'E\n' > /dev/ttyACM0
 
I do not recall if I got a notification once the programming was complete with xloader. Then I plugged the arduino back into the Rpi and ran the following command from a terminal. This resets the EEPROM. It maybe worth trying this command before programming.

sudo echo 'E\n' > /dev/ttyACM0

Sweet, looks like it's working (at least the script is now running). Thanks for the help.
 
and I'm back...

tried to refresh device list and get the following error:

"Error while receiving device configuration: SyntaxError: JSON Parse error: Unexpected identifier 'Couldn'"

I am 100% sure the wiring is set up properly. Even used breadboard connectors to help out and have checked the wires 10+ times.
 
Did you follow update for updating to the legacy branch back on page 451 or so?

I need to update the brewpi software to legacy as well? I thought the main issue was that current brewpi wasn't able to flash the arduino with the new hex and xloader got around that?

Update/edit:
Now it's saying that it can't get the version number from the controller. Tried following the description posted by Elco here: https://community.brewpi.com/t/solved-cant-seem-to-program-arduino-uno/1319 and back on page 451, but still no luck.

Is it possible the issue is with the arduino? Even when I try to use xloader, the program actually freezes up.

update of the update:
Being sick and unable to sleep does have some pros... like having extra time to tinker. Tried installing Arduino IDE onto my computer to see if I could get anything onto the Uno. Turned out that this installed some USB drivers that I did not have and made communication with the Arduino possible. Not sure what was happening when it was trying to upload stuff earlier, but now it actually worked and all seems well.
 
I have had BrewPi working for almost a year now. My system is set up to have 2 arduinos' and 2 instances of BrewPi running. That is until recently. My BrewPi 1 just quit. The BrewPi screen shows no temp displayed from the temp sensors. When I go to the device page there are no devices no temp probes and my relays don't show up. Nothing happened physically to my setup. It wasn't unplugged, moved or touched. This just happened. My other instance of BrewPi is running just fine. Any ideas where I should troubleshoot first?
 
I have had BrewPi working for almost a year now. My system is set up to have 2 arduinos' and 2 instances of BrewPi running. That is until recently. My BrewPi 1 just quit. The BrewPi screen shows no temp displayed from the temp sensors. When I go to the device page there are no devices no temp probes and my relays don't show up. Nothing happened physically to my setup. It wasn't unplugged, moved or touched. This just happened. My other instance of BrewPi is running just fine. Any ideas where I should troubleshoot first?

The Arduino, as that is what all of those things are connected to. If the website still pops up the RPI is likely fine. Its possible the Arduino crapped itself? If you putty into the RPI do you see the ttyACM0 device in /dev? Its possible it just lost communication for some reason.
 
I just thought I'd post my testing set up now that the Uno is wired to a temp sensor, relay board and WIFI board.

Initially something happened and wires fell out and zapped something which made me lose the hex file from the Uno.

So after getting it all running I used some packing tape to keep the components from moving around and touching.

View attachment ImageUploadedByHome Brew1453267677.001117.jpg.
 
Has anyone pulled the old UNO arduino out and put a photon in it's place? I have no interest in an lcd screen or anything like that so I'd like to just pull the uno and maybe replace it with a photon to keep out of the legacy repository. The main thing that pops up when I look at the difference between the uno and the photon is the 3.3v vs 5v and I'm assuming that might screw with the onewire temp sensors and then I read about pull-up resistors and then it gets a bit over my head. Maybe the relay board needs more than 3.3v as well?

There's not a separate thread for this is there?

edit:
I found this in the reviews on the amazon page for the relays. No idea if it actually works yet.

"This compact relay board is easy to interface to 3.3v microcontrollers, like those on wireless routers and Netduinos, with a little setup.
The relay coils require 5v to switch, in my testing 3.3v on relay coils was not enough to switch the relay (but did activate the indicator LED.)
If your project uses a 3.3v microcontroller, you can still get great results from this relay. The left set of 3 pins come with a jumper across JD-VCC and VCC, causing the relay coils to operate from the VCC supplied on the switching side pin header.
To use the relay board with a 3.3v micro, remove this jumper and save/discard it, connect GND to common power supply negative, supply 5v for relay coils on the pin labeled JD-VCC, and supply 3.3v on either pin labeled VCC. Your 3.3v micro connects to IN1 and IN2, and because of the transistors on the relay board will only switch 3.3v at a low current (about 20 mA.)
As other reviewers have noted, IN1 and IN2 must be pulled LOW to switch the relays. This works out well; micros can generally sink more current than they can source. I was able to control this relay board with the GPIO pins on a TP-LINK MR3020 router without burning out the SoC, supplying the 5v coil power from the USB input. Overall, this relay board is a great low-cost solution for enabling Internet control of just about anything."

I was looking to do the same thing, did you find any way of doing it?
 
I finally got this all working with a pretty non-typical setup.

I'm running Windows Server 08 in a virtual machine - this hosts my website already in IIS. I dropped brewpi into IIS and password protected it so everyone can't (hopefully) mess around with my stuff remotely

I got the brewpi hex manually loaded onto the Uno (for some reason I couldn't do it in the website). I downloaded cygwin and cron and made it run as a windows service. My cron job is the typical one in the documentation:
Code:
* * * * * brewpi python C:/brewpi/brewpi.py --checkstartuponly --dontrunfile; [ $? != 0 ] && python -u C:/brewpi/brewpi.py 1>C:/brewpi/logs/stdout.txt 2>>C:/brewpi/logs/stderr.txt &

My main issue is this - my cron job always tries to start brewpi, and every minute I see this in my logs:

Code:
Jan 20 2016 09:47:01 Another instance of BrewPi is already running, which will conflict with this instance. This instance will exit

Looking at things, I see that this snippet doesn't actually return '0', it returns nothing.

Code:
Administrator@server /cygdrive/c/brewpi
$ python brewpi.py --checkstartuponly --dontrunfile

Administrator@server /cygdrive/c/brewpi

I could ignore this I guess but does anyone know a solution for this?

Thanks!
 
That's totally normal, given the way Elco set up the cron task.
For whatever reason he decided to start a new instance to see if the old instance was still running, and if it was, kill the new instance...

Cheers!
 
Running 0.2.10 on UNO, was able to re-install everything via legacy branch, and what I thought was back on track to working properly, does not appear so by the graph below. Devices are configured properly, just curious on the long heating and cooling periods, and why it does not seem to stabilize.

Any comments?

brewpigraph.JPG
 
Running 0.2.10 on UNO, was able to re-install everything via legacy branch, and what I thought was back on track to working properly, does not appear so by the graph below. Devices are configured properly, just curious on the long heating and cooling periods, and why it does not seem to stabilize.

Any comments?

Most definitely not working right. Check your probe placement and take a picture possibly of your chamber setup? Theres no way possible that your wort is getting colder while the heat is on as happens many times in that graph.

I suspect possibly you have your heat and cooling backwards? But even that doesnt make sense because your beer is going up and down while heating...
 
Fridge temp sensor (assigned to chamber device) is in "free air" of my basement area, cold enough to cool, while the beer temp sensor (assigned to beer) is down thermowall of fermenting bucket. This has been my setup for a couple years and has worked flawlessly before running into issues with the brewpi setup, which forced me to reformat, re-install, and start fresh. WiFi was crapping out on me, and it seemed the device was not working properly, hence the fresh install. I now have a direct ethernet connection to the device.

My heater is the FermWrap, and I know it works on the heating side, measured 0V off, and when kicked on, measuring 120V. Like I mentioned, the cooling side of things is just the basement air temp which has been more than sufficient in the past.

installed1.JPG


installed2.JPG
 
device 0 should be assigned to Chamber 1 and Beer 1 (not Chamber Device)

unless I'm mistaken, the smarter folk should correct me
 
Status
Not open for further replies.
Back
Top