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.
Brew Pi noob here. I completed my build all the way to the point of loading the hex file for the Arduino and the programming script says "could not find compatible device" then says Cannot receive version number from controller and says I must be running a very old version of brew Pi please upload a newer version. Isn't the newest version the one that would be downloaded by following these instruction? Sorry if these are stupid questions, I have no programming experience.

I had the same issue, but iirc I was prompted to download an update through the program screen
 
Did you build this very recently - like in the last month or so?

That would mean Raspian Jessie. From what I've been reading Jessie causes some issues with applications like RaspberryPints because in-bound html requests now "land" in /var/www/html by default instead of /var/www - which is where RaspberryPints installs its web components.

As BrewPi also installs its web components in /var/www by default, I expect you'd run into that same issue. That all said, I can't say that problem relates to the comm issue you're seeing.

If this particular Uno has never seen service, you might want to install the Arduino IDE on something with a USB port and see if you can upload a simple sketch (like the classic "Blink" sketch) just to make sure the Uno is fully functional...

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

The first line scans all of the devices visible on the USB root ports and dumps the result into info.log.

The second line opens info.log in the Nano text editor.

You can then scroll along looking for this line:

ATTRS{manufacturer}=="Arduino (www.arduino.cc)"

If you find that then your Uno is alive and visible to the host.
If you go through the whole info.log and don't find "Arduino" anywhere, it's invisible for some reason...

Cheers!
 
Hello,

Can anybody help me with #3 of these directions. I'm new to this stuff and I'm getting hung up on the "create a file and insert contents part".

Thanks in advance!
 
Hey all,

Thanks for all of the help getting this set up to make it a pretty easy process for me. I did notice a couple of things as i put it together and wanted to add my 2 cents where applicable.

First off the "Publicly accessible BrewPi" code linked in the first post appears to need some updating. I found that it would never actually display any graphs or fill out the LCD display. so I dug in and updated the code provided by FuzzeWuzze. See below:

  1. Goto /var/www
  2. Code:
    sudo mv index.php admin.php
    (this moves the default brewpi webpage to a new location)
  3. Create a file with vi or nano called index.php and add the contents of the code block below (Mostly fixes in the Javascript section of the file)

Code:
<?php
/* Copyright 2012 BrewPi/Elco Jacobs.
* This file is part of BrewPi.

* BrewPi is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.

* BrewPi is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.

* You should have received a copy of the GNU General Public License
* along with BrewPi. If not, see <http://www.gnu.org/licenses/>.
*/

// load default settings from file
$defaultSettings = file_get_contents('defaultSettings.json');
if($defaultSettings == false){
		die("Cannot open default settings file: defaultSettings.json");
}
$settingsArray = json_decode(prepareJSON($defaultSettings), true);
if(is_null($settingsArray)){
		die("Cannot decode defaultSettings.json");
}
// overwrite default settings with user settings
if(file_exists('userSettings.json')){
		$userSettings = file_get_contents('userSettings.json');
		if($userSettings == false){
		die("Error opening settings file userSettings.json");
		}
		$userSettingsArray = json_decode(prepareJSON($userSettings), true);
		if(is_null($settingsArray)){
		die("Cannot decode userSettings.json");
		}
		foreach ($userSettingsArray as $key => $value) {
		$settingsArray[$key] = $userSettingsArray[$key];
		}
}

$beerName = $settingsArray["beerName"];
$tempFormat = $settingsArray["tempFormat"];
$profileName = $settingsArray["profileName"];
$dateTimeFormat = $settingsArray["dateTimeFormat"];
$dateTimeFormatDisplay = $settingsArray["dateTimeFormatDisplay"];

function prepareJSON($input) {
//This will convert ASCII/ISO-8859-1 to UTF-8.
//Be careful with the third parameter (encoding detect list), because
//if set wrong, some input encodings will get garbled (including UTF-8!)
$input = mb_convert_encoding($input, 'UTF-8', 'ASCII,UTF-8,ISO-8859-1');

//Remove UTF-8 BOM if present, json_decode() does not like it.
if(substr($input, 0, 3) == pack("CCC", 0xEF, 0xBB, 0xBF)) $input = substr($input, 3);

return $input;
}

?>

