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

    Homebrewing Facebook Group

YABC-Yet a Brew Controller: BrewManiacEx

Homebrew Talk

Help Support Homebrew Talk:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.
I added this in pins.h and when I compile with SecondaryHeater, I know have 3.3 on D8.
Is this normal ?

Code:
#if SecondaryHeaterSupport == true
    pinMode (AuxHeatControlPin, OUTPUT);
    setSecondaryHeaterOut(LOW);
#endif
 
I added this in pins.h and when I compile with SecondaryHeater, I know have 3.3 on D8.
Is this normal ?

Code:
#if SecondaryHeaterSupport == true
    pinMode (AuxHeatControlPin, OUTPUT);
    setSecondaryHeaterOut(LOW);
#endif

The missing code is added.

D8, aka GPIO15, must be HIGH to enable normal boot up. If you pull it to low, EPS8266 won't boot normally.
Most ESP8266 solutions, like EPS12 or EPS01, connect D8 to Vcc via a resistor. You can find the schematics on GitHub or Espressif's website.

The code will run after boot up, so D8 should be low after boot up. Unfortunately, I don't have dual heater setup, and I can't verify that.
However, I did use D8 to control a Relay Module in BrewPiLess, and it works as expected. Though, there is one people report that his BrewPiLess won't boot-up if D8 is connected to the relay module. I guess he might have some bad D1 mini or NodeMCU that doesn't follow the design guideline of Espressif or bad Relay module that pull D8 low.
 
The missing code is added.

D8, aka GPIO15, must be HIGH to enable normal boot up. If you pull it to low, EPS8266 won't boot normally.
Most ESP8266 solutions, like EPS12 or EPS01, connect D8 to Vcc via a resistor. You can find the schematics on GitHub or Espressif's website.

The code will run after boot up, so D8 should be low after boot up. Unfortunately, I don't have dual heater setup, and I can't verify that.
However, I did use D8 to control a Relay Module in BrewPiLess, and it works as expected. Though, there is one people report that his BrewPiLess won't boot-up if D8 is connected to the relay module. I guess he might have some bad D1 mini or NodeMCU that doesn't follow the design guideline of Espressif or bad Relay module that pull D8 low.
With your latest modification, it works just fine with Dual Heater mode.
I retrofitted a Klarstein Brauheld Pro with a BrewManiac system, it's working super fine
1616849031267.png
1616849046317.png



Thanks again for everything you do for the community !
 
ExbrewM.jpg
I tried flashing the software yesterday, and some very quick testing suggests it was uploaded, and is working, but I get a LOT of error messages when building. Am I missing something with Platformio?
 
This error looks familiar from my first experience with Paltformio and this software. I will try and compile it this weekend to see what might be giving you this issue (unless someone beats me to it).
 
View attachment 735514
I tried flashing the software yesterday, and some very quick testing suggests it was uploaded, and is working, but I get a LOT of error messages when building. Am I missing something with Platformio?
I have replicated your issue.
1626432452459.png


To replicate this, I selected PlatformIO on the left, expanded 'Default, General' and selected 'Build All'. This will try and build all of Brewmaniacx flavours as they are all specified in the platformio.ini env_default.
1626433177554.png
Only spargeheater will compile but I haven't looked into what you need to change in order to get any of the other flavours to compile on there own.

If you only want to compile spargeheater, expand 'spargeheater/general' and select 'build'. This will compile the spargeheater flavour only.
1626433051767.png

Another way to compile spargeheater only is to delete all the other flavours from platformio.ini, env_default (leave spargeheater there) and then you can compile via 'Default, general,build all' but this is not necessary.
 
Last edited:
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
void setEventMask(byte mask)
^
src\BrewManiac.cpp:137:6: error: with 'void BrewLogger::setEventMask(byte)'
void setEventMask(byte);
^
In file included from src\BrewManiac.cpp:346:0:
src\buzz.h:41:65: error: section attribute not allowed for
'_soundIdTemperatureReached'
const byte _soundIdTemperatureReached[] PROGMEM ={5,10,3,10,3,10};
^
src\buzz.h:42:70: error: section attribute not allowed for '_soundIdCountDown'
const byte _soundIdCountDown[] PROGMEM
={9,20,20,20,20,20,20,20,20,40}; // 5 seconds
^
src\buzz.h:44:98: error: section attribute not allowed for '_soundIdAddHop'
const byte _soundIdAddHop[] PROGMEM
={19,30,10,30,10,30,10,30,10,30,10,30,10,30,10,30,10,30,10,40}; // 10
seconds

