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.
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.
 
well now the knob does nothing.
Hey, we made a change! Only half being comedic, this is actually promising.
I saw someone in an older thread mention pin 7 to ground. Are you sure it was 8 or 9 and not 7?
Pin 7 to ground disables the screen timeout, but also would disable your rotary encoder. If you have that shorted (or the button pushed) when it starts up, that would be the result.

Does the screen turn on? Does it time out/blank at all?
 
Hey, we made a change! Only half being comedic, this is actually promising.

Pin 7 to ground disables the screen timeout, but also would disable your rotary encoder. If you have that shorted (or the button pushed) when it starts up, that would be the result.

Does the screen turn on? Does it time out/blank at all?

The LCD backlight goes off after a little while post bootup but does not come on when turning the knob. I also tested jumping 8 to ground with no joy, again 9 to ground and no joy there either.

PXL_20201014_160806208.MP.jpg
 
Remove the rotary encoder, jump 7 to ground, and reset (unplug/re-plug) the Arduino. The expected condition is that the LCD will not timeout.
 
No, this is for debug only. You just need to make sure the jumper is there while the Arduino starts up. It checks at that time and disables the screensaver if the point is grounded.
 
No, this is for debug only. You just need to make sure the jumper is there while the Arduino starts up. It checks at that time and disables the screensaver if the point is grounded.

Hmm. The rotary encoder is soldered in place on the pcb that is in between the LCD and Arduino. If I detach the encoder, I also detach the LCD. Is that an issue?
PXL_20201013_143948121.NIGHT.jpg
PXL_20201013_143931898.NIGHT.jpg
 
Ah, well yeah, that would make it challenging to debug since we're expecting to see differences in the way the LCD works.

Without getting semi-destructive, I would unplug/replug all connectors and make sure there are no cold solder joints.
 
Ah, well yeah, that would make it challenging to debug since we're expecting to see differences in the way the LCD works.

Without getting semi-destructive, I would unplug/replug all connectors and make sure there are no cold solder joints.

I've got a nice little toggle switch laying around. How could I swap that in place of the rotary encoder? I don't make changes at the LCD anyway, but being able to turn on/off the LCD backlight would be nice
 
A toggle will not (easily) help, unfortunately. The pin performs two functions:
  1. Determine whether or not to enable screensaver (boot-time only)
  2. Temporarily turn off screensaver if it has triggered (run-time)
If you are comfortable hacking in leads, you can use a toggle but I really hate that sort of solution. Something is broken and we should be able to figure out what and fix it.

What do you have on-hand? Do you have another Arduino? An I2C LCD? Another encoder?
 
A toggle will not (easily) help, unfortunately. The pin performs two functions:
  1. Determine whether or not to enable screensaver (boot-time only)
  2. Temporarily turn off screensaver if it has triggered (run-time)
If you are comfortable hacking in leads, you can use a toggle but I really hate that sort of solution. Something is broken and we should be able to figure out what and fix it.

What do you have on-hand? Do you have another Arduino? An I2C LCD? Another encoder?

I've got an old Leonardo but that's about it unfortunately. I could order a new rotary encoder
 
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.
For anyone following along on this one - it ended up being a bad encoder.
 
Just wanted to report back on an issue I was experiencing back in June. I was getting SainSmart relay failures on my cooling circuit (I'm running a True GDM-23 commercial fridge as my fermentation chamber). It was believed that the load on the circuit (when the fridge started up) was soldering the internals of the relay and causing the relay to keep the circuit closed...this unfortunately resulted in a few frozen beers.

https://www.homebrewtalk.com/thread...tion-controller-for-cheap.466106/post-8898206
Many thanks to @LBussy @day_trippr @hinkensj for your suggestions.

I'm now running an Inkbird SSR-40 on the cold circuit and haven't had any issues since.

BrewPi_Wiring_v4.JPG
 
In desperate need of help here! Just installed BrewPi Remix on top of RaspiOS on my RPi Zero W. Hit a snag with Apache, server didn't start. I followed instructions here Apache not starting in linux mint to start the service properly. However now when I access the web UI, all I see is a block of text starting with
<?php
/* Copyright (C) 2018, 2019 Lee C. Bussy (@LBussy)
*
* This file is part of LBussy's BrewPi WWW Remix (BrewPi-WWW-RMX).
*
* BrewPi WWW RMX is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
Apparently it is brewpi config. The UI itself isn't accessible. Any ideas how to diagnose what went wrong? Thanks!
 
I suggest you re-run the dependency script and see what happens for you. The issue is PHP is not registered in Apache. Hopefully the script takes care of that. If not I'd need to see your boostrap.log and install.log (may only be one, may be *.txt files) to see where it went sideways.
Code:
sudo /home/brewpi/utils/doDepends.sh
 
Status
Not open for further replies.
Back
Top