<!DOCTYPE html >
<html>
	<head>
		<meta http-equiv="content-type" content="text/html; charset=utf-8" />
		<title>BrewPi reporting for duty!</title>
		<link type="text/css" href="css/redmond/jquery-ui-1.10.3.custom.css" rel="stylesheet" />
		<link type="text/css" href="css/style.css" rel="stylesheet"/>
	</head>
<body>
	<div id="beer-panel" class="ui-widget ui-widget-content ui-corner-all">
		<?php
			include 'PublicBeerPanel.php';
		?>
	</div>

	<!-- Load scripts after the body, so they don't block rendering of the page -->
	<!-- <script type="text/javascript" src="js/jquery-1.11.0.js"></script> -->
		<script type="text/javascript" src="js/jquery-1.11.0.min.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="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>
	</body>
</html>
Next create another new file with vi or nano called PublicBeerPanel.php with these contents (Fixes display of BrewName variable with decoded URL formatting)
Code:
<?php
/* Copyright 2012 BrewPi/Elco Jacobs.
* This file is part of BrewPi.

* BrewPi is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.

* BrewPi is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.

* You should have received a copy of the GNU General Public License
* along with BrewPi. If not, see <http://www.gnu.org/licenses/>.
*/
?>
<div id="top-bar" class="ui-widget ui-widget-header ui-corner-all">
	<div id="lcd" class="lcddisplay"><span class="lcd-text">
		<span class="lcd-line" id="lcd-line-0">Live LCD waiting</span>
		<span class="lcd-line" id="lcd-line-1">for update from</span>
		<span class="lcd-line" id="lcd-line-2">script...</span>
		<span class="lcd-line" id="lcd-line-3"></span>
	</div>
	<div id="logo-container">
		<img src="brewpi_logo.png">
		<div id=beer-name-container>
			<span>Fermenting: </span><span><?php echo urldecode($beerName);?></span>
			<span class="data-logging-state"></span>
		</div>
	</div>
</div>
<div class="chart-container">
	<div id="curr-beer-chart-label" class="beer-chart-label"></div>
	<div id="curr-beer-chart" class="beer-chart" style="width:815px; height:390px"></div>
		<div id="curr-beer-chart-controls" class="beer-chart-controls" style="display: none">
		<div id="curr-beer-chart-buttons" class="beer-chart-buttons">
			<div class="beer-chart-legend-row">
					<button class="refresh-curr-beer-chart" title="Refresh"></button>
				<div class="beer-chart-legend-label">Refresh Chart</div>
				<br class="crystal" />
			</div>
			<div class="beer-chart-legend-row last">
					<button class="chart-help" title="Help"></button>
				<div class="beer-chart-legend-label">Help</div>
				<br class="crystal" />
			</div>
			</div>
		<div id="curr-beer-chart-legend" class="beer-chart-legend">
			<div class="beer-chart-legend-row time">
				<div class="beer-chart-legend-time">Date/Time</div>
			</div>
			<div class="beer-chart-legend-row beerTemp">
				<div class="toggle beerTemp" onClick="toggleLine(this)"></div>
				<div class="beer-chart-legend-label" onClick="toggleLine(this)">Beer Temp</div>
				<div class="beer-chart-legend-value">--</div>
				<br class="crystal" />
			</div>
			<div class="beer-chart-legend-row beerSet">
				<div class="toggle beerSet" onClick="toggleLine(this)"></div>
				<div class="beer-chart-legend-label" onClick="toggleLine(this)">Beer Setting</div>
				<div class="beer-chart-legend-value">--</div>
				<br class="crystal" />
			</div>
			<div class="beer-chart-legend-row fridgeTemp">
				<div class="toggle fridgeTemp" onClick="toggleLine(this)"></div>
				<div class="beer-chart-legend-label" onClick="toggleLine(this)">Fridge Temp</div>
				<div class="beer-chart-legend-value">--</div>
				<br class="crystal" />
			</div>
			<div class="beer-chart-legend-row fridgeSet">
				<div class="toggle fridgeSet" onClick="toggleLine(this)"></div>
				<div class="beer-chart-legend-label" onClick="toggleLine(this)">Fridge Setting</div>
				<div class="beer-chart-legend-value">--</div>
				<br class="crystal" />
			</div>
			<div class="beer-chart-legend-row roomTemp">
				<div class="toggle roomTemp" onClick="toggleLine(this)"></div>
				<div class="beer-chart-legend-label" onClick="toggleLine(this)">Room Temp</div>
				<div class="beer-chart-legend-value">--</div>
				<br class="crystal" />
			</div>
			<div class="beer-chart-legend-row state">
				<div class="state-indicator"></div>
				<div class="beer-chart-legend-label"></div>
				<br class="crystal" />
			</div>
			<div class="beer-chart-legend-row annotation last">
				<div class="toggleAnnotations dygraphDefaultAnnotation" onClick="toggleAnnotations(this)">A</div>
				<div class="beer-chart-legend-label" onClick="toggleAnnotations(this)">Annotations</div>
				<br class="crystal" />
			</div>
		</div>
	</div>
