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.
Please excuse my ignorance, but I've been searching for a while and found this topic.

Does anyone happen to know if BrewPi software can just run on a Pi with a temp sensor connected, and get the data without an Arduino? I'm just looking for the simple process of logging temperature at first (as I build the rest of things down the road).

Thanks for reading!
 
The arduinos cheaper than the pi and you can run the server off anything you have lying around that can access the internet. That's the way I'd go.
 
[...]Does anyone happen to know if BrewPi software can just run on a Pi with a temp sensor connected, and get the data without an Arduino? I'm just looking for the simple process of logging temperature at first (as I build the rest of things down the road).[...]

The short answer is "No". BrewPi totally requires an Arduino for the probe interface. The architecture was designed to allow the Arduino to be able to keep running even if the 'Pi crashes, so it needed to "own" the probes. Hence the path from the web page to the probes is through the AVR code.

If all you're looking for is a temperature monitor (capable of supporting 1 to 5 probes) that runs on a 'Pi (no Arduino required), you could take a look here...

Cheers!
 
I got a pi (model b) configured out here while I am offshore to run 2 instances of BrewPi one for each fermenter that will be in my chest freezer, I only had one uno and no sensors or relays I will knock that out when I get home. Has anyone tried with a B+? That will make running two uno's much easier. Here is a screenshot if anyone cares.

brewpiscreens by HDIr0n, on Flickr

-G
 
Running in a b+ right now. I'll be building out my multi-chamber setup in a standup fridge starting sometime this weekend (I have a couple beer fermenting right now). I'll be updating my build in the future and I'll post a new thread on hbt once I figure out how I'm going to attack this beast. I'm also building a retro pie for someone right now and that got my attention at the moment. But I'll get around to it.
 
Running in a b+ right now. I'll be building out my multi-chamber setup in a standup fridge starting sometime this weekend (I have a couple beer fermenting right now). I'll be updating my build in the future and I'll post a new thread on hbt once I figure out how I'm going to attack this beast. I'm also building a retro pie for someone right now and that got my attention at the moment. But I'll get around to it.

Cool, didn't I read that you are using a different arduino than an uno/leo?
I can't wait to get onshore to get this thing up and running.

-G
 
First of all, awesome DIY project that I've followed since the beginning and have read it's entirety twice....wish I could have remembered all the problems and their solutions, but didn't work!!! Here's my questions as I'm trying to figure why my build doesn't find the 1-wires attached and everything else seems to work great. I've just tested the black (gnd), red (5v) and white (data) wires to make sure they are connected properly and they are, but when I check the Read Values and do a refresh it says "No installed devices found" so any hints as to what I need to look for? Also why is it necessary to have an internet connection for system to launch the web site since it's local...don't understand that? Thanks
 
When you go into the Device Configuration window do you see any detected One-Wire devices? That's where they'll be until you actually configure them, after which they'll be "Installed Devices".

You don't need an extranet connection to see the BrewPi display on your system console - or on your lan...

Cheers!
 
And there is no guarantee that that is the right gnd 5v data wire setup. Just about everyone in this forum has found that there is no standard
 
Thanks day_rippr for the reply...here is what I get:
No installed devices found
Parsing available devices
Device list updated for Arduino standard with a revC shield
No installed devices found. etc

I know wbarger69, this was determined using and voltohm meter and using the instruction given to determind which wires were which
 
You don't need an extranet connection to see the BrewPi display on your system console - or on your lan...

Cheers!

I have never been able to connect without a working internet connection, otherwise I get the Page Will Not load error...don't remember the exact wording, but has never workee for me..
 
Thanks day_rippr for the reply...here is what I get:
No installed devices found
Parsing available devices
Device list updated for Arduino standard with a revC shield
No installed devices found. etc

I know wbarger69, this was determined using and voltohm meter and using the instruction given to determind which wires were which


Are u using a 4.7k resistor on your data line?
 
Yeah, sure thing....I purchased about 8 1-wires and have tested them all and they all give about the same readings....here's what I did...if I placed the ohm lead on the black wire, I got a reading of appx. 14.00 on the red and bout half that on the white...did I interpret those readings incorrectly ? From the directions the lead on the ohms would be ground, black in my case, the red high reading would be 5 v and the white signal....correct?
 
Hmm I remember when i tested mine that i was getting between 65 and 80 when testing my Dallas temp probes
 
I use the 2k resistor setting. Just tested agin and got .61 on the data line and .72 on the 5v line.
 
