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.
Question for you guys running all of those controllers with Legacy that are Not Arduino UNO / ATmega328P. When you view the output of:
Code:
udevadm info --a -n /dev/ttyACMx
... do they show as something other than "Arduino (www.arduino.cc)"? If so, does anyone have ANY idea how to find out how many permutations there are? Or there as as many as there are Chinese knock-offs? Or do they all say "Arduino" and then some other random crap?
 
Question for you guys running all of those controllers with Legacy that are Not Arduino UNO / ATmega328P. When you view the output of:
Code:
udevadm info --a -n /dev/ttyACMx
... do they show as something other than "Arduino (www.arduino.cc)"? If so, does anyone have ANY idea how to find out how many permutations there are? Or there as as many as there are Chinese knock-offs? Or do they all say "Arduino" and then some other random crap?

You're pulling the USB device info. Most of the knockoffs have one of a handful of serial-to-usb chips, but most don't report as Arduinos.
 
Hrmum .... well hell. How would one for sure find the right device (programmatically) in that tree no matter the depth I wonder then?

I suppose I’ve found a time where having some knock-offs would be a good thing. :)
 
What about this ... we start with:
Code:
udevadm info --a -n /dev/ttyACM*
or
Code:
udevadm info --a -n /dev/ttyUSB*
This should limit it to USB devices that provide a tty. This reasonable so far? Would this capture all Arduino boards? Would there be anything else it would capture? Then, the board should be the last device on the chain so the attribute {maxchild}=="0" would indicate the stanza of the Arduino's information.

Can anyone shoot holes in that?
 
Well, that's what I'm gonna try. Seems reasonable anyway. If any of you have a Pi (or even just a Ubuntu box) and a handful of knockoff Arduino's laying about available to run a test, please ping me?
 
OK Lee! Got a new SD card and your single line Legecy downloaded and the BPi-Remix is up............but will not run the Script...I have a good Internet connection on my Pi-3 since I downloaded and ran everything here, but checking my Log -

2019-02-02 16:12:02 Opening serial port.
2019-02-02 16:12:02 Notification: Script started for beer 'My First Legacy BrewPi Run'
2019-02-02 16:12:17 Checking software version on controller.
2019-02-02 16:12:17 Found BrewPi v0.2.4, running commit 2a6f7f05 build 40, running on an Arduino Uno with a revC shield on port /dev/ttyACM0
2019-02-02 16:12:17 Warning: minimum BrewPi version compatible with this script is 0.2.10 but version number received is 0.2.4.

Not sure what this means?? or if it has any to do with Script not running.

Thanks for keeping the Legacy going for us Grass Hoppers, like ME
 
Means ... the version of the firmware on your Arduino is old. It needs to be updated to 0.2.10. I assume when it prompted you to flash the Arduino you bypassed it?

No worries, enter this command:
Code:
sudo /home/brewpi/utils/updateFirmware.py
I cannot say if things will pick up and run right after that, I can't remember if I've tested this codepath yet. If, after you flash the controller it does not run, reboot with:
Code:
sudo reboot now
That should take care of you.
 
There's a calibration bug in the final legacy version of BrewPi (0.2.10), I posted a patched version of it here: https://www.homebrewtalk.com/forum/index.php?posts/8448192

Give that a try.

Cheers,

Kal

Kal
Thank you for the quick response. Two questions
1. What do I do with the link - sorry very limited programming experience. Once I down load the file how do I insert it into my PI? Will I have to do anything else or will this just incorporate into my current program/application?
2. New problem - my beer temp probe has been working fine but disappeared from the script this morning.. I went to maintenance panel and checked read values. The value was reading NULL . I changed the onewire (beer temp probe) to unassigned and function none and refreshed.
I now get a temp reading in the maintenance panel but not the script and I can not re-assign the probe to installed devices. I changed the device number back to 0 and assigned the probe to beer temp and applied and refreshed. At that time it goes back to unassigned, function none and device type none.
I will check my wiring tonight to see if anything has come lose.
 