</div>
<div id="chart-help-popup" title="Beer graph help" style="display: none">
	<p>This chart displays all temperatures and state information logged by BrewPi.
	Not all temperatures are shown by default, but you can toggle them with the colored dots.</p>
	<p>Click and drag left or right to zoom horizontally, click and drag up or down to zoom vertically. Double click to zoom out.
	When zoomed in, you can hold shift to pan around. On your phone or tablet you can just pinch to zoom.</p>
	<p>The state information is shown as colored bars at the bottom of the graph, explanation below.</p>
	<div class="state-info"><span class="state-color state-idle"></span><span class="state-name">Idle</span>
		<span class="state-explanation">
			No actuator is active.
		</span>
	</div>
	<div class="state-info">
		<span class="state-color state-cooling"></span><span class="state-name">Cooling</span>
		<span class="state-explanation">
		The fridge is cooling!
		</span>
	</div>
	<div class="state-info"><span class="state-color state-heating"></span><span class="state-name">Heating</span>
		<span class="state-explanation">
		The heater is heating!
		</span>
	</div>
	<div class="state-info"><span class="state-color state-waiting-to-cool"></span><span class="state-name">Waiting to cool</span>
		<span class="state-explanation">
		The fridge is waiting to start cooling. It has to wait because BrewPi has just cooled or heated. There is a a minimum time for between cool cycles and a minimum time for switching from heating to cooling.
		</span>
	</div>
	<div class="state-info"><span class="state-color state-waiting-to-heat"></span><span class="state-name">Waiting to heat</span>
		<span class="state-explanation">
		Idem for heating. There is a a minimum time for between heat cycles and a minimum time for switching from cooling to heating.
		</span>
	</div>
	<div class="state-info"><span class="state-color state-cooling-min-time"></span><span class="state-name">Cooling minimum time</span>
		<span class="state-explanation">
		There is a minimum on time for each cool cycle. When the fridge hits target but has not cooled the minimum time, it will continue cooling until the minimum time has passed.
		</span>
	</div>
	<div class="state-info"><span class="state-color state-heating-min-time"></span><span class="state-name">Heating minimum time</span>
		<span class="state-explanation">
		There is a minimum on time for each heat cycle too. When the fridge hits target but has not heated the minimum time, it will continue heating until the minimum time has passed.
		</span>
	</div>
	<div class="state-info"><span class="state-color state-waiting-peak"></span><span class="state-name">Waiting for peak detect</span>
		<span class="state-explanation">
		BrewPi estimates fridge temperature overshoot to be able to turn off the actuators early. To adjust the estimators, it has to detect the peaks in fridge temperature.
		When BrewPi would be allowed to heat/cool by the time limits but no peak has been detected yet for previous cycle, it waits in this state for a peak.
		</span>
	</div>
</div>

