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.
So...I did the BrewPi install, but I forgot to write down the IP address where to find the interface. I'm sure if I looked through all 500 pages of this, I'd find it, but can anyone tell me how to find it without doing that? :D
 
the packaging and the listing gave me black (g) red (5v) yellow (data)

which made sense to me but I went ahead and tried different wiring combos, gave the arduino its own power supply, tested my resistors. now ive gone and done the same thing with a little program loaded on the arduino called one wire address finder; it cant find any. So now I'm down to either all of my probes are bad or my arduino is bad.

is there a way to test my probes and or my onewire bus with a meter?


It's been a long time, but I posted to this forum over a year ago how to figure out your wiring. I don't entirely recall the resistance values i got when I did it. but the gist goes like this. take your multimeter and set it to measure resistance. try different pairs with the multimeter until you read a resistance value (i think it was like .68 or .86 or something when I did it). once you have a reading look at what color you have attached to the ground lead on your mm. you just figured out which one is ground! now it's a 50/50 chance as to which wire is 5v and which one is data. so you can just use trial and error.
 
So...I did the BrewPi install, but I forgot to write down the IP address where to find the interface. I'm sure if I looked through all 500 pages of this, I'd find it, but can anyone tell me how to find it without doing that? :D


The IP address will be in your network, not in this forum……

Look in your router, under attached devices and find one labeled either raspberry or edimax
 
Leaving application ports open with active listeners can be risky.
When I was a captive employee I used to run a password-protected remote desktop program on my home workstation so I could get to it from work.

One late night I was doing home work and suddenly the mouse took off on its own - and obviously, under control of something sentient. :eek:
Eventually I was able to keyboard my way to the VNC icon and shut it down, but the whole episode scared the hell out of me.

