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.
The thing about the SSR is they only allow like 2A so assuming your heater is > 240 watts, that's likely too much. So, back to the relays. They should work fine.

Yes, that LCD will work as well.
 
Excellent, I'll start ordering parts...
So on that note...
Raspberry pi 4?
Which ssr?

Thanks... I'd be more elaborate in my questions but I've been testing Homebrew.
 
If you can find one, stick with the RPi3B or 3B+. The 4 is pyrotechnic, frankly not worth the effort to keep it from frying itself for something as mundane as BrewPi management...

Cheers!
 
Well that’s a little harsh. I have a 4 here and aside from needing a fan it works fine. But, no reason for anything more than the 3B+.

Get the Sainsmart 2-channel relay and skip the SSR for now.
 
If you can find one, stick with the RPi3B or 3B+. The 4 is pyrotechnic, frankly not worth the effort to keep it from frying itself for something as mundane as BrewPi management...

Cheers!
Ok, I have a pi a bit out of date it's a 3b... But I'm happy to get a new one if it not enough... I'll purchase the other items and start the build unless otherwise advised.
 
fwiw, even a 3B is overkill for multi-instance BrewPi plus a tap list manager like RaspberryPints.
I run four BrewPi minions over Bluetooth plus the tap list manager and a few other cold-side brewery functions on a 2B just fine...

Cheers!
 
fwiw, even a 3B is overkill for multi-instance BrewPi plus a tap list manager like RaspberryPints.
I run four BrewPi minions over Bluetooth plus the tap list manager and a few other cold-side brewery functions on a 2B just fine...
The clear advantage of the 3 vs the 2 is having onboard WiFi and Bluetooth so no dongles. The 3B+ has an advantage over the 3B since it supports 802.11ac vs the B (and the Zero W) which only supports 802.11n (and will slow down your home wireless.)

Despite all the haters, I like the new 4. I've been using it for all my work since they were released and as long as you get a case with a fan, all is well in the world.

Bottom line though: ANY Raspberry Pi will work. Just start with a clean SD image and all will be well in the world.
 
I can't seem to get any of my devices to save. It can see that it is reading the correct temps, but for some reason it refuses to save devices. I tried clearing my EEPROM, but that didn't seem to make a difference.
 
*UPDATE* So I decided to give Fermentrack a try since I wasn't having luck with Brewpi-Remix and I ended up running into the same problem. The difference was that in Fermentrack there is a button to reset the EEPROM. After that everything worked great! So it appears there's a difference in how I attempted to reset EEPROM using the EEPROM Clear sketch from the arduino example library and how Fermentracks handles it. I'd love to know what they did to reset it exactly and it would probably be super useful to build something like that into Brewpi-Remix if it isn't a big hassle. I even went back and tried using the same arduino in a brewpi build and it works just fine there too now so that was the issue.

Otherwise my other question was regarding Tilt sensor integration. The install script asks about it, but I don't see a way to actually add it to the graph or anything.
 
There is a button to clear EEPROM in BPR as well. Can’t help you with integrating Tilt into Fermentrack. With BrewPi if you select it on install it will show up in the graph (provided the Tilt is transmitting.)
 
Ok, I give up, my devices wont save as inverted or not inverted. Have tried Brewpi and Remix with same results. Also, it will show as heating or cooling on main page but both devices will show as inactive. I have also replaced all parts and reflashed the EEPROM.
Screenshot_20190922-112136_Chrome.jpeg
 
When you say you've replaced all parts, did you replace the Arduino? Other than suspecting you are making too many changes at once, I don't have too many tips for you. Erase EEPROM, re-flash the Arduino, and add one device at a time. Assuming you are using a relay, set it to "non-inverted" and observe that the relay turns on. Set it back to "inverted" for normal operation. If the relay does not turn on in that manner then you more than likely have a wiring issue.
 