Kal
Thank you for the quick response. Two questions
1. What do I do with the link - sorry very limited programming experience. Once I down load the file how do I insert it into my PI? Will I have to do anything else or will this just incorporate into my current program/application?
The easiest way to (re)flash a hex file is with Xloader: https://github.com/xinabox/xLoader
Plug you Arduino directly into your PC via USB and flash the new hex file.
 
Is there really no case for the brewpi? I found the one on thingverse but they don't see it.
 
There used to be "a case for the BrewPi" IF you built Elco's original (well, rev C) kit with his shield, etc, but that hasn't been available for years.

Otherwise, "the BrewPi" can take many forms. You can build one with an Alamode hat atop a Raspberry Pi, or use an Uno connected via USB or Bluetooth or Wifi to any model Raspberry Pi, or you could use a Raspberry Pi Model Zero W with an Arduino Nano which would be completely different form factors from the "classic BrewPi" build.

So, aside from perhaps home-printed solutions I don't think there's a purposed case for BrewPi any longer...

Cheers!
 
So, aside from perhaps home-printed solutions I don't think there's a purposed case for BrewPi any longer...

Cheers!

This kind of blows my mind. I was thinking about making my set up look nicer than the project box I currently have.
 
Why?

When I give folks a tour of my humble brewery they're fascinated by the R'Pints tap list but really don't give a crap about what runs it. Which is fine because the brains of my cold-side ops are hidden in the back of my keezer dolly so that saves me from having to roll the keezer away from the wall and pull out the system controller drawer...

Cheers!
 
There is a very nice one that holds the LCD as well as the Arduino. There is not a printable one that I know of for the rasberry pie plus the Arduino. There are a couple of solutions for the ESP line of controllers.
 
Well I thought I did too but ..... email it to me? I’ll upload it to Thingiverse so it’s (pseudo) permanent.
 
I want a case that will hold the rpi, adruino, and relay board. Im moving my outlets and would like to have a nice looking controller on top of my mini fridge.

Have you seen any like that?
 
Why?

When I give folks a tour of my humble brewery they're fascinated by the R'Pints tap list but really don't give a crap about what runs it. Which is fine because the brains of my cold-side ops are hidden in the back of my keezer dolly so that saves me from having to roll the keezer away from the wall and pull out the system controller drawer...

Cheers!
I find the same thing in my brewery with visitor's. Although I do not have RPints up, only BrewPi. I think it's because they think you just BOUGHT the software, and do not realize what actually went into it working.
 
@shtank no I don’t have a 3D printer anymore. Was just gathering dust with my work schedule.

@Bigdaddyale that’s the one for the ESP8266 that Thorrak did.

I don’t recall seeing any that will work for Pi and Arduino except for the flat-panel ones that BrewPi did. The main reason I think is the USB connection is on the periphery of both boards, really not lending itself to a slim clean solution.

I’ll get the other one posted when I get home later. Don’t have pics anymore but the 3D model will give you the general idea.
 
I can't publish the shapes for that box on Thingiverse til 24 hours after I register so I'm just waiting for that timer to expire.

I've also discovered what may be the first real hard-stop bug in Legacy BrewPi scripts other than software versioning issues and horrible formatting. When you run two BrewPi instances and let the script find it's own config.cfg file (which it does just fine), a second BrewPi doesn't see a difference between those files - as a mater of fact the "conflict" checking loads the same config file twice and then of course it sees the same file. So, I've spent weeks in .php and .sh so not I've got to wrap my head back around python again to figure this one out.

Multi-chamber is close though. I'm talking it's as easy as running the setup again and choosing a different Arduino from the menu close.

Peeling the onion .....
 
Not quite as quick as I thought, but here it is: Multi-Chamber Support:

Multi.png


Available on the "BrewPi Legacy Remix" GitHub with version 0.5.1.
 
@MacDee - I'd be very interested in learning more about your setup (maybe it's the MechEng in me) and hearing updates on how it works out. Maybe you could send a pic of the setup or a schematic if you have one.

