[Version 2 Release] RaspberryPints - Digital Taplist Solution

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.
Well this is interesting, last night I did the monitor upgrade. This morning I come down to see that for the first time in months, I had phantom pours on all but one of my taps. Bad ones too, as in thousands of ounces poured. Funny, since I didn't even open the keezer. Didn't even pour a single beer last night either. Tonight I'll look at the situation and hope it's just a coincidence
 
Interesting indeed. If you just swapped monitors and rebooted it's not obvious what the linkage might be.

If you install phpmyadmin you can open the raspberrypints database and edit the pours table, where you can see what was being reported and remove the phantoms.

Haven't gotten a ghost pour since roughly a year ago - which was within the first week of installing the meters in the middle of my tubing. Once I moved the meters to within a foot of the beer posts (with new tubing, obviously) that totally stopped happening...

Cheers!

[edit] You can also enable time-stamps for the pour records, if you haven't already...
 
Smh.

I've had bluetooth working the whole time. I just didn't have a browser open..................……...............;(
 
Well, the bt dongle was giving me errors. Which requires reprogramming of the dongle, which requires a different sketch be uploaded to the arduino. Then other tiny glitches can require multiple reboots, with chrome auto loading and all that it was in my way each time so I disabled it from loading itself and I guess it never occurred to me that the browser was necessary to get data from the test process.

But anyway, the correct bt installation path is basically the same as it is with brewpi. The only significant change being to reduce the speed of the BT dongle to 9600 baud instead of 57600. There are differences in the way you put the device into UART mode depending on the version of hc-05 you buy, but that's all been discussed in the brewpi over Bluetooth forum as well.

I'm just happy to see pours from the kegerator in the kitchen registering in my office wirelessly. Now all I have to find is an android app or browser that can auto-refresh itself and do so without taking up half the screen with ads so I can use a tablet or old phone as display for the kegerator itself.
 
Doesn't chrome on android recognize the meta refresh call?

You can add a meta refresh call to the main index.php page to refresh the page every 5 minutes (or 1 minute if you want)
 
Doesn't chrome on android recognize the meta refresh call?

You can add a meta refresh call to the main index.php page to refresh the page every 5 minutes (or 1 minute if you want)

Yes it will. I added code to display the time on my index.php file along with a refresh every minute and it works fine from my Android phone.
 
I'll prolly end up going that route once I figure out what device I'm going to use. I intend to look into appending to the main page to include temp. But it'll be down the road. I'm not gonna use the method that day_tripper posted earlier. I'm waiting for the stc-1000+ guy to finish up the next cool feature that will include the ability to serve a webpage from an esp8266 that should allow for reading and setting temperature directly from the stc controller.
 
Well this is interesting, last night I did the monitor upgrade. This morning I come down to see that for the first time in months, I had phantom pours on all but one of my taps. Bad ones too, as in thousands of ounces poured. Funny, since I didn't even open the keezer. Didn't even pour a single beer last night either. Tonight I'll look at the situation and hope it's just a coincidence

So after the struggle to get rpints working I too am finding phantom pours. I have the swiss flow meters about 8" from the keg as suggested. I leave the system running 24/7 and turn the HDMI connected monitor on/off when needed. Any suggestions? Weird...

Could other things be interfering, like the Johnson controls temp controller?

Maybe I'll try leaving monitor on for a few days and see if that stops the phantoms.
 
So after the struggle to get rpints working I too am finding phantom pours. I have the swiss flow meters about 8" from the keg as suggested. I leave the system running 24/7 and turn the HDMI connected monitor on/off when needed. Any suggestions? Weird...

Could other things be interfering, like the Johnson controls temp controller?

Maybe I'll try leaving monitor on for a few days and see if that stops the phantoms.

Double check the connections on the meters and the tubing. Any little bit of gap or air can affect them. Also psi around 8 seems to be ideal.

It's a lot of trial and error.
 
Now I'm having fun finding out how much liquid each of my different style glasses can hold.
 
Dude I've been measuring pints for weeks now. I'm totally out of beer right now.
 
So, I had an idea. I figured that since I am using one of those knock off single stage stc-1000 look-alikes for my temp controller in the kegerator, it probably had at least a 12v transformer in it. I only need 5v so I could hook up a 7805 and use that to power my arduino. Well upon probing around inside it, I found a built in 7805 with a decent size capacitor on either side of it. So I decided to see if I could just touch the wires to the 5v rail and low and behold the arduino powered up and the bluetooth fired up and I was able to get a stable connection. So I decided to use the empty slot where the heating relay output would be and I gotglued a female usb connector there and hooked it up to power. View attachment ImageUploadedByHome Brew1433649797.963025.jpgView attachment ImageUploadedByHome Brew1433649811.779974.jpgView attachment ImageUploadedByHome Brew1433649828.248625.jpg

Then I took a couple of nylon standoffs and hot glued them to the top of the wire cover that goes on the temp controller. And then I attached my custom board. Now I can easily remove it if I have to reflash it in the future by removing one screw.

View attachment ImageUploadedByHome Brew1433649951.527715.jpg
View attachment ImageUploadedByHome Brew1433649971.443310.jpg
 
Love this.

#3 started with 672 ounces (5.25g) and was on its last legs this weekend.
It showed 12 ounces left a minute ago just before it kicked.

taplist_09jun15.jpg

Remove the 4 ounce over-shoot from the kicking foam blast and that's freaky accurate...

Cheers! :mug:
 
Maybe one of you can help me. I installed swissflow sensors into my beer lines and placed them about 8" from the quick disconnects. Prior to the addition of these flow sensors, my kegerator was perfectly balanced and produced the right amount of head. Now I get a lot of foam whenever I pour the beer. I tried slowing down the flow rate using the flow control on my perlick faucets but that did little to solve the issue. It seems like CO2 comes out of solution, travels up the line and builds a large air gap near the faucet shank. I keep the kegerator at 38 degrees controlled by a Johnson controller with a 3 degree differential. Beer temp measures at 38 degrees. Tower is chilled using a tower cooler. Carbonation pressure is 11 psi.
 
It seems like CO2 comes out of solution, travels up the line and builds a large air gap near the faucet shank.

Yup. That happens.

But those "gaps" generally don't form when the beer is flowing. Outside of a defective (or missing) Out dip tube o-ring (which will constantly inject gas into the beer whether it's pouring or just sitting there) it's caused by either holding beer at a lower pressure than necessary to maintain its carbonation level, or the beer temperature rises such that it can't hold the carbonation level (this could be the keg warming up, or the lines, or both).

