BrewPi Remix – What’s Old is New Again

Homebrew Talk

Help Support Homebrew Talk:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.
Thank you both @LBussy & @day_trippr!! I replaced both the wires from 5 & 6 to the relay and that resolved the problem. The wires didn't look damaged, but I was going to try anything. It has now perfectly maintained my set temp and fermentation is better for it.

I'll play around with my Tilt after this brew...
 
Hey I've just wired my brewpi remix, set up my raspberry pi, and haven't had any issues up until trying to install the hex file for the arduino. Below is the code I'm getting back and not sure how to fix it? Probably very obvious but I'm not too keen on software. I'm also not sure I have the most up to date hex file so not sure if that matters...

024-08-04 18:48:05 [E] Starting BrewPi.
/home/brewpi/brewpi.py:751: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
if LooseVersion(hwVersion.toString()) < LooseVersion(compatibleHwVersion):

Also, in device configuration it seems it is recognizing my two temp probes but when I set the configurations and hit apply, the devices do not appear as 'installed', but this may be due to the error message above and the hex file not installing correctly? Any advice would be greatly appreciated because after a couple hours of searching I still have no idea where to go from here... TIA
 
If you installed RaspberryPi Bookworm OS version you're probably running into package versions ahead of Lee's efforts. The failure to "remember" the device settings is due to not actually writing the configuration data to the Arduino eeprom, which is likely related to the version issues flagged.

You might try installing the previous Bullseye OS version and see what happens. I believe folks have gotten BPR running on Bullseye recently...

Cheers!
 
If you installed RaspberryPi Bookworm OS version you're probably running into package versions ahead of Lee's efforts. The failure to "remember" the device settings is due to not actually writing the configuration data to the Arduino eeprom, which is likely related to the version issues flagged.

You might try installing the previous Bullseye OS version and see what happens. I believe folks have gotten BPR running on Bullseye recently...

Cheers!
Bullseye worked perfectly. Thanks so much. It’s great to see after all these years there’s so many people, including Lee, still supporting this project. Very excited to elevate my fermentation game this weekend!
 
I have a hardware question concerning LCD and rotary encoder. I'm reading through the build threads old and new but I'm confused on what I should buy. I have an arduino uno Rev3 and a raspberry pi 2 model B v1.1 already. If LCD or rotary encoder type functionality are better handled another way I'm open to that too. Thanks for any guidance you all can provide.
 
The display and encoder just provide a handy way to view settings and change them if desired without having to find a device to do it. I've always found those abilities to be important so all my controllers have displays and encoders.

Here's an example of the rotary encoder switch. I bought this 3 unit set as I built three controllers for my three fridges. Right now it seems to be cheaper than buying a single encoder switch on Amazon.

https://www.amazon.com/gp/product/B00KHTLWU6

Here's an example of the 20x4 LCD display using the same parallel interface that the original Rev C Elco shield used.

https://www.amazon.com/Jameco-ValuePro-SIC2004A_BLWIT-Character-Backlight/dp/B0CJ9HJ2JC

This is a different version of the 20x4 LCD display, incorporating an "I2C Back Pack" so it communicates with the UNO using just four wires (SCL, SDA, 5V and GND). I can't remember if Lee's BrewPi Remix supports the serial connection though so don't buy that one until Lee checks in here.

https://www.amazon.com/gp/product/B06X6LDNTT

Cheers! ("Paging Dr @LBussy!" ;))
 
Last edited:
Thanks for the quick replies. I'm going with the I2C and rotary encoder you recommended.

On the OshPark link you sent there is an arduino uno shield BOM, is that the preferred method? I'm completley new to electronic maker stuff but want to do it correctly and learn the right way through this fermentation chamber build.

Thanks everyone for the knowledge.
 
I am 90% sure the only difference is the headers you use and having the IC. If you build it but skip the IC (and use A4) it will work properly. I might ask @day_trippr to check me on that because I do not currently have a PC where I can load up that schematic.
 
I'm pretty sure everything was designed according to Hoyle.

I just tried installing EAGLE 9.6.2 and it immediately abends on launch. My guess is EAGLE doesn't like my rtx4090 24G OC and triple monitors - I see lots of graphic driver compatibility issues on the EAGLE forum.

I'm not really interested in potentially borking my new machine just to run EAGLE, but I still have my old machine in cold standby (ironically, it also sported triple monitors, but actually ran EAGLE ok). I'll try to remember to fire it up and take another look at the 1.3 shield when I get a chance...

Cheers!
 
I’ll see if I can get it running on my Mac. I have little room for extras here and my company casts a dim eye on me installing rando software. :)

I think I’m 98% sure the board will work both ways though.
 
