My fermentrack/brewpi-esp8266 Build

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.

speshak

Member
Joined
Dec 1, 2009
Messages
17
Reaction score
6
Location
Des Moines, Iowa
Earlier this summer I decided I was done fighting with trying to add features I wanted to CraftBeerPi (mainly because the project is pretty much dead, among other reasons that I won't go into.). Based on a suggestion from a friend, I decided to replace CBPi with fermentrack & brewpi-esp8266. I'm using a glycol chiller so my controller only really handles turning the chill loop pumps on and off.

Because I already had a semi-operational controller, I wanted to reuse as much as I could. I had stripped and modified an old Power Mac case to mount DIN rail components.
IMG_9435.jpg


I liked thorrak's PCBs, but I wanted to make things as self contained as I could and I wanted to use the DINr-plate RaspberryPI mounts that I already had. To that end I took his board and refit it to the rPi form factor. I mounted the relay boards to the PCB and flipped the pin header so it could be hard wired to the control board.
IMG_9749.jpg

IMG_4990.jpg


These boards are connected to daughter boards via an RJ-12 cable. The sensor boards are where external sensors come into the case. I used USB connectors because they are designed to be hot plugged, and with double high plugs I could get the density I wanted.

IMG_4357.jpg



I mounted the LCDs in the "panel" (the side of the Power Mac case). To make some bezels I painted some plexiglass I had laying around. I masked off the center so that the display is visible but protected.
IMG_7715.jpg


This is still very much a work in progress, but at this point things are usable. I've been working on some modifications to the brewpi-esp8266 firmware so that I can record readings off of sensors that aren't used for process control. I have a sensor stuck in my glycol tank and in the output of the jackets from each fermenter. I'd like to log this data so I can track how well I'm transferring energy into the coolant. I'd also like to make a few cosmetic changes to the firmware for glycol use. Right now the fermenter is tracked as the fridge in fermentrack. Making the terms mach reality would be nice, but right now it's not getting in the way of the real goal of making beer.

Cheers!
 
Nicely done! :D

That's <alot> of USB connections in that spacious case. How many "chambers" are you looking to control with that beast?

Any digital gravity sensors (TiLt/iSpindel, etc) in this setup?

Cheers from a fellow central Iowan. :cool:
 
It is a lot of plugs. That's more of an effect of the economics of electronics than a real need. Holes in a PCB are free, and once you've paid shipping on 10 jacks, it's not that much more to get 50. I wanted each controller to have enough capacity to monitor:
  • Beer
  • Ambient room
  • Glycol bath
  • Coolant leaving the jacket
I had the board space, so I threw another dual gang jack on so if I ever thought of something else, I had capacity. Being a belt & suspenders sort of guy, I also designed the daughter boards so that they can be daisy chained if six jacks isn't enough. If I ever end up with that many sensors, I'm probably looking at needing to customize the firmware so it doesn't timeout waiting for the bus to fully enumerate. :oops:

I installed enough interface boards for 4 controllers, but I don't expect to be running more than two anytime soon.

No gravity sensors yet. I had assumed that the stainless conicals I'm using would block the signal. Your question was enough to finally make me go look and according to the TiLt's FAQ it should work. 🤔
 
It is a lot of plugs. That's more of an effect of the economics of electronics than a real need. Holes in a PCB are free, and once you've paid shipping on 10 jacks, it's not that much more to get 50. I wanted each controller to have enough capacity to monitor:
  • Beer
  • Ambient room
  • Glycol bath
  • Coolant leaving the jacket
I had the board space, so I threw another dual gang jack on so if I ever thought of something else, I had capacity. Being a belt & suspenders sort of guy, I also designed the daughter boards so that they can be daisy chained if six jacks isn't enough. If I ever end up with that many sensors, I'm probably looking at needing to customize the firmware so it doesn't timeout waiting for the bus to fully enumerate. :oops:

I installed enough interface boards for 4 controllers, but I don't expect to be running more than two anytime soon.

No gravity sensors yet. I had assumed that the stainless conicals I'm using would block the signal. Your question was enough to finally make me go look and according to the TiLt's FAQ it should work. 🤔

The iSpindel's Wifi works thru SS, but the range is diminished. Furthest I've needed to practically test is a corny keg, in a fridge to the router in an adjacent closet, maybe 10feet? It worked for the generic 15-minute polls. Only tested with water as it's a brand-new goodie for me, so I'm still figuring it all out. :D

The TiLt's BT possibly with the addition of a Tilt-bridge placed near the fermenter. It does the BT <-> Wifi interfacing to FT for you.
 
You got me all inspired to build a couple iSpindels this winter. The rPi that I'm running fermentrack on is configured to act as an access point for the brewpi-esp8266 boards, and it's mounted inside the MacPro case. I'm only going to need to go 6ft or so from the fermenter. Worse case, I can probably figure out a way to route a passive antenna through the blowoff fitting

The TiLt has a bit more polish, but I couldn't justify the price considering that I've already got half of the stuff required to build a iSpindel in my parts bins.
 
The WiFi capability of the iSpindel trumped the TiLt for me, tho the longer polling time precludes using the temp sensor on the device to be used as a control for FT.

You still get the polled temp every time the gravity is pinged, which is yet another colored line on the Web graph :)
 
