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.
I've been playing with various versions of the wifi connecting code. The version I used simply displayed the IP address once it was connected. However, I have been unable to get the thing to connect to my router. I restarted my router to no avail.

I decided to try and see what the esp does with a sample AP sketch. It says that the AP was created...but I can't see any such network on my home devices. I suspect this board has bad wifi. I'm going to order a new one and try again when it is delivered :(

Thanks for the help. I'll post back if I have success(or more trouble)

Code:
#include <ESP8266WiFi.h>        // Include the Wi-Fi library

const char *ssid = "ESP8266 Access Point"; // The name of the Wi-Fi network that will be created
const char *password = "thereisnospoon";   // The password required to connect to it, leave blank for an open network

void setup() {
  Serial.begin(115200);
  delay(10);
  Serial.println('\n');

  WiFi.softAP(ssid, password);             // Start the access point
  Serial.print("Access Point \"");
  Serial.print(ssid);
  Serial.println("\" started");

  Serial.print("IP address:\t");
  Serial.println(WiFi.softAPIP());         // Send the IP address of the ESP8266 to the computer
}

void loop() { }
 
I received two replacement NodeMCU units today. Progress has been made! I can get to the BPL page by going to the IP address assigned to it by my router.

Now to get it set up...
 
Last edited:
I have my sensor connected to D6 based on this image
https://github.com/vitotai/BrewPiLess/raw/master/img/BPL_simple.jpg?raw=true

I do not see D6 listed in the device setup area. I also do not intend on using a relay at this stage in the game so I do not care about those pins.

I DO have a 20x4 LCD hooked up that is working by default without having to touch it. Simply based on your image/instructions.

Any tips to get D6 to show?

****I did have a version of fuscus (raspberry pi only) working with brewpi before ordering the 8266. The sensor was read immediately. I don't think the sensor is parasitic if it worked there...but I really don't know at all.

Thanks!
 

Attachments

  • brewpilessSetup.JPG
    brewpilessSetup.JPG
    125.6 KB · Views: 81
Last edited:
The sensors are not detected for some reasons. You can see D6 if sensors connected to it are detected.


A way to test if the sensors are parasitic mode only:
https://www.homebrewtalk.com/forum/...roller-for-cheap.466106/page-136#post-7556259


More information about parasitic mode and BrewPi, and why BrewPi doesn't support parasitic mode:
https://community.brewpi.com/t/ds18b20-oddities-clones/1656/3

My sketch shows:
Parasite power is: OFF
Detected 0 devices

I will try to wire it up again tomorrow and try another sensor if needed.
 
The wiring was OK. It was the bus that I had to modify in the test code.

I currently only have 1 sensor connected (device 0) for beer temp. I previously set my keezer up to use the STC-1000 and I figure I'll slowly replace it with the esp.
Although I only have a sensor for BEER, how come the FRIDGE is reading at the same exact value? I don't have a sensor/device for the fridge.

Also, I used a json command to switch to F. Is there anyway to fix the graph so that the previously celsius readings now display in farenheit? Otherwise I see a large spike.
 
Last edited:
It is an option but now enabled by default. This option allows BPL to be used on glycol setup. You can check BPL wiki at github for detail.

No way to modify unit change. If you are recording logs, stop and restart. Otherwise, the data is stored in RAM and will disappear a few hours later, or after system restarts.
 
Heads up: Two buttons to control it all.

Although controlling over WiFi is convenient, controlling it in front of the controller makes more sense in certain conditions.

BrewPiLess supports rotary encoder by using an extra IO expander, PCF8574/PCF8574a. However, I don't really recommend that because it is complicated and the operation is not very smooth.

I have been thinking about using buttons instead of rotary encoder long time ago. I wonder why nobody ask for it.

Here is how BPL will support buttons to simulate rotary encoder.
- No extra hardware except buttons and the lines you use to connect buttons.
- TWO buttons are needed, UP and DOWN They will be connect to D3 and D4.
The operation is simple:
- pressing UP or DOWN to simulate turning left or right for value change.
- keep pressing UP or DOWN to change the values fast.
- pressing UP AND DOWN at the same time to simulate the "pushdown" action of rotary encoder, which is "set".

It should be available shortly. I would like to hear from you.
 
Heads up: Two buttons to control it all.

Although controlling over WiFi is convenient, controlling it in front of the controller makes more sense in certain conditions.

BrewPiLess supports rotary encoder by using an extra IO expander, PCF8574/PCF8574a. However, I don't really recommend that because it is complicated and the operation is not very smooth.

I have been thinking about using buttons instead of rotary encoder long time ago. I wonder why nobody ask for it.

Here is how BPL will support buttons to simulate rotary encoder.
- No extra hardware except buttons and the lines you use to connect buttons.
- TWO buttons are needed, UP and DOWN They will be connect to D3 and D4.
The operation is simple:
- pressing UP or DOWN to simulate turning left or right for value change.
- keep pressing UP or DOWN to change the values fast.
- pressing UP AND DOWN at the same time to simulate the "pushdown" action of rotary encoder, which is "set".

It should be available shortly. I would like to hear from you.
Will you be adding this to the Thorrack board bin?
 
Will you be adding this to the Thorrack board bin?

It will not be DEFAULT option. You will need to build it by yourself.
The reason for not making it default is that people who don't have buttons will have no way to wake-up the LCD.
 
It could be a toggle that enables the buttons/disables the timeout or vice versa.
If your existing builds have the timer enabled, have that be the default. If someone adds the buttons, have them flip the toggle.
That way existing users get no surprises :)

