BrewPi@ESP8266, no need of RPI and Arduino.

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.
Relay boards have naked opto-coupled inputs and will not do anything more than provide a small input load on the NodeMCU IO.

Some boards support 3.3V signalling reliably while providing a 5V input to the relay coils, you have to run separate power leads to the board for that configuration (which is probably what you want to do)...

Cheers!
Thanks for the input.
My relay module has Vcc, In1,In2 and GND for the optocouplers, I guess this should be 3v3 (this is where I screwed up and put 5v).
For the coils it has a JDvcc, Vcc and GND. To make them work with the jumper between JDvcc and Vcc, you need to put 5V on the opto coupler Vcc, so I have removed the Jumper and put 5V on JDvcc. The two GND pins are connected together, so I don't see any reason to use both.
I believe this is the correct way to do it on a 3v3 chip?
 
I'm using new ui. oled: https://startingelectronics.org/tutorials/arduino/modules/OLED-128x64-I2C-display/
Wiring: https://raw.githubusercontent.com/vitotai/BrewPiLess/master/doc/image/BPL_simple.jpg

It's running station mode only and even if web ui is crashed, mqtt and mcu keep working.

Poor wifi signal may cause something weird?

OK, thanks.
I have coupled it like this myself (except that I had, mistakenly, put 5V on the sensors), so then I guess it's something else (perhaps the 5V on the sensors? I'm changing that now...). I also have the same kind of OLED, but I'm planning on using 2004 LCDs when/if I install them for "production".

After I got back home today, I had to try some more. Now the first NodeMCU that I switched because it behaved strange is suddenly working just fine again (without anything connected, that is), my hopes are up a bit again and I will try some more.

Do you know if there are any differences between the Wemos D1 Mini and the ModeMcu other than the number of pins and size? Would I get more resources, better stability and so on if I switched to D1s? I'm very new to this, so I need to ask a lot of "stupid" question (yes, I have googled it, but didn't get any good answers...)

If you run station mode only and for some reason need to access it directly, do you need to reflash it? What happens to settings if you reflash? Are they kept? I guess you very seldom need to, but I'm just being curious...

If bad wifi is causing this behaviour, then pocketmon should definitely have a look. That would have been a serious bug if it's the case...
 
Thanks for the input.
My relay module has Vcc, In1,In2 and GND for the optocouplers, I guess this should be 3v3 (this is where I screwed up and put 5v).
For the coils it has a JDvcc, Vcc and GND. To make them work with the jumper between JDvcc and Vcc, you need to put 5V on the opto coupler Vcc, so I have removed the Jumper and put 5V on JDvcc. The two GND pins are connected together, so I don't see any reason to use both.
I believe this is the correct way to do it on a 3v3 chip?

Yup. Remove jumper, put 5V on the 3 pin header side (JVCC) and put 3.3V on the 4 pin header side (VCC).
GNDs are indeed internally connected...

Cheers!
 
Difference between nodemcu and wemos d1 mini is physical size?? Both use esp8266 chip
direct access is possible with double click to reset button or reflash and settings are safe, in eeprom? I think..

This is from https://github.com/universam1/iSpindel/blob/master/docs/FAQ-en.md
Code:
Here is how to do that using NODEMUCU FIRMWARE PROGRAMMER

To initialize:

In the Config Tab

       1st column        2nd column
1st Line:    INTERNAL://NODEMCU    0x00000
2nd Line:    INTERNAL://BLANK    0x01000

In the Advanced Tab Set the Baudrate to 115200

In the Operation Tab Click Flash(E) and wait till the flashing is done

To flash with the iSpindel firmware:

In the Config Tab

       1st column        2nd column
1st Line:     C:\iSpindel-6.0.6.bin     0x00000

Where “C:\iSpindel-6.0.6.bin” is to be replaced by the path to your firmware file Make sure all the other lines in the Config tab are cleared and only the checkbox in front of your firmware path is checked.

In the Advanced Tab Set the Baudrate to 115200

In the Operation Tab Click Flash(E) and wait till the flashing is done

It now should work properly.

Source: https://www.homebrewtalk.com/forum/threads/ispindle-diy-electronic-hydrometer.598187/page-19#post-8366882
 
Difference between nodemcu and wemos d1 mini is physical size?? Both use esp8266 chip
direct access is possible with double click to reset button or reflash and settings are safe, in eeprom? I think..