Nice build. Question do you connect the ESP32 with the brewpi via wifi? If yes for each fermenter you have a different ESP32? Also, is there a limit to the ESP32 (i.e fermentors) you can connect to the system? Finally can you post some screenshots from the fermentrack?
 
The WiFi capability of the iSpindel trumped the TiLt for me, tho the longer polling time precludes using the temp sensor on the device to be used as a control for FT.

You still get the polled temp every time the gravity is pinged, which is yet another colored line on the Web graph :)
http://www.tiltbridge.com/
;)
 
Yes, the connection between the Pi and the ESP boards is WiFi and each fermenter has its own ESP controller. In my particular set up I'm running the Pi in an access point mode and connect it to the rest of my home network with wired ethernet. (There is no requirement for this, its just how I preferred to set things up)

I'm sure there is some practical limit to how many you can hook up, but it's probably more fermenters than any reasonable person would be running.
 
I did end up making a second revision of my PCB, no real functional changes just some minor "quality of life" things that bugged me while I had a couple running on the bench doing firmware change testing:
  • I flipped the orientation of the ESP by 180* so that I could hook up the USB the board is plugged into the PCB
  • Added a header for the ESP reset pin. In theory I could wire these up to the Pi to set up some sort of watchdog that would reset the boards if they lose connection. (Honestly I haven't fully thought this part out, but I figured it would be easy enough to add the header since I was having new boards made)
  • There was a issue with the footprint used for the OneWire pull up resistor, one end of the resistor didn't actually hit the pad. (In the picture of the populated board you can see a bit of wire running to the un-populated RJ-12 jack. That was a jumper I used to fix the problem)
 
Yes, the connection between the Pi and the ESP boards is WiFi and each fermenter has its own ESP controller. In my particular set up I'm running the Pi in an access point mode and connect it to the rest of my home network with wired ethernet. (There is no requirement for this, its just how I preferred to set things up)

I'm sure there is some practical limit to how many you can hook up, but it's probably more fermenters than any reasonable person would be running.
Thank you for the answers. Could you post some photos of the fermentrack interface in order to see the capabilities? (I can not find detailed screenshots). For example can I set the fermentation steps?
 
I was thinking that there were screen shots on the main fermentrack site. Maybe someone should open a ticket in the github project to get that done ;)

Here's a quick grab from a batch that is currently running on my system. (Ignore the wonky data for the room temp probe. It had fallen against the coolant line and was giving me the temp of the outside of the hose instead of the ambient room)
Screen Shot 2020-10-31 at 2.17.34 PM.png
 