For the latter, 3°F differential from 38°F @ 11 psi results in a 5% carbonation drop.

http://www.kegerators.com/carbonation-table.php

One cannot deny science.

So, is this a "first pour" problem, or can you see excessive bubbles in the beer flow for a second pour immediately after the first?

fwiw, I appreciate the "it was perfect before" comment, and I'm trying to work with that.
I've also read some complimentary words regarding the flow-control faucets, but I have zero experience with them.
I have to use tubing to balance.

But as my post just prior to yours indicates, running a full keg through a meter with well under a 1% total error should be evidence that these things can work well...

Cheers!
 
Well update on my foaming problem, I seemed to have forgotten that moving kegs around can cause foaming. After just letting the kegs sit for a day after moving them for the sensor install fixed the problem. My foaming problem went away. Flow sensors are working very well and seem to be very accurate.
 
this is rad. so you can either use the seed studio or adafruit sensors?


I went with the seeedstudio ones because they were white plastic over black. Like it really matters. And the fact that they were 1/4". But be warned, they are 1/4" bsp. It took over 12 wraps of Teflon to get any fitting I could find to make up with it.
 
How much modification needs to be done to the original raspints SW in order to get them to work properly?
 
If you're using the alamode then 1 line in pours.php. If you're using an arduino it's slightly more work. The 1/4" seedstudio ones (they are all the same manufacturer: SeA) needed to be drilled out for better flow. I've got a 1/2" one on its way from China now for another project. I can test it out once it arrives and see if the pulse count ends up being different. I'm using a pulse count of 3500 for the modified 1/4" meters. And I'm hitting 16oz on a full pint glass every time.
 
that's seriously impressive. what did you drill out to on the 1/4" one? Also, i'm assuming in the pours.php is where you change the number to 3500. amiright? also, big cheers to all of you guys for this. looking forward to making this happen. would probably go with an alamode board re: ease of use/integration.
 
I don't remember what bit I used exactly. It was already in the drill and fit into the inside of the larger output hole on the meter. I drilled straight through from the smaller inlet side to the outlet side and then came back with some 300 grit sandpaper rolled up and cleaned up the hole all the way through. I think the original finder of these meters earlier on in this thread was using a much higher pulse count. And I attribute that to the tiny inlet hole pressurizing the water coming in. It took quite a while to realize I needed to go that low in the pulse count to get accurate results.
 
FYI... I havent read the thread in a while, so this may have been mentioned, but the Alamodes are on sale at Makershed right now for $25
 
