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

Homebrew Talk - Beer, Wine, Mead, & Cider Brewing Discussion Forum

Help Support Homebrew Talk:

day_trippr

Moderna Or Bust! :D
Joined
May 31, 2011
Messages
36,717
Reaction score
19,390
Location
Stow, MA
The RaspberryPi OS with lxde desktop comes with an "SD Card Copier" application that allows live-cloning of the booted SD card.
It will obviously save everything on the card...

Cheers!
 

marshodbrew

marshodbrew
Joined
Sep 11, 2019
Messages
22
Reaction score
1
Looks like SD Card Copier not available on Lite Raspbian install as I did here.
Any chance the problem is in the WiFi settings? Do you need to enable ssh and add wpa_supplicant again? Or would that be in the disk image?
 

rsquared

Supporting Member
HBT Supporter
Joined
Sep 5, 2010
Messages
252
Reaction score
177
Location
Sacramento, CA
Everything should be in the disk image. At this point I'd suggest plugging a keyboard and monitor into the Pi and seeing what occurs when it boots up on the copied card. It could be a bad card or something.
 

rkhanso

Well-Known Member
Joined
Jan 24, 2017
Messages
565
Reaction score
134
Location
Plymouth, MN - terrible tap water for brewing
Yes - Windows only, but there has to be a Linux or Mac equivalent.
I've used either SD card and have no differences or trouble on either one. Doesn't matter which one is installed to run Fermentrack.
It's not really a backup, but a clone of the SD card at the time when I do the "backup" - an exact copy.
 

marshodbrew

marshodbrew
Joined
Sep 11, 2019
Messages
22
Reaction score
1
Everything should be in the disk image. At this point I'd suggest plugging a keyboard and monitor into the Pi and seeing what occurs when it boots up on the copied card. It could be a bad card or something.
Thanks I’ll try. I’m brewing this weekend so going to use it without a back up.
Yes - Windows only, but there has to be a Linux or Mac equivalent.
I've used either SD card and have no differences or trouble on either one. Doesn't matter which one is installed to run Fermentrack.
It's not really a backup, but a clone of the SD card at the time when I do the "backup" - an exact copy.
Thanks. In hearing everyone’s replies it seems like I may have a bad SD card because otherwise seems like I am doing the other steps correctly.
 
Joined
Jan 19, 2013
Messages
3,359
Reaction score
1,333
Location
Kansas City
When I try the cloned SD card the rPi is not found in my list of devices on my home network and the usual IP address isn’t responding.

Is there something about fermentrack that prevents the back up? Do the WiFi settings have to be reconfigured after a backup?
Done correctly, it should work. You’ll probably want to get a keyboard and monitor on there to see what’s going on.
 
OP
T

Thorrak

Supporting Member
HBT Supporter
Joined
Feb 7, 2016
Messages
2,957
Reaction score
1,837
Location
New York, NY
Although it's not directly related to the BrewPi-ESP8266 firmware, I strongly recommend anyone that has interest in keg/pour monitoring take a look at @LBussy 's Keg Cop. Keg Cop allows for wireless monitoring of kegs, either on a standalone basis, via Raspberry Pints, or - soon- via an upcoming taplist management system that I've been working on for the past year called KegScreen.

Keg Cop (and KegScreen, once released!) is free, open source, and uses a lot of similar hardware to what you're already used to in this port of BrewPi. It's easy to build, easy to use, and solves a number of problems with existing flow monitoring solutions.
 

DuncB

Well-Known Member
Joined
Jun 5, 2019
Messages
1,385
Reaction score
643
Location
Paremata New Zealand
@Thorrak please redirect me if on wrong thread but can't find a brewpiless thread.
I have struggled with a decent signal from my ispindel out of my ferment fridge, bargain stainless steel one but a good enough cage to stop regular wifi to my access point / router upstairs. Works great if i park a second router outside the fridge but trailing cables a pain.
I saw this ( briefly discussed on the ispindel thread about month ago )
Translation from spanish not super good but enough, I wanted to use this to have a fermentation controller ( not got the relays for that yet ) and also as a WIFI relay/booster and another gadget with the display.
I assembled it last pm and installed the software my first efforts unsuccessful until I swapped out the esp8266 for another and then it was recognised and all loaded okay.
I have managed to get a test ispindel to connect to it and see temp and gravity change.
But what I also want to do is use it as an access point for the other ispindels which use brewspy.
I can see the brewpiless network and can log onto it with a device such as phone but can't get any WWW access from there.
I have set a fixed ip for the repeater on my network but am at a loss at the network aspects.
 
