• 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.
The following seem to be the ancillary tty device(s) available on this system:

Manuf: , Serial: on /dev/ttyUSB0.
I think this is a case where the no-name Arduino does not have the proper USB setup ... something about an FTDI instead of a newer serial converter? Can anyone else familair with it comment? Obviously this is something I did not account for (which as @Thorrak would point out is a bug).

Ar you able to flash it with XLoader as I suggested above?
 
I think this is a case where the no-name Arduino does not have the proper USB setup ... something about an FTDI instead of a newer serial converter? Can anyone else familair with it comment? Obviously this is something I did not account for (which as @Thorrak would point out is a bug).

Ar you able to flash it with XLoader as I suggested above?

I forgot to note that I did use the XLoader and it said it wrote some number of bytes so I assume that's a success.
 
Well, plug it in and see what ya get. If nothing, reboot for good measure and let us know.

So I found this on the Fandom wiki (https://diybrewpi.fandom.com/wiki/Setting_Up_Your_RPI):

"For all of U who use an Arduino clone. You need to put this line in the /home/brewpi/autoSerial.py file.

{'vid': 0x1a86, 'pid': 0x7523, 'name': "Uno-Clone"} (all the numbers are the ones you get from the ls /dev/ttyU* command. Take note of the vid and pid values - then add 0x in front of them. "

It seems to be repeatable. If I add this line to the autoSerial.py, and restart, then it allows me to run the script in the brewpi page. However, if I remove this and restart, it does not run the script on the brewpi page.

edit: the VID and PID numbers are found under Get Board Info in the Arduino IDE. This was also posted about 30 pages back on this thread.
 
Last edited:
No doubt there is an CH340/341 bridge chip involved, which would make the board a clone.

Here are the entries from one of my test systems that I used to get various clones working on BrewPi.
The entry above is a new one for the list...

Code:
known_devices = [
    {'vid': 0x2341, 'pid': 0x0010, 'name': "Arduino Mega2560"},
    {'vid': 0x2341, 'pid': 0x8036, 'name': "Arduino Leonardo"},
    {'vid': 0x2341, 'pid': 0x0036, 'name': "Arduino Leonardo Bootloader"},
    {'vid': 0x2341, 'pid': 0x0043, 'name': "Arduino Uno"},
    {'vid': 0x2341, 'pid': 0x0001, 'name': "Arduino Uno"},
    {'vid': 0x2a03, 'pid': 0x0010, 'name': "Arduino Mega2560"},
    {'vid': 0x2a03, 'pid': 0x8036, 'name': "Arduino Leonardo"},
    {'vid': 0x2a03, 'pid': 0x0036, 'name': "Arduino Leonardo Bootloader"},
    {'vid': 0x2a03, 'pid': 0x0043, 'name': "Arduino Uno"},
    {'vid': 0x2a03, 'pid': 0x0001, 'name': "Arduino Uno"},
    {'vid': 0x1D50, 'pid': 0x607D, 'name': "Particle Core"},
    {'vid': 0x2B04, 'pid': 0xC006, 'name': "Particle Photon"}
]

Cheers!
 
I think if I can figure out a consistent way of detecting an Arduino via udevadm I might be able to cobble up a longer term fix for that known_devices array.
 
I am new to this great thread and sorry if the question has been asked before - skimming through the 190 pages didn't clarify much...
By default this type of setup works with DS18B20 sensors. However, would a thermocouple connected to the Arduino through a module such as the MAX6675 be recognized and supported as a valid temperature sensor in BrewPi?
Thanks
 
I need some advice on which path I should go down. I have my raspberrypints hardware all working and now want to load brewpi/fermentrack onto the rpi. I want to have wireless control boxes for my keezer and 2 fermentation tanks. I want a lcd and the rotary knob for manual control. But I want WiFi.

From what I have read the ESP8266 build is WiFi but can't have a rotary knob. And daytrippers build using an uno is connected to a Bluetooth antenna.
I believe it could be switched to WiFi but I'm sure the code would have to be modified for that. Does anyone have a post on where I could find how to do that?
 
I need some advice on which path I should go down. I have my raspberrypints hardware all working and now want to load brewpi/fermentrack onto the rpi. I want to have wireless control boxes for my keezer and 2 fermentation tanks. I want a lcd and the rotary knob for manual control. But I want WiFi.

From what I have read the ESP8266 build is WiFi but can't have a rotary knob. And daytrippers build using an uno is connected to a Bluetooth antenna.
I believe it could be switched to WiFi but I'm sure the code would have to be modified for that. Does anyone have a post on where I could find how to do that?
There's a thread on using an 8266 to handle wifi for an UNO running brewpi.

https://www.homebrewtalk.com/forum/index.php?threads/542296/

Wireless Brewpi Via Wifi
 
There's also an Uno with WiFi onboard now. I've thought about updating the firmware for that and discarded the idea several times. The only place where that would make sense I think is a case where a person HAD to have a rotary encoder AND wireless, and where BT is not a viable option.
 
I mean I don't have to have e a rotary encoder but it is a nice feature. My fermenters in the garage and my kegs are on the patio. So I do NEED wifi
 
Rather than going the ESP8266 route for WiFi only, I'd SERIOUSLY consider using a Pi Zero W with either regular BrewPi or Fermentrack. Doing so it quite a bit more mainstream, is not significantly more money, and will be quite a bit easier to pull off. They are ridiculously small, and you could power both with a single USB power supply. If you can do without the encoder (and I don't blame you for wanting one) then the Fermentrack project with the ESP8266 is probably the best way to go although there is some soldering required.
 
I see what you are saying but I have been messing with a zero W with tilt pi and the thing is SOOOOOOO slow. As in the time it would take to set it all up would pay for a pi3 in 10 mins.

But wouldn't having multiple pis running the program, make it more convoluted. Where all vessels aren't being controlled by a single source.
 
The 6675 uses a 3-wire read-only serial interface and a whole different access method vs the one-wire ds18b20. As the BrewPi firmware already pushes the AVR internal memory capacity there's no room for adding even the simple "driver" needed to read a 6675 and process its output into a usable form...

Cheers!
 
I see what you are saying but I have been messing with a zero W with tilt pi and the thing is SOOOOOOO slow. As in the time it would take to set it all up would pay for a pi3 in 10 mins.

But wouldn't having multiple pis running the program, make it more convoluted. Where all vessels aren't being controlled by a single source.

Disclaimer: I am the author of both Fermentrack and the ESP8266 port of the firmware.

If you don’t need rotary encoder support, just get the ESP8266 firmware. If you do need rotary encoder support, you’re going to have to do one of the hacks like using an ESP as a WiFi bridge or using the Bluetooth hack to do the same.

I don’t think @LBussy ‘s comment was recommending a Pi Zero W over a Pi 3 — though @LBussy ‘s remix of the BrewPi-web interface, the OG web interface, and Fermentrack will all run just fine on a Pi Zero W. I also exclusively use Pi 3s, but only because I love the cases I have for them.

Regardless of what you choose to do, I would recommend a single Pi to control them all - either running @LBussy ‘s remix of the web interface or Fermentrack to provide you a single portal to control them all.
 
The 6675 uses a 3-wire read-only serial interface and a whole different access method vs the one-wire ds18b20. As the BrewPi firmware already pushes the AVR internal memory capacity there's no room for adding even the simple "driver" needed to read a 6675 and process its output into a usable form...

Cheers!
I’d love to see the difference in temperature readings between a 6675 and a handful of DS18B20 sensors. I’d imagine the 6675 is far more accurate, but I wonder if the difference is in fractions of a degree or whole degrees.
 
fwiw, I proved I could substitute an esp8266 configured as a wifi/serial bridge for the HC-05/06 Bluetooth/serial bridges I have running, and under both BrewPi and RaspberryPints. For BrewPi there were no operational issues because the software is chatty enough to keep the link alive; for RaspberryPints I had to add a script that would essentially ping the esp every minute...

In the config.cfg file you use a port definition like this: port = socket://192.168.1.230:23
instead of something like /dev/ttyUSB0 or /dev/ttyAMA0.

I'm pretty sure I wrote this up and posted it somewhere on HBT...

Cheers!
 
No mater which way you go, I'd encourage you not to discount the "cost" of your time creating the solution, as well as maintaining it going forward. If I could have wasted time back again, I'd be 30 again. :)
 
