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.
I need some advice on which path I should go down. I have my raspberrypints hardware all working and now want to load brewpi/fermentrack onto the rpi. I want to have wireless control boxes for my keezer and 2 fermentation tanks. I want a lcd and the rotary knob for manual control. But I want WiFi.

From what I have read the ESP8266 build is WiFi but can't have a rotary knob. And daytrippers build using an uno is connected to a Bluetooth antenna.
I believe it could be switched to WiFi but I'm sure the code would have to be modified for that. Does anyone have a post on where I could find how to do that?
 
I need some advice on which path I should go down. I have my raspberrypints hardware all working and now want to load brewpi/fermentrack onto the rpi. I want to have wireless control boxes for my keezer and 2 fermentation tanks. I want a lcd and the rotary knob for manual control. But I want WiFi.

From what I have read the ESP8266 build is WiFi but can't have a rotary knob. And daytrippers build using an uno is connected to a Bluetooth antenna.
I believe it could be switched to WiFi but I'm sure the code would have to be modified for that. Does anyone have a post on where I could find how to do that?
There's a thread on using an 8266 to handle wifi for an UNO running brewpi.

https://www.homebrewtalk.com/forum/index.php?threads/542296/

Wireless Brewpi Via Wifi
 
There's also an Uno with WiFi onboard now. I've thought about updating the firmware for that and discarded the idea several times. The only place where that would make sense I think is a case where a person HAD to have a rotary encoder AND wireless, and where BT is not a viable option.
 
I mean I don't have to have e a rotary encoder but it is a nice feature. My fermenters in the garage and my kegs are on the patio. So I do NEED wifi
 
Rather than going the ESP8266 route for WiFi only, I'd SERIOUSLY consider using a Pi Zero W with either regular BrewPi or Fermentrack. Doing so it quite a bit more mainstream, is not significantly more money, and will be quite a bit easier to pull off. They are ridiculously small, and you could power both with a single USB power supply. If you can do without the encoder (and I don't blame you for wanting one) then the Fermentrack project with the ESP8266 is probably the best way to go although there is some soldering required.
 
I see what you are saying but I have been messing with a zero W with tilt pi and the thing is SOOOOOOO slow. As in the time it would take to set it all up would pay for a pi3 in 10 mins.

But wouldn't having multiple pis running the program, make it more convoluted. Where all vessels aren't being controlled by a single source.
 
The 6675 uses a 3-wire read-only serial interface and a whole different access method vs the one-wire ds18b20. As the BrewPi firmware already pushes the AVR internal memory capacity there's no room for adding even the simple "driver" needed to read a 6675 and process its output into a usable form...

Cheers!
 
I see what you are saying but I have been messing with a zero W with tilt pi and the thing is SOOOOOOO slow. As in the time it would take to set it all up would pay for a pi3 in 10 mins.

But wouldn't having multiple pis running the program, make it more convoluted. Where all vessels aren't being controlled by a single source.

Disclaimer: I am the author of both Fermentrack and the ESP8266 port of the firmware.

If you don’t need rotary encoder support, just get the ESP8266 firmware. If you do need rotary encoder support, you’re going to have to do one of the hacks like using an ESP as a WiFi bridge or using the Bluetooth hack to do the same.

I don’t think @LBussy ‘s comment was recommending a Pi Zero W over a Pi 3 — though @LBussy ‘s remix of the BrewPi-web interface, the OG web interface, and Fermentrack will all run just fine on a Pi Zero W. I also exclusively use Pi 3s, but only because I love the cases I have for them.

Regardless of what you choose to do, I would recommend a single Pi to control them all - either running @LBussy ‘s remix of the web interface or Fermentrack to provide you a single portal to control them all.
 
The 6675 uses a 3-wire read-only serial interface and a whole different access method vs the one-wire ds18b20. As the BrewPi firmware already pushes the AVR internal memory capacity there's no room for adding even the simple "driver" needed to read a 6675 and process its output into a usable form...

Cheers!
I’d love to see the difference in temperature readings between a 6675 and a handful of DS18B20 sensors. I’d imagine the 6675 is far more accurate, but I wonder if the difference is in fractions of a degree or whole degrees.
 
fwiw, I proved I could substitute an esp8266 configured as a wifi/serial bridge for the HC-05/06 Bluetooth/serial bridges I have running, and under both BrewPi and RaspberryPints. For BrewPi there were no operational issues because the software is chatty enough to keep the link alive; for RaspberryPints I had to add a script that would essentially ping the esp every minute...