This is from https://github.com/universam1/iSpindel/blob/master/docs/FAQ-en.md
Code:
Here is how to do that using NODEMUCU FIRMWARE PROGRAMMER

To initialize:

In the Config Tab

       1st column        2nd column
1st Line:    INTERNAL://NODEMCU    0x00000
2nd Line:    INTERNAL://BLANK    0x01000

In the Advanced Tab Set the Baudrate to 115200

In the Operation Tab Click Flash(E) and wait till the flashing is done

To flash with the iSpindel firmware:

In the Config Tab

       1st column        2nd column
1st Line:     C:\iSpindel-6.0.6.bin     0x00000

Where “C:\iSpindel-6.0.6.bin” is to be replaced by the path to your firmware file Make sure all the other lines in the Config tab are cleared and only the checkbox in front of your firmware path is checked.

In the Advanced Tab Set the Baudrate to 115200

In the Operation Tab Click Flash(E) and wait till the flashing is done

It now should work properly.

Source: https://www.homebrewtalk.com/forum/threads/ispindle-diy-electronic-hydrometer.598187/page-19#post-8366882

OK, thanks.
I guess some resources will be saved if station only is used, and if it makes it more stable I will certainly do so.
I guess you don't connect the iSpindel to BPL, or have I misunderstood something? I thought you needed PBL to be AP to do so?
Do you connect BPL and iSpindel to an external service?
 
OK, thanks.
I have coupled it like this myself (except that I had, mistakenly, put 5V on the sensors), so then I guess it's something else (perhaps the 5V on the sensors? I'm changing that now...). I also have the same kind of OLED, but I'm planning on using 2004 LCDs when/if I install them for "production".

After I got back home today, I had to try some more. Now the first NodeMCU that I switched because it behaved strange is suddenly working just fine again (without anything connected, that is), my hopes are up a bit again and I will try some more.

Do you know if there are any differences between the Wemos D1 Mini and the ModeMcu other than the number of pins and size? Would I get more resources, better stability and so on if I switched to D1s? I'm very new to this, so I need to ask a lot of "stupid" question (yes, I have googled it, but didn't get any good answers...)

If you run station mode only and for some reason need to access it directly, do you need to reflash it? What happens to settings if you reflash? Are they kept? I guess you very seldom need to, but I'm just being curious...

If bad wifi is causing this behaviour, then pocketmon should definitely have a look. That would have been a serious bug if it's the case...

Weak WiFi signal does cause problems because the POWER to transmit data is higher, and the retransmitting results higher loading of the system. I can't look at this, because the POWER and the wiring is done by you, and we don't have access to the WiFi module or even the task scheduler.

Some people did report issue like yours. However, I can do nothing in most cases. It could be bad wiring, bad NodeMcu/D1 min, bad WiFi signal, and bad software. Even when software is concerned, there are at least three parts of it. It might be the parts that we don't have access to, like WiFi related. Or, the framework and library. Only when the issue comes from the code I wrote, which is considered as a small part of the whole software, I MIGHT be able to solve it.
 
Weak WiFi signal does cause problems because the POWER to transmit data is higher, and the retransmitting results higher loading of the system. I can't look at this, because the POWER and the wiring is done by you, and we don't have access to the WiFi module or even the task scheduler.