Lbussy, you mentioned that you recommend a custom image for my setup with using Glycol chilling as the time restraints may be an issue. Can you provide me a link to download? I will be receiving my hardware today.
 
When you say you've replaced all parts, did you replace the Arduino? Other than suspecting you are making too many changes at once, I don't have too many tips for you. Erase EEPROM, re-flash the Arduino, and add one device at a time. Assuming you are using a relay, set it to "non-inverted" and observe that the relay turns on. Set it back to "inverted" for normal operation. If the relay does not turn on in that manner then you more than likely have a wiring issue.
Yep, replaced the Arduino, relays, and outlet. It's really strange because it was running fine and then half way through a fermentation it just started acting up. I was controlling the Arduini through a PC and even switched to a raspberrypi with the same results.
 
Lbussy, you mentioned that you recommend a custom image for my setup with using Glycol chilling as the time restraints may be an issue. Can you provide me a link to download? I will be receiving my hardware today.
I’m traveling through tomorrow. If I can’t get to it remotely (dev box at home) it will be Wed.
 
Yep, replaced the Arduino, relays, and outlet. It's really strange because it was running fine and then half way through a fermentation it just started acting up. I was controlling the Arduini through a PC and even switched to a raspberrypi with the same results.
What version of the firmware? What power supply?
 
Ok, parts are all in...

I have wired up a pi to a single arduino uno and the appropriate SSR - nothing wired on the relayed side.

I have the pi updated to the current release of raspian

I have loaded brew-pi remix with the command from the instructions:
curl -L install.brewpiremix.com | sudo bash

I have received errors attempting to flash the firmware during the install to the new arduino:

If you have previously flashed your controller, you do not need to do so again.
Do you want to flash your controller now? [y/N]: y
Stopping this chamber's instance(s) of BrewPi to check/update controller.
Checking current firmware version.
Opening serial port.
Unable to receive version from controller. If your controller is
unresponsive, or if this is a new controller you can choose to proceed
and flash the firmware. Would you like to do this? [y/N]:

I have been able to push code to the arduino via sketch in the gui on the pi... after loading the arduino tools to use the LCD and display "hello world"

The serial port in sketch is /dev/TTYACM0

if I continue and choose to flash the firmware I get the following:
Unable to receive version from controller. If your controller is
unresponsive, or if this is a new controller you can choose to proceed
and flash the firmware. Would you like to do this? [y/N]: y
Using port /dev/ferm according to configuration settings.
Processing a firmware flash for your blank Arduino Uno.
Checking GitHub for available release(s).
Please select the shield type you would like to use. Available shields:
[0] i2c
[1] reva
[2] revc
[3] Cancel firmware update
Enter the number [0-2] of the shield you would like to use.
[default = 2 (revc)]:

The error indicates using port /dev/ferm -- ferm being the directory that I used during the multi chamber install.

Any advise please?
 
Those are not errors, it’s telling you it’s never been flashed (true) and asking you what version you want. You asked about the I2C previously so I assume that’s the one you want. You can play with that till I get you the version which will be more compatible with glycol.
 
I have been using the old version of brewpi for years without a problem, I just recently uploaded brewpi remix and after roughly 8 hrs the pi goes offline, while the uno maintains temps correctly, I recycle power and everything works as advertised. I checked the power save mode and it's off, what should I look at next for fixing this? Possibly overheating or something else?

(Edit)
Disregard this, I placed a fan in the box and no problems since. It's crazy I've fermented around 100 or so batches with this prior to uploading the new program and never a single problem. Within 8 hours of running the new program it overheats, I guess the new program has more requirements.
 
Last edited:
Those are not errors, it’s telling you it’s never been flashed (true) and asking you what version you want. You asked about the I2C previously so I assume that’s the one you want. You can play with that till I get you the version which will be more compatible with glycol.

Ok, I have had some success with flashing my uno. I had to do it via windows using Arduino Sketch Uploader for Windows via:

https://github.com/christophedieric...wnload/v3.1.0/ArduinoSketchUploader-3.1.0.zip