I've been testing my feed & bleed concept. First I built the system as an open loop with an immersion heater inline dumping into my borrowed HLT Gott cooler. I was able to dial in the temperature on Fermentrack with just ambient cooling and gravity return back to the recirc TACO pump. It worked good enough, +/- a degree, that I was able to cook a 2" ribeye "sous vide" style! Seriously it tasted great and I always wanted to do it.

But for the feed & bleed to work and draw in cold water I needed a closed loop to simulate the jackets on my conicals. So I plumbed up a piece of 2" pvc. (see photo). The PID loops will have to be tuned to when I have them plumbed up to the real jacketed conicals but I was able to control temperature through the BrewPi/Fermentrack system. The blue valve in the photo is the valve actuated for cooling. When it opens the flow to the pump inlet comes from the cold water in the green hose rather than the return from the jacket (ie pvc pipe in phot). When heating or idling the cold water flow can't enter the pressurized loop even though the path from the cold supply (green hose) is always open. Any heat expansion of the glycol in a closed loop will be pushed back into the cold supply which in my brewery will be the chiller supply header. I may have to put in other tap points like the thermowell in the picture to measure temp or pressure to balance when on the actual jackets.

Now I have to move on to building more controls with the version using the ESP8266 instead of the
Uno.
Glycol_Feed&Bleed_test rig.jpg
 
I use a 25 Gallon tank filled with cold water, in my Walk-In-Cooler for the Cooling side. There is a small submersable, cheap pump in it. But I did use a reach-in cooler/freezer for years, with 2-5Gallon corn kegs filled with water. This works great with the BrewPi or whatever your using

I'm running both a BrewPi (THANKS to Lee BUSSY, for the Legacy Remix!), and a Fermentrack.
The soon to be, new remote location for the two BrewPi's, will be put into this $19 Home Depot Milwaukee parts box with a cooling fan exhaust.
The BrewPi switches on the small submersable pump in the cold water tank to the outside Conicals.
The HEAT is done by using "Fermtape" heating strips placed under the jacket.
Going on 3 years now using the BrewPi and love the new update, easy to install Legacy ReDoIt, Lee Bussy posted here.
 

Attachments

  • 20190217_092512_HDR.jpg
    20190217_092512_HDR.jpg
    1.5 MB · Views: 74
  • 20190217_092528_HDR.jpg
    20190217_092528_HDR.jpg
    1.5 MB · Views: 71
  • 20190217_092716_HDR.jpg
    20190217_092716_HDR.jpg
    1.6 MB · Views: 71
  • 20190217_092809_HDR.jpg
    20190217_092809_HDR.jpg
    1.4 MB · Views: 65
  • 20190217_092847_HDR.jpg
    20190217_092847_HDR.jpg
    1.4 MB · Views: 74
Last edited:
I've been testing my feed & bleed concept. First I built the system as an open loop with an immersion heater inline dumping into my borrowed HLT Gott cooler. I was able to dial in the temperature on Fermentrack with just ambient cooling and gravity return back to the recirc TACO pump. It worked good enough, +/- a degree, that I was able to cook a 2" ribeye "sous vide" style! Seriously it tasted great and I always wanted to do it.

But for the feed & bleed to work and draw in cold water I needed a closed loop to simulate the jackets on my conicals. So I plumbed up a piece of 2" pvc. (see photo). The PID loops will have to be tuned to when I have them plumbed up to the real jacketed conicals but I was able to control temperature through the BrewPi/Fermentrack system. The blue valve in the photo is the valve actuated for cooling. When it opens the flow to the pump inlet comes from the cold water in the green hose rather than the return from the jacket (ie pvc pipe in phot). When heating or idling the cold water flow can't enter the pressurized loop even though the path from the cold supply (green hose) is always open. Any heat expansion of the glycol in a closed loop will be pushed back into the cold supply which in my brewery will be the chiller supply header. I may have to put in other tap points like the thermowell in the picture to measure temp or pressure to balance when on the actual jackets.

Now I have to move on to building more controls with the version using the ESP8266 instead of the
Uno.View attachment 612950

I like the Uni Strut and the the Stainless Steel Manifold! Home "Brewer's" ROCK!
 
Man you guys got some serious beer geek going on! Love it!