I still have listeners on open ports (eg: my R'Pints/BrewPi hosts and all of their networked agents) but they're rather dumb machines with limited scope and no credentials to talk to anything else on my network - and still require a decent-strength password.

Everything else can only be reached via VPN - and a much stronger password...

Cheers!
 
So...I did the BrewPi install, but I forgot to write down the IP address where to find the interface. I'm sure if I looked through all 500 pages of this, I'd find it, but can anyone tell me how to find it without doing that? :D

ifconfig in terminal will show you your IP
 
Last edited:
It's been a long time, but I posted to this forum over a year ago how to figure out your wiring. I don't entirely recall the resistance values i got when I did it. but the gist goes like this. take your multimeter and set it to measure resistance. try different pairs with the multimeter until you read a resistance value (i think it was like .68 or .86 or something when I did it). once you have a reading look at what color you have attached to the ground lead on your mm. you just figured out which one is ground! now it's a 50/50 chance as to which wire is 5v and which one is data. so you can just use trial and error.

once I switched over to mega ohms I was able to get 0.9 between the ground and the other 2. But I had found another way to sort of check the probes. On the DS18B20 schematics there is a diode between the ground and data, and the ground and 5v. A normally functioning diode will read between 0.45v and 0.9v drop across the diode; mine gave me 0.55Vdrop. This test is nice since it is unidirectional. So between the 2 tests I know for sure that one of the probes is dead and that at least the ground was labeled properly.
I did a continuity test on the arduino board for the analog pins and although that seems to check out, I did notice at the time that the ATmega chip wasnt fully seated in the ic holder, I fulled seated it, reloaded my little onewire address checker and still nothing (and yes I tried multiple wiring configurations).
With some searching I did find a developer mention having seen the analog controller die on the physical ATmega chip without it causing other problems. So he suggested loading a little program for checking out the built in temp probe on the ATmega since its supposed to be on the same bus as the analog pins.
sadly this actually returns a value which would mean the analog bus should be fine.
at this point i wish i had an oscilloscope to test the 1wire communication just to see if its even trying.

well now I'm really confused but I think the easiest answer is going to be get a replacement arduino and grab some bare DS18B20 so I can wire them myself.
 
Hi Guys,

BrewPi founder here.
I have just updated the legacy branch of the script with everything that is backwards compatible and pushed this to the legacy_dev branch. (legacy branch unchanged for now).

I have tested with a Leonardo and I can program it from the web interface, and even running the updater, or updateFirmware.py.
I also tested with a Leonoardo running Blink, this works on my test system too.

Before I merge legacy_dev into legacy, can you guys give it a test?

You should be able to run the updater.py script with --ask to check it out.

Hopefully it will fix some of the issues that people have with flashing their Arduino.

Note: I updated these scripts to reduce the number of Arduino users asking for support.
For new users, I still do not recommend picking Arduino. No firmware updates will come out for it. And the control algorithms in the firmware are 364 commits behind on our latest release.

just tried this from the legacy dev branch - worked fine for me. Thanks again for your work elkoe :mug:

Pi model Model B Revision 2.0
Arduino connected via usb with pi running wifi dongle
Ran this on putty from windows 7
Output of putty below. Worked fine no issue and brewpi GUI on chrome restarted with no problem.


pi@brewpipi ~/brewpi-tools $ sudo python updater.py --ask
Using interactive (advanced) update with user input


######################################################
#### ####
#### Welcome to the BrewPi Updater! ####
#### ####
######################################################

Checking whether the update script is up to date
/home/pi/brewpi-tools is up-to-date.



*** Updating BrewPi script repository ***

Stopping running instances of BrewPi
Quit message sent to BrewPi instance with pid 6578!
You are on branch legacy

Available branches on the remote 'origin' for /home/brewpi:
[0] beta
[1] develop
[2] feature/ejsloggingdate
[3] legacy
[4] legacy_dev
[5] master
[6] Skip updating this repository
Enter the number of the branch you wish to update [legacy]:4
The legacy_dev branch is not your currently active branch - would you like me to check it out for you now? (Required to continue) [Y/n]: y

Successfully switched to legacy_dev
The latest commit in /home/brewpi is f8b8840904852542b46bb7c825a8adf26f8ac396 on Sat, 09 Apr 2016 16:14:22
The latest commit on origin/legacy_dev is f8b8840904852542b46bb7c825a8adf26f8ac396 on Sat, 09 Apr 2016 16:14:22
Your local version of /home/brewpi is up to date!


*** Updating BrewPi web interface repository ***
You are on branch legacy

Available branches on the remote 'origin' for /var/www:
[0] beta
[1] develop
[2] feature/chart-export
[3] feature/notifications
[4] legacy
[5] master
[6] Skip updating this repository
Enter the number of the branch you wish to update [legacy]:4
The latest commit in /var/www is 398f1b50c71904f69e836b26299dd178d9d4515a on Mon, 11 Jan 2016 13:16:11
The latest commit on origin/legacy is 398f1b50c71904f69e836b26299dd178d9d4515a on Mon, 11 Jan 2016 13:16:11
Your local version of /var/www is up to date!

One our more repositories were updated, running runAfterUpdate.sh from /home/brewpi/utils...
Installing dependencies, updating CRON and fixing file permissions...
Cleaning up BrewPi script directory...
Deleted 13 old .pyc files

***** Installing/updating required packages... *****

Reading package lists... Done
Building dependency tree
Reading state information... Done
apache2 is already the newest version.
build-essential is already the newest version.
git-core is already the newest version.
libapache2-mod-php5 is already the newest version.
php5 is already the newest version.
php5-cgi is already the newest version.
php5-cli is already the newest version.
php5-common is already the newest version.
python-dev is already the newest version.
python-pip is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 86 not upgraded.

***** Installing/updating required python packages via pip... *****

Requirement already up-to-date: pyserial in /usr/local/lib/python2.7/dist-packages
Requirement already up-to-date: psutil in /usr/local/lib/python2.7/dist-packages
Requirement already up-to-date: simplejson in /usr/local/lib/python2.7/dist-packages
Requirement already up-to-date: configobj in /usr/local/lib/python2.7/dist-packages
Requirement already up-to-date: gitpython in /usr/local/lib/python2.7/dist-packages
Requirement already up-to-date: six in /usr/local/lib/python2.7/dist-packages (from configobj)
Requirement already up-to-date: gitdb>=0.6.4 in /usr/local/lib/python2.7/dist-packages (from gitpython)
Requirement already up-to-date: smmap>=0.8.5 in /usr/local/lib/python2.7/dist-packages (from gitdb>=0.6.4->gitpython)
Cleaning up...

***** Done processing BrewPi dependencies *****


***** Updating cron for the brewpi user... *****

no crontab for brewpi
Checking entry for brewpi ...
Done checking entry brewpi ...
Checking entry for wifichecker ...
Done checking entry wifichecker ...
Restarting cron
[ ok ] Restarting periodic command scheduler: cron[....] Stopping periodic command scheduler: cron.
[ ok ] Starting periodic command scheduler: cron.

***** Fixing file permissions for /var/www *****

***** Fixing file permissions for /home/brewpi *****

The update script can automatically check your controller firmware version and program it with the latest release on GitHub, would you like to do this now? [Y/n]:y
Stopping any running instances of BrewPi to check/update controller...

Checking current firmware version...
Apr 23 2016 20:19:39 Opening serial port
Found BrewPi v0.2.4, running commit 2a6f7f05 build 40, running on an Arduino Uno with a revC shield on port /dev/ttyACM0

Current firmware version on controller: 0.2.4

Checking GitHub for available release...

Available releases:

[0] 0.2.10
[1] 0.2.9
[2] 0.2.8
[3] Cancel firmware update
Enter the number [0-3] of the version you want to program [default = 0 (0.2.10)]: 0
Would you like me to try to restore you settings after programming? [Y/n]:
y
Would you like me to try to restore your configured devices after programming? [Y/n]:
y
Downloading firmware...
downloading https://github.com/BrewPi/firmware/releases/download/0.2.10/brewpi-arduino-uno-revC-0_2_10.hex
Latest firmware downloaded to:
/home/brewpi/utils/downloads/0.2.10/brewpi-arduino-uno-revC-0_2_10.hex

Updating firmware...

**** Arduino Program script started ****
Settings will be restored if possible
Devices will be restored if possible
Checking old version before programming.
Apr 23 2016 20:20:26 Opening serial port
Checking current version: Found BrewPi v0.2.4, running commit 2a6f7f05 build 40, running on an Arduino Uno with a revC shield on port /dev/ttyACM0

Requesting old settings from Arduino...
Saved old settings to file settings-Apr-23-2016-20-20-37.json
Loading programming settings from board.txt
Checking hex file size with avr-size...
Program size: 26896 bytes out of max 32256
Programming Arduino with avrdude: /usr/share/arduino/hardware/tools/avrdude -F -e -p atmega328p -c arduino -b 115200 -P /dev/ttyACM0 -U flash:w:"brewpi-arduino-uno-revC-0_2_10.hex" -C /usr/share/arduino/hardware/tools/avrdude.conf
Result of invoking avrdude:

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x1e950f
avrdude: erasing chip
avrdude: reading input file "brewpi-arduino-uno-revC-0_2_10.hex"
avrdude: input file brewpi-arduino-uno-revC-0_2_10.hex auto detected as Intel Hex
avrdude: writing flash (26896 bytes):

Writing | ################################################## | 100% 5.19s

avrdude: 26896 bytes of flash written
avrdude: verifying flash memory against brewpi-arduino-uno-revC-0_2_10.hex:
avrdude: load data flash data from input file brewpi-arduino-uno-revC-0_2_10.hex:
avrdude: input file brewpi-arduino-uno-revC-0_2_10.hex auto detected as Intel Hex
avrdude: input file brewpi-arduino-uno-revC-0_2_10.hex contains 26896 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 4.20s

avrdude: verifying ...
avrdude: 26896 bytes of flash verified

avrdude: safemode: Fuses OK (E:00, H:00, L:00)

avrdude done. Thank you.


Avrdude done, programming succesful!
Giving the Arduino a few seconds to power up...
Back up in 5...
Back up in 4...
Back up in 3...
Back up in 2...
Back up in 1...
Back up in 0...
Waiting for device to reset.
Apr 23 2016 20:21:16 Opening serial port
Waiting for device to reset.
Apr 23 2016 20:21:27 Opening serial port
Checking new version: Found BrewPi v0.2.10 build unknown, running on an Arduino Uno with a revC shield on port /dev/ttyACM0

Resetting EEPROM to default settings
INFO MESSAGE 15: EEPROM initialized
Now checking which settings and devices can be restored...
Trying to restore compatible settings from 0.2.4 to 0.2.10
Migrating these settings: [["tempFormat", "C"], ["tempSetMin", 1.0], ["tempSetMax", 30.0], ["Kp", 5.0], ["Ki", 0.25], ["Kd", -1.5], ["iMaxErr", 0.5], ["pidMax", 10.0], ["idleRangeH", 1.0], ["idleRangeL", -1.0], ["heatTargetH", 0.299], ["heatTargetL", -0.199], ["coolTargetH", 0.199], ["coolTargetL", -0.299], ["maxHeatTimeForEst", 600], ["maxCoolTimeForEst", 1200], ["fridgeFastFilt", 1], ["fridgeSlowFilt", 4], ["fridgeSlopeFilt", 3], ["beerFastFilt", 3], ["beerSlowFilt", 4], ["beerSlopeFilt", 4], ["lah", 0], ["hs", 0], ["heatEst", 0.199], ["coolEst", 5.0], ["fridgeSet", null], ["beerSet", null], ["mode", "o"]]
Omitting these settings: []
INFO MESSAGE 12: Received new setting: tempFormat = C
INFO MESSAGE 12: Received new setting: tempSetMin = 1.0
INFO MESSAGE 12: Received new setting: tempSetMax = 30.0
INFO MESSAGE 12: Received new setting: Kp = 5.0
INFO MESSAGE 12: Received new setting: Ki = 0.25
INFO MESSAGE 12: Received new setting: Kd = -1.5
INFO MESSAGE 12: Received new setting: iMaxErr = 0.5
INFO MESSAGE 12: Received new setting: pidMax = 10.0
INFO MESSAGE 12: Received new setting: idleRangeH = 1.0
INFO MESSAGE 12: Received new setting: idleRangeL = -1.0
INFO MESSAGE 12: Received new setting: heatTargetH = 0.299
INFO MESSAGE 12: Received new setting: heatTargetL = -0.199
INFO MESSAGE 12: Received new setting: coolTargetH = 0.199
INFO MESSAGE 12: Received new setting: coolTargetL = -0.299
INFO MESSAGE 12: Received new setting: maxHeatTimeForEst = 600
INFO MESSAGE 12: Received new setting: maxCoolTimeForEst = 1200
INFO MESSAGE 12: Received new setting: fridgeFastFilt = 1
INFO MESSAGE 12: Received new setting: fridgeSlowFilt = 4
INFO MESSAGE 12: Received new setting: fridgeSlopeFilt = 3
INFO MESSAGE 12: Received new setting: beerFastFilt = 3
INFO MESSAGE 12: Received new setting: beerSlowFilt = 4
INFO MESSAGE 12: Received new setting: beerSlopeFilt = 4
INFO MESSAGE 12: Received new setting: lah = 0
INFO MESSAGE 12: Received new setting: hs = 0
INFO MESSAGE 12: Received new setting: heatEst = 0.199
INFO MESSAGE 12: Received new setting: coolEst = 5.0
INFO MESSAGE 12: Received new setting: fridgeSet = null
INFO MESSAGE 12: Received new setting: beerSet = null
INFO MESSAGE 12: Received new setting: mode = o
Now trying to restore previously installed devices: [{u'a': u'285728D3050000CF', u'c': 1, u'b': 1, u'd': 0, u'f': 9, u'i': 0, u'h': 2, u'j': 0.0, u'p': 18, u't': 1}, {u'a': u'2897C05506000080', u'c': 1, u'b': 0, u'd': 0, u'f': 6, u'i': 1, u'h': 2, u'j': 0.0, u'p': 18, u't': 1}, {u'a': u'280A485706000089', u'c': 1, u'b': 0, u'd': 0, u'f': 6, u'i': 2, u'h': 2, u'j': 0.0, u'p': 18, u't': 1}]
Restoring device: {"a": "285728D3050000CF", "c": 1, "b": 1, "d": 0, "f": 9, "i": 0, "h": 2, "j": 0.0, "p": 18, "t": 1}
Arduino reports: device updated to: {"i":0,"t":1,"c":1,"b":1,"f":9,"h":2,"d":0,"p":18,"a":"285728D3050000CF","j": 0.000}

Restoring device: {"a": "2897C05506000080", "c": 1, "b": 0, "d": 0, "f": 6, "i": 1, "h": 2, "j": 0.0, "p": 18, "t": 1}
WARNING 2: Temperature sensor disconnected pin 18, address 2897C05506000080
Arduino reports: device updated to: {"i":1,"t":1,"c":1,"b":0,"f":6,"h":2,"d":0,"p":18,"a":"2897C05506000080","j": 0.000}

Restoring device: {"a": "280A485706000089", "c": 1, "b": 0, "d": 0, "f": 6, "i": 2, "h": 2, "j": 0.0, "p": 18, "t": 1}
Arduino reports: device updated to: {"i":2,"t":1,"c":1,"b":0,"f":6,"h":2,"d":0,"p":18,"a":"280A485706000089","j": 0.000}

Restoring installed devices done!
**** Program script done! ****
BrewPi script will restart automatically.


*** Done updating BrewPi! ***
 
fwiw, if you are using an RPi as a BrewPi host you can find plenty of python scripts to read ds18b20 probes.

also fwiw, all of my probes are either red/yellow/black or red/white/black with a consistent 5v/one-wire/gnd scheme. So you're likely good if you followed that.

The probes that were messing with peoples heads used red/yellow/green and I'm still not certain if there was any consistent scheme...

Cheers!
 
just tried this from the legacy dev branch - worked fine for me. Thanks again for your work elkoe :mug:[...]

And thanks for posting the session logs. From what I see there, I'm just about ready to try upgrading one of my backup BrewPi hosts and see how well the installer/upgrader copes with a non-standard, multiple-instance configuration...

Cheers!
 
once I switched over to mega ohms I was able to get 0.9 between the ground and the other 2. But I had found another way to sort of check the probes. On the DS18B20 schematics there is a diode between the ground and data, and the ground and 5v. A normally functioning diode will read between 0.45v and 0.9v drop across the diode; mine gave me 0.55Vdrop. This test is nice since it is unidirectional. So between the 2 tests I know for sure that one of the probes is dead and that at least the ground was labeled properly.

I did a continuity test on the arduino board for the analog pins and although that seems to check out, I did notice at the time that the ATmega chip wasnt fully seated in the ic holder, I fulled seated it, reloaded my little onewire address checker and still nothing (and yes I tried multiple wiring configurations).

With some searching I did find a developer mention having seen the analog controller die on the physical ATmega chip without it causing other problems. So he suggested loading a little program for checking out the built in temp probe on the ATmega since its supposed to be on the same bus as the analog pins.

sadly this actually returns a value which would mean the analog bus should be fine.

at this point i wish i had an oscilloscope to test the 1wire communication just to see if its even trying.



well now I'm really confused but I think the easiest answer is going to be get a replacement arduino and grab some bare DS18B20 so I can wire them myself.


You are using a 4.7k resistor right? I haven't actually seen you mention the resistor in all this
 
You are using a 4.7k resistor right? I haven't actually seen you mention the resistor in all this

yeah the bag I picked up all measure around 4.6k ohm, with the worst being at 4.60 and the best being 4.66.
can 50 or so ohms throw off 1wire? Ive seen a bunch of documentation simply say ~5k ohm with then the schematic labeling the resistor as 4.7k so I figured this was within tolerance
 
Elkoe,
Test 2
Changed uno for new? One. Just plugged it into pi and usb then ran updater
Hot plug shield.
pi still running
Pi model Model B Revision 2.0
Arduino connected via usb with pi running wifi dongle
Ran this on putty from windows 7
Output of putty below. Seemed to work ok but wont recognize beer probe assignment.
Recognizes device but wont assign
In device configuration it shows
Where I assigned the beer probe twice to slot 2 and once to slot 3
beer probe doesn’t show on web GUI other probes ok
device type not recognised

Parsing installed devices
Parsing available devices
Device list updated for uno with a revC shield
Device config command sent, U:{"i":"2","c":"1","b":"0","f":"9","h":"2","p":"18","a":"2897C05506000080"}
Device config command sent, U:{"i":"2","c":"1","b":"0","f":"9","h":"2","p":"18","a":"2897C05506000080"}
Device config command sent, U:{"i":"3","c":"1","b":"0","f":"9","h":"2","p":"18","a":"2897C05506000080"}

Logs show error
Apr 23 2016 23:12:07 Opening serial port
Apr 23 2016 23:12:07 Notification: Script started for beer 'trial4'
Apr 23 2016 23:12:17 Checking software version on controller...
Apr 23 2016 23:12:18 Found BrewPi v0.2.10 build unknown, running on an Arduino Uno with a revC shield on port /dev/ttyACM0

Apr 23 2016 23:13:05 Installed devices received: [{"a": "280A485706000089", "c": 1, "b": 0, "d": 0, "f": 6, "i": 0, "h": 2, "j": 0.0, "p": 18, "t": 1, "v": 23.938}, {"a": "285728D3050000CF", "c": 1, "b": 0, "d": 0, "f": 5, "i": 1, "h": 2, "j": 0.0, "p": 18, "t": 1, "v": 21.5}]
Apr 23 2016 23:13:06 Available devices received: [{"a": "2897C05506000080", "c": 1, "b": 0, "d": 0, "f": 0, "i": -1, "h": 2, "j": 0.0, "p": 18, "t": 0, "v": 23.688}, {"c": 1, "b": 0, "d": 0, "f": 0, "i": -1, "h": 1, "p": 2, "t": 0, "x": 1}, {"c": 1, "b": 0, "d": 0, "f": 0, "i": -1, "h": 1, "p": 5, "t": 0, "x": 1}, {"c": 1, "b": 0, "d": 0, "f": 0, "i": -1, "h": 1, "p": 6, "t": 0, "x": 1}, {"c": 1, "b": 0, "d": 0, "f": 0, "i": -1, "h": 1, "p": 19, "t": 0, "x": 1}, {"c": 1, "b": 0, "d": 0, "f": 0, "i": -1, "h": 1, "p": 4, "t": 0, "x": 1}]
Apr 23 2016 23:13:16 Device updated to: {"i":2,"t":0,"c":0,"b":0,"f":0,"h":0,"d":0,"p":0}
Apr 23 2016 23:13:16 Controller debug message: ERROR 7: Invalid config for device owner type 2 beer=0 chamber=1
Apr 23 2016 23:13:16 Controller debug message: ERROR 3: Device defifination update specification is invalid
Apr 23 2016 23:14:09 Device updated to: {"i":2,"t":0,"c":0,"b":0,"f":0,"h":0,"d":0,"p":0}
Apr 23 2016 23:14:09 Controller debug message: ERROR 7: Invalid config for device owner type 2 beer=0 chamber=1
Apr 23 2016 23:14:09 Controller debug message: ERROR 3: Device defifination update specification is invalid
Apr 23 2016 23:20:50 Device updated to: {"i":3,"t":0,"c":0,"b":0,"f":0,"h":0,"d":0,"p":0}
Apr 23 2016 23:20:50 Controller debug message: ERROR 7: Invalid config for device owner type 2 beer=0 chamber=1
Apr 23 2016 23:20:50 Controller debug message: ERROR 3: Device defifination update specification is invalid

Worked fine no issue and brewpi GUI on chrome restarted with no problem.

pi@brewpipi ~/brewpi-tools $ sudo python updater.py --ask

Using interactive (advanced) update with user input


######################################################
#### ####
#### Welcome to the BrewPi Updater! ####
#### ####
######################################################

Checking whether the update script is up to date
/home/pi/brewpi-tools is up-to-date.



*** Updating BrewPi script repository ***

Stopping running instances of BrewPi
You are on branch legacy_dev

Available branches on the remote 'origin' for /home/brewpi:
[0] beta
[1] develop
[2] feature/ejsloggingdate
[3] legacy
[4] legacy_dev
[5] master
[6] Skip updating this repository
Enter the number of the branch you wish to update [legacy_dev]:4
The latest commit in /home/brewpi is f8b8840904852542b46bb7c825a8adf26f8ac396 on Sat, 09 Apr 2016 16:14:22
The latest commit on origin/legacy_dev is f8b8840904852542b46bb7c825a8adf26f8ac396 on Sat, 09 Apr 2016 16:14:22
Your local version of /home/brewpi is up to date!


*** Updating BrewPi web interface repository ***
You are on branch legacy

Available branches on the remote 'origin' for /var/www:
[0] beta
[1] develop
[2] feature/chart-export
[3] feature/notifications
[4] legacy
[5] master
[6] Skip updating this repository
Enter the number of the branch you wish to update [legacy]:4
The latest commit in /var/www is 398f1b50c71904f69e836b26299dd178d9d4515a on Mon, 11 Jan 2016 13:16:11
The latest commit on origin/legacy is 398f1b50c71904f69e836b26299dd178d9d4515a on Mon, 11 Jan 2016 13:16:11
Your local version of /var/www is up to date!

No changes were made, skipping runAfterUpdate.sh.
If you encounter problems, you can start it manually with:
sudo /home/brewpi/utils/runAfterUpdate.sh

The update script can automatically check your controller firmware version and program it with the latest release on GitHub, would you like to do this now? [Y/n]:y
Stopping any running instances of BrewPi to check/update controller...

Checking current firmware version...
Apr 23 2016 21:48:10 Opening serial port
Unable to receive version from controller.
Is your controller unresponsive and do you wish to try restoring your firmware? [y/N]:
y
Will try to restore the firmware on your Arduino Uno
Assuming a Rev C shield. If this is not the case, please program your Arduino manually

Checking GitHub for available release...

Available releases:

[0] 0.2.10
[1] 0.2.9
[2] 0.2.8
[3] Cancel firmware update
Enter the number [0-3] of the version you want to program [default = 0 (0.2.10)]: 0
Downloading firmware...
downloading https://github.com/BrewPi/firmware/releases/download/0.2.10/brewpi-arduino-uno-revC-0_2_10.hex
Latest firmware downloaded to:
/home/brewpi/utils/downloads/0.2.10/brewpi-arduino-uno-revC-0_2_10.hex

Updating firmware...

**** Arduino Program script started ****
Settings will not be restored
Devices will not be restored
Apr 23 2016 21:48:34 Opening serial port
Loading programming settings from board.txt
Checking hex file size with avr-size...
Program size: 26896 bytes out of max 32256
Programming Arduino with avrdude: /usr/share/arduino/hardware/tools/avrdude -F -e -p atmega328p -c arduino -b 115200 -P /dev/ttyACM0 -U flash:w:"brewpi-arduino-uno-revC-0_2_10.hex" -C /usr/share/arduino/hardware/tools/avrdude.conf
Result of invoking avrdude:

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x1e950f
avrdude: erasing chip
avrdude: reading input file "brewpi-arduino-uno-revC-0_2_10.hex"
avrdude: input file brewpi-arduino-uno-revC-0_2_10.hex auto detected as Intel Hex
avrdude: writing flash (26896 bytes):

Writing | ################################################## | 100% 5.19s

avrdude: 26896 bytes of flash written
avrdude: verifying flash memory against brewpi-arduino-uno-revC-0_2_10.hex:
avrdude: load data flash data from input file brewpi-arduino-uno-revC-0_2_10.hex:
avrdude: input file brewpi-arduino-uno-revC-0_2_10.hex auto detected as Intel Hex
avrdude: input file brewpi-arduino-uno-revC-0_2_10.hex contains 26896 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 4.19s

avrdude: verifying ...
avrdude: 26896 bytes of flash verified

avrdude: safemode: Fuses OK (E:00, H:00, L:00)

avrdude done. Thank you.


Avrdude done, programming succesful!
Giving the Arduino a few seconds to power up...
Back up in 5...
Back up in 4...
Back up in 3...
Back up in 2...
Back up in 1...
Back up in 0...
Waiting for device to reset.
Apr 23 2016 21:49:13 Opening serial port
Waiting for device to reset.
Apr 23 2016 21:49:24 Opening serial port
Checking new version: Found BrewPi v0.2.10 build unknown, running on an Arduino Uno with a revC shield on port /dev/ttyACM0

Resetting EEPROM to default settings
INFO MESSAGE 15: EEPROM initialized
**** Program script done! ****
BrewPi script will restart automatically.


*** Done updating BrewPi! ***

Had to reassign pins. Same shield.
couldn’t set beer probe
 
fwiw, if you are using an RPi as a BrewPi host you can find plenty of python scripts to read ds18b20 probes.
Cheers!

I'm not using a RPi but moved over to my windows system and loaded a simple arduino program that looks for the serial id of 1wire devices (specifically DS18B20). In order to map your 1wire bus you need the 64bit serial id that was encoded on the device at its manufacture (this is really why 1wire works on one wire). The 1wire device should send out its presence pulse right after it receives the rest pulse from the master device (which is the arduino since DS18B20 can only be slaves on 1wire according to the spec).
here is why I'm pretty sure the issue is with the arduino; I can't get at the serial id of any device, wired in any way, on any of the A-pins. (hence why i needed a non arduino way to test the probes) If I wanted temp data I would still need to see the serial id of the device first in order for my program to ask for it, or at least be able to differentiate between devices.

https://www.hacktronics.com/Tutorials/arduino-1-wire-address-finder.html
https://datasheets.maximintegrated.com/en/ds/DS18B20.pdf
 
Last edited:
Not sure what "Build" your talking about? The Raspberry Pi and the Arduino, only need 4 Female to Male and 3 Male to Male, "Dupont" Breadboard jumper wires. I bought a bunch M-M, F-M, F-F, so I could play around with other projects. There cheap. The electrical outlet is also just direct wired onto the screw terminals.

Only soldering I do, is for the Flex-Watt heating strips, and it is easy to do. Just go to youtube and check out some Vids or I do think some of the sellers of the Ferm-Wrap (different brand) have there own videos on how to solder these heat strips.


Shoot thank you that helps a lot I guess I misread about having to solder connections after looking at pictures of the parts closely I can see that there's connectors on there for the jumper cables already. I will run to RadioShack for the jumper wires and it looks like that will make my life much much easier. Parts are in the mail and I'm excited to build this thanks for the quick reply.
 
Legacy dev seems to work fine. The beer sensor wasn't registering because I was trying to assign it to chamber rather than beer1. Doh. All good using legacy-dev with uno. Updated 2 UNOs 1 from 0.2.4 to 0.2.10 and 1 unused uno. Both ok
 
Shoot thank you that helps a lot I guess I misread about having to solder connections after looking at pictures of the parts closely I can see that there's connectors on there for the jumper cables already. I will run to RadioShack for the jumper wires and it looks like that will make my life much much easier. Parts are in the mail and I'm excited to build this thanks for the quick reply.


RadioShack jumper wires were made by the devil himself…
 
Im having trouble detecting my sensors. Ive been able to use the sensors and relays for another basic app which turns on and off the relay at certain temps. But when I try to install brewpi, brewpi cant detect the sensors even though nothing has changed in the wiring. All I can detect and install is the relays. Anyone with the same experience?
 
Method to make password protected external BrewPi Page

Disclaimer, this opens your BrewPi up to the outside world. While this is cool, I take no responsibility for the security of your system. We are doing our best to ensure that the htaccess settings below are fool proof but there may be other methods of malicious people screwing with your BrewPi by putting it out on the internet. If you aren't ok with this risk please do not make your BrewPi public

  1. Putty/SSH into your BrewPi system(or keyboard if its hooked up to a monitor).
  2. Run the following commands to enable htaccess
    cd /etc/apache2/sites-available
    sudo nano default
  3. look for <directory /var/www/> ... </directory>
    change allowOverride to All and save the file.
  4. Now its time to restart apache:
    cd /usr/sbin
    sudo apache2ctl -k graceful
  5. Go to /var/www directory
  6. 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.
  7. Edit the last allow line that says Allow from 192.168. to match up with whatever your local LAN IP address scheme is. You dont need wildcards or subnet masks or anything else.
  8. Create a directory called private(to store the above .htpasswd file), and go into it.
  9. Type htpasswd -c .htpasswd <UserName>, it will pop up asking you for a password, and make you repeat it.
  10. Your done! If you try going to Http://brewpi/index.php it will now as you for a password and it wont let you in unless you enter in the right one from above. A side effect of this seems to be you cant just go to http://brewpi anymore as it will say you dont have authorization and not forward you to the proper page, not a big deal though. 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.

I've been working on getting the external access to work but I always get an error message. Externally I get "This site can't be reached" and internally I am able to enter the username and password once and then get a 404 error message.

I've gone through the directions several time and think I've followed everything.
 
ifconfig in terminal will show you your IP

Can I run this program locally from a laptop without having to be connected to internet? I want to do a demonstration and show people at our brew club (doing fermentation controllers this month), but not sure I have wifi access where we have out meetings.
 
Can I run this program locally from a laptop without having to be connected to internet? I want to do a demonstration and show people at our brew club (doing fermentation controllers this month), but not sure I have wifi access where we have out meetings.


Get a switch or crossover cable bd use the Ethernet port to ssh in
 
I finally got my port forwarding working, but when I reinstalled BrewPi on my RPi, it installed to /var/www/html instead of /var/www/ as it was originally. I've got everything working except the password protection on the admin.php. I think I've put the .htaccess and .htpasswd files in the /var/www/ & /var/www/private and the /var/www/html & /var/www/html/private folders, respectively. Neither seems to be working as I'm not being asked for my login or password to access the admin.php. I think I have a lot of duplicate files since the instructions are for the old root directory but mine is a slightly different root.
 
Can I run this program locally from a laptop without having to be connected to internet? I want to do a demonstration and show people at our brew club (doing fermentation controllers this month), but not sure I have wifi access where we have out meetings.

Get a switch or crossover cable bd use the Ethernet port to ssh in

If I hook the crossover cable to my ethernet port, where does the other end go? :confused:
 
Can I run this program locally from a laptop without having to be connected to internet? I want to do a demonstration and show people at our brew club (doing fermentation controllers this month), but not sure I have wifi access where we have out meetings.

Get a switch or crossover cable bd use the Ethernet port to ssh in

Funny. I read that differently. I run BrewPi on an old laptop all the time, and other than needing internet for installing/updating or internal networking for seeing the graph without physically visiting the Chamber of Secrets, it runs fine. I will also quickly admit I've not religiously followed Ark's full thread to see if he's running BPi on RaspberryPi or laptop.
 
I was just wondering if the instructions on the Fuzzee brewpi build (the one stickied on here) are still accurate? I know that the brewpi crew is on a different model and that they have moved away from the arduino setup. I am looking to make the cheap version as in the post (no lcd or encoder) but am curious if I follow the instructions if I will end up with a properly working brewpi. Are the programs, codes and such in the same spots to run the installer etc? If not are there updates or somewhere to go to get it? As looking at the thread it seems that it is still going but before I dive in I was just curious.
 
I'd say they are up to date. Especially because they are still testing the Pi only model. I will be making a brew Pi in the next 2 weeks just waiting for parts to arrive.
 
If I hook the crossover cable to my ethernet port, where does the other end go? :confused:


In your other Ethernet port…

Your question was in regards to running ifconfig on the rpi, supposedly from your laptop. without Internet access this is your only option. if you were referencing bpi itself then yes you can run it on anything but you need network access to see it from another device.
 
In your other Ethernet port&#8230;

Your question was in regards to running ifconfig on the rpi, supposedly from your laptop. without Internet access this is your only option. if you were referencing bpi itself then yes you can run it on anything but you need network access to see it from another device.


Also ill state (this is what i do for a living) any relatively modern ethernet controller can do Auto MDIX and doesnt need crossover cables to go back to back anymore.
 
Has no-one tried the legacy_dev branch yet?

It will make flashing from the web interface and even from the install script work again. But I need verification that there a no other bugs before merging it into legacy.

Hi Elkoe,

I just rebuilt my BrewPi from scratch to incorporate a RPi Zero and can confirm that the legacy_dev branch works fine - no issues whatsoever.

Cheers!
 
Thanks for confirming. I have already merged the dev branch into legacy, so you can use the legacy branch again.
 
I have a BrewPi running my fermentation chamber and love it. I now want to upgrade the controller on my keezer. For those of you who use a BrewPi to control a keezer or other serving vessel, how do you utilize the BrewPi? Do you just use one probe in the air in the keezer and use the fridge constant profile? Do you need a second probe to make BrewPi work correctly? If so, how do you implement the beer probe? Is it just taped to the side of one of your kegs? What say you all?
 
Can I run this program locally from a laptop without having to be connected to internet? I want to do a demonstration and show people at our brew club (doing fermentation controllers this month), but not sure I have wifi access where we have out meetings.

I don't see why you couldn't just run it directly on a laptop that's running Linux and not use the pi for your demonstration. I installed brewpi on my xubuntu box prior to completing the brewpi build and it ran just fine.
 
I have a BrewPi running my fermentation chamber and love it. I now want to upgrade the controller on my keezer. For those of you who use a BrewPi to control a keezer or other serving vessel, how do you utilize the BrewPi? Do you just use one probe in the air in the keezer and use the fridge constant profile? Do you need a second probe to make BrewPi work correctly? If so, how do you implement the beer probe? Is it just taped to the side of one of your kegs? What say you all?
CadiBrewer,how are the pcb working? Any issues with the display scrambling?I'm waiting for my order from Dirt Cheap boards to get here.
 
I don't see why you couldn't just run it directly on a laptop that's running Linux and not use the pi for your demonstration. I installed brewpi on my xubuntu box prior to completing the brewpi build and it ran just fine.

I'd have to go back to look at my original post. I'm running BrewPi on a Laptop INSTEAD of a RaspberryPi...no RPI involved in this setup. Laptop ----> Arduino UNO ----> Sainsmart Relay. I thought the program might have been web based, so thought you MUST have access to web to use it. Now, I have found out through helpful peeps on here that it is just browser based, and I have to just point the browser to localhost. Done.

Thanks for all the help. I'm not a tech-guy, but I learn pretty quickly...just can't pick up on the lingo super fast.
 
CadiBrewer,how are the pcb working? Any issues with the display scrambling?I'm waiting for my order from Dirt Cheap boards to get here.

Unfortunately,I had the screen scramble after running perfectly for two weeks. I need to check my enclosure because I threw it together quickly and there's some exposed connections in there, so potentially that's a cause. I'm also going to reflow solder in a couple of spots when this batch finishes fermenting and I can open the box up.

Worse case scenario, there's a hex out there from another member that refreshes the screen every minute. That seems to be an easy solution.
 
Unfortunately,I had the screen scramble after running perfectly for two weeks. I need to check my enclosure because I threw it together quickly and there's some exposed connections in there, so potentially that's a cause. I'm also going to reflow solder in a couple of spots when this batch finishes fermenting and I can open the box up.

Worse case scenario, there's a hex out there from another member that refreshes the screen every minute. That seems to be an easy solution.
What relays are you using to control the cold and hot?
 
What relays are you using to control the cold and hot?

I'm using the Sainsmart relay card from the original post. The BrewPi runs flawlessly and the web interface is all you need, but darn it if it isn't cool to have the LCD screen on the box. My ten year old discovered the scramble. He told me that the screen changed to Chinese.
 
I'm using the Sainsmart relay card from the original post. The BrewPi runs flawlessly and the web interface is all you need, but darn it if it isn't cool to have the LCD screen on the box. My ten year old discovered the scramble. He told me that the screen changed to Chinese.
I want to use the LCD screen as well.I thought the screen scramble was caused by EMI from the Sainsmart relays and you can eliminate it by replacing them with a ssr
 
I found this from a Google search but I have know idea what it means
I had the same problem with a 16x4 LCD display when the Arduino was also controlling a SainSmart opto-isolated relay board. Everything worked fine with the relay contacts unconnected. But when the relay switched an inductive load (a 24 VAC power relay), the display garbled. No amount of power isolation and filter capacitors helped.

What solved the problem was a snubber (capacitor and resistor in series) across the SainSmart relay contacts. I used a prepackaged Cornell Dubilier EMI/RFI filter for neatness, but a garden-variety 0.1 ufd capacitor in series with a 47-ohm resistor would probably work just as well.
 
Status
Not open for further replies.
Back
Top