Quantcast

HOWTO - Make a BrewPi Fermentation Controller For Cheap

HomeBrewTalk.com - Beer, Wine, Mead, & Cider Brewing Discussion Community.

Help Support Homebrew Talk:

narddawg314

Well-Known Member
Joined
Jan 10, 2015
Messages
92
Reaction score
3
Location
Saint Louis
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.
 

LBussy

A Cunning Linguist
HBT Sponsor HBT Supporter
Joined
Jan 19, 2013
Messages
2,783
Reaction score
993
Location
Kansas City
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.
 

narddawg314

Well-Known Member
Joined
Jan 10, 2015
Messages
92
Reaction score
3
Location
Saint Louis
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
 

narddawg314

Well-Known Member
Joined
Jan 10, 2015
Messages
92
Reaction score
3
Location
Saint Louis
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
 

LBussy

A Cunning Linguist
HBT Sponsor HBT Supporter
Joined
Jan 19, 2013
Messages
2,783
Reaction score
993
Location
Kansas City
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.
 

day_trippr

"Feeling much better now, thanks"
Joined
May 31, 2011
Messages
33,918
Reaction score
15,186
Location
Stow, MA
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!
 

narddawg314

Well-Known Member
Joined
Jan 10, 2015
Messages
92
Reaction score
3
Location
Saint Louis
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.
 

LBussy

A Cunning Linguist
HBT Sponsor HBT Supporter
Joined
Jan 19, 2013
Messages
2,783
Reaction score
993
Location
Kansas City
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.
 

narddawg314

Well-Known Member
Joined
Jan 10, 2015
Messages
92
Reaction score
3
Location
Saint Louis
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:

LBussy

A Cunning Linguist
HBT Sponsor HBT Supporter
Joined
Jan 19, 2013
Messages
2,783
Reaction score
993
Location
Kansas City
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.
 

narddawg314

Well-Known Member
Joined
Jan 10, 2015
Messages
92
Reaction score
3
Location
Saint Louis
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.
 

LBussy

A Cunning Linguist
HBT Sponsor HBT Supporter
Joined
Jan 19, 2013
Messages
2,783
Reaction score
993
Location
Kansas City
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?
 

narddawg314

Well-Known Member
Joined
Jan 10, 2015
Messages
92
Reaction score
3
Location
Saint Louis
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:

LBussy

A Cunning Linguist
HBT Sponsor HBT Supporter
Joined
Jan 19, 2013
Messages
2,783
Reaction score
993
Location
Kansas City
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. :)
 

narddawg314

Well-Known Member
Joined
Jan 10, 2015
Messages
92
Reaction score
3
Location
Saint Louis
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
 

narddawg314

Well-Known Member
Joined
Jan 10, 2015
Messages
92
Reaction score
3
Location
Saint Louis
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.
 

LBussy

A Cunning Linguist
HBT Sponsor HBT Supporter
Joined
Jan 19, 2013
Messages
2,783
Reaction score
993
Location
Kansas City

LBussy

A Cunning Linguist
HBT Sponsor HBT Supporter
Joined
Jan 19, 2013
Messages
2,783
Reaction score
993
Location
Kansas City
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?
 

narddawg314

Well-Known Member
Joined
Jan 10, 2015
Messages
92
Reaction score
3
Location
Saint Louis
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
 

LBussy

A Cunning Linguist
HBT Sponsor HBT Supporter
Joined
Jan 19, 2013
Messages
2,783
Reaction score
993
Location
Kansas City
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.
 

narddawg314

Well-Known Member
Joined
Jan 10, 2015
Messages
92
Reaction score
3
Location
Saint Louis
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
 

LBussy

A Cunning Linguist
HBT Sponsor HBT Supporter
Joined
Jan 19, 2013
Messages
2,783
Reaction score
993
Location
Kansas City
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.
 

narddawg314

Well-Known Member
Joined
Jan 10, 2015
Messages
92
Reaction score
3
Location
Saint Louis
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
 

LBussy

A Cunning Linguist
HBT Sponsor HBT Supporter
Joined
Jan 19, 2013
Messages
2,783
Reaction score
993
Location
Kansas City
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?
 

narddawg314

Well-Known Member
Joined
Jan 10, 2015
Messages
92
Reaction score
3
Location
Saint Louis
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
 

LBussy

A Cunning Linguist
HBT Sponsor HBT Supporter
Joined
Jan 19, 2013
Messages
2,783
Reaction score
993
Location
Kansas City
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.
 

H0phead

Active Member
Lifetime Supporter
Joined
Nov 23, 2014
Messages
35
Reaction score
4
Location
Burlington, WA
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.


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
 

LBussy

A Cunning Linguist
HBT Sponsor HBT Supporter
Joined
Jan 19, 2013
Messages
2,783
Reaction score
993
Location
Kansas City
Last edited:
Top