Native ESP8266 BrewPi Firmware - WiFi BrewPi, no Arduino needed!

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.
OT ALERT!

For those who picked up any of those esp32-cam boards from banggood (<== love that name ;)) I received mine yesterday and got them working this afternoon. For once I was able to follow someone else's work :D and it went pretty smoothly. I used the Arduino IDE rather than get into installing the Espressif kit right now so that part was a breeze.

I used my trusty FT232RL which has saved my butt numerous times with my best usb cable to end up with 4.90 volts at the esp32. A not-so-good cable dropped almost 500 millivolts by comparison - no bueno, this module pulls quite a bit of power and won't tolerate that voltage drop (the serial monitor blared "Brownout!")

Once I had the sketch loaded up and the module connected to one of my wifi APs I was able to play with the camera controls and come up with some decent imaging. One thing I haven't figured out is how to get the hella bright LED with work with the software. I need to dig into the voluminous code to see if that feature is even supported.

Otherwise, the only thing worth mentioning is the controller can run pretty toasty while streaming video so I slapped as big a sink as I could fit on the SOC shield and hope they used some thermal conductor underneath it...

esp32_cam_01.jpg


esp32_cam_02.jpg


esp32_cam_03.jpg


Cheers!
 
Last edited:
OT ALERT!

For those who picked up any of those esp32-cam boards from banggood (<== love that name ;)) I received mine yesterday and got them working this afternoon. For once I was able to follow someone else's work :D and it went pretty smoothly. I used the Arduino IDE rather than get into installing the Espressif kit right now so that part was a breeze.

I used my trusty FT232RL which has saved my butt numerous times with my best usb cable to end up with 4.90 volts at the esp32. A not-so-good cable dropped almost 500 millivolts by comparison - no bueno, this module pulls quite a bit of power and won't tolerate that voltage drop (the serial monitor blared "Brownout!")

Once I had the sketch loaded up and the module connected to one of my wifi APs I was able to play with the camera controls and come up with some decent imaging. One thing I haven't figured out is how to get the hella bright LED with work with the software. I need to dig into the voluminous code to see if that feature is even supported.

Otherwise, the only thing worth mentioning is the controller can run pretty toasty while streaming video so I slapped as big a sink as I could fit on the SOC shield and hope they used some thermal conductor underneath it...

View attachment 618076

View attachment 618077

Cheers!

How are the pictures that it takes?
 
I added an XGA screen grab above - I have yet to figure out where it stashes Still images!

Cheers!

[edit] So I could be wrong but after pawing through reams of code I haven't found anything that suggests the "Get Still" function does anything more than capture one screen image to the video buffer - and never writes it anywhere.

For what I was thinking of using these for (basically, spying on the bird nests that the little winged bastids build under the upper level of our decks) that's not an issue, nor is the lack of video recording. For others, there's some work to be done...

Cheers!
 
Last edited:
That quality isn't bad at all, to be honest. Good call on the heatsink also - I saw where one of the sellers on AliExpress was specifically warning about the chip - if used constantly - overheating and damaging the module. Seems like they would opt to do something to fix that, but hey - I guess when the AliExpress warranty ends at delivery, what do they care?
 
Yeah, I've been playing with these this evening with my Fluke IR scanner and the thermal output tracks the image size pretty nicely.
But, even at 1600x1200 the heat sink temperature never gets above 121°F/51°C. Assuming a decent theta-jA from SOC through the shield through the heat sink tape to the heat sink isn't horrible I'm not worried about the SOC at this point. Without the sink I can't see this little dude surviving the workload above the minimum resolution.

Otoh, there's a tantalum capacitor (in red, below) sitting on 3.3v LDO output rail that gets pretty darned toasty on its own, hitting 130°F. Not much I can do about that - they don't make sinks that small ;)

esp32-cam_cap.jpg


Cheers!
 
One of the more common requests is camera integration (in any of these control setups). It's less a controller question and more reverse-proxying so I was thinking about "someday" doing a quick write-up.
 
Well, heck, ya never know about these $7 wireless computer camera thingies ;)