I dropped back in to show a teaser of what I'm working on this weekend. It's not horribly pretty but it's functional. The page is dynamic so adding or removing chambers means the index page updates as well. One thing that bugs me is that php's sort() sees "chamber10" as coming before "chamber2" but I don't think there's anyone running 10 chambers in a multi-chamber setup so maybe I can be forgiven for that. :) Couple more enhancements before I merge this back in, hopefully tonight.

I suck at web design so this may be as fancy as this page gets. If there's a web designer here who wants to help let me know.

Multi-Chamber.png
 
I like the Uni Strut and the the Stainless Steel Manifold! Home "Brewer's" ROCK!
The SS tri-clamped section is where a 1500 watt immersion cartridge heater is. It may not be required in most cases as the pump itself puts in enough heat on its own that the water rat racing around was able to maintain a temperature at 25°F over ambient during testing. I plan to only run the circulating pump on the jacket when cooling or heating is called for. Since the heater is tri-clamped it'll be easy to take out of the loop if it is not needed with the pump heat and a fermentation's exotherm.

The Uni-Strut is so I can mount it on a wall.
 
Lee if you use leading zeroes on the chamber names < 10 I expect you'll get the results you want.
Pretty cool that it's dynamic, makes adding chambers easy, yes?

Cheers!
 
The chamber names are user-entered so this is just because I lack any originality. :)

Yes, adding a chamber is just running a script and typing the name you want.

Pretty sure I’m gonna merge this in this morning in between meetings.
 
Okay so it's not a secret but it's really not been uber-publicly released. I've re-written portions of the BrewPi repo's with an eye towards supporting the "Legacy" Arduino users. You can read about it on the GitHub README.md page, or for the uber-brave/trusting, all you need to do is issue the following command:
Code:
wget -qO- https://u.nu/brewpi-tools-remix | sudo bash
I've made the following key changes from the original Legacy, for a more complete list be sure to check the releases page:
  • 0.4.0 - Initial release. Basically this is the BrewPi "Legacy" repo, branched, and moved to "Master"
  • 0.5.0 - First Substantial release:
    • Support for PHP7 & new versions of Raspbian
    • Bootloader which eliminates any need to prep the system, use git, etc.
    • Preliminary support for "other than standard" installs
  • 0.5.1 - Upgrades for Multi-Chamber
    • Now uses a systemd daemon to keep BrewPi running (no more cron!)
    • Fully supports Multi-chamber installs
    • Actually allow two instances of BrewPi to run when using config.cfg
    • Add concept of a "chamber name" for multiple instances
  • 0.5.1.1 - More Multi-Chamber goodness
    • Daemon unit file version checking
    • Fixed some logic and display errors
    • Added a "Chamber" indicator in the web UI
  • 0.5.1.2 - "Done-done" with Multi-chamber (sure, sure ... )
    • Support for custom logo (so it does not get overwritten on upgrades)
    • Added a notice/link about Bonjour if on Windows and not using {hostname}.local to connect
    • Created a dynamic multi-chamber index page
    • Added a favicon
Of course all of these releases have multiple (sometimes self-inflicted) bug fixes.

It is exceedingly important to point out that NONE of this would be possible without Elco's original work. Support the real BrewPi project whenever possible.

Do NOT go to BrewPi's community forums and ask Elco for help. It would be rude to ask him about something I changed. Ask me directly, ask here, open an Issue on GitHub ... whatever. Just don't bug them. :)

On my "to do" list are the following items:
  • Possibly test supporting installing as a user other than "pi"
  • Figure out general flakiness surrounding flashing from the web UI
  • Some tools for device (Arduino) manipulation
  • Address the way BrewPi starts and checks for conflicts in a more permanent manner
  • Bluetooth support
  • Documentation
Would love to hear stories good or bad about your experiences.
 
Do I dare try this on the ReplaceRaspberryPiWithLaptop system?
Should it work, or is it known up front to not work?
 
If you are using Debian it’s a “will probably work”. Anything else and I think you are on skinny branches. Check the FAQ on the README.
 
Status
Not open for further replies.
Back
Top