Oohh. With the time for loading on the pi zero W I have played with I know I will buy pi3s from now on. the price difference just isnt alot. I wil probably build a esp 8266 to get my system under control. Then maybe play with day trippers project to get a rotary knob and wifi
 
A little update on the Uno Clone issue presented earlier. I've purchased a couple of clones for testing and confirmed the issue. As near as I can tell there's no unique identifying information with which to make a deterministic port assignment (without reverting to using "kernels".) Translated to "beer English" we get "Uno clone bad multi chamber no work." Here's the stanza, if anyone sees anything I'm missing let me know:

Code:
  looking at parent device '/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.1/1-1.1.3':
    KERNELS=="1-1.1.3"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{authorized}=="1"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bDeviceClass}=="ff"
    ATTRS{bDeviceProtocol}=="00"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bMaxPacketSize0}=="8"
    ATTRS{bMaxPower}=="96mA"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{bcdDevice}=="0254"
    ATTRS{bmAttributes}=="80"
    ATTRS{busnum}=="1"
    ATTRS{configuration}==""
    ATTRS{devnum}=="6"
    ATTRS{devpath}=="1.1.3"
    ATTRS{devspec}=="  (null)"
    ATTRS{idProduct}=="7523"
    ATTRS{idVendor}=="1a86"
    ATTRS{ltm_capable}=="no"
    ATTRS{maxchild}=="0"
    ATTRS{product}=="USB2.0-Serial"
    ATTRS{quirks}=="0x0"
    ATTRS{removable}=="removable"
    ATTRS{speed}=="12"
    ATTRS{urbnum}=="14"
    ATTRS{version}==" 1.10"
 
