• Please visit and share your knowledge at our sister communities:
  • If you have not, please join our official Homebrewing Facebook Group!

    Homebrewing Facebook Group

HOWTO - Make a BrewPi Fermentation Controller For Cheap

Homebrew Talk

Help Support Homebrew Talk:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.
Status
Not open for further replies.
No problem, we're here to help get folks up and running if humanly possible :)

Cheers!
OK - progress!

Have three probes connected now, set to beer, fridge, and room. Running in Beer Constant, I can get the cool side to kick on immediately when I set the temperature below where the beer probe is reading (same is true if I run a Fridge Constant). Heating seems a little inconsistent, even when I reset the temp well above the reading, but it just kicked on finally while I was typing this. So fingers crossed, I think it's working!

What's the best way to get used to how the logic works in terms of heating/cooling? I know the algorithms have logic in them that adjusts the time of heating and cooling, etc, based on the readings during a run. I've been using an inkbird setup that basically switches heating or cooling on as soon as it gets outside the set range. Should I just set the brewpi up with a test bucket of water in my chamber and let it go for a while to learn what it does?

Going to set the LCD aside for the time being - managed to adjust and got alternating rows of white and blank blocks. Think I'll get the system working otherwise, then come back to that.

Thanks.
 
Great progress! :mug:

I would say get a baseline track going then experiment with changing the set point up/down and allow the system to stabilize at the target and observe how the system responds.

You can observe all of the pertinent/relevant parameters in the management gui in the Advanced Settings panel. You can also reset settings to defaults, and change them individually if you are so inclined (eg: one often-needed change in this era of kveik yeast strains is to raise the "Temperature Setting Maximum" under the Control Constants pane, as the default limits to 86°F and some kveiks like it toastier :))

As for the display...when your 20x4 powers up, if it gets to the point that there are those alternating rows of blocks/no blocks, the display is functional but it's not receiving any commands. ie: the rows are normal for initially coming out of a power-on cycle but as soon as the Arduino comes up it should write the display with the BrewPi layout.

It's possible that the HC595 got toasted due to being plugged in backward. Hopefully you purchased an extra (pro tip: never buy just enough of anything, ever - even if you need only one of a thing, get two of them :))

Cheers!
 
You sort of have to trust that the thing works in order to learn to trust it. Circular I know. Fill up a bucket or carboy with water and let it go for a bit. Make sure if you are not using a thermowell that you insulate it on the outside of the fermentor with at least an inch of closed-cell foam.
 
Great progress! :mug:

I would say get a baseline track going then experiment with changing the set point up/down and allow the system to stabilize at the target and observe how the system responds.

You can observe all of the pertinent/relevant parameters in the management gui in the Advanced Settings panel. You can also reset settings to defaults, and change them individually if you are so inclined (eg: one often-needed change in this era of kveik yeast strains is to raise the "Temperature Setting Maximum" under the Control Constants pane, as the default limits to 86°F and some kveiks like it toastier :))

As for the display...when your 20x4 powers up, if it gets to the point that there are those alternating rows of blocks/no blocks, the display is functional but it's not receiving any commands. ie: the rows are normal for initially coming out of a power-on cycle but as soon as the Arduino comes up it should write the display with the BrewPi layout.

It's possible that the HC595 got toasted due to being plugged in backward. Hopefully you purchased an extra (pro tip: never buy just enough of anything, ever - even if you need only one of a thing, get two of them :))

Cheers!
Sound good. I do have another chip (done enough DIY of varying sorts that I do try to have spares, cost permitting), so I'll put that in and see what happens with the LCD.

Since everything seems to be working, I'll get a test bucket set up and start playing with it a bit. Once I get a handle on it, we'll see how it does with an actual brew.

Thanks!
 
I'll get a test bucket set up and start playing with it a bit. Once I get a handle on it, we'll see how it does with an actual brew.
It's rare to see a system that is not capable of maintaining +-0.2 degrees right out of the box. Physical configuration can play a part. Use a fan, and make sure the probes are placed well and watch it for a day before fiddling with any dials.
 
@day_trippr was right - the chip was fried. Swapped it out and everything looks like it's working. Thanks for the help and the guidance!

