StrangeBrew Elsinore - Raspberry Pi based brewery controller

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.
It starts to drop the Duty Cycle as the Temp gets closer to 90 deg

Kettle1.png
 
Yup, that's what a PID is designed to do.

I notice there's a bit of a formatting issue on the P value.

But most people can get away with just P, which in this case is the number of seconds to increase the liquid in the vessel by one degree (F or C depending on your setup)
 
Pump control is now added in. I've updated the README to reflect this, but it's not in the "Setup" section yet, that'll be done later today or tomorrow.

Basically you need to edit rpibrew.cfg for the moment with a section called [pumps]

Then each line underneath it will need to be in the form
pump_name = gpio

I've looked into sorting out the bloody loss of case, and it looks like it's the configParser API that's doing it, I may see if I can fix it.
 
Pump setup can now be done via the usual setup method.

Using the format:

pump <name> <gpio>

at the prompt.
 
That's great to hear, I only tested the UI side of it to make sure it worked, I was 99% confident it would've been fine.

I've got to add in some checks to make sure GPIOs aren't reused in the config file (basic sanity test) and then when my order from newark gets here I can get the volume measurement side done.

Note: I'm moving companies in two weeks, so I may be quiet for a bit, if you find any issues please tell me ASAP & preferably raise a bug report on the githubs: https://github.com/DougEdey/SB_Elsinore_Server/issues

Press the "New Issue" button.
 
So I've got code committed that should work for the volume measurement, I've not been able to test it yet since I need to secure my dip tube to my kettle.

I've pushed this all to a new branch (volume_measurement) so it shouldn't affect anyone.

PS: If anyone has an idea about how to create a quadratic equation from a set of data points, please let me know... Matrices were never my strong point and I've never had to use them for about 10 years... Currently it's assuming a linear equation from at least two data points.
 
I have to ask how are you doing the volume measurement?

I'm using the same hardware principle that the brew troller uses, but all the code is my own.

I went over a few theories with friends, and the engineer friends of mine suggested that I use this principle. I also purchased the pressure sensor boards from oscsys because it was the best way. https://www.oscsys.com/projects/brewtroller/system-design/volume-measurement

I haven't done any code for the RPI since you'll need an analog input, like a ds2405 or MCP*based breakout board. The beaglebone has 7 analog inputs inbuilt
 
Doug, awesome setup. I've been following this post for a while now and finally got my pi setup and been testing this program. Right now I have it setup with one temp probe for a kettle. My question is and I've looked through the threads but may of missed it. What is the System Temp? Is it addressed somewhere in the config file?
Thanks again!!
 
What is the System Temp? Is it addressed somewhere in the config file?

System temp is the RaspberryPi system temperature, on the Beaglebone it's constantly 0.0 because there's no way that I know of to find the system temperature
 
Doug, Do you think we could add some timers that we can start and stop to the web page for Mash times or step times. I'm not sure if this could be automated.

Thanks Brewer44
 
There is, I had/have them on the android app, I just haven't worked out the best way to put them on the web UI yet. It won't be hard to do. But I want to work out how to raise alarms. Which is hard to do on the phone...
 
I was originally planning on re purposing an old pi, but that plan has changed. Figured it make more sense to get a beaglebone as this is what Doug uses and he indicated that it's more stable.

In order to get the panel running, what should I be buying? (I already have an element, gfi breaker, etc.)