^
src\buzz.h:45:59: error: section attribute not allowed for
'_soundIdWaitUserInteraction'
const byte _soundIdWaitUserInteraction[] PROGMEM ={2,10,30};
^
src\buzz.h:46:46: error: section attribute not allowed for '_soundIdBrewEnd'
const byte _soundIdBrewEnd[] PROGMEM ={2,37,7};
^
src\buzz.h:52:16: error: section attribute not allowed for '_sounds'
_soundIdBrewEnd};
^
In file included from src\BrewManiac.cpp:351:0:
src\resources.h:28:23: error: section attribute not allowed for 'C_IpAddress'
StringConst(IpAddress,"IP:");
^
src\resources.h:15:57: note: in definition of macro 'StringConst'
#define StringConst(v,c) const char C_##v [] PROGMEM = c
^
src\resources.h:29:31: error: section attribute not allowed for
'C_HS_Session_Number'
StringConst(HS_Session_Number,"HS Session");
^
src\resources.h:15:57: note: in definition of macro 'StringConst'
#define StringConst(v,c) const char C_##v [] PROGMEM = c
^
src\resources.h:30:22: error: section attribute not allowed for 'C_HS_Start'
StringConst(HS_Start,"Start HS");
^
src\resources.h:15:57: note: in definition of macro 'StringConst'
#define StringConst(v,c) const char C_##v [] PROGMEM = c
^
src\resources.h:31:21: error: section attribute not allowed for 'C_HS_Keep'
StringConst(HS_Keep,"Keep HS");
^
src\resources.h:15:57: note: in definition of macro 'StringConst'
#define StringConst(v,c) const char C_##v [] PROGMEM = c
^
src\resources.h:32:19: error: section attribute not allowed for 'C_PBH_x'
StringConst(PBH_x,"PBH #");
^
src\resources.h:15:57: note: in definition of macro 'StringConst'
#define StringConst(v,c) const char C_##v [] PROGMEM = c
^
src\resources.h:34:17: error: section attribute not allowed for 'C_min'
StringConst(min,"min");
^
src\resources.h:15:57: note: in definition of macro 'StringConst'
#define StringConst(v,c) const char C_##v [] PROGMEM = c
^
src\config.h:201:25: error: section attribute not allowed for 'C_welcome'
#define BME8266_VERSION "0.5"
^
src\resources.h:15:57: note: in definition of macro 'StringConst'
#define StringConst(v,c) const char C_##v [] PROGMEM = c
^
src\resources.h:22:34: note: in expansion of macro '_makeVERSION_INFORMATION'
#define _makeVERSION_indirect(v) _makeVERSION_INFORMATION(v)
^
src\resources.h:23:30: note: in expansion of macro '_makeVERSION_indirect'
#define VERSION_INFORMATION _makeVERSION_indirect(BME8266_VERSION)
^
src\resources.h:23:52: note: in expansion of macro 'BME8266_VERSION'
#define VERSION_INFORMATION _makeVERSION_indirect(BME8266_VERSION)
^
src\resources.h:36:22: note: in expansion of macro 'VERSION_INFORMATION'
StringConst( welcome,VERSION_INFORMATION);
^
src\resources.h:38:29: error: section attribute not allowed for
'C_Initialization'
StringConst( Initialization,"Connecting..");
^
src\resources.h:15:57: note: in definition of macro 'StringConst'
#define StringConst(v,c) const char C_##v [] PROGMEM = c
^
src\resources.h:39:27: error: section attribute not allowed for 'C_SetupNetwork'
StringConst( SetupNetwork,"Setup Network");
^
src\resources.h:15:57: note: in definition of macro 'StringConst'
#define StringConst(v,c) const char C_##v [] PROGMEM = c
^
src\resources.h:42:30: error: section attribute not allowed for
'C_To_be_started_in'
StringConst(To_be_started_in,"To be started in");
^
src\resources.h:15:57: note: in definition of macro 'StringConst'
#define StringConst(v,c) const char C_##v [] PROGMEM = c
^
src\resources.h:43:28: error: section attribute not allowed for
'C_Setting_Delay'
StringConst( Setting_Delay,"Setting Delay");
^
src\resources.h:15:57: note: in definition of macro 'StringConst'
#define StringConst(v,c) const char C_##v [] PROGMEM = c
^
src\resources.h:44:26: error: section attribute not allowed for 'C_Delay_Start'
StringConst( Delay_Start,"Delay Start?");
^
src\resources.h:15:57: note: in definition of macro 'StringConst'
#define StringConst(v,c) const char C_##v [] PROGMEM = c
^
src\resources.h:47:29: error: section attribute not allowed for
'C_No_Delay_Start'
StringConst( No_Delay_Start,"No Delay Start");
^
src\resources.h:15:57: note: in definition of macro 'StringConst'
#define StringConst(v,c) const char C_##v [] PROGMEM = c
^
src\resources.h:49:29: error: section attribute not allowed for
'C_Resume_Process'
StringConst( Resume_Process,"Resume Process?");
^
src\resources.h:15:57: note: in definition of macro 'StringConst'
#define StringConst(v,c) const char C_##v [] PROGMEM = c
^
src\resources.h:51:23: error: section attribute not allowed for 'C_In_Pause'
StringConst( In_Pause,"In Pause");
^
src\resources.h:15:57: note: in definition of macro 'StringConst'
#define StringConst(v,c) const char C_##v [] PROGMEM = c
^
src\resources.h:52:26: error: section attribute not allowed for 'C_IODINE_TEST'
StringConst( IODINE_TEST,"IODINE TEST");
^
src\resources.h:15:57: note: in definition of macro 'StringConst'
#define StringConst(v,c) const char C_##v [] PROGMEM = c
^
src\resources.h:53:29: error: section attribute not allowed for
'C_AutomaticMode'
StringConst( AutomaticMode, "AUTOMATIC MODE");
^
src\resources.h:15:57: note: in definition of macro 'StringConst'
#define StringConst(v,c) const char C_##v [] PROGMEM = c
^
src\resources.h:54:26: error: section attribute not allowed for 'C_Pump_Prime'
StringConst( Pump_Prime, "Pump Prime");
^
src\resources.h:15:57: note: in definition of macro 'StringConst'
#define StringConst(v,c) const char C_##v [] PROGMEM = c
^
src\resources.h:55:26: error: section attribute not allowed for 'C_Auto_Label'
StringConst( Auto_Label, "AUTO -->");
^
src\resources.h:15:57: note: in definition of macro 'StringConst'
#define StringConst(v,c) const char C_##v [] PROGMEM = c
^
src\resources.h:70:33: error: section attribute not allowed for
'C_TemperatureReached'
StringConst( TemperatureReached,"Temp. Reached!");
^
src\resources.h:15:57: note: in definition of macro 'StringConst'
#define StringConst(v,c) const char C_##v [] PROGMEM = c
^
src\resources.h:71:23: error: section attribute not allowed for 'C_Add_Malt'
StringConst(Add_Malt, "Add Malt");
^
src\resources.h:15:57: note: in definition of macro 'StringConst'
#define StringConst(v,c) const char C_##v [] PROGMEM = c
^
src\resources.h:72:26: error: section attribute not allowed for 'C_Remove_Malt'
StringConst(Remove_Malt, "Remove Malt");
^
src\resources.h:15:57: note: in definition of macro 'StringConst'
#define StringConst(v,c) const char C_##v [] PROGMEM = c
^
src\resources.h:75:28: error: section attribute not allowed for
'C_Skip_Or_Extend'
StringConst(Skip_Or_Extend,"Extend, or Skip?");
^
src\resources.h:15:57: note: in definition of macro 'StringConst'
#define StringConst(v,c) const char C_##v [] PROGMEM = c
^
src\resources.h:82:27: error: section attribute not allowed for
'C_START_COOLING'
StringConst(START_COOLING,"START COOLING");
^
src\resources.h:15:57: note: in definition of macro 'StringConst'
#define StringConst(v,c) const char C_##v [] PROGMEM = c
^
src\resources.h:83:23: error: section attribute not allowed for 'C_WHIRLPOOL'
StringConst(WHIRLPOOL,"WHIRLPOOL");
^
src\resources.h:15:57: note: in definition of macro 'StringConst'
#define StringConst(v,c) const char C_##v [] PROGMEM = c
^
src\resources.h:84:31: error: section attribute not allowed for
'C_Timeing_Whirlpool'
StringConst(Timeing_Whirlpool,"Timing Whirlpool");
^
src\resources.h:15:57: note: in definition of macro 'StringConst'
#define StringConst(v,c) const char C_##v [] PROGMEM = c
^
src\resources.h:86:29: error: section attribute not allowed for
'C_Brewing_Process'
StringConst(Brewing_Process,"Brewing Process");
^
src\resources.h:15:57: note: in definition of macro 'StringConst'
#define StringConst(v,c) const char C_##v [] PROGMEM = c
^
src\resources.h:87:22: error: section attribute not allowed for 'C_Finished'
StringConst(Finished,"Finished");
^
src\resources.h:15:57: note: in definition of macro 'StringConst'
#define StringConst(v,c) const char C_##v [] PROGMEM = c
^
src\resources.h:92:39: error: section attribute not allowed for
'BtnLabel_x_x_Quit_Go'
DefineButtonLabel( x_x_Quit_Go, " Quit Go",0);
^
src\resources.h:18:99: note: in definition of macro 'DefineButtonLabel'
#define DefineButtonLabel(N,S,v) const byte BtnLabelId_##N=v; const
char BtnLabel_##N[] PROGMEM = S

^
src\resources.h:94:39: error: section attribute not allowed for
'BtnLabel_x_x_x_Ok'
DefineButtonLabel( x_x_x_Ok, "--- --- --- Ok",1);
^
src\resources.h:18:99: note: in definition of macro 'DefineButtonLabel'
#define DefineButtonLabel(N,S,v) const byte BtnLabelId_##N=v; const
char BtnLabel_##N[] PROGMEM = S

^
*** [.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
 
Hello guys

I have a problem with my hardware and the last version of the soft (0.5.0):
1. - I cant connect with ap mode bicous i dont know the password of Bm.
2. - When i power on the controller, all the outputs D0=buzzer, D5=pump, D7=heater are HIGH and i dont know how to fix it .
3. - Every time i power on my settings are reset by default . It include my sensors settings.

Sorry for my bad english
 
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
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?
 
Back
Top