Not sure if it matters but I'm using AC-DC relays to control the chest freezer compressor and reptile heat lamp (like elko did years ago). My current design is to have the brewpi, arduino uno, LCD, and rotary encoder in a project box connected to the compressor compartment with cat5 where the RS 15-5 and SSRs are installed. Idea being the brain box is the only exterior thing on the freezer and it disconnects via RJ45 connectors. I move every 3 years for work so packability/survivability is key to brewing not repairing.
 
iirc, Elco utilized transistors (2n3904s?) on his design to boost the UNO GPIO Cool/Heat signals to run SSRs. I don't think any of the BrewPi shields we've come up with do that. Otoh, I'm not sure one cannot drive an SSR directly from an Atmel 328P, as many use logic-level inputs which presumes logic-level current.

Might depend on the SSR I suppose - I've never used SSRs on any of my BrewPi installations, they're all using the same dual channel relay board (most from Sainsmart - who sourced them from some random far east producer who I now source directly).

Anyway...I did have an PDF of Lee's v1.3 BrewPi shield and it looks proper. As Lee mentioned above, when using an I2C LCD you need to change the One Wire GPIO from A0 to A4.

1725072540966.jpeg


Cheers!
 
The PCB is the same 1.3.1-a.
But I'd have to pull the 1.3.1-a sch file over and fire up my old workstation to see if you changed anything in the schematic.
Always make a pdf! :)
 
Would someone who is running BrewPi Remix with a jacketed fermentor and glycol cooling set up be willing to share their best practices - advanced settings under the maintenance panel, chiller temp set point, heating options for jacketed conical, and performance results in terms of temp control?

I'm running a fresh install of BrewPi Remix 0.8.1 on Bullseye with 0.2.13 glycol shield on Arduino Uno. I have 6 gallons fermenting in a 15 gallon, jacketed conical (Brewershardware.com) using Beer Profile with glycol chiller temp set at 50 degrees F. No heater as haven't figured out how to do that with a jacketed conical yet. BrewPi turns on glycol chiller pump to cool. Everything is running well, but seeing bigger cooling swings then I would like. Obvious option is to set the chiller temp higher until ready to cold crash, but hoping to learn from others. Thanks.
 

Attachments

  • 1725464746834.png
    1725464746834.png
    224.1 KB
Would someone who is running BrewPi Remix with a jacketed fermentor and glycol cooling set up be willing to share their best practices - advanced settings under the maintenance panel, chiller temp set point, heating options for jacketed conical, and performance results in terms of temp control?

I'm running a fresh install of BrewPi Remix 0.8.1 on Bullseye with 0.2.13 glycol shield on Arduino Uno. I have 6 gallons fermenting in a 15 gallon, jacketed conical (Brewershardware.com) using Beer Profile with glycol chiller temp set at 50 degrees F. No heater as haven't figured out how to do that with a jacketed conical yet. BrewPi turns on glycol chiller pump to cool. Everything is running well, but seeing bigger cooling swings then I would like. Obvious option is to set the chiller temp higher until ready to cold crash, but hoping to learn from others. Thanks.
It may be as simple as having too much cooling. Do you have the option to restrict flow?

Adding (or int this case removing) too much energy will always spell trouble for a PID controller.
 
It may be as simple as having too much cooling. Do you have the option to restrict flow?

Adding (or int this case removing) too much energy will always spell trouble for a PID controller.
Logically then, one might think there is a way to adjust the sample rate perhaps so the PID algorithm could be better for the overall system. Or am I thinking about it wrong?
 
Logically then, one might think there is a way to adjust the sample rate perhaps so the PID algorithm could be better for the overall system. Or am I thinking about it wrong?
You’re not wrong, but there are some restricted capabilities when it comes to the Uno. There is no way on God’s green earth that I’m going back in that code to try to make room for any other changes. It was incredibly well optimized when I took it over, and I had to delete individual letters and abbreviate words in display rings to make room for the LCD reset.

Moving to an ESP device is a more reasonable option, but I’m not sure what @Thorrak has done in the glycol space.
 
It may be as simple as having too much cooling. Do you have the option to restrict flow?

Adding (or int this case removing) too much energy will always spell trouble for a PID controller.
I will play around with the settings, but hoped someone may have been through this. I don't have the capability to restrict flow currently -- the pump is either on or off, but restricting flow may be the only option as I discovered chiller set point can't be higher than 50 degrees.
 
A good PID system is not magic. In commercial controls, a cooling (or heating) loop will often have an inner and an outer loop. The outer one will constantly recirculate at a given fixed set point. The inner will use a three way valve to proportionately (the P in PID) change the temp of the inner loop based on demand.

When you have a 5 gallon mass of coolant that is at 50 degrees and apply it to a 5 gallon mass of wort at 70 degrees for a few mins, you’re likely to get 60-degree wort before your system has a chance to recover.

Or in a more dramatic sense: Using a welding torch to dry your hair may not ever be a great idea no matter how fast you react. The system never has a chance to ramp up (or down) in a way that can use the PID to prevent overshoots.