OP
T

Thorrak

Supporting Member
HBT Supporter
Joined
Feb 7, 2016
Messages
2,957
Reaction score
1,837
Location
New York, NY
@Thorrak please redirect me if on wrong thread but can't find a brewpiless thread.
I have struggled with a decent signal from my ispindel out of my ferment fridge, bargain stainless steel one but a good enough cage to stop regular wifi to my access point / router upstairs. Works great if i park a second router outside the fridge but trailing cables a pain.
I saw this ( briefly discussed on the ispindel thread about month ago )
Translation from spanish not super good but enough, I wanted to use this to have a fermentation controller ( not got the relays for that yet ) and also as a WIFI relay/booster and another gadget with the display.
I assembled it last pm and installed the software my first efforts unsuccessful until I swapped out the esp8266 for another and then it was recognised and all loaded okay.
I have managed to get a test ispindel to connect to it and see temp and gravity change.
But what I also want to do is use it as an access point for the other ispindels which use brewspy.
I can see the brewpiless network and can log onto it with a device such as phone but can't get any WWW access from there.
I have set a fixed ip for the repeater on my network but am at a loss at the network aspects.
Hey there - BrewPiLess is a different project - the thread is over here: [email protected], no need of RPI and Arduino.
 

Usernametaken

New Member
Joined
Jun 15, 2021
Messages
4
Reaction score
2
I've just moved from Brewpiless (due to constantly losing wifi and a lack of support and development) and have moved to fermentrack.
Aside from losing a few things I really liked on BPL like beer profiles via gravity (amazing for lagers and the fact I work away) and auto spunding, I'm finding fermentrack to be a much nicer, prettier, and more importantly, stable, environment.
One thing I don't seem to be able to find though, is where I can change the chamber's maximum temperature.
Currently, it seems that 30C is as high as it can go and as I use this for beer and spirits, the ability to ferment at 35+ is nice.
Does anyone know where I can change this?
 

day_trippr

Moderna Or Bust! :D
Joined
May 31, 2011
Messages
36,717
Reaction score
19,390
Location
Stow, MA
The original BrewPi (that Fermentrack et all were derived from) has both Min and Max "Temperature Settings" found under Maintenance Panel - Advanced Settings - Control Constants. I expect the Fementrack gui has something similar...

Cheers!
 
OP
T

Thorrak

Supporting Member
HBT Supporter
Joined
Feb 7, 2016
Messages
2,957
Reaction score
1,837
Location
New York, NY
I've just moved from Brewpiless (due to constantly losing wifi and a lack of support and development) and have moved to fermentrack.
Aside from losing a few things I really liked on BPL like beer profiles via gravity (amazing for lagers and the fact I work away) and auto spunding, I'm finding fermentrack to be a much nicer, prettier, and more importantly, stable, environment.
One thing I don't seem to be able to find though, is where I can change the chamber's maximum temperature.
Currently, it seems that 30C is as high as it can go and as I use this for beer and spirits, the ability to ferment at 35+ is nice.
Does anyone know where I can change this?
Gravity-based beer profiles are coming (though I won't promise when)!

Unfortunately, I don't recall off the top of my head whether the min/max temp settings are part of the "control settings" options (which is user-configurable but isn't currently exposed in Fermentrack) or part of the hard-coded temps in the firmware. If it's the former, then I can try to expose that in Fermentrack & allow for control. If it's the latter, then you'll need a recompiled firmware with different temp limits.

Unfortunately, I'm on vacation with a laptop that doesn't have my BrewPi firmware development environment loaded on it and can't check easily to let you know - tag me again this coming Sunday when I'm back and I'll take a look and find out.
 