I now have the uno flashed and I can see the info in the brewpi webpage under the LCD section instead of an error.

However, now my LCD does not display anything. I belive this is due to a pin conflict or not having the correct LCD driver included in the "Hex" file? Is there a way to include the LCD driver that I need? My experience with arduino is near zero...

When I say pin conflict I mean that the brewpi-remix wiring instuctions use pin Data A4 for the temp sensor, but so does the instructions for my LCD as outlined here: http://wiki.sunfounder.cc/index.php?title=I2C_LCD2004

The LCD in question is the sunfounder LCD2004 I2C as previously referenced


So moving forward, is there a way to make this work? I am poking in the dark but making progress, I very much appreciate all the experts help here. Thank you!
 
Disregard this, I placed a fan in the box and no problems since. It's crazy I've fermented around 100 or so batches with this prior to uploading the new program and never a single problem. Within 8 hours of running the new program it overheats, I guess the new program has more requirements.
We were forced to go to PHP7 (from 5) which might have but that would only happen when you are actually viewing the web page. If you are leaving a display up constantly then yes, that could add additional load.

The only change I did which could account for it is automatically refreshing the graph every two minutes I think it was. Still that's just sending the JSON to be displayed on the browser but if it's a really long ferment, maybe.

Either way, heat is the enemy of electronics so a fan is a good addition.
Ok, I have had some success with flashing my uno. I had to do it via windows using Arduino Sketch Uploader for Windows
I don't understand why that was necessary. The logs you posted are as I would have expected - you only needed to select which type (I2C or RevC) to flash.
However, now my LCD does not display anything. I belive this is due to a pin conflict or not having the correct LCD driver included in the "Hex" file? Is there a way to include the LCD driver that I need?
If you flashed the I2C hex, you need to use A0 for the temp sensor instead of A4 since A4/5 are for the LCD.
 
