• Please visit and share your knowledge at our sister communities:
  • If you have not, please join our official Homebrewing Facebook Group!

    Homebrewing Facebook Group

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

Homebrew Talk

Help Support Homebrew Talk:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.
I've had the best luck flashing the ESP32-S2 mini's with the Brewflasher App. The only way I've gotten these to flash is to hold both the buttons to put it flash mode before selecting the port. I select the erase flash, and then hold the "Boot", or "0" button while selecting the "download firmware and flash controller" button. Keep the button held until you see it erasing the flash before letting go. It has always given me an error message at the end saying that it failed, but it still works. If you cycle power or press the reset button it should show up as a wifi AP after a minute or two.
 
I finally was able to flash all 3. Like you said RocketBrewer, had to try combinations of button presses on the chip to get it into flash mode. Still runs very slow though. Web interface very slow and even the temp probes update very slowly. I am going to do a build with the ESP32 pro and see how that goes.
 
Thorrak, I am trying to clean out all the old controller boards I have and I remember you saying there is a problem with the Lolin D1 mini v 4.0. Is this still the case. If they are of no use I will get rid of them.

Took a bit longer to test than I thought as I had some ESP8266-incompatible changes in the v16 branch, but after bringing the ESP8266 support up to date, unfortunately, still no luck with the v4.0.0 hardware. :(

I'd say hang on to it a bit longer -- I'm waiting on the esp-idf v5.1 update for ESP32, and I'm hoping that it will also come with some improvements on the ESP8266 side of things, but if you need to reclaim the space I would go ahead and sell/toss the v4.0.0 chips.
 
I just released Beta 3, which adds an HTTP interface to the controller:

View attachment 813958


From this interface, you can:
  • See the current status (including the virtual LCD)
  • Configure/assign pins, Tilts, Inkbird sensors, and OneWire temp sensors
  • Change the temperature control mode & set point
In other words: This provides an emergency fallback in case your local install of BrewPi Remix or Fermentrack is on the fritz on brew day.

For obvious reasons, this has only been added to WiFi controllers. Just like the "telnet" interface, anyone that can connect to the interface can change your settings, so you will want this behind a firewall (and not accessible to the open internet). This has been added to the ESP32-S2, ESP8266, and ESP32 WiFi binaries, but will not work with the "no spiffs init" versions.
 
Excuse my ignorance but how do I update this? Its been awhile since I first built mine? Its not part of the firmware updates you can do in fermentrack is it?

And then how would I acccess the HTTP interface? What IP address as the one I use now takes me to fermentrack?
 
Excuse my ignorance but how do I update this? Its been awhile since I first built mine? Its not part of the firmware updates you can do in fermentrack is it?

And then how would I acccess the HTTP interface? What IP address as the one I use now takes me to fermentrack?
To update, you would re-flash your controller using the newly released firmware. You can do this using Fermentrack's built-in firmware flasher, using BrewFlasher Desktop, or using BrewFlasher Web. What you want are the "v15" firmware versions (not the "experimental" or "beta" versions)

If you're using Fermentrack then the HTTP interface is more of a backup than anything. You would need to get the IP address of your controller (which should be displayed on the controller's screen at startup) and enter it into a web browser connected to the same network. Again, however - this is not necessary if you've got a running version of Fermentrack, as Fermentrack provides all of the functionality that the on-controller HTTP interface provides.
 
I realized this past week that with the v15 release, the user interface is now internationalizable. That said, I, unfortunately, am a monoglot.

This is a request for help -- If anyone out there happens to be bilingual and is fluent in a language that you'd like to see the BrewPi-ESP8266 interface translated to, please reach out! I can't guarantee that I can get all the strings in the hardware translated (ie. the LCD) but the Web UI can be translated, for sure.
 
Can I translate it to Pirate?
Screen Shot 2023-06-24 at 1.52.47 PM.png
 