In the config.cfg file you use a port definition like this: port = socket://192.168.1.230:23
instead of something like /dev/ttyUSB0 or /dev/ttyAMA0.

I'm pretty sure I wrote this up and posted it somewhere on HBT...

Cheers!
 
No mater which way you go, I'd encourage you not to discount the "cost" of your time creating the solution, as well as maintaining it going forward. If I could have wasted time back again, I'd be 30 again. :)
 
Oohh. With the time for loading on the pi zero W I have played with I know I will buy pi3s from now on. the price difference just isnt alot. I wil probably build a esp 8266 to get my system under control. Then maybe play with day trippers project to get a rotary knob and wifi
 
A little update on the Uno Clone issue presented earlier. I've purchased a couple of clones for testing and confirmed the issue. As near as I can tell there's no unique identifying information with which to make a deterministic port assignment (without reverting to using "kernels".) Translated to "beer English" we get "Uno clone bad multi chamber no work." Here's the stanza, if anyone sees anything I'm missing let me know:

Code:
  looking at parent device '/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.1/1-1.1.3':
    KERNELS=="1-1.1.3"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{authorized}=="1"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bDeviceClass}=="ff"
    ATTRS{bDeviceProtocol}=="00"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bMaxPacketSize0}=="8"
    ATTRS{bMaxPower}=="96mA"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{bcdDevice}=="0254"
    ATTRS{bmAttributes}=="80"
    ATTRS{busnum}=="1"
    ATTRS{configuration}==""
    ATTRS{devnum}=="6"
    ATTRS{devpath}=="1.1.3"
    ATTRS{devspec}=="  (null)"
    ATTRS{idProduct}=="7523"
    ATTRS{idVendor}=="1a86"
    ATTRS{ltm_capable}=="no"
    ATTRS{maxchild}=="0"
    ATTRS{product}=="USB2.0-Serial"
    ATTRS{quirks}=="0x0"
    ATTRS{removable}=="removable"
    ATTRS{speed}=="12"
    ATTRS{urbnum}=="14"
    ATTRS{version}==" 1.10"
 