Secondly I worked out a way host both the Password Protected BrewPi site as well as the one with all of the configurable buttons removed with only a few minor changes. See Below:

  • Putty/SSH into your BrewPi system(or keyboard if its hooked up to a monitor).
  • Run the following commands to enable htaccess
  • cd /etc/apache2/sites-available
  • sudo nano default
  • change file to look like this where under Directory /var/www there is AllowOverride All
    Code:
    <VirtualHost *:80>
            ServerAdmin webmaster@localhost
            ServerName BrewPi
    
            DocumentRoot /var/www
            <Directory />
                    Options FollowSymLinks
                    AllowOverride None
            </Directory>
            <Directory /var/www/>
                    DirectoryIndex index.php
                    Options Indexes FollowSymLinks MultiViews
                    AllowOverride All
                    Order allow,deny
                    allow from all
            </Directory>
    
            ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
            <Directory "/usr/lib/cgi-bin">
                    AllowOverride None
                    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                    Order allow,deny
                    Allow from all
            </Directory>
    
            ErrorLog ${APACHE_LOG_DIR}/error.log
    
            # Possible values include: debug, info, notice, warn, error, crit,
            # alert, emerg.
            LogLevel warn
    
            CustomLog ${APACHE_LOG_DIR}/access.log combined
    </VirtualHost>
  • Now its time to restart apache:
  • cd /usr/sbin
  • sudo apache2ctl -k graceful
  • Go to /var/www directory
  • Create a file using vi editor called .htaccess and inside of it put the following, modify the first line where it is bold and replace it with what you plan to call your Private PHP file.
    Code:
    <FilesMatch "admin.php">
    Allow from all
    authuserFile /var/www/private/.htpasswd
    AuthName "YOUR LOGIN HERE"
    AuthType Basic
    <Limit GET POST>
    require valid-user
    </Limit>
    </FilesMatch>
    <FilesMatch "beer-panel.php|config.php|configuration.php|control-panel.php|maintenance-panel.php|previous_beers.php|program_arduino.php|s ave_beer_profile.php|start_script.php">
    Order deny,allow
    Deny from All
    Allow from 192.168.1.
    </FilesMatch>
  • Edit the last allow line that says Allow from 192.168.1 to match up with whatever your local LAN IP address scheme is. You dont need wildcards or subnet masks or anything else.
  • Create a directory called private(to store the above .htpasswd file), and go into it.
  • Type htpasswd -c .htpasswd <UserName>, it will pop up asking you for a password, and make you repeat it.
  • Your done! If you try going to Http://YourBrewPiWebSite.com/admin.php it will now ask you for a password and take you to the "Full BrewPi site". But if you go to http://YourBrewPiWebSite.com it will take you to the "Public Site" without the need for a password.
  • Also make sure obviously that if you want to access this from the external world that your RPI is port forwarding properly through your router.

Sorry, didn't get the quotes in on the last post.

I am hung up on #3 trying to make a file and insert contents.

Thanks for any help.
 
If you wanted to build what's shown in the first post with SSRs instead of the mechanical relays, how exactly would you wire the control side of the SSRs to the Arduino? Is it as simple as connecting pins 5 and 6 of the Arduino to the + DC posts on the SSRs and the ground pin on the Arduino to the - DC posts on the SSRs?
 
If you wanted to build what's shown in the first post with SSRs instead of the mechanical relays, how exactly would you wire the control side of the SSRs to the Arduino? Is it as simple as connecting pins 5 and 6 of the Arduino to the + DC posts on the SSRs and the ground pin on the Arduino to the - DC posts on the SSRs?


Yep. Although the genuine shield from brewpub uses fets to drive the ssrs. But you should be fine.
 
Yep. Although the genuine shield from brewpub uses fets to drive the ssrs. But you should be fine.

Thanks! What's the benefit to using fets? Are there any downsides to switching the SSRs directly from the Arduino like I proposed?

I don't even know why I'm considering using SSRs now. I already have the SainSmart relay board, which I suppose I could mount near the refrigerator's compressor, and run the four control wires to it. The way I have it built now, the relay board is in an enclosure with the Pi, the Arduino, and a duplex outlet, but I don't want to turn the entire refrigerator on and off with the BrewPi. I want to only switch on and off the compressor/condenser fan and leave power to the evaporator fan and lights 24/7. Is there any reason to not mount the relay board remotely, away from the Arduino/Pi?
 
Depending on your fridge there may be a defrost timer built in. If you don't know how to wire in to the compressor and fan (which may need to be wired up inside the fridge to bypass the defroster) then you're better off just the way you are.
 
Nah, the wiring is cake. Just wondering about SSR vs mechanical relays and where to physically mount the relays if I go with them over the SSRs. There's no defrost on this model.
 
If you wanted to build what's shown in the first post with SSRs instead of the mechanical relays, how exactly would you wire the control side of the SSRs to the Arduino? Is it as simple as connecting pins 5 and 6 of the Arduino to the + DC posts on the SSRs and the ground pin on the Arduino to the - DC posts on the SSRs?


