YABC-Yet a Brew Controller: BrewManiacEx

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.
Hello again

Thanks for the help I found the problem: it was that I used relay modules that were ACTIVE Low. I rebuilt all the PCBs using ULN 2003 A. Now everything is ok.
The only thing I don't understand how to solve is: every time I start the cotroller I have to set again the temperature sensor.

Below is the PCB diagram
 

Attachments

  • IMG_20211004_115457.jpg
    IMG_20211004_115457.jpg
    1.4 MB · Views: 63
Anyone have an idea why both the screen and buttons stopped working ?
I've ordered parts to build another board as something might have fried.
 
Hello, friends!
I have completed my boiler etc ..
And now I'm on my way of building automatics. The electric part is done 100%. I have got stuck with building the project.
I'm using WEMOS D1 mini , so I have decided to recompile version 0.5. But the configuration itself is typical -one heater, one pump, one sensor. I'm not new to microcontrollers, but I have never delt with VS Code + platformio. So I started with some help videos,
installed everything and ... then I've got 400+ errors.
I assume the problem is somwhere in depth configuration but I have no idea where to got.
Please, give me a hand )

Some output (terminated after some errors) is below:
Executing task: C:\Users\User\.platformio\penv\Scripts\platformio.exe run <

Processing wemosd1mini (platform: espressif8266@~2.6.2; board:
d1_mini; framework: arduino)
-------------------------------------------------------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: Redirecting...
PLATFORM: Espressif 8266 (2.6.3) > WeMos D1 R2 and mini
HARDWARE: ESP8266 80MHz, 80KB RAM, 4MB Flash
PACKAGES:
- framework-arduinoespressif8266 3.20704.0 (2.7.4)
- tool-esptool 1.413.0 (4.13)
- tool-esptoolpy 1.30000.201119 (3.0.0)
- toolchain-xtensa 2.40802.200502 (4.8.2)
LDF: Library Dependency Finder -> Library Dependency Finder (LDF) — PlatformIO latest documentation
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 39 compatible libraries
Scanning dependencies...
Dependency Graph
|-- <ArduinoJson> 6.10.0
|-- <EEPROM> 1.0
|-- <OneWire> 2.3.5
|-- <PID_AutoTune_v0>
|-- <PID_v1>
|-- <ArduinoOTA> 1.0
| |-- <ESP8266WiFi> 1.0
| |-- <ESP8266mDNS> 1.2
| | |-- <ESP8266WiFi> 1.0
|-- <ESP8266mDNS> 1.2
| |-- <ESP8266WiFi> 1.0
|-- <ESP8266WiFi> 1.0
|-- <ESPAsyncTCP> 1.1.3
| |-- <ESP8266WiFi> 1.0
|-- <ESP Async WebServer> 1.2.2
| |-- <ESPAsyncTCP> 1.1.3
| | |-- <ESP8266WiFi> 1.0
| |-- <Hash> 1.0
| |-- <ESP8266WiFi> 1.0
| |-- <ArduinoJson> 6.10.0
|-- <Hash> 1.0
|-- <LittleFS(esp8266)> 0.1.0
|-- <EspSoftwareSerial> 6.8.5
|-- <Wire> 1.0
|-- <ESP8266HTTPUpdateServer> 1.0
| |-- <ESP8266WebServer> 1.0
| | |-- <ESP8266WiFi> 1.0
| |-- <ESP8266WiFi> 1.0
|-- <ESP8266WebServer> 1.0
| |-- <ESP8266WiFi> 1.0
|-- <ESP8266HTTPClient> 1.2
| |-- <ESP8266WiFi> 1.0
|-- <ESP8266httpUpdate> 1.3
| |-- <ESP8266HTTPClient> 1.2
| | |-- <ESP8266WiFi> 1.0
| |-- <ESP8266WiFi> 1.0
|-- <DNSServer> 1.1.1
| |-- <ESP8266WiFi> 1.0
|-- <PCF8574 - library for ESP8266> 1.0.0
| |-- <Wire> 1.0
|-- <ESP8266_SSD1306> 4.0.0
| |-- <Wire> 1.0
|-- <LiquidCrystal_I2C_V3-master>
| |-- <Wire> 1.0
Building in release mode
Compiling .pio\build\wemosd1mini\src\BackupService.cpp.o
Compiling .pio\build\wemosd1mini\src\BrewManiac.cpp.o
Compiling .pio\build\wemosd1mini\src\BrewManiacEx.cpp.o
Compiling .pio\build\wemosd1mini\src\BrewManiacWeb.cpp.o
Compiling .pio\build\wemosd1mini\src\ESP32HTTPUpdateServer.cpp.o
Compiling .pio\build\wemosd1mini\src\ESPUpdateServer.cpp.o
Compiling .pio\build\wemosd1mini\src\EmbeddedFiles.cpp.o
Compiling .pio\build\wemosd1mini\src\FsEeprom.cpp.o
Compiling .pio\build\wemosd1mini\src\HttpUpdateHandler.cpp.o
Compiling .pio\build\wemosd1mini\src\TimeKeeper.cpp.o
In file included from src\BrewManiac.cpp:34:0:
src\BrewLogger.h:556:19: error: storage class specified for 'brewLogger'
extern BrewLogger brewLogger;
^
src\BrewLogger.h:556:19: error: field 'brewLogger' has incomplete type
src\BrewManiac.cpp:337:6: error: 'void BrewLogger::setEventMask(byte)'
cannot be overloaded

