Use an ESP8266 to replace RPI and Arduino. Running BrewPi without Pi, therefore, BrewPi-Less
Clone or download
Vito Tai
Latest commit 571261c Oct 15, 2018

README.md

BrewPiLess

Note: ALL BPL settings will be gone after upgrading to v3.0

Note: re-SETUP is necessary after upgrading to v2.4

Features

  • I2C LCD support.
  • Rotary encoder support (* not supported by default).
  • Remote LCD display on browser.
  • Remote temperature control.
  • Temperature schedule.
  • Device(temperature sensor and actuator) setup.
  • Temperature logging to specified remote destination.
  • Web-based OTA firmware update.
  • Web-based network setting.
  • SoftAP mode.
  • Local temperature log and temperature chart.
  • iSpindel support.
  • Gravity logging. The gravity data can be manually input or from iSpindel.
  • Gravity-based temperature schedule.
  • Save and resuse of beer profiles.
  • Static IP setting.
  • Export saved data to csv format by offline log viewer.
  • Brew and calibrate iSpindel. new!

Introduction

This project uses a single ESP8266 to replace RPI and Arduino. Main Screen BrewPi is the greatest, if not the ultimate, fermentation temperature controller. The original design uses a RPI to log temperatures and maintain a temperature schedule. The RPI also hosts a web server for the browser-based front-end. Using a RPI or a PC allows the maximum power of BrewPi to be used but requires additional hardware (namely a RPI or PC).

ESP8266 is cheap and powerful WiFi-enabling IOT solution. Although it isn't as powerful as a RPI, it's a good solution to maximize the functionality and minimize the cost. Using a single ESP8266 as the temperature controller (replacing Arduino) and as the web server and schedule maintainer (replacing RPI) also reduces the work in building a brewpi system.

!!Special Note

You will need to run the hardware setup procedure after upgrading to v2.4 from prior versions other than Glycol option enabled. Take a note of your configuration or save the options before you update the firmware so that you can recover the settings quickly.

Known issues

  • ESP8266 won't restart after saving system configuration. Sometimes ESP8266 can't restart after a software watchdog timer reset, which is the only way to reset the system by software. It happened on my NodeMcu and D1 mini boards that didn't connect to anything but USB. I have no solution for it.
  • ESP8266 won't start after selecting WiFi network. The web server used is ESPAsyncWebServer which uses ESPAsyncTCP. I found that if ESP8266 ever enters SoftAP mode before connecting to the network, the Web server will fail on tcp_bind() and the web service will be unavailable. Not tracing the source code of the LWIP, I just worked around by reseting the system. However, ESP8266 sometimes doesn't reset.
  • The page can't be loaded correctly. It rarely happens after HTTP caching is used, but it does happen especially when Javascript Console is opened. During developing and testing, I found corrupted html/javascript pages. Without the abliity and time to debug or develop the web server and or TCP/IP stack, I decide to live with it.
  • Incorrect temperature chart. The log format before v2.0 is vulnerable. There seems to be some unconsidered conditions that break the log.

Version History

  • v3.2

    • Revise remote logging settings. Simpler interface and special process for ubidots.com.
  • v3.1

    • Fix beer profile which uses gravity as conditions
    • Ditch WiFiManager.
    • AP mode is always avaible.
    • Plato supported
    • Spanish supported
    • Tom's frontend embedded.
  • v3.0

    • Avoid frequent access access of file system
    • Revise settings. Merge all settings into one file.
    • Applying temperature corection of iSpindel calibration informatoin.
    • Selective iSpindel calibration points.
    • Brew&Cal option moved to start of logs.
    • Merge classic HTML/JS files into grunt
    • Using push for beer profile information to reduce additional connection establishment.
    • bug fixes.
  • v2.7

    • Cap(spunding) control
    • revise parasite temperature control
  • v2.6

    • fix the bug that don't save Gravity Device settings
    • write formula back to ESP8266 in brew and calibrate mode
    • update temperature correction formula in brew and calibrate mode
  • v2.5.1

    • LCD backlight timer setting
    • support 2 buttons
    • merge Tom's front-end
  • v2.5 (2018/01/18)

    • optional: Latest ESP8266/Arduino framework w/ ESPAsyncTcp & ESPAsyncWebServer
    • revise network configuration and system config; change setting at "Config" page
    • fixed(static) IP bug fixed
    • fix redundant data requests
    • revise log resumption
  • v2.4.2x (2018/01/15)

    • Fix TILT zero display
  • v2.4.2 (2017/12/27)

    • bug fixed for resume display
  • v2.4.1 (2017/11/28)

    • URL to Format File System
    • missing "Calculated by BPL" in v2.4
  • v2.4 (2017/11/09)

    • Brew and calibrate iSpindel.
    • Use iSpindel temperature reading as Beer Sensor.
    • Display tilt value of iSpindel.
    • Enhance SSE re-establishment
    • Default configurable minimum cooling/heating time & back-up sensor. (That is, Glycol supported.)
    • HTTP Port settings.
  • v2.3.3 (2017/10/08)

    • All HTML files can be replaced by files on SPIFFS. Gzip support.
    • updated HTML/JS
    • Add "Title" to be displayed at banner in config page.
    • Workaround for accepting HTTP Post body length not equal to Content-Length.( for iSpindel v5.2+)
  • v2.3.2

    • Beer Profile scheculde bug fix
    • Show hostname at banner
  • v2.3.1

    • WiFi signal
    • /getstatus web service
  • v2.3

    • Fix error in time of reset. (New log format! Use new log viewer)
    • State coloring in chart
    • Remove "view" action in log list.
  • v2.2

    • 4 decimals of gravity
    • Switch to PlatformIO instead of Arduino IDE.
  • v2.1

    • more gravity-based condition
  • v2.0

    • gravity-based beer profil schedule
  • v1.2.7

    • iSpindel support

Software configuration

If you want to build the BrewPiLess firmware by yourself, we strongly recommend using platformIO and VisualStudio Code with the PlatformIO IDE extension.

You can find further details in the wiki: Software Installation.

wiki