You need to make sure you change the brewpi setting from inverted to not inverted as well.

I use SSR without fets and wired them up as you said for me the major difference I've noticed is that the the lcd doesn't scramble.
 
Has anyone extended probes cable length? What are chances of that impacting accuracy?
 
Has anyone extended probes cable length? What are chances of that impacting accuracy?

The dallas 1 wire probes are digital so length shouldn't effect their accuracy. It might effect the integrity of your signal and weather or not you get a reading at all. I've heard of people running these probes all through their house, i'd bet what ever length you're thinking of they will work just fine.
 
The dallas 1 wire probes are digital so length shouldn't effect their accuracy. It might effect the integrity of your signal and weather or not you get a reading at all. I've heard of people running these probes all through their house, i'd bet what ever length you're thinking of they will work just fine.


At the moment they are 1m long and i need them to be around 50cm longer.

I guess that signal should be fine as long as the connections are good.
 
At the moment they are 1m long and i need them to be around 50cm longer.

I guess that signal should be fine as long as the connections are good.

Folks around here like to use telephone cord and connectors. Look into RJ11 or similar.
 
they come in 1-, 2- and 3-meter lengths, so you should be OK

according to THIS website, my understanding is it will support lengths of 200-500 meters.

so, you might be good out to &#8539; of a mile
 
Folks around here like to use telephone cord and connectors. Look into RJ11 or similar.



they come in 1-, 2- and 3-meter lengths, so you should be OK

according to THIS website, my understanding is it will support lengths of 200-500 meters.

so, you might be good out to &#8539; of a mile


I thought so, but wanted to check other people experiences.

Many thanks!
 
Will that display it even if it's on USB0 or USB1? (that's where my grey market one lives)

Yes, it should find any devices downstream of the root ports.

Sorry to take so long to reply, stupid app sometimes loses track of unread posts...

Cheers!
 
I joined this crowd yesterday. I am excited to get this completely hooked up and running my fermentation chamber. I still need a couple of parts to be 100% finished.

Still need: relay module, thermowells, and a project box of some kind

I downloaded Debian 8.2 yesterday and installed it on an old Dell Latitude D620. I have an Arduino Uno Rev C. I have the Uno plugged into the back USB socket on the Dell. I have the Dell wired to my home network and am going to keep it this way. The Debian install mentioned something about needing non-free firmware for the wireless adapter. I wasn't planning on running wirelessly so no biggie. I configured the OS to run with a static IP address on my network.

A couple of things I noticed during the manual install of BrewPi. The WWW root is now installed in /var/www/html. You have to modify the /etc/apache2/sites-available/000-default.conf file to change the WWW root to /var/www. Do this before installing BrewPi. Also check this file /etc/apache2/apache2.conf to see if the WWW root is pointing to the correct location.

The manual instructions refer to a PI user account that does not exist when installing on a computer. Use your user account in place of the PI user.

After you make any changes to files or directories, make sure that you re-run the fixPermissions.sh script. This fixed an issue I was seeing after I completed my setup.