*** [.pio\build\wemosd1mini\src\HttpUpdateHandler.cpp.o] Build interrupted.
*** [.pio\build\wemosd1mini\src\FsEeprom.cpp.o] Build interrupted.
*** [.pio\build\wemosd1mini\src\TimeKeeper.cpp.o] Build interrupted.
*** [.pio\build\wemosd1mini\src\ESPUpdateServer.cpp.o] Build interrupted.
*** [.pio\build\wemosd1mini\src\BrewManiac.cpp.o] Build interrupted.
*** [.pio\build\wemosd1mini\src\BrewManiacWeb.cpp.o] Build interrupted.
*** [.pio\build\wemosd1mini\src\EmbeddedFiles.cpp.o] Build interrupted.
*** [.pio\build\wemosd1mini\src\BrewManiacEx.cpp.o] Build interrupted.
Error: Aborted by user

Hi DIY friends,
also I have my hardware ready. I have assembled the BrewPiLess ESP32 PCB which is awesome so far. Now facing software issue when compiling. With esp8266_framework no problem, env_default = development, building smoothly without error. But building env_default = esp32 using esp32_framework throws out a bunch of errors.

Here the build terminal output: Link to Pastebin

How did you manage to compile sucesfully? I have tried various versions of Visual Studio Code and Platformio, also different operating systems (you never know...), still not able to build.

Your help would be much appreciated!
 
Hi DIY friends,
also I have my hardware ready. I have assembled the BrewPiLess ESP32 PCB which is awesome so far. Now facing software issue when compiling. With esp8266_framework no problem, env_default = development, building smoothly without error. But building env_default = esp32 using esp32_framework throws out a bunch of errors.

Here the build terminal output: Link to Pastebin

How did you manage to compile sucesfully? I have tried various versions of Visual Studio Code and Platformio, also different operating systems (you never know...), still not able to build.
Your help would be much appreciated!

Have at look at my post #396 and see if that helps.
 
Have at look at my post #396 and see if that helps.
Thank you!
I have tried your suggestion, unfortunately I still get the same errors.

Which version of Visual Studio Code, PlattformIO are you using?
 
Last edited:
Hi DIY friends,
also I have my hardware ready. I have assembled the BrewPiLess ESP32 PCB which is awesome so far. Now facing software issue when compiling. With esp8266_framework no problem, env_default = development, building smoothly without error. But building env_default = esp32 using esp32_framework throws out a bunch of errors.

Here the build terminal output: Link to Pastebin

How did you manage to compile sucesfully? I have tried various versions of Visual Studio Code and Platformio, also different operating systems (you never know...), still not able to build.

Your help would be much appreciated!

The source files in your log seem to be different from mine.
Which version do you use?

The first error complains about TwoWire() in BrewLogger.h, which is used for data logging only. I don't see why there is implicit creationf of TwoWire object.
 
The source files in your log seem to be different from mine.
Which version do you use?

The first error complains about TwoWire() in BrewLogger.h, which is used for data logging only. I don't see why there is implicit creationf of TwoWire object.
I'm using Linux Mint 20.3, Visual Studio Code 1.36.1 (also tried the latest 1.64.1), Platformio 1.10.0 (tried latest 2.4.1). Not compiling with Windows 10 latest version Code 1.64.2, PlatformIO 2.4.1.