For brand new users, my recommendation is to either use the ESP32 (preferably with a TFT!) or an ESP32-S2. The LoLin S2 Mini is a pin compatible replacement for the D1 Mini, meaning that both new and existing builds using my PCB designs should be able to directly replace the controller with a LoLin S2 Mini without other hardware changes.

If you have any questions or concerns, please do not hesitate to either post here or reach out directly. I'll post another reminder about this when v15 is released.
Hi guys, Im going to build a new controller using the ESP32, but was wondering if someone could advise what TFT screen I should buy? Also is there a wiring diagram available or is it all the same as the esp8266? I have some PCB boards left over from my original esp8266 builds but Im not sure of they are from @Thorrak or not.
 
Hi guys, Im going to build a new controller using the ESP32, but was wondering if someone could advise what TFT screen I should buy? Also is there a wiring diagram available or is it all the same as the esp8266? I have some PCB boards left over from my original esp8266 builds but Im not sure of they are from @Thorrak or not.
I don’t have a schematic saved, but one can be pulled from the Eagle files here:

https://github.com/thorrak/thorrak_hardware/tree/master/ESP32 BrewPi Boards
The Lolin D32 Pro + matched TFT work great, as do most generic 320x240 SPI LCDs. I haven’t tested this so I can’t guarantee it will work, but I would expect this one to work, for example: https://a.aliexpress.com/_msqUvqk

For SPI LCDs like that one you will need a way to connect the LCD to the PCB - either a breakout PCB + cable or DuPont cables. These connect to the box header on the PCB. The pinout is the exact same as that of the D32 Pro’s LCD.
 
I don’t have a schematic saved, but one can be pulled from the Eagle files here:

https://github.com/thorrak/thorrak_hardware/tree/master/ESP32 BrewPi Boards
The Lolin D32 Pro + matched TFT work great, as do most generic 320x240 SPI LCDs. I haven’t tested this so I can’t guarantee it will work, but I would expect this one to work, for example: https://a.aliexpress.com/_msqUvqk

For SPI LCDs like that one you will need a way to connect the LCD to the PCB - either a breakout PCB + cable or DuPont cables. These connect to the box header on the PCB. The pinout is the exact same as that of the D32 Pro’s LCD.
Thanks Thorrak for the reply. When you say "The Lolin D32 Pro + matched TFT" work great, which one is the matched TFT? Is it this one? https://www.aliexpress.com/item/32919729730.html?gatewayAdapt=4itemAdapt Or should I just get the other one you linked from Ali express?
 
Is there anyway to get the temp to show in F instead of C on brewpi esp? I'm running a d32 pro with the 20x2 LCD screen. I tried going to /testcmd.htm and /testcmd.html and couldn't access anything to send JSON commands. I was hoping to apply j{"tempFormat":"F"}

Do I have to worry about the LCD screen burning in long term? Not a big deal can replace it but curious.

Thanks
 
Last edited:
Thanks mate, so should I order your board from Tindie or OSHpark? Do they both ship to Oz?

I just did a d32 pro build and it's cheaper to order one board from Tindie than 5? boards from OSHpark. Not sure about shipping to au. Also if you order from Tindie you get the surface mount components pre-soldered, with OSHpark you would have to source the components and solder them yourself.

I ordered the other components from digikey, I also needed a IEC power socket. I used a 5v 1a usb wall adaptor (from an amazon fire tv stick) for my dc power supply. You could use an old iphone usb-a charger, just get a cheap micro usb cable and cut off the micro connector and solder the wires directly to your PCB. It's also safer this way to use a off the shelf sealed power supply vs. that sketchy one from China.

I used a wago style push connector for my hot side power bus, it's hard to find the documentation of there's a trick you can do with your 2ch relay to make sure only hot or cold is on at the same time. You can connect the relay closed side to the COM of the other channel. It's hard to explain but you see the diagram it makes sense.

BrewPi-Remix-v2.png
 