This is how the PID loop “winds up” and gives people widely swinging values. It never has a chance to regulate, and instead goes full tilt one way and the next over and over.
 
Using a welding torch to dry your hair may not ever be a great idea no matter how fast you react.

Great.

Now the mighty Google AI will be lobbying lawyers for a new warning label on welding torches.

Thanks a lot.

Right up there with ac units “do not drop out of window, damage and injury may occur” and lawn mowers “do not stick feet under deck while motor is running”
 
Wasn't there someone running a glycol unit using BPR in the last...8 months or so that was being helped here...or maybe a different thread?
 
So I got the recommended rotary encoder and LCD (I2C), thank you guys for the heads up, and finally got a chance to play with it this past weekend. I can't seem to get everything to work and I've been reading the forum and some of the other builds and I just don't see what I've done wrong. I even re-imaged my Raspberry Pi 2 model B using the imager tool, followed the BrewPi remix website instructions to install, and still issues. I have re-flashed the Arduino Uno R3 three times using the I2C firmware (both versions because I read at one point the newest version had issues). Initially I got the the LCD to display but it became garbled after testing out the rotary encoder function. Occasionally I have script issues on the web browser but it has been up over 24 hours now but it isn't discovering any devices (temp probes, LCD, rotary encoder, etc.). Out of things to try and can't find anything else written about it on google or the forum. Thanks ahead of time for any insight you guys might have.

LCD (I2C)
SCL to A5 (Arduino)
SDA to A4 (Arduino)
5V to 5V (RS 15-5)
GND to GND RS (15-5)

Rotary Encoder
GND to GND (RS 15-5)
5V to 5V (RS 15-5)
SW to 4 (Arduino
CLK to 2 (Arduino)
DT to 3 (Arduino)
 
I put the data line from the 3xDS18B20 probes into one dupont wire with a 4.7 ohm jumper of 5v+ then into the Arduino A0 as A4 is used by the I2C LCD. At this point my LCD is blank though the led light on the back is lit and no amount of turning or depressing the rotary encoder does anything. The LCD was lighting up and the rotary encoder inputs were registered. The script will run on the web browser but when I go to refresh devices it just continuously searches and never stops, I've let it run like that for over six hours. Not sure what I'm missing at this point.

Edit
Scratch some of the above. I must have some bad dupont wires (thanks amazon) because I went through and tested them for continuity and some were bad. Replaced them and now I can see my 3xDS18B20 wires through A0. I also have a fourth DS18B20 that shows up despite only three being used yet I have four devices with four unique one wire addresses. Also I have additional devices that I assume must be the rotary encoder and LCD but that's just a guess based on the control pins being 5, 6, 2, and 10. Also, my LCD came on and displayed correctly for awhile but then turned off and input from the rotary encoder has no effect.

1727844629240.png
 
Last edited:
The only physical items you will display through Device Configuration are the ds18b20s. Everything else is simply hard coded in the gui - the cooler, heater, door switch, fan, and light.

The phantom ds18b20 is probably an artifact stuck in eeprom...

Cheers!
 
Thanks for the quick replies. I cleared the EEPROM and the ghost DS18B20 is gone and everything from a breadboard on my desk is working properly. I'm going to try testing out the ability to trigger my SSRs as they only require 3v DC to trigger and start splicing them into the freezer compressor and my reptile heat lamp.

Mentioning the fan got me thinking as I planned on wiring the fan to run so long as the freezer is plugged in and the switch on the lid is depressed completing the circuit to the 120v AC fan. Is there a reason to have BrewPi control it? One less SSR for me to buy if its controlled by a simple marine switch on the lid and I assumed moving air keeps even temperatures so that would be optimal.
 
Thanks for the quick replies. I cleared the EEPROM and the ghost DS18B20 is gone and everything from a breadboard on my desk is working properly. I'm going to try testing out the ability to trigger my SSRs as they only require 3v DC to trigger and start splicing them into the freezer compressor and my reptile heat lamp.

Mentioning the fan got me thinking as I planned on wiring the fan to run so long as the freezer is plugged in and the switch on the lid is depressed completing the circuit to the 120v AC fan. Is there a reason to have BrewPi control it? One less SSR for me to buy if its controlled by a simple marine switch on the lid and I assumed moving air keeps even temperatures so that would be optimal.
My fan inside the ferm chamber always runs. No need to control it.
 
A fan is a pro upgrade for both fermentation and serving. While I do have a control point in some of my projects for a fan, I generally just let mine go constantly. Especially in a chest-type, almost no reason to turn it off. If you have a n upright, maybe there’s some small advantage to turning off the fan when you open the door to keep all the air from flowing out, but I’d do that with a small relay and the existing light switch (if there was one.)
 
Back
Top