I wired my setup exactly as described except for the relays (which I don't have yet). In the relays place I put a red LED and a blue LED, to test wiring functionality. I tested my temp sensors using a glass of ice water and everything appears to be working correctly. I just need my missing parts and I should be good to go.

Thanks to everyone for great information in this thread. :mug: I hope I added some info that someone else can use.
 
For now, I only access my BrewPi via wifi when at home as I have not yet set up web access. Is there a simple way to password protect it so people within my wifi's range can't mess with it? It may have been mentioned before, but a search wouldn't bring it up.
 
I joined this crowd yesterday. I am excited to get this completely hooked up and running my fermentation chamber. I still need a couple of parts to be 100% finished.



Still need: relay module, thermowells, and a project box of some kind



I downloaded Debian 8.2 yesterday and installed it on an old Dell Latitude D620. I have an Arduino Uno Rev C. I have the Uno plugged into the back USB socket on the Dell. I have the Dell wired to my home network and am going to keep it this way. The Debian install mentioned something about needing non-free firmware for the wireless adapter. I wasn't planning on running wirelessly so no biggie. I configured the OS to run with a static IP address on my network.

Cool. I am running a laptop also. Runs well. Not that hard to link to the non free components needed and install the wifi components.



A couple of things I noticed during the manual install of BrewPi. The WWW root is now installed in /var/www/html. You have to modify the /etc/apache2/sites-available/000-default.conf file to change the WWW root to /var/www. Do this before installing BrewPi. Also check this file /etc/apache2/apache2.conf to see if the WWW root is pointing to the correct location.
I'm still running wheezy so haven't had to go this yet. Still runs fine. Prob have to change one day.



The manual instructions refer to a PI user account that does not exist when installing on a computer. Use your user account in place of the PI user.



After you make any changes to files or directories, make sure that you re-run the fixPermissions.sh script. This fixed an issue I was seeing after I completed my setup.



I wired my setup exactly as described except for the relays (which I don't have yet). In the relays place I put a red LED and a blue LED, to test wiring functionality. I tested my temp sensors using a glass of ice water and everything appears to be working correctly. I just need my missing parts and I should be good to go.



Thanks to everyone for great information in this thread. :mug: I hope I added some info that someone else can use.


Great job. If you got this far you'll be using it in no time
 
For now, I only access my BrewPi via wifi when at home as I have not yet set up web access. Is there a simple way to password protect it so people within my wifi's range can't mess with it? It may have been mentioned before, but a search wouldn't bring it up.

I use a ssh tunnel to remotely access my brewpi. Since you already have a running Raspberry this is pretty easy to do:

http://www.heystephenwood.com/2012/12/raspberry-pi-as-ssh-tunnel-gateway.html


If you want a simple password protection use this (not very secure) :

https://httpd.apache.org/docs/2.2/howto/auth.html
 
hello guys. i have read post after post, looked at all the different setups, and finally decided to make my own. I have it all wired up and in my project box but here is my dilemma.....
i want to add external leds to show which relay is active. where do i attach the led wires to? this is where im lost. can i just have them come directly out of the relay? any info would be appreciated.
 
Does anyone happen to know how you can just start over with this
I need to erase everything on the pi and give it another go
Thanks in advance
 
Thanks it's as easy as that?
The pi won't hold on the the changes I've made?
 
hello guys. i have read post after post, looked at all the different setups, and finally decided to make my own. I have it all wired up and in my project box but here is my dilemma.....
i want to add external leds to show which relay is active. where do i attach the led wires to? this is where im lost. can i just have them come directly out of the relay? any info would be appreciated.

LEDs need current limiting resistors in series, something around 240 ohms for a 5V current source.
This is how I have my front panel indicators hooked up to the UNO.
Note the orientation of the LEDs. Anodes go to power...

brewpi_leds.jpg

Cheers!
 
Anyone know why my brewpi web page would be responding very slowly? It seems like it takes forever for the graphs to load and its almost unusable. I've tried different browsers and power cycling but its still very slow. The initial webpage loads quickly but the graphs take forever. Is there a way to clear the old graph data?

Any advice would be great.
 
What are you running for a processor?

Afaik the only way to clear graph data is to start a new brew...

Cheers!

This worked. I haven't used the fermentation chamber in a few months and it was still running collecting data from the last brew apparently.

Started a new brew and it now works as it should.
 
This worked. I haven't used the fermentation chamber in a few months and it was still running collecting data from the last brew apparently.

Started a new brew and it now works as it should.

check the var\www\data\"the last brew apparently" folder and there will be .json files for each day it was logging

delete the ones you don't care about


and hope everyone remembered to "fall back" lol

fall behind.JPG
 
This worked. I haven't used the fermentation chamber in a few months and it was still running collecting data from the last brew apparently.

Started a new brew and it now works as it should.

Yup if the dataset gets excessively large it takes forever to render, obviously it wasnt really created to capture data for more than 3-4 weeks although ive gone as long as 2 months and it had no issues.
 
LEDs need current limiting resistors in series, something around 240 ohms for a 5V current source.
This is how I have my front panel indicators hooked up to the UNO.
Note the orientation of the LEDs. Anodes go to power...

View attachment 313230

Cheers!
Really appreciate the diagram. Got it. As soon as I get the LEDs (already shipped), I'll install and post pics!!
 
Status
Not open for further replies.
Back
Top