Meanwhile I'm using the compiled ESP32 bin, but would be great to change the pin assignment and multiple sensors.

Thanks for your help!
 
I guess it's something related to framework/library messing up.

Try compiling this example and see what happen
https://github.com/espressif/arduino-esp32/tree/master/libraries/Wire/examples/WireScan
Thanks for the hint!
I was unsuccessful compiling your example with PlatformIO's framework which is for example missing "esp32-hal-i2c-slave".
Although using the wire.cpp and wire.h from the platformio/platform-espressif32 repo did compile the WireScan example.

I suspect there's a discrepancy between the arduino-esp32 repo and the platformio-esp32 framework, hence I'm unable to compile the ESP32 BrewManiacEx.
What Platforms and versions did you install in PlatformIO?
I opened an issue on GitHub, to not spam this thread with software issues that only concern a few of us.
Thank you for your great support!
 
Thanks for the hint!
I was unsuccessful compiling your example with PlatformIO's framework which is for example missing "esp32-hal-i2c-slave".
Although using the wire.cpp and wire.h from the platformio/platform-espressif32 repo did compile the WireScan example.

I suspect there's a discrepancy between the arduino-esp32 repo and the platformio-esp32 framework, hence I'm unable to compile the ESP32 BrewManiacEx.
What Platforms and versions did you install in PlatformIO?
I opened an issue on GitHub, to not spam this thread with software issues that only concern a few of us.
Thank you for your great support!

I found that the source I had locally is different from that on Github, which was patched by @lekrom.
It takes a while for me to find out what's wrong because of the very misleading compile error messages.

You might try the latest source that I just push. (Only sources are updated.)
BTW, I upgrade to framework 3.5.0. I don't have a ESP32 setup and haven't tried it. You might need to downgrade the version of framework if it doesn't work fine.
 
I found that the source I had locally is different from that on Github, which was patched by @lekrom.
It takes a while for me to find out what's wrong because of the very misleading compile error messages.

You might try the latest source that I just push. (Only sources are updated.)
BTW, I upgrade to framework 3.5.0. I don't have
It works!!! Compiled without errors.
Now just missing the latest PID_v2 library and line 1908 in BrewManiac.cpp is missing definition of P_ON_M, which I guess is in said PID_v2.

Again thank you so much for your great work! Amazing! I will be testing the ESP32 PCB with this BrewManiacEx release.
 
It works!!! Compiled without errors.
Now just missing the latest PID_v2 library and line 1908 in BrewManiac.cpp is missing definition of P_ON_M, which I guess is in said PID_v2.

Again thank you so much for your great work! Amazing! I will be testing the ESP32 PCB with this BrewManiacEx release.

The PID V2 library is included:
https://github.com/vitotai/BrewManiacEsp8266/tree/master/lib/Arduino-PID-Library-master
I just found the updated library and haven't tried it.
I bet it should work fine.

http://brettbeauregard.com/blog/2017/06/introducing-proportional-on-measurement/
 
I also use the brewpiless pcb

I've also successfully loaded the latest brewmaniacex on the pcb with esp32.

Any advice on whether BM supports OLED display?

EDIT: I suspect it requires the following set to true in config.h. I'll recompile and try again....

#define LCD_USE_SSD1306 true
 
Last edited:
Hi, can you find a schematic diagram for an ESP32. I have an ESP32 and would like to build on it.
 
Hi, can you find a schematic diagram for an ESP32. I have an ESP32 and would like to build on it.

LCD:
#define I2C_SDA 21
#define I2C_SCL 22

DS18B20 temperature sensor:
#define SensorPin 23

Buzzer, Pump, and Heating control:
#define BuzzControlPin 18
#define PumpControlPin 16
#define HeatControlPin 17

Buttons:
#define ButtonUpPin 32
#define ButtonDownPin 33
#define ButtonStartPin 25
#define ButtonEnterPin 26


My ESP8266 build is working well, so I haven't built an ESP32 version. Let me know how it works.
 
Thanks for the reply! The ESP8266 version has EnableLevelSensor, but the ESP32 version does not?
 
Thanks for the reply! The ESP8266 version has EnableLevelSensor, but the ESP32 version does not?
Because I just tried building ESP32 version.