So I found this on the Fandom wiki (https://diybrewpi.fandom.com/wiki/Setting_Up_Your_RPI):

"For all of U who use an Arduino clone. You need to put this line in the /home/brewpi/autoSerial.py file.

{'vid': 0x1a86, 'pid': 0x7523, 'name': "Uno-Clone"} (all the numbers are the ones you get from the ls /dev/ttyU* command. Take note of the vid and pid values - then add 0x in front of them. "
Just FWIW if anyone sees this later on: You need to use "Arduino Uno" rather than "Uno-Clone" or else it's not recognized.
 
I should have mentioned that was why four of the entries in the known_devices list I posted all pointed to "Arduino Uno".
Sorry 'bout that...

Cheers!
 
Anyone know where to go and find documentation on the Maintenance Panel > Advanced Settings, for the BrewPi? Elco, has "some" docs that he posted way back when years ago, but nothing to further explain, what settings to change up/down, and what the results would be seen.....
I use Chilled water recirculated through a heat exchanger on my SsBrewTech conicals, and the Call for Cooling "on", just stays on too darn long and the Heat on call, then fights it to get back to setpoint.
There's a 1-minute overshoot of Cooling (Heavens Forbid!, say "InkBird"),and by the time the PID focuses in more tightly, the freeking Beer is done and ready to rack out to the Brite tank.
Screenshot (18).png
 
I assume you are talking about the "Cooling overshoot estimator"? That's honestly black magic to me since it's really not described in what I'd call "classic" PID terminology.

If you're overshooting though I think my first stop would be Kd. The stock value is 1.5. There's WAY more thermal mass in water than air so my first go would be to even double that and see what happens. The "maximum" value might be a good one to lower as well, since a 10 degree delta between beer and coolant is way more potential than is needed. It's been a LONG time since any engineering classes but with a jacketed or heat exchanger system I think I'd lower that way down.

Typical disclaimers apply: Change one at a time, test without real beer in there, take notes, etc. :)
 
I'll try changing the Kd setting like Lee suggested and then see what happens. If I change more then one value in Advanced Settings, I will not be able to see what the effect is of each change , so one at a time.....
There is "Cooling overshoot estimator", but it will not stop further automatic adjustment, and I guess this means it will try to get back to its preset estimator algorithm.....not sure. Wish I had a good set of documents that show, with examples, what happens when you change any Advanced Settings.
day_trippr, I think I would need to change the MAXimum On, cooling, to a lower on-time. I just need to find where this is. What if I change the "Maximum time in seconds for cooling overshoot estimator"?

A good Mathematician here on HBT would be nice to set out the values and set numbers to use, for Cooling with chilled water - versus- cooling with air in the fridge.
Any Master's out there, for us Grass Hoppers??

I see a LOT more brewers using a Chiller, now that the price has come way down for the home-brewer to afford.
Not to promote any manufacture, but Ss now has a great chiller for only $849. I was going to make one, since I do HVAC and some refrigeration, and have access to all these materials at wholesale, but my cost would still be about $5-600, and then you factor in my time......Like Lee Bussy said,(not exactly) "you have to factor in ALL your time, not just your cost of materials..."
Here is WHAT A BAD FIGHT LOOKS LIKE ----
Screenshot (20).png


I only use the Beer sensor, and the other "Fridge" sensor is actually a sensor hanging out at room temperature.

thanks for the feedback, its much appreciated!
 
Last edited:
Status
Not open for further replies.
Back
Top