Last edited:
I just did a d32 pro build and it's cheaper to order one board from Tindie than 5? boards from OSHpark. Not sure about shipping to au. Also if you order from Tindie you get the surface mount components pre-soldered, with OSHpark you would have to source the components and solder them yourself.

I ordered the other components from digikey, I also needed a IEC power socket. I used a 5v 1a usb wall adaptor (from an amazon fire tv stick) for my dc power supply. You could use an old iphone usb-a charger, just get a cheap micro usb cable and cut off the micro connector and solder the wires directly to your PCB. It's also safer this way to use a off the shelf sealed power supply vs. that sketchy one from China.

I used a wago style push connector for my hot side power bus, it's hard to find the documentation of there's a trick you can do with your 2ch relay to make sure only hot or cold is on at the same time. You can connect the relay closed side to the COM of the other channel. It's hard to explain but you see the diagram it makes sense.

BrewPi-Remix-v2.png
Thanks for the tips Shane. Ive buiilt to ESP8266 controllers that Ive been running for years so Im assuming the ESp32 build will be similar.

Ive already got some 5v 2a power supplies to use as well..
 
In getting things updated on my end I realized that even though v15 went live, I never made the repo that contains the user interface public. Although this shouldn't matter to most people, if you're interested in helping develop BrewPi-ESP and need to make changes to the user interface, the code is available here.
 
For the curious, I calculated shipping to Australia, and unfortunately it comes out to about $20 for a bubble envelope with 5 oz of contents shipped via the cheapest shipping method available. By contrast, ordering 5 unpopulated PCBs shipped costs a bit under $10 from PCBWay. :(
 
I just released Beta 3, which adds an HTTP interface to the controller:

View attachment 813958


From this interface, you can:
  • See the current status (including the virtual LCD)
  • Configure/assign pins, Tilts, Inkbird sensors, and OneWire temp sensors
  • Change the temperature control mode & set point
In other words: This provides an emergency fallback in case your local install of BrewPi Remix or Fermentrack is on the fritz on brew day.

For obvious reasons, this has only been added to WiFi controllers. Just like the "telnet" interface, anyone that can connect to the interface can change your settings, so you will want this behind a firewall (and not accessible to the open internet). This has been added to the ESP32-S2, ESP8266, and ESP32 WiFi binaries, but will not work with the "no spiffs init" versions.
Is there any configuration required to get the controller's http interface to work? I've just reflashed to the v15 firmware and it's all working happily with fermentrack, however if I try going directly to the ip address of the controller I just get a ERR_EMPTY_RESPONSE error from the browser.
 
Is there any configuration required to get the controller's http interface to work? I've just reflashed to the v15 firmware and it's all working happily with fermentrack, however if I try going directly to the ip address of the controller I just get a ERR_EMPTY_RESPONSE error from the browser.

Nope - shouldn't be. Which firmware specifically did you flash? (And for which controller?)
 
Now I just need to work out why I can't get fermentrack to connect to my tilt 🥺

Is there a good troubleshooting guide? Worked on my prior install but not after having to do a full reinstall on a new sd card. I'm kind of stuck after doing a full apt-get update and upgrade, checking that I can scan bluetooth devices via bluetoothctl and hcitool (though they only show device IDs and not names), adding experimental to the bluetooth service execstart and adding pi to the bluetooth group. I can see the tilt fine using the standard Tilt2 app, so there's something amiss somewhere...
 
Now I just need to work out why I can't get fermentrack to connect to my tilt 🥺

Is there a good troubleshooting guide? Worked on my prior install but not after having to do a full reinstall on a new sd card. I'm kind of stuck after doing a full apt-get update and upgrade, checking that I can scan bluetooth devices via bluetoothctl and hcitool (though they only show device IDs and not names), adding experimental to the bluetooth service execstart and adding pi to the bluetooth group. I can see the tilt fine using the standard Tilt2 app, so there's something amiss somewhere...
Are you using the latest release (with Docker/TiltBridge Junior)?
 
Back
Top