Usernametaken

New Member
Joined
Jun 15, 2021
Messages
4
Reaction score
2
Gravity-based beer profiles are coming (though I won't promise when)!

Unfortunately, I don't recall off the top of my head whether the min/max temp settings are part of the "control settings" options (which is user-configurable but isn't currently exposed in Fermentrack) or part of the hard-coded temps in the firmware. If it's the former, then I can try to expose that in Fermentrack & allow for control. If it's the latter, then you'll need a recompiled firmware with different temp limits.

Unfortunately, I'm on vacation with a laptop that doesn't have my BrewPi firmware development environment loaded on it and can't check easily to let you know - tag me again this coming Sunday when I'm back and I'll take a look and find out.
Wow, now that's some developer support!
 

Usernametaken

New Member
Joined
Jun 15, 2021
Messages
4
Reaction score
2
Unfortunately, I don't recall off the top of my head whether the min/max temp settings are part of the "control settings" options (which is user-configurable but isn't currently exposed in Fermentrack) or part of the hard-coded temps in the firmware. If it's the former, then I can try to expose that in Fermentrack & allow for control. If it's the latter, then you'll need a recompiled firmware with different temp limits.
Considering the prevalence of Kveik and other high temp yeasts, perhaps raising that cap across the board might be a good idea?
 

troyp42

Well-Known Member
Joined
May 12, 2012
Messages
494
Reaction score
46
Location
Melbourne
Hi gents, Im looking at making a few more of these controllers and was wondering if anyone has a link to some decent PCBs. I brought a few a few years back but they had the space for the IC convertors which arent needed. @Thorrak Do you sell your PCbs?
 
OP
T

Thorrak

Supporting Member
HBT Supporter
Joined
Feb 7, 2016
Messages
2,957
Reaction score
1,837
Location
New York, NY
Hi gents, Im looking at making a few more of these controllers and was wondering if anyone has a link to some decent PCBs. I brought a few a few years back but they had the space for the IC convertors which arent needed. @Thorrak Do you sell your PCbs?
Yes, but I’m not at home to ship them out at the moment, unfortunately.

I have all of my PCB designs (with links to fabricators) on GitHub here: thorrak/thorrak_hardware

If there is anything missing that you’re looking for, let me know and I’ll see if I can upload it.
 

troyp42

Well-Known Member
Joined
May 12, 2012
Messages
494
Reaction score
46
Location
Melbourne
Yes, but I’m not at home to ship them out at the moment, unfortunately.

I have all of my PCB designs (with links to fabricators) on GitHub here: thorrak/thorrak_hardware

If there is anything missing that you’re looking for, let me know and I’ll see if I can upload it.
Cheers for that. I was looking at this board here as I dont need the level shifter.


But what is all of this for as I never used any of those components on my last build?


 
OP
T

Thorrak

Supporting Member
HBT Supporter
Joined
Feb 7, 2016
Messages
2,957
Reaction score
1,837
Location
New York, NY
Cheers for that. I was looking at this board here as I dont need the level shifter.


But what is all of this for as I never used any of those components on my last build?


The mosfet and 10ks are the level shifter.
The capacitors are decoupling caps - they’re optional, but highly recommended.
The 2.2k resistor is the pull-up for the temp sensor - I guarantee you had one of these (or a 4.7k) as they’re required for the temp sensors to work.
 

troyp42

Well-Known Member
Joined
May 12, 2012
Messages
494
Reaction score
46
Location
Melbourne
The mosfet and 10ks are the level shifter.
The capacitors are decoupling caps - they’re optional, but highly recommended.
The 2.2k resistor is the pull-up for the temp sensor - I guarantee you had one of these (or a 4.7k) as they’re required for the temp sensors to work.
Ahh ok so dont need the mosfet and 10ks then as I dont use the level shifter.
Ill use the caps...
And yes I did use the pull up resistor on my other builds.

Thanks for that..

So is that price $15 for 1 board through Oshpark?
 

troyp42