Sweet build!

I would like to replicate your build as I have 3 fermenters I would like to control with Fermentrack for glycol and heating. What type of valve are you using to control the glycol and what is the power requirement for the valves? How do you have them wired into the control panel and into the ESP? Would you have a parts list?

Thanks in advance!
 
I think you're hinting at the idea of the traditional commercial setup where there is a glycol loop that is always running, and then a controlled valve at each fermenter tap into that loop. I'm not set up that way. Each of my fermenters has a cheap aquarium pump in the glycol chiller's tank. The relay boards on the ESP modules are wired to some long drop cords which go to the chiller and the pumps are plugged into their respective cord. (You can see the ends of these cords in the lower right side of the first picture. Right below the fuse blocks)

I considered doing the constant loop, but I decided against it for two reasons. The first being price. The cost of reliable controllable valves was way more than the ~$12 I spent on each pump. Secondly was efficiency. Having a pump run all the time would introduce energy into the glycol, meaning that my chiller would run more often just to remove the pump heat. (Of course you could propose that the pump would only be switched on when needed, but that adds even more complexity to what arguably is already a way too complex system for a homebrewer :))
 
Thanks for the quick reply.

Yes, I was referring to the glycol loop that would always be running. I found some irrigation 12v solenoid valves I'm thinking could work. Would I need relays for 12v for these solenoids, like these?

12v Relays
 
Those relays are triggered by 12v. The ESP's GPIO is 3.3v, but I've found that the 5v modules will trigger just fine. An example.
Just about every one of these off the shelf relays that I've seen are 10A 250V, so they are more than capable of switching your 12v solenoids. (The rating is the max that they can switch. It will do less just fine.)

If you're looking at a valve like this, you might even forgo the relay and use a FET transistor instead. Though if you're not getting boards made, using relay module would make for a cleaner build.

Now you've got me considering switching my setup over to a loop. I thought it was bad enough that @renstyle's simple question a few months ago got me to build a bunch of iSpindels 😆
 
Oh nice. I think I'll go the relay route. Putting together a parts list now.

I've been looking at the build for the iSpindels as well. Can you run multiple iSpindles to different fermenters at the same time?
 
I did end up making a second revision of my PCB, no real functional changes just some minor "quality of life" things that bugged me while I had a couple running on the bench doing firmware change testing:
  • I flipped the orientation of the ESP by 180* so that I could hook up the USB the board is plugged into the PCB
  • Added a header for the ESP reset pin. In theory I could wire these up to the Pi to set up some sort of watchdog that would reset the boards if they lose connection. (Honestly I haven't fully thought this part out, but I figured it would be easy enough to add the header since I was having new boards made)
  • There was a issue with the footprint used for the OneWire pull up resistor, one end of the resistor didn't actually hit the pad. (In the picture of the populated board you can see a bit of wire running to the un-populated RJ-12 jack. That was a jumper I used to fix the problem)

Did you by chance save and share this board layout so the rest of us can purchase it? Starting my own build from scratch and I like how you have the relays nested with the ESP.
 
I'm also interested in the board, is there any chance I can buy it from you? much appreciated!
 
Sorry for the lag, I saw the original interest message while I was on vacation and forgot all about it until I came across my stack of unpopulated boards tonight. I have a few of the controller boards laying around and I think I have enough of the relay daughter boards to complete them. Give me a few days to dig around and figure out what I've got and what it cost me.

Just to gauge the different interests, are people just after the bare board, the board + the relays, or board + relays + ESP8266? If people are just wanting the PCB itself, I can probably just share the KiCAD files, though because I used SMD components the economies of scale are better in one big order.
 
I'm interested in board + relays. Will you solder the RJ45 socket also ? Due to I'm newbie here, I cannot PM you, could you send PM me for further discussion? Thank you.
 
Back
Top