I figure I should be getting:
- Beaglebone (http://www.adafruit.com/products/1278)
- Breadboard (http://www.adafruit.com/products/702)
- Jumpers (http://www.adafruit.com/products/759)

I already have a DS18B20 that I picked up from ebay a while back. Do I need a resistor if using the beaglebone instead of pi? what size?

Anything else that I need? I can't seem to find a wiring diagram for the Beaglebone similar to what was posted in the first thread for the Pi.
 
It's exactly the same resistor for the beaglebone, I'll write up a new diagram sometime soon for the beaglebone. I don't use a breadboard personally, I have XLR jacks and I run the resistor across the data/power cables just before the first XLR socket in the loop.


I used the instructions here: https://groups.google.com/forum/#!topic/beagleboard/YPgbKxd2mRU

In the extras directory I've included the One Wire DTC/DTO:

https://github.com/DougEdey/SB_Elsinore_Server/tree/master/extras

You'll need to copy w1.dts to the /usr/lib/firmware directory (as root) then the w1_setup.sh will initialize it (though I've realized there should be a sleep in there after intializing the capemgr
 
It's exactly the same resistor for the beaglebone, I'll write up a new diagram sometime soon for the beaglebone. I don't use a breadboard personally, I have XLR jacks and I run the resistor across the data/power cables just before the first XLR socket in the loop.

Good point - I hadn't thought through the fact that I'll want to disconnect the panel from my kettle @ the thermometer :rolleyes:

I'm doing a BIAB system, so there's only one element, thermometer etc.

Can XLR jacks usually be sourced locally.. somewhere like 'the source'?

thanks.
 
Good point - I hadn't thought through the fact that I'll want to disconnect the panel from my kettle @ the thermometer :rolleyes:

I'm doing a BIAB system, so there's only one element, thermometer etc.

Can XLR jacks usually be sourced locally.. somewhere like 'the source'?

thanks.
not sure to be honest, I normally order a chunk of stuff from places like newark:

http://canada.newark.com/xlr-audio-connectors

I also get heatproof shielding too :)
 
Thanks to jcdillin for sorting out my mistake with the Pressure sensors, I'll be coding up the volume measurement stuff tomorrow and hopefully pushing a new release tomorrow night or sometime during the week.

(Sorry, Tonight is Sens v Leafs so I'm getting good and loud)
 
Sorry for the lack of updates, I've been working hard to get the volume sensors working.

The primary issue was that the Beaglebone only takes 1.8V max on the Analog inputs, but the pressure sensors are up to 5V. Most people'll be fine with this (in my testing it was 80mV per gallon), but since I have a 25G system (and I want this to be able to go up to 10BBL) it'd go over the 1.8V.

I was going to use a Voltage Divider, but I wasn't happy with the loss of precision.

SO I purchased myself a DS2450 based ADC convertor (which works on the one wire bus) from these guys

I spent some time today trying to make it work, but it turns out the One Wire implementation in linux is very basic and doesn't support the DS2450 ADC, so I have turned to OWFS.

I've got to write a way to access this using Elsinore (which shouldn't be too hard) but I expect this'll be done over the next few days.
 
So I have the OWFS stuff setup and running, tomorrow I will test the calibration code and do my first brew day in a while...

Hoping to pump out 60G within the next week.
 
A few updates should be getting pushed out today.

1) The system temp now "works" for BBB, I say this in quotes because it's a non-CPU temperature, but it's fairly close to what I want. I'll be changing this to be configurable/disable-able in the future

2) Some bug fixes

3) Volume reading. As explained in my previous posts I'm using the same setup as the Brewtroller guys.

I've got to do some code tidying and Make the setup nicer, but once that's done I'll push the commits and everyone can update :)

I'm testing by doing 60G over the next few days.
 
I have a noob question, I got my Pi setup and copied the github files, etc. when I open a browser and type in my raspberry pi ip example (1.1.1.1:8080/control) I get a page cannot be displayed. If I leave off the 8080/control I can access the "It Works" apache page so I know it is serving pages. Any ideas?
 
Did you startup Elsinore? And run through the setup? The Control page will only be displayed if there's a valid config.

Also, please provide your logs
 
Thermal cutoff is done.

Add a "cutoff" parameter to your config file for any device/probe setup and if that probe goes above the cutoff the server will die.

It accepts the temperature in the form:

<value><scale>

i.e. +85C will be accepted, as will +185F, or even -100F (who knows)

It'll automatically convert the value to something it can match internally.

I'm spending the rest of the christmas break writing documentation for the BBB, I would love to have people update the RPi doc since I've not used it in a while.

I'll then be create a Reddit community for this project to make it easier.
 
Doug, I had everything working and I did a git pull to update the code and now I get a "Could not read the property for gpio_definition, please set this since you are on Linux kernel 3.8 or above"

Thanks Brewer44
 
Sorry, I'd included the wrong jGPIO version, try again. You should only get that message if you're creating a DTO now.
 
Doug, All set. Works as before but don't see the system temp now. What size heating elements were you using for your SSR's to burn up. I have 40 amp ones on 1500W elements and they seem to be cool. I do have Heat sinks on them too. The pumps run off from 25amp SSR's and they are cool too.
 
Add

"system_temp = true"

To the General Section of your configuration file in order to display the system Temperature, I changed it so that it could be disabled for the BBB.

The SSR issue was caused by a bad SSR, I'm changing my setup to have a Fuse.

I'm on a 5.5kW element
 
Your SSR will require a ground to the Pi too.

I personally have a separate 120V input for the Pi/BBB since I can test things and monitor temperatures remotely (I'm also planning on my system being able to play music in my garage without me being in there)
 
Your SSR will require a ground to the Pi too.

I personally have a separate 120V input for the Pi/BBB since I can test things and monitor temperatures remotely (I'm also planning on my system being able to play music in my garage without me being in there)

The separate circuit makes more sense - easier to wire up too.

For the SSR, there will be a ground from the main line, and the pi, correct?
 
You want the ground to come from the raspberry pi, this'll make it better in the long run.

Ok, thanks.

I've updated the diagram, does it look ok now?

Is there any problem with using the switch that I linked to?

Elsinore BIAB (2).jpg
 
Looks OK, I'm not an electrician though, so I can't advise you on the switch properly.
 
Elsinore now has brewday timers, click to start, click again to stop. Pictures are from my phone :)


s8MKFV8.png


YkOSfPj.png
 

Latest posts

Back
Top