Well-Known Member
Joined
May 12, 2012
Messages
494
Reaction score
46
Location
Melbourne
Hi Brewers, In using this relay in a build and having problems with it (Similar to last time way back in post 2640 which Ive re read but still not sure) Ive got them set to Inverted in the software,
Ive got the jumpers both on Low-Com (Although not shown in this photo) But every time I turn the power on I get one of the relays on or both on even though it says waiting to heat or waiting to cool.

From memory (As Im now at work) with both jumpers set to high-com both relays come on. With both jumpers off no relays are on and with both jumpers set low-com one relay comes on (Even though its Waiting to heat or waiting to cool). Im already confused... Any suggestions???

EDIT:- So after reading what I can about these relays am I right in saying that if I switch the jumpers to high-com it means a voltage activates the relay. And if I switch the jumpers to low-com it means no voltage activates the relays?? If so then wouldnt changing the settings in the software to inverted then do the opposite again??? So high-com switches on high voltage but set to inverted will switch it on low even though the jumpers are set to high??

If thats correct whats the point of the inverted or non inverted setting?

relay.jpg
 
Last edited:

day_trippr

Moderna Or Bust! :D
Joined
May 31, 2011
Messages
36,717
Reaction score
19,390
Location
Stow, MA
Set the relays for Low Active.
Then configure the GPIO pins that drive the relays for "inverted".
LEDs D3 and D4 will light when their respective relays are activated when the end to end setup is properly configured.

Most relay modules are Low Active, period, which is why the gui offers the option of inverting the relay controls...

Cheers!
 

troyp42

Well-Known Member
Joined
May 12, 2012
Messages
494
Reaction score
46
Location
Melbourne
Set the relays for Low Active.
Then configure the GPIO pins that drive the relays for "inverted".
LEDs D3 and D4 will light when their respective relays are activated when the end to end setup is properly configured.

Most relay modules are Low Active, period, which is why the gui offers the option of inverting the relay controls...

Cheers!
Ok thanks for that. I will give it a shot.
 

troyp42

Well-Known Member
Joined
May 12, 2012
Messages
494
Reaction score
46
Location
Melbourne
So nothing would work other than setting the pins to com-high but in the software setting them both to non-inverted. If I set the pins to com-low and used "inverted" both relays switched on straight away. Strange indeed

relay2.jpg
 

troyp42

Well-Known Member
Joined
May 12, 2012
Messages
494
Reaction score
46
Location
Melbourne
@troyp42
Thanks I'm waiting for the parts for my build. Good to know.
Which build guide are you following?
I’ve made 2 temp controllers before with fermentrack installed in a ras-berry Pi so I’m basically just building this one the same. I got all my info for it from this thread . Other than that I’ve never really seen a build guide.
 
Joined
Jan 23, 2016
Messages
22
Reaction score
5
@LBussy @Thorrak

I'm not sure if you remember or not, but a while back I was having trouble with intermittent sensors.

Well, today I finally had some more time to look at it and I cracked the issue: a faulty power supply for my D1 Mini!

Before changing the power supply:
1626449719415.png


And after (you can see when I changed the power supply and plugged the room sensor back in at 07:50):
1626449787526.png



So, there you have it: check your power supply!
 

purpleogre

Member
Joined
Feb 24, 2017
Messages
5
Reaction score
2
Location
LEEDS
Hi folks, I've just started to re-look at my esp8266 brewpi project that I built back in 2017/18
old arduino box.jpg

I added the buzzer function back using an arduino active buzzer module and successfully built the master branch 0.08 and 0.09 versions, this was on another machine using platformio. I have moved over to another pc running ubuntu and so have done a fresh install of platformio and downloaded a fresh copy the master branch before I started to implement the buzzer again.
Trying to compile gave lots of warnings about SPIFFS depreciating and several errors, one error was solved by making the WiFiManager as a local library and changing platformio.ini to reflect the change the other error was 'i' was not declared in this scope in the function 'bool isValidmDNSName(String)' in brewpi-esp8266.cpp I'm not a good coder so after googling a bit I ended up rewriting to be
Code:
bool isValidmDNSName( const char * mdns_name )
 {
        char c;
        while ( (c = *mdns_name++) )
          if ( c != '.' && !isalnum(c) )
            return false;
         return true;
}
this has allowed it to successfully compile but i'm getting corruption on the LCD screen, the last update in the master branch says was to fix lcd corrution
screen_corrupt.jpg