Some people did report issue like yours. However, I can do nothing in most cases. It could be bad wiring, bad NodeMcu/D1 min, bad WiFi signal, and bad software. Even when software is concerned, there are at least three parts of it. It might be the parts that we don't have access to, like WiFi related. Or, the framework and library. Only when the issue comes from the code I wrote, which is considered as a small part of the whole software, I MIGHT be able to solve it.
Thank you for your answer, pocketmon.
I know I sounded a bit but hurt and harsh, but I really was a bit frustrated when writing:rolleyes:.
I really like the project and would really like to get this working as the alternatives I have found isn't really interesting...
What happened after I almost gave up:
- I switched the power supply
- Switched to LCD (was my plan all the time, just got an LCD2004 in the mail)
- Running station only
- Rewired to using 3v3 to the relay control (optocouplers)
There might be some varying WiFi signals in the location of the brewery (the garage), and if this can cause the NodeMcu to fail, it might have been the reason for the reboots.
However; Things seem to have stabilized. I started a new test yesterday, and it has now run for about 36 hours without failing. During the test I have used Beer Const mode and tested both increasing the temperature (up to 35 degrees, I'm looking into some kveik fermenting) and decreasing the temperature. Right now I'm running it as a fridge controller (Fridge const) set to 3 degrees, and it runs just fine.
If the WiFi is critical, I'm going to put up a WiFi AP in the brewery, I actually have a network cable to my "garage server", so this will be easy.
Once again, thank you, and sorry for sounding like an old fart:(

Now, is there anywhere I can read about how the different temperatures are used in the calculations? I'm also wondering a bit about the different statuses and the logic behind them. I haven't found anything on this in the wiki/readme, but I might have missed it.
I probably should be reading up on PID regulators, I used to know a little bit, but I have forgotten most of it (leared about them in scool some 30 years ago, but never got to work with automation, so...), but any tips would be very appreciated.
 

It took me a while to get ADS1115 module for verifying and fine-tuning.
The major updates:

1. Pressure chart and pressure log
1.1 ADS1115 ADC sensor support
ADS1115 is a better ADC, especially when controlling pressure is needed.

2. ESP32 support
The only advantages are faster response and rotary encoder support. I couldn't make BLE work for memory issues. We'lll how it goes when NIMBLE, an alternative lightweight BLE library, is available.
 
I had a question about stability. I got everything setup and running today. I am running v4.0 (NewUI) using a NodeMCU, 2 sensors, and 4x20 LCD. I am also powering it via USB (5v/2000mAh). It is currently built on a breadboard to make connections easy while I test things out. I plan to solder all connections later.

It seems like its very unstable, often falling off of the wifi and becoming unresponsive when connected to the local 'brewpiless' AP.

Could this be caused by my power supply? What else can I look at?
 
Last edited:
Does it come back online if you hit the reset button?

Is it available via a Linux box (assuming you have one from which you may browse)?

What about trying via it's IP address?
 
Does it come back online if you hit the reset button?

Is it available via a Linux box (assuming you have one from which you may browse)?

What about trying via it's IP address?

I think I have fixed it. It may have been one of a couple issues:
  1. I was using a static IP when i first set it up, and the DNS/Gateway was wrong (long story, but this device sits on a VLAN for IoT Devices). But it seems that even though I had cleared it out or updated that static value, it always reverted to the original. I tried everything, including clearing eeprom and reflashing BPL, but this value was stuck there.
  2. I initially installed a floating firmware on this board when I first got it. So I just reflashed it to an integer firmware.
  3. After flashing the firmware, i re-flashed brewpiless using Visual Studio Code.
After these 3 changes, it seems to be rock solid now! I hope this helps someone else in the future who hits similar issues.
 
I think I have fixed it. It may have been one of a couple issues:
  1. I was using a static IP when i first set it up, and the DNS/Gateway was wrong (long story, but this device sits on a VLAN for IoT Devices). But it seems that even though I had cleared it out or updated that static value, it always reverted to the original. I tried everything, including clearing eeprom and reflashing BPL, but this value was stuck there.
  2. I initially installed a floating firmware on this board when I first got it. So I just reflashed it to an integer firmware.
  3. After flashing the firmware, i re-flashed brewpiless using Visual Studio Code.
After these 3 changes, it seems to be rock solid now! I hope this helps someone else in the future who hits similar issues.
kind of mysterious to me, bu the change of underlying WiFi implementation maybe has caused some issues, which I have not solved all of them. The last one is losing WiFi network after a week or so. I just push an update which will store WiFi credentials. (I relied on the underlying WiFi implementation in previous work.)
 
Afternoon All,

I current BrewPieLess on one of Thorraks PCB, which has the Heating on Pin 0. I would like to swap my LCD over to use an OLED, but using the v4.0 BIN file, it does seem to have OLED support.

One one got a workaround ?

Cheers
 
Some friends and I are planning on building a window AC unit glycol system and expanding to multiple fermenters. I started off planning to use multiple Inkbirds, then I found BrewPi Remix, then I found Fermentrack, and now I'm reading up on BrewPiLess and am really excited for the possibilities — if it will work for what we want.

Looking at the NodeMCU ESP8266, the GPIOs are rather limited, so I understand for additional fermenters I'd just be adding additional boards as we expand our brewing capacity, one board per vessel.

For the very first setup, we'd need three relays: one for the AC unit/glycol chiller, one for the cooling pump, one for the heat wrap. I know GPIO 15 and 16 have different states at boot, but would that stop me from using one of them to trigger the third relay? Or would it be better to just add a standalone board for the glycol chiller?
 
Does anyone here have experience with tweaking the PID algorithm in brewpiless? Attached is a screenshot for the current behaviour of my fermentation fridge. It's set to beer constant 20 °C. I'm puzzled by the constant overshoots and switching between cooling and heating. Started with the original parameters with increased dead time [1] but switched to a smaller Kp halfway the graph [2]. This is just for a small batch (5 liters). Chamber sensor is near the back of the fridge. Heating element is a 60W tube heater.

[1] {"Kp": 5, "Ki": 0.250, "Kd": -1.500, "deadTime" : 1800}
[2] {"Kp": 3, "Ki": 0.250, "Kd": 0, "deadTime" : 1800}
 

Attachments

  • Screenshot 2020-05-08 at 08.30.47.png
    Screenshot 2020-05-08 at 08.30.47.png
    215.3 KB · Views: 39
  • IMG_20200502_132645.jpg
    IMG_20200502_132645.jpg
    3.7 MB · Views: 42
Last edited:
Some friends and I are planning on building a window AC unit glycol system and expanding to multiple fermenters. I started off planning to use multiple Inkbirds, then I found BrewPi Remix, then I found Fermentrack, and now I'm reading up on BrewPiLess and am really excited for the possibilities — if it will work for what we want.

Looking at the NodeMCU ESP8266, the GPIOs are rather limited, so I understand for additional fermenters I'd just be adding additional boards as we expand our brewing capacity, one board per vessel.

For the very first setup, we'd need three relays: one for the AC unit/glycol chiller, one for the cooling pump, one for the heat wrap. I know GPIO 15 and 16 have different states at boot, but would that stop me from using one of them to trigger the third relay? Or would it be better to just add a standalone board for the glycol chiller?

You can use D5, D7, and D8. Use D8 for heating, I would suggest.
Or, you can try ESP32. It has more PINs available.
 
Afternoon All,

I current BrewPieLess on one of Thorraks PCB, which has the Heating on Pin 0. I would like to swap my LCD over to use an OLED, but using the v4.0 BIN file, it does seem to have OLED support.

One one got a workaround ?

Cheers

All sorted my issue. I modified the OLED v4.0 bin file. Swapped the heating pin over to Pin 0, all working with a Thorrak PCB and OLED :)
 
Does anyone here have experience with tweaking the PID algorithm in brewpiless? Attached is a screenshot for the current behaviour of my fermentation fridge. It's set to beer constant 20 °C. I'm puzzled by the constant overshoots and switching between cooling and heating. Started with the original parameters with increased dead time [1] but switched to a smaller Kp halfway the graph [2]. This is just for a small batch (5 liters). Chamber sensor is near the back of the fridge. Heating element is a 60W tube heater.

[1] {"Kp": 5, "Ki": 0.250, "Kd": -1.500, "deadTime" : 1800}
[2] {"Kp": 3, "Ki": 0.250, "Kd": 0, "deadTime" : 1800}

The PID algorithm comes from original BrewPi 0.2.x. You might google for more information.
I don’t know much about PID. I would suggest to change other parameters, like
heatTargetHigh and coolTargetLow.
 
Does anyone here have experience with tweaking the PID algorithm in brewpiless? Attached is a screenshot for the current behaviour of my fermentation fridge. It's set to beer constant 20 °C. I'm puzzled by the constant overshoots and switching between cooling and heating. Started with the original parameters with increased dead time [1] but switched to a smaller Kp halfway the graph [2]. This is just for a small batch (5 liters). Chamber sensor is near the back of the fridge. Heating element is a 60W tube heater.

[1] {"Kp": 5, "Ki": 0.250, "Kd": -1.500, "deadTime" : 1800}
[2] {"Kp": 3, "Ki": 0.250, "Kd": 0, "deadTime" : 1800}

Since I have my beer temp probe inside the fermenter on thermowell I am very fine with default PIDs, before when it was taped and isolated on the side of the fermenter I had to play with the PIDs.
 
You can use D5, D7, and D8. Use D8 for heating, I would suggest.
Or, you can try ESP32. It has more PINs available.

Thanks. I hadn't seen the ESP32 option, that's very interesting. Looks like we could have relays triggered by GPIO 16, 17, 18, 19, 25, and 26? That would be enough to run the glycol chiller AND two fermenter setups. Color me impressed. If there aren't any major issues with it versus the ESP8266's, might be the easiest way to go.
 
Thanks. I hadn't seen the ESP32 option, that's very interesting. Looks like we could have relays triggered by GPIO 16, 17, 18, 19, 25, and 26? That would be enough to run the glycol chiller AND two fermenter setups. Color me impressed. If there aren't any major issues with it versus the ESP8266's, might be the easiest way to go.

One BrewPiLess can't control TWO fermenters. None of the BrewPi 0.2.x variants can.
 
Well, I did quite a mess here and need help, pls.

So, first of all I used mini laptop to controll my BPL because I have SIM card in my router and didn't have oportunity for public IP address, until yesterday. I could access to my BPL simply by using IP adress, 192.168.1.2

I made account on noip.com, entered all ddns data to my router but it didn't help. After that I tried to change port from 80 to 9000, it was suggestion from my friend (my BPL version is/was 3.0). Didn't work eitherbut I had local access to it through address 192.168.1.2:9000

After that I tried to change port to 8008, (as is for file manager) and after that I totaly lost control of my BPL and local access from mini laptop. Than I tried to OTA upgrade it to 3.4.1 and to 3.1 and to 3.0 but nothing worked. Even brewpilles changed it's name in network map to somehing Exx_xxxxx after upgrade. BPL connects itself to wifi and I can bee seen that it works on that little OLED display but I can't access to it any more. Remote access is still far away from me as I have to deal with local first.

Is there any chance to make that work at least as before?

Thank you very much in advance.

EDIT: only thing worked is to revert all and reflash to version 2.6
Now I have HTTP protocol enabled and it works. I have tried to upgrade from 2.6 to 3, 3.1 and 3.6, no way, it doesn't work after update. :(
 

Attachments

  • screenshot-287[1].jpg
    screenshot-287[1].jpg
    34.4 KB · Views: 16
Last edited:
It might be an issue of settings.
After v3.0, all settings are merged into one file for optimization. When you upgraded from v2.x to v3.0+, all settings were gone.
Just go through all settings again.
 
Trouble is that I don't have access to BPL (now after V2.6) and to it's settings not even locally. File manager and OTA system update work and brewpi.cfg is the only file which has something for editing but nothing changes after that.

Which file is that, can it be found in file manager and how to edit it if needed?
 
Last edited:
It might be an issue of settings.
After v3.0, all settings are merged into one file for optimization. When you upgraded from v2.x to v3.0+, all settings were gone.
Just go through all settings again.

Which are default settings for http port and wifi?
Where can I actually find settings/options file(s) in 3.x BPL versions and how to edit them?
 
Is there a way to offset the readings from an iSpindel into BPL?

I don't want to go through the whole process of celebration,just want to change the readings slightly up 0. 008?

Cheers
 
Is there a way to offset the readings from an iSpindel into BPL?

I don't want to go through the whole process of celebration,just want to change the readings slightly up 0. 008?

Cheers

No. If the gravity data is calculated by iSpindel, no way you can change it.
...
Therefore, BPL can calculate the iSpindel and even derive the formula based on the data input.
 
Which are default settings for http port and wifi?
Where can I actually find settings/options file(s) in 3.x BPL versions and how to edit them?


Sorry for late reply, your question is too trivial or too difficult to answer.
The settings in in "System" or "Config" page. I don't know why you can't find it.
The default settings in **code** is in file config.h. BPL is open sourced, and you can change as you want.
 
Sorry for late reply, your question is too trivial or too difficult to answer.
The settings in in "System" or "Config" page. I don't know why you can't find it.
The default settings in **code** is in file config.h. BPL is open sourced, and you can change as you want.

Which link do I have to use to open system or config page?

Let's say that BPL's IP address is 192.168.1.102, like it is now, with version 2.6
 

Attachments

  • screenshot-294[1].jpg
    screenshot-294[1].jpg
    65.2 KB · Views: 12
  • screenshot-298[1].jpg
    screenshot-298[1].jpg
    73.1 KB · Views: 12
  • screenshot-299[1].jpg
    screenshot-299[1].jpg
    37.9 KB · Views: 13
  • screenshot-300[1].jpg
    screenshot-300[1].jpg
    15.5 KB · Views: 11
Last edited:
and after I return to v2.6rc
 

Attachments

  • screenshot-302[1].jpg
    screenshot-302[1].jpg
    125.4 KB · Views: 16
Which link do I have to use to open system or config page?

Let's say that BPL's IP address is 192.168.1.102, like it is now, with version 2.6

There is a button, titled as "System Config", at top-right corner of the page.

You should consult your Router provider for DMZ related settings. BPL has nothing to do with those DMZ settings.
 
Back
Top