Ok, I have made progress. I now have my temp sensors reading ( at least in the maintenance panel -> device refresh with read values. I also have my LCD ( i2c ) working once I found the proper 12c hex file and flashed my arduino manually via windows as I can not get the flashing to work from the gui.

However, in the maintenance panel, I can seem to get the device settings to apply. If I change my Device 0 or 1 which are detected as my OneWire temp sensors to a proper device slot, and function and click apply the log windows says:
Device config command sent, U:{"i":"3","c":"1","b":"0","f":"3","h":"1","p":"5","x":"1"}

But if I click refresh the devices are always back to unassigned.

Please help if you can while I work my google fu...

Also, although my LCD is now working it turns off after a bit and never returns unless I reset the arduino, I have read people talking about the "roatary"? what is this?

Thank you all again for your great support to my endeavors.
 
Ok, I have made progress. I now have my temp sensors reading ( at least in the maintenance panel -> device refresh with read values. I also have my LCD ( i2c ) working once I found the proper 12c hex file and flashed my arduino manually via windows as I can not get the flashing to work from the gui.

However, in the maintenance panel, I can seem to get the device settings to apply. If I change my Device 0 or 1 which are detected as my OneWire temp sensors to a proper device slot, and function and click apply the log windows says:
Device config command sent, U:{"i":"3","c":"1","b":"0","f":"3","h":"1","p":"5","x":"1"}

But if I click refresh the devices are always back to unassigned.

Please help if you can while I work my google fu...

Also, although my LCD is now working it turns off after a bit and never returns unless I reset the arduino, I have read people talking about the "roatary"? what is this?

Thank you all again for your great support to my endeavors.


Just a note for anyone that needs this info, I solved the devices not applying by using the "reset arduino to factory default" in the advanced settings under the maintenance panel, and then setting the devices.
 
Ok, I have made progress. I now have my temp sensors reading ( at least in the maintenance panel -> device refresh with read values. I also have my LCD ( i2c ) working once I found the proper 12c hex file and flashed my arduino manually via windows as I can not get the flashing to work from the gui.

However, in the maintenance panel, I can seem to get the device settings to apply. If I change my Device 0 or 1 which are detected as my OneWire temp sensors to a proper device slot, and function and click apply the log windows says:
Device config command sent, U:{"i":"3","c":"1","b":"0","f":"3","h":"1","p":"5","x":"1"}

But if I click refresh the devices are always back to unassigned.

Please help if you can while I work my google fu...

Also, although my LCD is now working it turns off after a bit and never returns unless I reset the arduino, I have read people talking about the "roatary"? what is this?

Thank you all again for your great support to my endeavors.



My LCD is still a problem, but it is actually just extreamly dim after 1 minute not off as I thought.

I am using the sunfounder i2c 2004LCD, as shown here:
http://wiki.sunfounder.cc/index.php?title=I2C_LCD2004

I have attempted jumpering 5v to the pins on the back of the LCD after removing the jumper as outlined here:
https://protosupplies.com/product/lcd2004-20x4-i2c-blue-lcd-display/

The backlight intensity is not directly controllable though the I2C interface, however there is a jumper on the I2C board that supplies power to the backlight. That jumper can be removed and a voltage applied to the header pin nearest the ‘LED’ markings on the board to provide power to the backlight separately.

applying power to the pins after the jumper is removed does not light the backlight... I don't know what I am doing wrong.

I would like it to be always on if possible or at least view able on the LCD, its so dim I cant read it except for the 1 minute start up time after rebooting the uno or restarting the script in brewpi.

Thanks.
 
You need to pull pin 7 down I believe (jump to gnd) to disable dimming. The rotary encoder which you don’t have I guess is how you get it to turn back on. Think of it as a screensaver.
 
You need to pull pin 7 down I believe (jump to gnd) to disable dimming. The rotary encoder which you don’t have I guess is how you get it to turn back on. Think of it as a screensaver.


Ok, thank you I just would like to clarify as I am not very good with these components... pin 7 of which component?

I have attempted jumpering pin 7 of the LCD board to ground and the LCD still turns off at 1 minute.
 
Last edited:
You need to pull pin 7 down I believe (jump to gnd) to disable dimming. The rotary encoder which you don’t have I guess is how you get it to turn back on. Think of it as a screensaver.

I can confirm this I had the same problem and connecting pin 7 to the ground keeps the I2c display on.

Just another question is BrewPi Remix supporting iSpindle? I just received my kit today and I would like to test it with my next brew.
 
I can confirm this I had the same problem and connecting pin 7 to the ground keeps the I2c display on.

Just another question is BrewPi Remix supporting iSpindle? I just received my kit today and I would like to test it with my next brew.


Thank you for your help, but I am still not getting it to work. I wish I knew what I was doing wrong. I have ensured my ground is good, and jumpered it to pin 7 on the LCD component, reset the arduino and waited the 1 minute and the LCD still dims.
 
Ok, thank you I just would like to clarify as I am not very good with these components... pin 7 of which component?

I have attempted jumpering pin 7 of the LCD board to ground and the LCD still turns off at 1 minute.

No you need to shorten the pin D7 on the Arduino UNO to GND.
 
Just another question is BrewPi Remix supporting iSpindle? I just received my kit today and I would like to test it with my next brew.
Not quite. I have the bones in there but I need to finish the endpoint for it. That’s the same work I have to do for my new project (how’s that for a subtle hint?) so it should be pretty soon.
 
Ok, thank you all for your help, I now have a i2c LCD that is "always on". For anyone with a similar issue I had to do the following steps to do this with my i2c LCD... ( http://wiki.sunfounder.cc/index.php?title=I2C_LCD2004 )

- apply 5v to the 2 pin "LED" pin on the back to apply constant power to the LCD
- jumper from data pin 7 on the arduino to ground


On to the next issue... my HVAC that just died a horrible death, but that's for another forum.
 
Status
Not open for further replies.
Back
Top