Cheers!
 
I forgot earlier to post my PCB design here.. It works with both BrewPiLess and BrewManiacEx out of the box.. but there are a few options on how to power it, and if you want external LCD or what.

The files for the board can be downloaded here - https://drive.google.com/file/d/0B_QoTJWXUR4IdVNCVmxRWVRkTVk/view?usp=sharing

If feeding the board straight on with 5v - then jumper the input diode (D4) with a wire (or increase voltage to above 5.7v if possible) and also jumper the reg-bypass with a wire.

If feeding the regulator with ~9v or above, then use both diode and a 5v regulator. But to much voltage may overheat the regulator. I run mine with 12v with no trouble, but i trimmed down voltage to 10v since my PSU supports that.
Also the IC-chip (IC1) should be PCF8574 (not PCF8574A) if you want to use the board with "default" settings for display and such. The IC3 doesn't matter, since the board scans for that chips adress.

Also, the pads by the Buzzer - these are for choosing 12v(input voltage really) or 5v (if using regulator) for the buzzer, since there are both 12v and 5v types avalible.

LCD is piggyback standard 20x4 LCD, but there is also connector added for wiring an offboard LCD.. if offboard lcd is used, then one can skip adding Q5, IC3 and TR1.

I tried making the board quite universal, so that it would fit most peoples needs.
Hope you'll like it. And do get back if you build it, so that i know everything work as expected with your specific setup. :mug:
 

Attachments

  • BM-BPL_PCB.png
    BM-BPL_PCB.png
    262 KB · Views: 152
Could "set" be based on a timeout instead?
If you were to use a SPDT momentary toggle switch you wouldn't be able to activate both "buttons" simultaneously.

Switches and buttons are different things. I don't know how to use switches.
I thought switches are not designed to switch back and froth in a short time. The ergonomics doesn't seem right.
The setting mode is entered by pressing "Push Down"(Set action). Using switch is beyond my knowledge.
May I ask what is the benefit?
 
Switches and buttons are different things. I don't know how to use switches.
I thought switches are not designed to switch back and froth in a short time. The ergonomics doesn't seem right.
The setting mode is entered by pressing "Push Down"(Set action). Using switch is beyond my knowledge.
May I ask what is the benefit?