So I found this on the Fandom wiki (https://diybrewpi.fandom.com/wiki/Setting_Up_Your_RPI):

"For all of U who use an Arduino clone. You need to put this line in the /home/brewpi/autoSerial.py file.

{'vid': 0x1a86, 'pid': 0x7523, 'name': "Uno-Clone"} (all the numbers are the ones you get from the ls /dev/ttyU* command. Take note of the vid and pid values - then add 0x in front of them. "
Just FWIW if anyone sees this later on: You need to use "Arduino Uno" rather than "Uno-Clone" or else it's not recognized.
 
I should have mentioned that was why four of the entries in the known_devices list I posted all pointed to "Arduino Uno".
Sorry 'bout that...

Cheers!
 
Anyone know where to go and find documentation on the Maintenance Panel > Advanced Settings, for the BrewPi? Elco, has "some" docs that he posted way back when years ago, but nothing to further explain, what settings to change up/down, and what the results would be seen.....
I use Chilled water recirculated through a heat exchanger on my SsBrewTech conicals, and the Call for Cooling "on", just stays on too darn long and the Heat on call, then fights it to get back to setpoint.
There's a 1-minute overshoot of Cooling (Heavens Forbid!, say "InkBird"),and by the time the PID focuses in more tightly, the freeking Beer is done and ready to rack out to the Brite tank.
Screenshot (18).png
 
I assume you are talking about the "Cooling overshoot estimator"? That's honestly black magic to me since it's really not described in what I'd call "classic" PID terminology.

If you're overshooting though I think my first stop would be Kd. The stock value is 1.5. There's WAY more thermal mass in water than air so my first go would be to even double that and see what happens. The "maximum" value might be a good one to lower as well, since a 10 degree delta between beer and coolant is way more potential than is needed. It's been a LONG time since any engineering classes but with a jacketed or heat exchanger system I think I'd lower that way down.

Typical disclaimers apply: Change one at a time, test without real beer in there, take notes, etc. :)
 
I'll try changing the Kd setting like Lee suggested and then see what happens. If I change more then one value in Advanced Settings, I will not be able to see what the effect is of each change , so one at a time.....
There is "Cooling overshoot estimator", but it will not stop further automatic adjustment, and I guess this means it will try to get back to its preset estimator algorithm.....not sure. Wish I had a good set of documents that show, with examples, what happens when you change any Advanced Settings.
day_trippr, I think I would need to change the MAXimum On, cooling, to a lower on-time. I just need to find where this is. What if I change the "Maximum time in seconds for cooling overshoot estimator"?

A good Mathematician here on HBT would be nice to set out the values and set numbers to use, for Cooling with chilled water - versus- cooling with air in the fridge.
Any Master's out there, for us Grass Hoppers??

I see a LOT more brewers using a Chiller, now that the price has come way down for the home-brewer to afford.
Not to promote any manufacture, but Ss now has a great chiller for only $849. I was going to make one, since I do HVAC and some refrigeration, and have access to all these materials at wholesale, but my cost would still be about $5-600, and then you factor in my time......Like Lee Bussy said,(not exactly) "you have to factor in ALL your time, not just your cost of materials..."
Here is WHAT A BAD FIGHT LOOKS LIKE ----
Screenshot (20).png


I only use the Beer sensor, and the other "Fridge" sensor is actually a sensor hanging out at room temperature.

thanks for the feedback, its much appreciated!
 
Last edited:
I'd think you would need/want to use a fridge sensor in your coolant? Never done it of course but it makes a little sense to me.
 
Here is what changing Kd from 1.5 to 3.0 did -
Notice at near 11-hundred hours the change. It seems that the "Fridge Setting" responded but the H and C calls, kept cooking along, with no movement.
This could be, due to the fact that I am changing the algorithm half-way through my Munchen Dunkle (KOLSCH yeast- WLP-029 it LOVES Lager temps!).

Screenshot (21).png
 
Here is what happened when I did what Lee said to try ( put the "Fridge" Sensor in the damn freeking chilled water, where it should be, instead of dangling outside in room atmosphere) again, Lee did't say this exactly, it's my mine listening to other(Lee B.) smart people!
NOT good? unless you want your Brew to free-ride UP from the initial Pitch of yeast...
Again....maybe this is due to the fact that I am F'n with my brew half-way through the Temperature Profile?
I think I will just let this FREE ride, since it is 2.5 days+ into the initial pitch at near 53 degrees profile ...To be continued...........
Notice above 16 hundred hours, when I put the poor sensor in ball-cold water....poor!

Screenshot (23).png
 
See what happens if you remove the second (currently "Fridge Temp") probe from the configured device list. It's clearly causing all kinds of havoc.

And I was mistaken wrt minimum actor on time settings. I could've sworn there was one for both sides but...

Cheers!
 
I'll wait until tomorrow when I am getting close to TGravity, when I can "afford" to just swing-it, if the control stops. I think this is what happens with only one sensor - the Beer only used. Will see tomorrow. But here is what happened last night, it finally called for COOL at about 22:30 and again in the wee hours. -
You can see the 25 gallons of chilled water heating up as much as the Beer is cooling down, 10 gallons of young beer -VS- 25 gallons of 35-38 degree water...

Screenshot (24).png
 
Just FWIW if anyone sees this later on: You need to use "Arduino Uno" rather than "Uno-Clone" or else it's not recognized.

Is this related to the Uno just simply not being recognised by the Pi or is it deeper than that?

If so It would take an awful lot of reviewing the early days of this thread but this happened to a me where I had some uno that’s just wouldn’t be found?
 
Is this related to the Uno just simply not being recognised by the Pi or is it deeper than that?

If so It would take an awful lot of reviewing the early days of this thread but this happened to a me where I had some uno that’s just wouldn’t be found?
There are a few identifying data points reported by the "Arduino" itself that contribute to the issue. I say "Arduino" in quotes because these are clones. A real card has well-known data elements where a new supplier making them may create a new VID/PID that is not specifically listed in the Python modules.

I'm not sure if there's some authority that issues these, which would facilitate a regular update of the scripts to support them. Right now it's just "what we know." I think the VID comes from the USB organization, not sure about the PID. China, however, will do whatever they want.
 
I thought I'd share something that I'm currently working on. I'm not a web developer, so CSS is a'kickin' mah @$$.

Dashboard.PNG


(There's only one Arduino connected at the moment.)
 
Cool Beans Lee! I see Chamber 10 is no longer between Chamber 1 and 2 ! I will try this soon, as I found out that my BrewPi and Fermentrack don't get along well together, when trying to share a "Negative" on two, 3-wire sensors....(I only have 5 wires, and tried to "share" the Negative, but it caused occasional huge phantom dips in the graph, that lasted for a few seconds of log time). This does work for 110 VAC circuits.....:rolleyes:
If there is a way to screw up the Remix or FermPi, I'm ALL in!
 
I've been reading over the forums for awhile, and I'm about to go buy the hardware to get started on this. As far as hardware goes, is the Parts List on https://diybrewpi.fandom.com/wiki/DIYBrewPi_Wikia still the best way to go? I see you talking about doing legacy support; Is the Arduino Uno still the obvious choice?

Right now I just plan to follow that DIY very closely, thoughts?

Thanks!
 
I've been reading over the forums for awhile, and I'm about to go buy the hardware to get started on this. As far as hardware goes, is the Parts List on https://diybrewpi.fandom.com/wiki/DIYBrewPi_Wikia still the best way to go? I see you talking about doing legacy support; Is the Arduino Uno still the obvious choice?

Right now I just plan to follow that DIY very closely, thoughts?

Thanks!

“Legacy” support is referring to the name of the branch of the firmware that runs on devices like the Arduino and ESP8266. It is in contrast to the “modern” branch of the firmware which runs on the BrewPi being sold at BrewPi.com.

The Uno was - until recently - the only choice for BrewPi builds (I don’t think anyone successfully built a Spark one??) - but there’s now also an ESP8266 port and a port of the firmware to Python which can run naturally on the Raspberry Pi. The Uno remains the most common hardware choice - though it no longer is the only one.

If you go the Uno route, I believe that list is the most up to date - though someone else who has used it recently could probably confirm.
 
Cool Beans Lee! I see Chamber 10 is no longer between Chamber 1 and 2 !
Yes, the secret was to stop adding chambers after 9 ... :cask:

Seriously though, there's no mandatory format for adding chambers. A person can call them "Fred" and "Ginger" if they want. The solution if someone REALLY needs > 9 chambers AND they want to give them the same name with numbers at the end, is to start naming them "chamber01", "chamber02", etc.
I found out that my BrewPi and Fermentrack don't get along well together, when trying to share a "Negative" on two, 3-wire sensors....(I only have 5 wires, and tried to "share" the Negative, but it caused occasional huge phantom dips in the graph, that lasted for a few seconds of log time). This does work for 110 VAC circuits.....:rolleyes:
When I did controls I always learned to keep digital systems completely separate. I'm sure @day_trippr will have a good reason why you had the results you did.
If there is a way to screw up the Remix or FermPi, I'm ALL in!
We call you a "worst case scenario". :mug:
I've been reading over the forums for awhile, and I'm about to go buy the hardware to get started on this. As far as hardware goes, is the Parts List on https://diybrewpi.fandom.com/wiki/DIYBrewPi_Wikia still the best way to go?
I gave it a quick look-over and yes, I think as a source for a hardware list (and maybe hardware assembly) it's still valid.

I would suggest three things to make your life easier:
  • Do this on a Raspberry Pi. They are cheap, separating machines by function makes good sense, and darn near every tutorial (and most of the code) is written assuming you are on a Pi. When you get experienced you can go experimenting with other things like running it on a VM or whatever. If you want to save $20 or so, use the Raspberry Pi Uno W which is a single-processor version (still wifi capable) of the Pi. I like using a full size board, there's a better selection of cases for them, and the quad-processor of the current 3 B+ is very nice to have.
  • Make sure your temp probes are not intended to be parasitic. If you scroll through this thread there's lots of talk about this and some recommendations for known good ones. Go for "known good" over "I can save $2" for your own sanity.
  • Use a real Arduino Uno and not one of the Chinese knock-offs. Most of the Chinese ones work fine, but there's always a new one out there that causes issues. Paying a couple dollars extra for something that will not cause you a headache is money well spent.
The wiring is pretty straightforward. Go with a breadboard or other temporary method to keep it easy while testing.
I see you talking about doing legacy support; Is the Arduino Uno still the obvious choice?
If you are intent on doing a DIY, yes. If you want a "thing" that works out of the box and has commercial support, I'd recommend the latest BrewPi from the source. Some folks have done a DIY BrewPI on the Spark, but this thread is all about the Arduino. I'd hazard a guess that the institutional experience/knowledge on this forum favors the Arduino by a large margin.
Right now I just plan to follow that DIY very closely, thoughts?Thanks!
Uh ... maybe.

As a parts list and a source for parts, sure. I don't believe those articles have been updated for current Raspbian OS's and that's where the original "BrewPi Legacy" has become long in the teeth. Elco did us all a GREAT favor by 1) making this open source; and 2) creating the Legacy branch to persist and protect the Arduino support. He's not maintaining it however, so as it sits it will no longer install or even work correctly in some cases. That's why I created my Remix. It's my personal, albeit prejudiced opinion, that the better way to install BrewPi Legacy now is via my fork.

Once you have the hardware prepared, all you need to do is issue this command:

curl -L install.brewpiremix.com | sudo bash

If you'd like to read more about it, there's the GitHub readme, and a new website I've created.

This does all highlight a need for a single, concise source for a new person to get a "what do I do" list from A-Z to set this all up. I hope to do that soon, but for now these instructions and of course the fine folks here, will be able to get you going.
 
Cool Beans Lee! I see Chamber 10 is no longer between Chamber 1 and 2 ! I will try this soon, as I found out that my BrewPi and Fermentrack don't get along well together, when trying to share a "Negative" on two, 3-wire sensors....(I only have 5 wires, and tried to "share" the Negative, but it caused occasional huge phantom dips in the graph, that lasted for a few seconds of log time). This does work for 110 VAC circuits.....:rolleyes:
If there is a way to screw up the Remix or FermPi, I'm ALL in!
Wait, if I'm understanding what you're saying, you had two one-wire probes and you connected the negatives together but left the 5v and data lines separate and that caused you problems? The one-wire probes are designed to share all three wires. You could have 6 or more of them and combine the datas on one wire, the 5v on another wire, and the grounds on the 3rd wire. You only need 3 wires, not 5.

Did I misunderstand how you shared the negative?
 
I've been reading over the forums for awhile, and I'm about to go buy the hardware to get started on this. As far as hardware goes, is the Parts List on https://diybrewpi.fandom.com/wiki/DIYBrewPi_Wikia still the best way to go? I see you talking about doing legacy support; Is the Arduino Uno still the obvious choice?

Right now I just plan to follow that DIY very closely, thoughts?

Thanks!
The only thing I will add to what everyone else has replied is that I look now at how I am going to connect the device to my Raspberry Pi when I choose whether to go with an Uno or the ESP8266. If your setup is going to be next to the Pi and hooked up via USB cable, the UNO is great and you can choose Lee's BrewPi remix or Fermentrack. The ESP8266 will also work well in this scenario.

If you are wanting to put your controller across the room from your Pi, go with the ESP8266 and Fermentrack. There is a great way to do the UNO over bluetooth, but the Fermentrack route is less complicated and has less parts.

Carry on.
 
If you are wanting to put your controller across the room from your Pi, go with the ESP8266 and Fermentrack. There is a great way to do the UNO over bluetooth, but the Fermentrack route is less complicated and has less parts.
It (obviously) took me a while to type my original reply, in that time @Thorrak also posted. Yes, definitely, Fermentrack is a great option as well. I have one such install running on a test rig right next to me and his work inspired some of my most recent tweaks.

Up next on my "list-o-stuff to do" I will be tinkering with the Arduino over WiFi and hopefully "more native" Bluetooth support.

In my "perfect world" of brewing nirvana, I'd like to see Fermentrack and BrewPi as interchangeable as Legos.
 
I appreciate you reinvigorating the BrewPi environment, Lee. It is especially cool to see the multiple chambers running on one webpage!
 
Wait, if I'm understanding what you're saying, you had two one-wire probes and you connected the negatives together but left the 5v and data lines separate and that caused you problems? The one-wire probes are designed to share all three wires. You could have 6 or more of them and combine the datas on one wire, the 5v on another wire, and the grounds on the 3rd wire. You only need 3 wires, not 5.

Did I misunderstand how you shared the negative?

Nope, you got it almost 100%
I have 2 separate RaspberryPi's running side-by-side, one with Lee's LegacyPi running and the other with Fermentrack running. Both have dedicated UNO's.
They have there own DATA and 5V wires that run on my 18-5 thermostat wire that connects my work station with the remote fermenter's. (so now I used 4 of the 5 wires, and I only have one left). So, I used the 5th. wire to "share" the Negative. Here is what happens --
Screenshot (25).png
I posted this on the "Native ESP8266 Firmware...." Thread
I am an Expert at taking these working Pi's and throwing a big Monkey Wrench into it...!
 
Nope, you got it almost 100%
I have 2 separate RaspberryPi's running side-by-side, one with Lee's LegacyPi running and the other with Fermentrack running. Both have dedicated UNO's.
They have there own DATA and 5V wires that run on my 18-5 thermostat wire that connects my work station with the remote fermenter's. (so now I used 4 of the 5 wires, and I only have one left). So, I used the 5th. wire to "share" the Negative. Here is what happens --
View attachment 616778 I posted this on the "Native ESP8266 Firmware...." Thread
I am an Expert at taking these working Pi's and throwing a big Monkey Wrench into it...!
I'm intrigued by your setup. Why do you have two Raspberry Pis running? Is there something specific about your setup that precludes you from having both UNOs running off of one Pi?
 
Status
Not open for further replies.
Back
Top