One weakness in the RaspberryPi platform is the sdcard storage scheme. It's not what I would consider robust. I had a card totally die last December, and today the sdcard in my "production" system that runs my tap list, ferm fridge, carb fridge and keezer gagged up a bad block that panicked the kernel on reboot. It needed a fresh format and a re-imaging.

As all four of my RPi systems are now sharing a single sdcard image it only takes the time to write a card again, say 15 minutes, plus a few minutes changing the system name and IP address, to get the system back on the air. But what inevitably gets lost is the current RaspberryPints tap list data, and all of the BrewPi logs and scripts and my temperature logger data.

Out of all that, the one I actually care about is the tap list data. It's a pita to try to re-create the database state to a "best guess" of what and how much is on tap. So at the least, I need a way to copy the running database to a safe location.

On my RPi systems, MySQL databases are stored in /var/lib/mysql.
In that folder there is a raspberrypints folder, which contains all of the forms for the RaspberryPints database.

But the data file is /var/lib/mysql/ibdata1

And as my experiments have shown, it can be cloned, copied, backed-up, restored...whatever. Having a copy of that data file somewhere handy is A Good Thing, and obviously, the more current the better.

While I could fire up WinSCP and pull a copy to my workstation when I remember to do it, instead I will be getting grive running, to automate the back-up of my 'Pints data file, temperature logger and BrewPi data...

Cheers!
 
I'd like to see how you got that going. Haven't spent a lot of time with grive yet.
 
One weakness in the RaspberryPi platform is the sdcard storage scheme. It's not what I would consider robust. I had a card totally die last December, and today the sdcard in my "production" system that runs my tap list, ferm fridge, carb fridge and keezer gagged up a bad block that panicked the kernel on reboot. It needed a fresh format and a re-imaging.

I've changed to running a Ubuntu Linux VM on my server and have all the SQL data stored there. If you have a Linux NAS or other device, you could move your data there as well. My RaspberryPi that runs my beer board is now just the Chromium browser installed and showing the web page from my VM. It runs faster without all the overhead and I'm sure it likely won't kill the SD card now that MySQL is no longer running on the Pi.

I honestly don't see any reason to be using MySQL for this app. There's no reason the data can't easily be stored in some JSON or XML files.
 
No doubt there are other ways RaspberryPints could have been implemented, but I'm fine with the way the team went because the result is actually fairly elegant, the gui can be customized without heroics, and phpMyAdmin lets you tweak the database when necessary.

In any case, I don't think it matters what method is/was used wrt sdcard volatility, a write is a write.
In any case, I don't attribute the card failures with the R'Pints application, or frankly any user-level code.

I don't keep any of our peecees running 24/7 these days as they're so quick to wake up from S3.
But I suppose I could mirror critical files on one of the RPi systems that do run 24/7.

And in the short term, that may prove to be the most viable solution, as it turns out a change to a critical Google Drive API back in April rendered Grive non-functional and the author has been MIA.
In the subsequent half-hour of looking around I've found various, non-elegant alternatives. More research is needed.

As for the speed thing, you'd be amazed how nicely R'Pints runs on an RPi2. Screen updates are done in a blink where the Model B and B+ might take a couple/few seconds. And you get the real-time tap list update instead of waiting for a refresh timer to expire...

Cheers!
 
No doubt there are other ways RaspberryPints could have been implemented, but I'm fine with the way the team went because the result is actually fairly elegant, the gui can be customized without heroics, and phpMyAdmin lets you tweak the database when necessary.

In any case, I don't think it matters what method is/was used wrt sdcard volatility, a write is a write. That said, I don't attribute the card failures with the R'Pints application, or frankly any user-level code.

I don't keep any of our peecees running 24/7 these days as they're so quick to wake up from S3. But I suppose I could mirror critical files on one of the other three RPi systems that do run 24/7.

And in the short term, that may prove to be the most viable solution, as it turns out a change to a critical Google Drive API back in April rendered Grive non-functional and the author has been MIA. In the subsequent half-hour of looking around I've found various, non-elegant alternatives. More research is needed.

As for the speed thing, you'd be amazed how nicely R'Pints runs on an RPi2. Screen updates are done in a blink where the Model B and B+ might take a couple/few seconds. And you get the real-time tap list update instead of waiting for a refresh timer to expire...

Cheers!

I bought a Pi2 for this but then noticed the header was different for the alamode, what did you do to get it to work?


thanks!
 
I know somewhere in the thread was a post or 2 about pins that were verified working, anyone have that? I just had to re-install due to a sd card failure, and am getting weird pours on 2 of the 5 taps. I had to unplug the flows on the alamode side, to get at the SD card and just plugged then into 7-11( and updated the pints file accordingly). IIRC I didnt have them like that before, when I wasn't seeing the issues..