Maybe better terminology is a "return to center" toggle switch. It's the same as two buttons in a single package.
Here are a couple interesting examples:
https://www.aliexpress.com/item/min...itch-ON-OFF-ON-spring-return/32681431549.html
https://www.aliexpress.com/item/5Pc...ddle-Toggle-Switch-3A-250VAC/32763452108.html
 
I would never understand how you can do it.
Re-inventing the menu isn't what I am gonna do.
 
It is an option but now enabled by default. This option allows BPL to be used on glycol setup. You can check BPL wiki at github for detail.

No way to modify unit change. If you are recording logs, stop and restart. Otherwise, the data is stored in RAM and will disappear a few hours later, or after system restarts.

I see that the PID setting is set to 0, such that the fridge will match the beer. I haven't had any luck finding an answer. What should the PID settings be in order to turn the fridge sensor completely off?



(figured out how to update...I needed to specify the port, unlike other pages)



Which github link do you need to enter in the logging section? Can you provide a screenshot of how you have yours stored to github (blocking out any personal info).

Thanks
 
Last edited:
Sorry, I direction was not precise.

There is a COMPILE option, which is default set to true.

You have to edit the Config.h and build the image.
Config.h line 362
#define FridgeSensorFallBack false

Is the fridge temperate bothering you? If you do install a sensor for fridge, the real fridge sensor will take place. If you want to use SINGLE one sensor, you should set it as fridge sensor instead of Beer sensor. You can't run temperature control by beer sensor only.
If you just want to log the temperature data, it hurts nothing. right?
 
Sorry, I direction was not precise.

There is a COMPILE option, which is default set to true.

You have to edit the Config.h and build the image.
Config.h line 362
#define FridgeSensorFallBack false

Is the fridge temperate bothering you? If you do install a sensor for fridge, the real fridge sensor will take place. If you want to use SINGLE one sensor, you should set it as fridge sensor instead of Beer sensor. You can't run temperature control by beer sensor only.
If you just want to log the temperature data, it hurts nothing. right?

I do only want to log temperature data currently. I can assign it as a fridge for the time being. I am using the prebuilt binary and it looks like the setup page only lets me change it to chamber or room temp. I guess I'll keep it this way for now and work towards fixing the other issues.
 
I tried making the board quite universal, so that it would fit most peoples needs.

Now that BrewPiLess can be controlled by buttons, we can use exact the same hardware for BrewManiacEx to run BrewPiLess. Two buttons are left unused, though. ( I was thinking about using 3 buttons but ended up just 2.)




The brew controller can now be a backup of the fermentation controller if it dies for some reason. I usually have backup controllers for both. (and for development.) Now I can save one.

:mug:
 
Last edited:
I forgot earlier to post my PCB design here.. It works with both BrewPiLess and BrewManiacEx out of the box.. but there are a few options on how to power it, and if you want external LCD or what.

The files for the board can be downloaded here - https://drive.google.com/file/d/0B_QoTJWXUR4IdVNCVmxRWVRkTVk/view?usp=sharing

If feeding the board straight on with 5v - then jumper the input diode (D4) with a wire (or increase voltage to above 5.7v if possible) and also jumper the reg-bypass with a wire.

If feeding the regulator with ~9v or above, then use both diode and a 5v regulator. But to much voltage may overheat the regulator. I run mine with 12v with no trouble, but i trimmed down voltage to 10v since my PSU supports that.
Also the IC-chip (IC1) should be PCF8574 (not PCF8574A) if you want to use the board with "default" settings for display and such. The IC3 doesn't matter, since the board scans for that chips adress.

Also, the pads by the Buzzer - these are for choosing 12v(input voltage really) or 5v (if using regulator) for the buzzer, since there are both 12v and 5v types avalible.

LCD is piggyback standard 20x4 LCD, but there is also connector added for wiring an offboard LCD.. if offboard lcd is used, then one can skip adding Q5, IC3 and TR1.