You can just add the following code into pins.h around line 25.

#if EnableLevelSensor
#define LevelSensorPin 19
#endif
 
Vito Tai heard us and added today!)
- add levelsensorpin definition for ESP32
 
Tell me, how can I manage (select) recipes without a web interface? I have saved recipes, but how to select them I do not know(
 
Tell me, how can I manage (select) recipes without a web interface? I have saved recipes, but how to select them I do not know(
No.

It's difficult to view 'recipes' on the tiny LCD display, so I opted to not implement this function.
Viewing and select 'recipes' are easy and fun by web interface, isn't it?
 
Of course it's convenient to use the web interface, but sometimes it's easier just to select a recipe from the list and start brewing! After all, this is automation, and many recipes are already in the memory of the controller. Just select and brewing.

Can you tell me what is the new PID STRIKE parameter?
What is it for?
 
Last edited:
Good day, has anyone had any issues when first setting up connecting to the ap? BM is the ssid but I can't figure out the password for the life of me. Been playing with this for two weeks. Any help would be great. All hardware seem fine just can't access the web interface to setup.
 
Default doesn't work?

USERNAME "brewmaniac"
PASSWORD "rdwhahb!"
HOSTNAME "bm"
 
When I click on the BM to connect to the ap "wifi" it wants a password. I tryed that password 10-20 times. I might have messed something up in the code (I've been playing with it more then I should have) I'll try down loading a fresh copy and upload that to the esp8266. Maybe I messed with something I should not have. It's been a learning process. Thanks.
 
I've been running .49 on a wemos d1 mini 8266. Upgraded to the latest, and now i can't for the life of me get the ds18b20 to work?
Not seeing any errors, it just won't find it.
Nothing changed in the hardware.
 
I've tried 3. They all work in 49, and with the example onewire

That might have something to do with OneWire library.
I tried default OneWire library of ESP32 framework and found that my sensor didn't work with that.
You can try copying "OneWire-master" folder in "lib-esp32" to "lib-esp8266" folder to rebuild the image. This faithful library has worked well.
 
Vito, how are you? it's been a long time..

Many brews have passed.

I'm testing the ESP32-dev, and wanted to know if the older web interface can be used instead of the newer one.

I'm having some issues with the network scanning and also the new web interface does not have the calculators. They were quite useful.
 
Vito, how are you? it's been a long time..

Many brews have passed.

I'm testing the ESP32-dev, and wanted to know if the older web interface can be used instead of the newer one.

I'm having some issues with the network scanning and also the new web interface does not have the calculators. They were quite useful.
I guessed it would work. I don't remember that I have changed anything related to interface between web and controller.
 
It's been so long since I uploaded firmware to an ESP8266. I have successfully compiled and flashed the ESP8266 but I can't import then save a recipe. It imports and displays all the typical beerxml data but it won't save or brew
1683807282185.png
1683807356534.png


Not sure but might be related to lack of storage? LittleFS related?
1683807461702.png
 
Nevermind. Cleaned, buil and uploaded 2 more times and it now has
Try formatting the file system manually.
Did that twice with no change. But I have just run a clean, build and upload a few more times and it is now working for some reason.
 
I have successfully saved a recipe but what is supposed to happen after you press 'Brew'. It just sits there and the dashboard is doing nothing.

I only have the ESP8266 on it's own at this stage, not sure if thats the reason.
 
I have successfully saved a recipe but what is supposed to happen after you press 'Brew'. It just sits there and the dashboard is doing nothing.

I only have the ESP8266 on it's own at this stage, not sure if thats the reason.
The automation process is set according to the mash profile specified in the BeerXML.
Check the Automation tab to confirm it. Then, brew in automation mode.
 
I think i may have som v1.1 boards, i have to check tomorrow. Cannot remember what the changes was to 1.11 though. Probably som small error just. So long since i built my two boards.

you are also based in Sweden, if so i can probaby send you a board for a small fee. drop me a pm.
Hi RollE2k.
I wonder if you still have a pcb that I can get.

I also live in Sweden.
 
Hi RollE2k.
I wonder if you still have a pcb that I can get.

I also live in Sweden.
If RollE2k can't supply you one, upload the Gerber files to a pcb manufacturer like JLCPCB. They have a quick turn around and you'll get 5 PCBs for very little money.
 
Back
Top