Thanks!
 
I bought a Pi2 for this but then noticed the header was different for the alamode, what did you do to get it to work?
thanks!

Nothing other than positioning the AlaMode so it picks up the RPi2 IO header with both starting at the pins 1 & 2 end (the end opposite from the USB & NIC receptacles). There will be "unconnected" RPi2 pins but the AlaMode header shroud will fit in the gap between pins 25/26 and 27/28 without issue...

Cheers!

[edit] As for the "known good" pins for meters, they are 2, and 5-11.
IO12 may work but I've never used it, it's shared with the MISO SPI function.
And IO13 should work if it isn't committed to driving the "Blink LED" on the AlaMode to confirm a pour was detected (I have that feature in my AlaMode sketch).
 
So after perusing the demise of Grive and the various flaky alternative methods of accessing Google Drive from an RPi, it occurred to me that I had the makings of a more optimal solution right in front of me.

The Netgear gigabit router I use for our private subnet has the ability to host a USB storage device using SMB protocol, something I imagine most routers are capable of doing these days. I've never had a compelling need to use it, but this is the perfect application for it.

I had a 4GB USB2 key that has been idle for months, so I plugged that into the router and within seconds it was available on the network. I left it totally wide open as there's no reason to protect it with user credentials.

readyshare_01.jpg

Then from my W7U system I created a folder on the drive for each of my RPi systems using their system names (rpints, bpints, raspi1 and raspi2).

readyshare_02.jpg

Next, on each RPi I created a local folder under the existing /media root to associate the mount point for the SMB drive.
For example, on system rpints:

Code:
$ sudo mkdir -p /media/readyshare/rpints

Next, on each RPi I added an entry to /etc/fstab

Code:
//192.168.1.251/USB_Storage/rpints /media/readyshare/rpints cifs user=guest,domain=CORP,password=,sec=ntlm

Note that you must have a trailing CR/NL in the fstab file; it'll ***** about it if there isn't a blank line at the end of the file.

The IP address is the LAN address for the router (aka the "gateway" IP address) and the rest of that first path drills down to the target folder on the SMB drive. That will obviously vary - for example Netgear uses "\\readyshare\USB_Storage" as the drive root where I'm sure Cisco does something different. The second path is the corresponding local mount point.

cifs is the file access method; the user, domain name and (null) password paramters seem to be required even if the SMB drive requires no privileges; and sec is the security mode parameter, set to ntlm.

With the fstab file changes the SMB drive will automatically mount on boot, but the drive can be mounted manually at this point:

Code:
$ sudo mount -a

If the mount didn't fail the drive should be available via the mount point defined in the fstab file.
And you can list the contents of the SMB folder:

Code:
pi@rpints ~ $ ls -l /media/readyshare/rpints/
total 20208
-rwxr----- 1 root root 18874368 Jun 19 21:34 ibdata1
-rwxr--r-- 1 root root  1812480 Jun 19 21:34 tempdata.db
pi@rpints ~ $

Those are copies of my R'Pints and temperature logger data files sitting in the SMB drive folder.

So with that all set up, an automated backup process for select files can be constructed.
In this example, I'll save a copy of the R'Pints data file and the temperature logger data file from system rpints to its folder on the SMB drive.

I created a bash script at /home/pi/backup.sh

Code:
sudo service mysql stop
cp /var/lib/mysql/ibdata1 /media/readyshare/rpints
cp /var/www/tempdata.db /media/readyshare/rpints
sudo service mysql start

This script stops MySQL, copies the R'Pints data file and my logger data file to the SMB drive folder, then starts MySQL again and exits.
After writing out the script, be sure to set it to executable for owner and group.

Finally, I added a command to root's crontab to run the script every night at 12:05 AM:

Code:
$ sudo crontab -e -u root

Code:
5 0 * * * /home/pi/backup.sh > /dev/null 2>&1

Et voila! Automated critical file backups!

Cheers!

[edit] This requires cifs-utils which I believe is part of the standard Debian distributions these days, but it's easy to check to see if it's already installed:

Code:
$ dpkg -s cifs-utils
Package: cifs-utils
Status: install ok installed

If it hasn't been installed, do this:

Code:
$ sudo apt-get update
$ sudo apt-get install cifs-utils
 
I was scouring the web today looking for example flow meter code for another project and I noticed one project that seems to be quite marketable. Then I started looking at the features and screenshots they have posted and I noticed a bit of similarity with rpints. Actually I'm pretty sure these guys just changed some cosmetic stuff and basically took rpints and ran with it.

Http://kegberry.kegbot.org
 

Latest posts

Back
Top