Should I be using one of the other Dev branches instead ?
 
Joined
Jan 19, 2013
Messages
3,359
Reaction score
1,333
Location
Kansas City
Assuming you are using the master branch:

What you've done there is not exactly correct, but I don't believe it's causing your issue. A better change would be:
C++:
bool isValidmDNSName(String mdns_name) {
    for (int i = 0; i < mdns_name.length(); ++i) {
        if (!isalnum(mdns_name[i]))
            return false;
    }
    return true;
}
You can safely (for now) ignore all the SPIFFS warnings. There are a couple of other character conversion warnings that can be ignored for now as well.

In the platformio.ini file, change:
INI:
lib_deps =
  https://github.com/tzapu/WiFiManager.git#development
to:
INI:
lib_deps =
  https://github.com/tzapu/WiFiManager.git
That's all you should need - I just compiled and tested here.
 

purpleogre

Member
Joined
Feb 24, 2017
Messages
5
Reaction score
2
Location
LEEDS
thanks @LBussy , I changed the brewpi-esp8266.cpp isValidmDNSName to your Code which works :) but changing platformio.ini to your suggestion I get an error FileNotFoundError: [Errno 2] No such file or directory: 'git':
so for the time being I've set the common section of platformio.ini to
INI:
[common]
platform = espressif8266
board = nodemcuv2
framework = arduino
lib_deps =
    tzapu/[email protected]^0.16.0
    ;https://github.com/tzapu/WiFiManager.git
which lets me compile and upload ok , unfortunately the screen is still corrupt :-(
If I use Fermentrack to grab the latest and flash it works fine !

for completeness here's my change to Buzzer.ccp

C++:
/*
 * Buzzer.cpp
 *
 * Copyright 2012-2013 BrewPi.
 *
 * This file is part of BrewPi.
 *
 * BrewPi is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * BrewPi is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with BrewPi.  If not, see <http://www.gnu.org/licenses/>.
 */


#include "Brewpi.h"
#include "Ticks.h"
#include "Pins.h"
#include "Buzzer.h"

// TODO - Implement

#if BREWPI_BUZZER
#if BREWPI_BOARD == BREWPI_BOARD_ESP8266
#define _delay_ms(ms) delayMicroseconds((ms) * 1000)
#endif
#if BREWPI_BOARD != BREWPI_BOARD_ESP8266
#include <util/delay.h>
#endif

#include "FastDigitalPin.h"

#if (alarmPin != 0)
    #error "Check PWM settings when you want to use a different pin for the alarm"
#endif

#define BEEP_ON() digitalWrite(alarmPin, LOW);
#define BEEP_OFF() digitalWrite(alarmPin, HIGH);

void Buzzer::init(void){
    // set up square wave PWM for buzzer
    fastPinMode(alarmPin,OUTPUT);


}

void Buzzer::setActive(bool active)
{
    if (active!=this->isActive()) {
        ValueActuator::setActive(active);
        if (active) {
            BEEP_ON();
        }
        else {
            BEEP_OFF();
        }
    }
}

void Buzzer::beep(uint8_t numBeeps, uint16_t duration){
    for(uint8_t beepCount = 0; beepCount<numBeeps; beepCount++){
        BEEP_ON();
        wait.millis(duration);
        BEEP_OFF();
        if(beepCount < numBeeps - 1){
            wait.millis(duration); // not the last beep
        }
    }
}

Buzzer buzzer;

#endif
and
in config.h I've made the following changes
C++:
#ifndef BREWPI_BUZZER
#define  BREWPI_BUZZER 1
#endif
//

#define heatingPin NODEMCU_PIN_D0
#define coolingPin NODEMCU_PIN_D5

#define oneWirePin NODEMCU_PIN_D6  // If oneWirePin is specified, beerSensorPin and fridgeSensorPin are ignored
#define doorPin    NODEMCU_PIN_D7
#define alarmPin   NODEMCU_PIN_D3
 
Top