I tried making the board quite universal, so that it would fit most peoples needs.
Hope you'll like it. And do get back if you build it, so that i know everything work as expected with your specific setup. :mug:
I'll do a run of boards if there is enough interest.post below if you want in. Normal cost is 5 bucks a board including shipping.
 
I'll do a run of boards if there is enough interest.post below if you want in. Normal cost is 5 bucks a board including shipping.

I am definitely interested.

I've noticed the pcb from RollE2k as well as Thorrak's. How often do these become obsolete based on changes to BPL? I'd like to settle on a pcb and a 3d printed case (tough to find) so that I don't have to use a cardboard box/breadboard anymore lol.

Thanks for the offer!
 
The buttons look like a nice upgrade. Could one of them be used to turn the LCD on or off? Maybe the other for brightness (if that is even controllable?)

I would definitely like a way to put the LCD to sleep. It is really bright and blinding...and stuck on 24/7
 
The buttons look like a nice upgrade. Could one of them be used to turn the LCD on or off? Maybe the other for brightness (if that is even controllable?)

I would definitely like a way to put the LCD to sleep. It is really bright and blinding...and stuck on 24/7


If you install wakeup button or rotary encoder with right firmware, the LCD will be turned off after 3 minutes of no action. The LCD will be on, or lit, when you press the wakeup button or rotary encoder.
The LCD backlight is designed to always on without rotary encoder or wakeup button because you have no way to "wake" it up after it is off.

I have no idea of controlling the brightness of LCD by software. I don't think it is possible, although I might be wrong.

The coming new version will allow you to change that timeout value.
 
The 4x20 LCDs based on the DM2004A have a single LED backlight circuit with the anode/cathode voltage set via connector pins.
There's no support for backlight brightness adjustment via software, just on and off...

Cheers!
 
The 4x20 LCDs based on the DM2004A have a single LED backlight circuit with the anode/cathode voltage set via connector pins.
There's no support for backlight brightness adjustment via software, just on and off...

Cheers!
On off would certainly be beneficial via software. I can certainly order a button if that option is not added. I want to make sure I finalize everything I need before 3d printing a case.
 
Why not TWO buttons? You will be able to change mode, temperature without using a computer or phone.
If you just want to control backlight, you don’t need any button. Set the timeout value to zero, and the backlight will be on. Set a small value, like 10, the backlight will be off in a short time or immediately.

The code is already on github, btw.
 
Last edited:
I just upgraded to 2.5, I'll go get on 2.5.1.

Edit1:Upgrade to 2.5.1 went smoothly. The auto-off does work now. However, without a button it won't be turning back on for a while lol.
I looked around at the backlight changes and it seems there should be a json command to change the value for the timeout? If I am correct, would you be able to update the json page.

Edit2: The config.html code looks like LCD auto off should be the very first option on the config page above "title". It doesn't exist for me.
But...every time that I go to the graph page I get an error version mismatch, please reload the page. This error started displaying at the version 2.5 upgrade. I wonder if the config page is not showing the 2.5.1 changes for the LCD.
...Any idea how to fix the version mismatch error? Hopefully this will solve the config page error as well.
*I have already tried restarting the device. It does not help.

Thanks for making this happen. Can you link to the buttons you've been demonstrating? I would eventually like to use the brewpimaniac as well...but first I need a house and the applicable setup :(


*Can you also update the logging instructions to provide more instructions on setting up the HTTP url/method to backup to github?

Thanks again
 
Last edited:
I just upgraded to 2.5, I'll go get on 2.5.1.
**Upgrade to 2.5.1 went smoothly. The auto-off does work now. However, without a button it won't be turning back on for a while lol.
I looked around at the backlight changes and it seems there should be a json command to change the value for the timeout? If I am correct, would you be able to update the json page.