By the way, if one follows that https://makeradvisor.com/tools/esp32-cam/ procedure be sure your ftdi adapter is jumpered to put 3.3V on the VCC header pin. Or, alternatively, jumper the ftdi for 5V to the VCC pin then wire it to the 5V pin on the ESP32-CAM module. Just don't put 5V on the ESP32 3.3V rail...

Cheers!
 
Are there any plans to add a fridge profile mode? I've used Fermentrack/brewpi-esp for a couple fermentations now using the fridge temp probe to control my glycol solenoid and a heater using fridge constant, and it's worked good, but I have to manually run my lager profiles. Would be great if I could control my glycol solenoid using the beer temp, or create a profile using the fridge temp.

Is there a work around to get Glycol support working.
 
My opinion, without having run it, is that Glycol is or should be a settings endeavor rather than coding. At it's heart it's still a cooling-only profile. PID is PID no matter whether the cooling medium is glycol or air. It will need tuning for sure and a lot of that tuning is going to be dependent upon the exact application. @Thorrak may feel different, but it seems to me that discussion in the Mega thread to get an idea how people have done it previously would be a good idea.
 
Hey @Thorrak

I have an idea for an enhancement;
I typically use this just for temperature monitoring, i'm not in a position to start controlling things yet.

Sometimes my fermenter is in an inconvenient place and running wires too it causes traffic issues in my house. I've tried powering it from a USB power pack and it doesn't last very long.

I thought it might be useful as an enhancement to use the deep sleep mode on the ESP and power off the LCD LED to save power.
I would pull it from github and do it myself but the amount of code in this project is mind boggling and honsetly don't know how you manage all this yourself. I think it would correlate a bit with your reconnect from power loss enhancement.
 