To compare readings you both need to have your test leads in the same polarity, as there's almost always some diode-like effects when going from pin to pin looking into a chip...

Cheers!
 
I'm using a FLUKE 101 and it has a decimal place of M in the test window for the readings I get.
 
If you don't have the proper lead on ground you won't find any reading at all. The point is to find ground then it's a 50/50 chance of getting the right leads on data and voltage. If it doesn't work the first time then you switch.
 
Yeah I had that problem for a few times and found placing black on the ohm side gave me reading after that
 
I have never been able to connect without a working internet connection, otherwise I get the Page Will Not load error...don't remember the exact wording, but has never workee for me..

Well I may have mispoken, my apologies. I just booted my dev system 'Pi without any internet connectivity, and when it finally gets over it's complete frustration with that - 100% CPU for like forever before it finally gets the picture and does something useful for the console user - and load a BrewPi session in Chromium, the gui loads, you can work the temperature controls, and the maintenance panel is fully functional. BUT the gui never paints the temperature graph and never updates the "LCD" (the "Live LCD waiting"... never gets replaced with the temperature and setting data.

No error messages shown (without digging - see below).

The couple of times I ever ran BrewPi (months ago now) without a network must've before I had my hardware fully configured with probes and everything, so I probably either didn't realize what was missing or I rationalized it against the incomplete system configuration.

I'm hooked up with Elco on this and gave him a couple of interesting tidbits to ponder - like BrewPi index.php making a GET request to http://www.google.com/jsapi, which will obviously fail without a network...

Cheers!
 
It's on life support right now. I still have to hook up the Uno, relay and sensors.

BrewPi.jpg
 
Here's a drawing of the circuit that I built on a Radio Shack Prototype Shield (plugs right on top of an Uno). It's based on the BrewPi Rev C shield schematic and uses a 20x4 LCD, a 74HC595 Shift Register and a couple of 10K pull-up resistors.

As Homer Simpson would say Doh! :drunk:

Here's an corrected layout that connects the LCD to ground (properly). The original shield also includes a couple of capacitors that I did not need (blue cap is 100nF and yellow one is 10uF - if using a polarized cap watch your orientation). If your power source is marginal adding these two caps may help. Also the contrast pot (in my case) had a very narrow range of use.
your schematic works great!

img_0051-63531.jpg
 
+1 I only had problems with the shift registers I got off amazon. Nothing wrong with them they just had a slightly different pinout. Once I figured it out it was no problem getting an lcd to work.
 
Referencing BrewPi without an internet connection: turns out to have been a legitimate bug affecting three files that was fixed since I pulled the installation kits, so running the script update process should correct this problem - for those who did the automatic installation.

I'm doing image backups on my two systems now before attempting to update the twin manual installations on each.

And, considering this note on the BrewPi manual installation page:

"I have not investigated whether it is safe to use the updater script from brewpi-tools, so at this point I would recommend doing updates manually."

there's plenty of trepidation here ;)

Cheers!
 
Can anyone spot anything wrong with this wiring, can't get any devices to list! See attached pic..
Red on left is 5 v, black is gnd and white is data.

20140808_123729.jpg
 
My setup works for about 30-ish minutes before filling the logs with this error:

Code:
Aug 08 2014 18:40:03 Socket error(32): Broken pipe
Traceback (most recent call last):
File "/home/brewpi/brewpi.py", line 444, in
conn.send(json.dumps(lcdText))
error: [Errno 32] Broken pipe
Aug 08 2014 18:40:03 Socket error(32): Broken pipe
Traceback (most recent call last):
File "/home/brewpi/brewpi.py", line 444, in
conn.send(json.dumps(lcdText))
error: [Errno 32] Broken pipe
Aug 08 2014 18:40:03 Socket error(32): Broken pipe
Traceback (most recent call last):
File "/home/brewpi/brewpi.py", line 444, in
conn.send(json.dumps(lcdText))
error: [Errno 32] Broken pipe

The graphing will stop and the on-page lcd displays "Cannot receive LCD text from Python script."

I've reviewed the entire thread and seen the USB cable suggested as a possible culprit. However, I've tried 2 different ones and routed the cable far away from the power lines with no changes.

It's confusing why this will work for a bit and then stop completely.... anyone have a suggestion?
 
My setup works for about 30-ish minutes before filling the logs with this error:

Code:
Aug 08 2014 18:40:03 Socket error(32): Broken pipe
Traceback (most recent call last):
File "/home/brewpi/brewpi.py", line 444, in
conn.send(json.dumps(lcdText))
error: [Errno 32] Broken pipe
Aug 08 2014 18:40:03 Socket error(32): Broken pipe
Traceback (most recent call last):
File "/home/brewpi/brewpi.py", line 444, in
conn.send(json.dumps(lcdText))
error: [Errno 32] Broken pipe
Aug 08 2014 18:40:03 Socket error(32): Broken pipe
Traceback (most recent call last):
File "/home/brewpi/brewpi.py", line 444, in
conn.send(json.dumps(lcdText))
error: [Errno 32] Broken pipe

The graphing will stop and the on-page lcd displays "Cannot receive LCD text from Python script."

I've reviewed the entire thread and seen the USB cable suggested as a possible culprit. However, I've tried 2 different ones and routed the cable far away from the power lines with no changes.

It's confusing why this will work for a bit and then stop completely.... anyone have a suggestion?

Is it possible to externally power the Arduino? Thats the easiest fix, its just crappy electrical noise getting onto the USB wire likely thats taking it down, either from the Relays, or from your fridge compressor circuit itself.

Its also possible that a lot of USB ports dont properly supply the constant current and voltage that the Arduino wants, so it goes down occasionally like that. If using a PC you should try to always use the USB ports directly on the motherboard, not ones that get cabled out to the front of the case.
 
I suspect that the whole "usb cable" thing actually is rooted in powering the arduino from a usb port. It may be that so many host ports are marginal wrt the amount of clean power they can provide that the cable becomes critical as far as gauge versus voltage drop versus arduino module power demand.

Unos can use a wall wart, and that's what I'm using. My Unos have been running since late April without a burp...

Cheers!
 
Is it possible to externally power the Arduino? Thats the easiest fix, its just crappy electrical noise getting onto the USB wire likely thats taking it down, either from the Relays, or from your fridge compressor circuit itself.

Its also possible that a lot of USB ports dont properly supply the constant current and voltage that the Arduino wants, so it goes down occasionally like that. If using a PC you should try to always use the USB ports directly on the motherboard, not ones that get cabled out to the front of the case.

The USB is connected to a Raspberry Pi. I went with a 2 amp power adapter for it since I knew it was going to be powering the Uno.

I'm pretty sure the Uno is still doing it's job when this happens, it just loses communications with the RPi.

It's working at the moment but if it goes down again I'll try powering it off a 9V i have.
 
How about a better cable. I get some pretty beefy ones off monoprice that have ferrite cores on the ends I haven't had any issues with USB power. Even over a 10' cable
 
The USB is connected to a Raspberry Pi. I went with a 2 amp power adapter for it since I knew it was going to be powering the Uno.

I'm pretty sure the Uno is still doing it's job when this happens, it just loses communications with the RPi.

It's working at the moment but if it goes down again I'll try powering it off a 9V i have.

Ah yea i havent had any issues with my RPI powering my Arduino...most people who have problems are on a PC.
 
So I've tried a few different ways to update my BrewPi installations in place, but no joy. I haven't fired up the debugging tools to find out why yet (frankly, I'm half in the bag trying to kill a keg :mug: )
Might get to it over the weekend.

I suspect this issue will plague anyone running multiple BrewPi instances and hence dealing with multiple manual installations, so it bears solving at some point. There's really zero information on the BrewPi site aside from warning not to use the BrewPi-Tools update script. The spectre of removing and doing fresh manual installs with all the post-installation configuration and customizing any time Elco comes up with some worthwhile update isn't something I want lurking around.

More when I get to it...

Cheers!
 
I imagine it could be possible to alter the script to meet your needs, or multiple scripts if need be. I imagine the first person to start talking up would be MDMA in the brewpi forums.
 
It stopped working again. Hooked up external power to the Arduino Uno and restarted everything.

Same deal. Worked for about 20 minutes and then fails.

On-page LCD reads "Cannot receive LCD text from Python script," script status says "Script not running," and the status reads "not loaded."

Meanwhile still getting these in the logs:

Code:
File "/home/brewpi/brewpi.py", line 444, in
conn.send(json.dumps(lcdText))
error: [Errno 32] Broken pipe
Aug 08 2014 23:30:59 Socket error(32): Broken pipe
Traceback (most recent call last):
File "/home/brewpi/brewpi.py", line 444, in
conn.send(json.dumps(lcdText))
error: [Errno 32] Broken pipe
Aug 08 2014 23:30:59 Socket error(32): Broken pipe
Traceback (most recent call last):
File "/home/brewpi/brewpi.py", line 444, in
conn.send(json.dumps(lcdText))
error: [Errno 32] Broken pipe

Doesn't seem like a power/interference issue since it runs great for the first 20 minutes. :confused:
 
I imagine it could be possible to alter the script to meet your needs, or multiple scripts if need be. I imagine the first person to start talking up would be MDMA in the brewpi forums.

So one of the methods I tried was to use the brewpi-tools update script. It is smart enough to realize that I didn't have an automatic installation, prompted for the location of the two main trees, and not only updated the files in place, it appeared to do an apt-get update && apt-get upgrade because all kinds of packages were flying by.


Another method was to cd to the root folders of the instance I'm trying to update (eg: /home/brewpi/brewpi1 and /var/www/brewpi1) and respectively run

'sudo -u brewpi git pull'

to update the script repository, and

'sudo -u www-data git pull'

to update the web repository.

Another method was to rename my original folders to backups, and do a straight out git clone of the script and www trees to create new folders.

And the final method was to grab the changed files from the clone and copy them to backed-up trees from my original working instance.


Remarkably, the results of all four methods were exactly the same - and (bizarrely ironic) manifested exactly the same symptoms as when I tried running my original installation without an internet connection (the thing that got this started ;) )

The main gui is there, the control panel is fully functional, but the temperature plot, graphing controls and LCD panel never get refreshed.

As I said, I haven't actually dug into what's going on yet, but given the symptoms I'm pretty sure there's something broken in the javascript side. The fact that all roads led to the same ending should help...

Cheers!
 
Thanks for the digging daytrippr. I am holding off going near an update till I hear more of your updates. Cheers


Sent from my iPhone using Home Brew
 
It stopped working again. Hooked up external power to the Arduino Uno and restarted everything.

Same deal. Worked for about 20 minutes and then fails.

On-page LCD reads "Cannot receive LCD text from Python script," script status says "Script not running," and the status reads "not loaded."

Meanwhile still getting these in the logs:

Code:
File "/home/brewpi/brewpi.py", line 444, in
conn.send(json.dumps(lcdText))
error: [Errno 32] Broken pipe
Aug 08 2014 23:30:59 Socket error(32): Broken pipe
Traceback (most recent call last):
File "/home/brewpi/brewpi.py", line 444, in
conn.send(json.dumps(lcdText))
error: [Errno 32] Broken pipe
Aug 08 2014 23:30:59 Socket error(32): Broken pipe
Traceback (most recent call last):
File "/home/brewpi/brewpi.py", line 444, in
conn.send(json.dumps(lcdText))
error: [Errno 32] Broken pipe

Doesn't seem like a power/interference issue since it runs great for the first 20 minutes. :confused:


Have a look at
"brewpi script issues (not running)"
On the brewpi forum if you haven't already. It talks about cables power suplies and wifi checker and pipe errors. Might be some clues.



Sent from my iPhone using Home Brew
 
It stopped working again. Hooked up external power to the Arduino Uno and restarted everything......,




Have a look at
"brewpi script issues (not running)"
On the brewpi forum if you haven't already. It talks about cables power supplies and wifi checker and pipe errors. Might be some clues.



Sent from my iPhone using Home Brew
 
Everyone who said the cable was right.

I dug through /home/brewpi/logs/stderr.txt and found a few spots that looked like data corruption:

Code:
Aug 06 2014 18:34:27   JSON decode error: No JSON object could be decoded: line 1 column 0 (char 0)
Aug 06 2014 18:34:27   Line received was: S:{"mode":"f","beerSet":g for     43m41"]

Aug 06 2014 18:34:27   JSON decode error: Expecting : delimiter: line 1 column 7 (char 7)
Aug 06 2014 18:34:27   Line received was: S:{"m:t$"^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@$

Aug 06 2014 18:34:27   Cannot process line from Arduino: t^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^$

Aug 06 2014 18:34:27   Cannot process line from Arduino: ��dge Const.","Beet`�e^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@$

Aug 06 2014 18:34:27   Cannot process line from Arduino: "��,^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@$

As a temporary fix, I took the USB cable, wound and ziptied it, wrapped it in some aluminum foil to block interference and covered with electrical tape so it wouldn't short anything.

It's been up now for 12+ hours with zero issues. :mug:

How about a better cable. I get some pretty beefy ones off monoprice that have ferrite cores on the ends I haven't had any issues with USB power. Even over a 10' cable

I can't seem to find a USB to USB B cable with ferrite beads on Monoprice. Any chance you could link the one you have?
 
Status
Not open for further replies.
Back
Top