Thanks for making this happen. Can you link to the buttons you've been demonstrating? I would eventually like to use the brewpimaniac as well...but first I need a house and the applicable setup :(


*Can you also update the logging instructions to provide more instructions on setting up the HTTP url/method to backup to github?

Thanks again

As I've stated, set the value to "0", and the backlight will be always on.

The setting is through config page:
https://github.com/vitotai/BrewPiLess/wiki/System-Setup

All information available is available on the wiki:
https://github.com/vitotai/BrewPiLess/wiki


I have these. water-proof and easy to install. However, they provides NO feedback on press.
https://www.ebay.com/sch/i.html?_nkw=12mm+Waterproof+Momentary+button&_sacat=0

The buttons on the breadboard do click when pressed. However, they are good for breadboard or PCB, not on case.
 
As I've stated, set the value to "0", and the backlight will be always on.

The setting is through config page:
https://github.com/vitotai/BrewPiLess/wiki/System-Setup

All information available is available on the wiki:
https://github.com/vitotai/BrewPiLess/wiki


I have these. water-proof and easy to install. However, they provides NO feedback on press.
https://www.ebay.com/sch/i.html?_nkw=12mm+Waterproof+Momentary+button&_sacat=0

The buttons on the breadboard do click when pressed. However, they are good for breadboard or PCB, not on case.


Let me remove Tom's frontend config page and see if the option shows up.
 

Attachments

  • upload_2018-1-28_18-4-59.png
    upload_2018-1-28_18-4-59.png
    49.8 KB · Views: 100
  • upload_2018-1-28_18-7-11.png
    upload_2018-1-28_18-7-11.png
    7.7 KB · Views: 66
You have to update the front-end manually, and RELOAD.
 

Attachments

  • bplv251config.jpg
    bplv251config.jpg
    34.5 KB · Views: 122
Nothing seems to be taking. I'm probably going to re-flash tomorrow. I can't get to the index page anymore and the default config page still shows as Tom's. This is after restarting a few times. At least I know what to do now. Thanks.
 
More stupid questions...
I can access all pages but index.htm. This includes using the web based file manager as well as the nodemcu flasher and reflashing 2.5.1. This also includes restarting via the nodemcu button as well as powering down the device and plugging it back in. I was able to access the initial wifi setup and I can see that it has gained an IP on my network. Again, I can access all URLs except for index.htm.
Should reflashing any of your bins fix this? Or will I have to flash the ESP8266_NONO_SDK files to reset everything and start fresh?
 
First, clear any index.htm or index.htm.gz by file manager.
Second, clear cache of browser.
Last, terminate the browser and re-launch it again.

I sometimes have issues like this. The browser, Chrome, just can’t fetch the specific page. I tried to CURL and it worked. Clear cache and terminating it usually works.
 
Thanks for the quick reply. I now learned that I can delete from filemanager as well as upload. Good to know!

Doing this still didn't fix the problem. I am going to try and do a full erase of the nodemcu and reflash 2.5.1.

It might take me a bit, but I wouldn't mind updating the readme to add some of these quirks that are spread out in this forum. I'm not sure if that is something you planned on doing or if you wanted help with it. I've never really used github in that fashion but I'm sure I can figure it out if you wanted a hand.



Edit: Flashing the reset images that were presented a few pages back still doesn't allow me to get to index.htm. Cache was cleared, browser restarted, router reset, nodemcu reset. I can access a select number of pages, such as filemanager. I might try to go back to a different bin version after another clean erase. Either that or the instructions to erase did not fully clean the nodemcu.
 
Last edited:
Another workaround: change the hostname if you are using hostname.
I have yet to change the hostfile on windows to have a host name. I am slightly concerned that the device always connects to ...0.30...even though I've tried many times to set the static ip to ...0.50. That's why I tried to reset the router to see if it is something to do with that IP address.

Is post #532 still the best means of resetting the node mcu? My assumption is that this puts the device into a completely default state.
 

Latest posts

Back
Top