My plan now is to free up my chamber (have a cider finishing up in there at the moment) and start putting the new stuff through its paces (although that's more putting me through my paces with it!).

FWIW - I'm using the Large Breakout Board as well, so I've got the temp probes running separate from the main board and communicating over ethernet - worked flawlessly right away.

Am I right in guessing that I could still put one of the three temp probes on the main shield and it wouldn't cause any issues? I'm thinking that I can have the beer and chamber probes on the breakout board near the chamber with the room probe set up attached to the main unit in another part of the room.

Thanks - looking forward to actually getting the time to brew something using my new toy!
 
WOW... so I stumbled across this post when looking for support on the rotary encoder and found this huge new following for brewpi! I bought a legacy brewpi from Elco back in 2014 and have been loving this ever since. @LBussy, man thank you so much for keeping legacy brewpi alive.

the rotary encoder I have will wake the lcd screen but I've never been able to use it for changing modes or anything...any thoughts on troubleshooting that? I am now using BrewPi Remix on Raspberry Pi OS and an arduino uno. I'll get some photos of my gear on here this week!
 
the rotary encoder I have will wake the lcd screen but I've never been able to use it for changing modes or anything...any thoughts on troubleshooting that?
Well, I guess it depends on how you have it wired, and potentially what version of firmware you are using.
 
Well, I guess it depends on how you have it wired, and potentially what version of firmware you are using.

I haven't flashed anything new to the Arduino since it has always worked aside from the rotary encoder. I bought a kit from Elco that was a pre soldered hat for the arduino rev C and have been using the same image ever since I initially flashed it.
 
I haven't flashed anything new to the Arduino since it has always worked aside from the rotary encoder. I bought a kit from Elco that was a pre soldered hat for the arduino rev C and have been using the same image ever since I initially flashed it.
I've never had my hands on one of his PCBs but the schematic was released and served as the basis upon which the current boards (derived from work @CadiBrewer did with @day_trippr help). Those did not have a discrete header for the encoder I don't think. I think they *may* have also lacked pull-ups and debounce caps for the encoder although I am not sure. Take a pic or let us know where you have the encoder connected and we can dig in.

As an aside - Anyone have a link saved for the original shield schematic? I can't seem to find that this morning.

Another aside - Anyone know what happened to @CadiBrewer? His username no longer seems active.
 
I've never had my hands on one of his PCBs but the schematic was released and served as the basis upon which the current boards (derived from work @CadiBrewer did with @day_trippr help). Those did not have a discrete header for the encoder I don't think. I think they *may* have also lacked pull-ups and debounce caps for the encoder although I am not sure. Take a pic or let us know where you have the encoder connected and we can dig in.

PXL_20201013_143901343.NIGHT.jpgPXL_20201013_143931898.NIGHT.jpgPXL_20201013_143948121.NIGHT.jpgPXL_20201013_144006852.NIGHT.jpgPXL_20201013_144057599.NIGHT.jpgPXL_20201013_144107170.NIGHT.jpgPXL_20201013_144129965.NIGHT.jpgPXL_20201013_144137037.NIGHT.jpg
 
Okay, that does look like the pull-ups are there - good. If you want to test, jump D8 or D9 to ground intermittently to emulate the rotation and see if that has any effect.
 
Okay, that does look like the pull-ups are there - good. If you want to test, jump D8 or D9 to ground intermittently to emulate the rotation and see if that has any effect.
Are you referring to these spots highlighted in the photo?
PXL_20201013_144057599.NIGHT.jpg
 
Not seeing anything change
Well, now it gets challenging. To the extent that you can, you need to limit the variables and see what works and what does not. What's really challenging is that the shield supports so much including the LCD. Isolating circuits is pretty tough.

Do you have an I2C LCD handy? If so, you can remove the shield and use that as your display and do some testing. Of course, the challenge to that is you would need to flash the latest firmware which might fix things too.
 
I have elco's rev c schematics at home.
I do not recall it or the arduino hex up through 0.2.10 supporting an i2c display, but it definitely supported the encoder...

Cheers!
 
Well, now it gets challenging. To the extent that you can, you need to limit the variables and see what works and what does not. What's really challenging is that the shield supports so much including the LCD. Isolating circuits is pretty tough.

Do you have an I2C LCD handy? If so, you can remove the shield and use that as your display and do some testing. Of course, the challenge to that is you would need to flash the latest firmware which might fix things too.


I dug into the BrewPiRemix site and it doesn't appear to mention using an Arduino UNO...did I overlook that? If new firmware is available, I'd give it a go.
 
I dug into the BrewPiRemix site and it doesn't appear to mention using an Arduino UNO...did I overlook that? If new firmware is available, I'd give it a go.
I'm maintaining a branch of the Arduino Uno code which includes I2C as well as the original parallel LCD. BrewPi Remix can also support the ESP8266 configuration that Thorrak maintains. There's not a whole lot of changes to the Uno code using the parallel LCD other than a reset on timer to help avoid screen scrambles.

I do not recall it or the arduino hex up through 0.2.10 supporting an i2c display, but it definitely supported the encoder...
Right - I guess what I meant to say was his "troubleshooting" to remove the shield would involve changing a whole lot of things that may mask the original issue.
 
I'm maintaining a branch of the Arduino Uno code which includes I2C as well as the original parallel LCD. BrewPi Remix can also support the ESP8266 configuration that Thorrak maintains. There's not a whole lot of changes to the Uno code using the parallel LCD other than a reset on timer to help avoid screen scrambles.


Right - I guess what I meant to say was his "troubleshooting" to remove the shield would involve changing a whole lot of things that may mask the original issue.


Found it! Releases · brewpi-remix/brewpi-firmware-rmx
Should I try this one? https://github.com/brewpi-remix/bre...oad/0.2.12/brewpi-arduino-uno-revc-0.2.12.hex

I'm using the brewpi interface to upload the new HEX file but nothing seems to happen aside from the webpage telling me to watch the logs while programming. How long should it take?

I get this when I restarted the the script after about 5 minutes of inactivity, so I'm not sure what I'm doing wrong here:

Code:
2020-10-13 16:50:16 Found BrewPi v0.2.10 build unknown, running on an Arduino Uno with a revC shield on port /dev/ttyACM0.
 
Last edited:
Yes.

I'm using the brewpi interface to upload the new HEX file but nothing seems to happen aside from the webpage telling me to watch the logs while programming. How long should it take?
Are you running the Legacy BrewPi or BrewPi Remix?

I never found the Legacy web upgrade to be very effective. Which one you are on now will determine next path.
 
Yes.


Are you running the Legacy BrewPi or BrewPi Remix?

I never found the Legacy web upgrade to be very effective. Which one you are on now will determine next path.

BrewPi Remix is running on the Pi
BrewPi v0.2.10 build unknown, running on an Arduino Uno with a revC shield

Just to be clear on the two issues I'm seeing:

1. Rotary encoder will wake the lcd display but does not indicate any options to change anything
2. I am unable to program the arduino from the web interface, nothing happens when I press the program button, not even a logged event that I pressed the button as far as I can tell.
 
Just to be clear on the two issues I'm seeing
My challenge here is how to help you. You're on Legacy BrewPi and while this worked there once, it's not in my best interest to split my time to find ways to fix an older version. Is there anything stopping you from upgrading? Do you need to / want to keep your history and/or profiles?
 
My challenge here is how to help you. You're on Legacy BrewPi and while this worked there once, it's not in my best interest to split my time to find ways to fix an older version. Is there anything stopping you from upgrading? Do you need to / want to keep your history and/or profiles?

I'm totally willing to update to Brew Pi Remix, I'm running that on the Pi as my webfront and would like to update the Arduino UNO to your 2.12 branch but it's not working through the web interface.

Hopefully I'm not coming across as abrasive. I'm very excited about this project and want to provide you with what I'm seeing...I'm in IT and understand user reports are god awful.
 
Last edited:
Because of the Python change, there's no good upgrade path. If you can re-flash your SD card and install clean, that would be the easiest thing. Using the Raspberry Pi Imager is an excellent way to flash the SD card - it's MUCH improved over all the other disk imaging programs and processes we've used in the past. After that, if you want to go headless, you can use Headless Pi to set the card up (pre-initial boot) for your local WiFi and ssh login.

After that, it's just:
Code:
curl -L install.brewpiremix.com | sudo bash
You will have the option to flash your Arduino during the process.

If you don't find that 110% easier than the old methods, you get double your money back. :)
 
Because of the Python change, there's no good upgrade path. If you can re-flash your SD card and install clean, that would be the easiest thing. Using the Raspberry Pi Imager is an excellent way to flash the SD card - it's MUCH improved over all the other disk imaging programs and processes we've used in the past. After that, if you want to go headless, you can use Headless Pi to set the card up (pre-initial boot) for your local WiFi and ssh login.

After that, it's just:
Code:
curl -L install.brewpiremix.com | sudo bash
You will have the option to flash your Arduino during the process.

If you don't find that 110% easier than the old methods, you get double your money back. :)

That has been done :) and how I found this thread, I was looking for ways to troubleshoot the rotary encoder and found that you started a new project and I went down that path. It's great and tested well. I'm still having the issue where I can't flash the new 2.12 to the Arduino and the Rotary encoder only wakes up the LCD.
Capture.PNG
 
Try the following:
sudo /home/brewpi/utils/updateFirmware.py

guess I need to take a look at the php for that button!

Code:
Found BrewPi v0.2.12 build 8d36524, running on an Arduino Uno with a revC shield on port /dev/ttyACM0.
 
Status
Not open for further replies.

Latest posts

Back
Top