That approach would only be useful for a monitor-only usage model (and even then it's pretty weak as anything already powered to be monitored implies an outlet within reach, and if connectivity is an issue we have solutions for that).

If it made it to a priority stack at all it'd surely be on the bottom.

Cheers!
 
That approach would only be useful for a monitor-only usage model (and even then it's pretty weak as anything already powered to be monitored implies an outlet within reach, and if connectivity is an issue we have solutions for that).

If it made it to a priority stack at all it'd surely be on the bottom.

Cheers!

The use case I see is for an immersed temperature sensor - similar to like a Tilt/iSpindel (but with greater precision than the tilt and more frequent updates than the iSpindel). The problem is that you would need exceptionally low power consumption to make it viable. Potentially doable in the future, but not quite yet with Espressif chips.
 
I don't get using a floating battery-powered sensor wrt temperature readings for an application like BrewPi or Fermentrack when you consider the practicality, reliability, available precision and low expense of a thermo-welled probe...

Cheers!
 
I don't get using a floating battery-powered sensor wrt temperature readings for an application like BrewPi or Fermentrack when you consider the practicality, reliability, available precision and low expense of a thermo-welled probe...

Cheers!

PicoBrew Z + 5 gallon keg + 2.5 gallons of beer.

But yeah, I need to reach out to @Jaybird about actually getting my idea for a custom thermowell solution built for this scenario.

FB9E55DF-03D0-4DB3-8851-825C353A9AEC.jpeg
 
Is there a work around to get Glycol support working.

Not at the moment, unfortunately. It is very high on the priority list, but I can't provide a date as to when it will be available. A large part of the problem is that my cooling setup doesn't lend itself to me testing any kind of glycol build, so testing is virtually impossible for me right now.

My opinion, without having run it, is that Glycol is or should be a settings endeavor rather than coding. At it's heart it's still a cooling-only profile. PID is PID no matter whether the cooling medium is glycol or air. It will need tuning for sure and a lot of that tuning is going to be dependent upon the exact application. @Thorrak may feel different, but it seems to me that discussion in the Mega thread to get an idea how people have done it previously would be a good idea.

With the legacy firmware, this isn't entirely the case unfortunately. My understanding is that due to the lack of a fridge profile mode as well as the fact that the PID doesn't apply to the fridge sensor at all (it's attempting to control the beer temp, not fridge temp) there's really not a whole heck of a lot that can be accomplished using settings alone in terms of getting the degree of temperature control most people expect from a BrewPi build.
 
Writing posts on phones is hard - I’ll post actual thoughts on Glycol support later tonight.

I appreciate the consideration, more than happy to use my setup (Fermentrack w/4 Controler-Fermenters) Glycol chilled of course.

I tried changing the fridge constant min- temp to 27F, as I was not getting any cooling-just idle for Xhrs. That triggered waiting to cool, but when it got close to 20 seconds to cool-would flash and reset to idle.

I then returned the fridge min constant temp to the default 33.8F, and changed the Glycol bath temp to 38F. I started to see the typical response I was accustomed to seeing with my fridge instances, but woke this morning to a beer temp of 68.9, with A Beer constant mode set to 67.

Thank you again for the consideration
 
Buttons don't work with the menu, unfortunately. The menu is the one thing that was lost in the ESP8266 port (primarily because the ESP8266 didn't have enough GPIO pins)

Grrrrr! I wish I was more development savvy before I bought the buttons. Making lemonade out of lemons...since the buttons are illuminated, do you think there's a way to have them indicate heating and cooling (through the relay)?
 
On the glycol thing: We have a control loop (glycol) and we have the mass being controlled (beer). Two sensors and one PID loop is enough for that. Does someone have a reference diagram for a glycol setup I could look at?

I’m not saying everyone else has been wrong, but there are people who are controlling their brews with glycol and BrewPi.
 
I could be mistaken (again - I have no build to test) but I think the issue is that the “fridge” temp (glycol temp) drops like a rock when the cooling loop is engaged, resulting in the algorithm not registering properly hence the “fridge profile” mode requirement.
 
That's my thought as well, however that makes it a PID tuning issue, not a functionality issue. It is a drastic value change for sure, but it's something that should be solved within the existing functionality.
 
For my glycol system, I've got it running in fridge mode, with the probe in the fermenter thermowell. It works fine in this manor, except for the minor annoyance of it saying fridge, but meaning beer. More importantly though, I would like to be able to control it using profiles. I've added iSpindels, and would love to be able to control the "fridge"/beer temp based on time or gravity readings, as opposed to checking on it every 12 hours.

On the glycol thing: We have a control loop (glycol) and we have the mass being controlled (beer). Two sensors and one PID loop is enough for that. Does someone have a reference diagram for a glycol setup I could look at?

I’m not saying everyone else has been wrong, but there are people who are controlling their brews with glycol and BrewPi.

Here's how my system is laid out. Mine may be a little different than others, because I leave mine running always due to it keeping my bar trunk line cold as it's primary function. It basically functions as a commercial brewery glycol loop, and I have a Fermentrack esp controlling each solenoid.
glycol.JPG


A large part of the problem is that my cooling setup doesn't lend itself to me testing any kind of glycol build, so testing is virtually impossible for me right now.

I am more than happy to help with testing in any way possible.

I remember seeing something in BrewPi having to do with not connecting a fridge probe, only a beer probe, and then it being able to work in a glycol system using profiles, but anytime I do not connect a fridge probe in Fermentrack, it won't allow running. Is there any way to leverage that functionality?

Edit: Found the post I was thinking of: https://community.brewpi.com/t/new-setup-for-glycol-tank-pump/1472/48
 
Last edited:
Thanks @phreaky , that helps. If I were designing a control system completely from scratch, I'd directly leverage the proportional part of the loop (replace the solenoid with a valve.) I'd also use a loop in a loop (with a separate recirc pump) for the fermenters. I doubt however that most people would want the expense of such a system.

Thinking about how the existing loops (both digital and cooling) could be leveraged, let me throw this out there. We can add filters and controls to the system or the circuit. I'd suggest (greatly) restricting the flow of the pseudo-loop to the fermenter. That would reduce the impact of the glycol influx since we have such a large thermal mass I think that's appropriate. Then using the beer mode would be more viable.

Having just dug a little bit into the control code, it's apparent that we would want to keep the timers and fail-safes. This is an extremely mature system, and creating a new control system to do the same thing would be risky. The less anyone has to mess with it, the less chance of an unforeseen issue. Glycol users will never have the numbers that regular fridge users have, so as a corollary there's going to be less testing and a higher potential for failure.

(I've been typing this for an hour so there's a fair change there's 15 replies since I started)
 
Back
Top