Software Installation

1.Install Arduino IDE 1.6.8 or above (I am using1.6.9)
2.Install ESP8266/Arduino Board
Open “Arduino/Preferences” menu, input the following link at “extra board manager link”
Under “Tool” menu, select “Manage Board” in board selection menu. search esp8266, and install that board setup.
You should have NodeMcu1.0(ESP-12E module) option available under board selection menu. Select that, and choose 4M(3M SPIFFS) as Flash size.
Select the correct Serial port.
3.Install Library
 The following libraries are needed. Some of them can be found under “Sketch/Import library/Library Management”. The following links are for reference, please use the archives on GitHub.
!! Please use the libraries on GitHub. Some of them are modified, while some of them might be updated and incompatible to BrewPiLess.!!!
 If you can’t find the library, you have to find the Arduino Library directory, which usually locates at [User directory]/Documents/Arduino/libraries/ on Mac.
Arduino IDE requires the source be in specific path, usually it is
 [User directory]/Documents/Arduino/BrewPiLess
5.[Optional]Upload data files to ESP8266
If you plan to write some pages of Javascript/HTML yourself, you can do this. It’s better to turn on “DEVELOPMENT_FILEMANAGER” option in espconyfig.h to enable management of files from web interface.
Hardware Setup(Reference)
  1. NodeMcu 1.0 Board, ESP-12E or D1 mini is possible for those good at these things.
  2. Two way Relay Board
  3. Two DS18B20 sensors
  4. 4.7K resistor.
  5. [Optional] 20×4 I2C LCD
  6. [Optional] KY-040 Rotary Encoder module Don’t use it.
  7. Power supply to ESP8266. (I use a USB adapter)
** If this photo contains your working and infringe your copyright, please notice me to remove it.
Check the following link for reference, where I got the DS18B20 pictures.
** Note:You need a IO expender to use Rotary Encoder.
  1. On the first time use or when the network disappears, you have to setup the WiFi. ESP8266 will create a WiFi network named “brewpi”, Use your phone or computer to connect to that WiFi AP. There will be a WiFi setup page popping up. If your phone or computer doesn’t open the setup page automatically, open your browser(Chrome, or Safari), and try to browse to any site, like
    Please reference the following link for network setup:
    New: After three minutes, ESP8266 will enter AP mode.
  2. If you are lucky enough to use Apple’s products, you can use URL like “http://brwepi.local”. Otherwise, you have to figure out the IP address by looking up from your router. The main page is the LCD like:
  3. Touch or Click the LCD, a menu will pop up. Select “Device Setup” is to setup the sensors and actuators. When prompted for username and password, input “brewpi” for both. The interface mimics original BrewPi. You can find the the manual of BrewPi for your reference. Basically, you have to “Refresh Device List” to list sensors and PINs, select the setting and “Apply”.
    device setup
  4. “Temperature Management” is used to control the temperature. Select “Beer Const.”, “Fridge Const.”, or “Off”, input the temperature desired, and “Apply”. That’s it.
    temperature control
    To use “Beer profile”, you have to edit and save the profile first. The interface mimics original BrewPi again. Please check BrewPi manual for detail instruction.
    **Internet connection is necessary for Beer Profile.**
  5. Temperature logging.
    BrewPiLess can log data to clouds or other servers. The “Data Log” menu is for this. ESP8266 will invoke the specified URL with the temperature values at specified period. Because of limitation of resource, HTTPS is not supported. If you want to log data to GoogleSheet, you need to do it indirectly. Please check Github for detail instruction.
    I have tried “”, which does not require https. You can put data to it direct from ESP8266.
    Here is the result of my testing:
  6. “System Config” is used to setup the system related setting.
    Host/Network Name: The hostname for mDNS.
    User Name & Password:trivial. All pages except the LCD page require authorization.
    Always need password:If this option is not set(checked), the access to the “main page”(LCD display) will not require authorization.

132 thoughts on “BrewPiLess

  1. Hi
    I love your work but I would like to use it for mashing. So there would be some changes needed. Do you think that would be possible?
    Thank you

  2. Hi Samuel,
    BrewPiLess is in fact originally to replace the Raspberry Pi by ESP8266. Thinking put everything in a small box, I implemented part of functions, what I need, of BrewPi on ESP8266. Then, I found thorrak already ported the code from Arduino to ESP8266 before I started. I just merged all the code on the ESP8266.
    That said, BrewPiLess is comprised of two parts: the networking part and temperature controlling part. My work is mainly the networking part. The temperature controlling part is from BrewPi. I don’t really understand much of BrewPi but only traced the code that I needed to make it work.
    However, as far as I know, Elco, the author of BrewPi, has created a new product based on BrewPi which can used in mashing control. I see no reason that it cannot be done. Maybe changing a few #define’s will make it work.
    However, there is another project that uses ESP8266 as the brew controller, dedicated for mashing and boiling control. It is based on Open Ardbir (sort of). Maybe you will be interested in it. Please check my latest post.
    I do notice the similarity of the hardware setup between BrewPiLess and BrewManiac@ESP8266. In fact, I am designing a Mini shield that can be used for both, but it won’t happen soon before I learn how to use EAGLE.

  3. Couple of minor issues compiling on Linux:
    header files misnamed:
    WifiSetup.h Should be WiFiSetup.h in the BrewPiLess main file
    Temperatureformats.h Should be TemperatureFormats.h in the BrewPiProxy.cpp file.

  4. I use the 5V 20×4 I2C LCD that I used in Arduino build.My LCD uses PCF8574, which can be used under 3.3V. The problem might be the LCD back-lite or other circuit.
    I have to adjust the contract to the maximum position to make the display visible, but it works.
    I have once connected the power of LCD to 5V, and it worked, too. However, since I2C is two-way communication, I am worried about damage to ESP8266 by the 5V ACKNOWLEDGE signal from the LCD module.

    I reused all the components from my original Arduino builds, including the 5V relay board. In my setup, the NodeMcu is powered by USB input, and the Vcc of the relay board is connected to Vin, which is 5V. The control PIN is connected directly from ESP8266 GPIO in 3.3V signal. 3.3V should be HIGH in 5V logic, and the connection is one-way from ESP8266 to relay board. I’ve tried all my relay boards (to be exact, 3), they all worked fine. According to my limit knowledge, it might depends on the transistor used in the relay board. However, I would guess that it should allow tolerance and accept 3.3V as high happily.

  5. Hi Vito

    compiling error

    BrewPiLess:125: error: ‘AsyncEventSource’ does not name a type

    AsyncEventSource sse(SSE_PATH);

    Old version compiling, but it did not work on ESP-07 (after power is no access point brewpi) BMESP8266 work on ESP-07 very good!!!

  6. Vito thank you compiling , but does not work on the ESP-07 (after power is no access point brewpi) BMESP8266 work on ESP-07 very good!!!, what could be wrong?

  7. Do you connect the rotary encoder? If so, remove it.
    Remove all but the LCD if possible.

    The circuit of rotary encoder is mystery to me. I thought that there should be a pull-up resistor between CLK(rotary A) and Vcc. However, The system didn’t boot up when I connected CLK to GPIO0 or GPIO2, which should be pulled-up. Instead, The system booted up when I connected it to GPIO15 which is supposed to be pulled down.
    When I deployed my second setup, the ESP8266 doesn’t boot up if the rotary encoder is connected. I just gave up the rotary encoder since it’s more convenient to control by the web.

  8. Removed all include LCD, GPIO15 – GND, CH_PD -VCC, no access point brewpi.
    Install BMESP8266 getting access point bm.

  9. That’s weird. Have you used that ESP-07 before? The wireless credential will not be erased through flashing, and it will connect to the previously connecting network without creating a network named “brewpi”.

    Please connect the usb and open the Arduino IDE, and get a log for me. I can’t image what happened without further information.

  10. Thank you, I understand that the little information , what kind of logs you ultimately offer ?
    1 step erasing flash and flash AT21SDK95-2015-01-24.bin, power getting access point esp-FE12F7
    2 step compiling and flash BrewPiLess from Arduino IDE, power no access point brewpi
    3 step for check work compiling and flash BMESP8266 from Arduino IDE, power getting access point bm


  11. Your boot loader seems different to mine. It printed messages that I have never seen from mine. However, I don’t think it would cause any problem.
    FYI, Here is the log of mine:
    chksum 0x0f
    csum 0x0f

    SPIFFS.being() Successscandone
    state: 0 -> 2 (b0)
    state: 2 -> 3 (0)
    state: 3 -> 5 (10)
    add 0
    aid 7
    *WM: AutoConnect
    *WM: Connecting as wifi client…
    *WM: Using last saved values, should be faster

    I am guessing that the system stop before Would you try upload the file by SPIFFS tool?

    BTW, What is the version of your Arduino IDE?

    I’ve never used a ESP-07. Are you sure that it has 4M bytes flash?

  12. Hi Vito,

    I try to compile the sketch. I am using 1.6.12 on Mac OS X El Capitan.

    When I compile the sketch I get this error:
    Using library PCF8574_ESP at version 1.0.3 in folder: /Volumes/Data/projects/Sketches/Arduino/libraries/PCF8574_ESP
    Using library WiFiManager at version 0.12 in folder: /Volumes/Data/projects/Sketches/Arduino/libraries/WiFiManager
    exit status 1
    ‘PCF8574’ does not name a type.

    I tried to find the library. I came out on PCF8574_ESP, but I don’t know if this is the correct one.

    I downloaded your, but that did not solve the problem either. What library did you use?

    Kind Regards,


  13. I check the library on GitHub and found it changed.
    I’ve updated the Please download again.

  14. Hi, I try and compile for use on D1 but get an error. I do not intend to use the LCD display, how do adjust the code to allow this to work without the LCD?

    In file included from sketch/DisplayLcd.h:33:0,
    from sketch/Display.h:29,
    from [path]/Documents/Arduino/BrewPiLess/BrewPiLess/BrewPiLess.ino:14:
    sketch/IicOledLcd.h:11:21: fatal error: SSD1306.h: No such file or directory
    #include “SSD1306.h”

  15. Sorry.
    Never thought of that.

    I’ve updated the code so that you can change line 130 in Config.h to

    #define BREWPI_LCD 0

    or, you can just download the libraries from the github.

  16. Hi I am trying to get Brewpiless working on Nodemcu V3 but I have problem to make LCD working. I have LCD with I2C (FC-113).If I connect SCL, SDA to Nodemcu D1, D2 it show only squares. If I upload different code (it has SCL, SDA on D3, D4) it works OK. I tried to change in config.h to D3 and D4 but without any effect. LCD is good, I2C chip is good, wiring is ok. Do you have any idea what could be wrong? Thank you

  17. What’s the benefit for you to use D3 and D4 instead of D1 and D2?
    Most of the code/library uses D1,D2 for I2C. That is default in most libraries and is highly recommended.

    I don’t have your hardware, neither do I have your all configuration. It’s difficult for me to help you.

  18. D3 and D4 was to test if nodemcu and I2C with LCD is working with another code. It was. So it is weird to me that D1 and D2 for Brepiless show only blank black places. My hardware is just Nodemcu V3, I2C LCD, was working for every code with arduino and esp. That is why it is weird it is not working. You dont use hardware like this?

  19. NO. I use only D1 and D2. Never try D3 and D4. In fact, I try my best not using D3 and D4, they are GPIO0 and GPIO2. You can find the information from ESP8266 wiki, or even BrewPiLess github.

    The options and source code are provided so that you have full control over it. It’s not possible for me to try all configurations. You should check the usage of EVERY PIN before you use it.

  20. Hello, I am using D1 and D2 like you. I only said i used D3 and D4 with different code to test if LCD is working right and it was. So in Brewpiless code LCD is enabled by default and should boot after my code is uploaded? I logged in Nodemcu over wifi and in device setup after I clicked to search devices it says I have device on D1, D5 and D7 but i have only LCD connected to D1 and D2. I will try to play with code. Thanks

  21. So Finally It is working. For anyone else having same issues: in config.h

    // LCD configurations:
    #define BREWPI_OLED128x64_LCD 1
    //#define BREWPI_IIC_LCD 1

    make it
    //#define BREWPI_OLED128x64_LCD 1
    #define BREWPI_IIC_LCD 1

    Sorry for asking stupid code setting like this. I assumed that LCD will be enabled as default according to github manual picture.

  22. oh.
    I misunderstood what you said. I thought that you were trying to use alternative PINs for I2C.
    I the 3 20×4 LCDs, and two of them are used in fermentation controllers while one is used in brew controller. I don’t like to buy another, so I use the small 128×64 OLED LCD as development platform. Then, I accidentally made the OLED LCD default configuration. Sorry about that.

  23. Can you elaborate why Internet connection is needed on beer profiles? Can we use our own ntc server instead Internet connection?

  24. Please check the README on
    Two reasons for requiring internet, but they can be solved.
    1. Time.
    When internet is not available, you can set the time by using browser.
    A button for synchronizing time should be shown when the time difference between browser and BrewPiLess is too much.
    You can check the time of BrewPiLess by this URL
    Please note that it shows Unix time stamp and UTC time, not local time.

    2. the dygraph.js library
    You can put the library in ESP8266 or try to get it into brewer’s cache.

  25. Spent most of the weekend reading about these boards and loving the work you’ve done here. Got the parts on order so building one soon.

    I have a question, once the setup is done via USB is it possible to update the board OTA (WIFI remotely) without using the USB cable?

  26. Thanks Vito for a quick repl. I’ve now read through all the posts on your thread over on homebrewtalk and understand the setup a lot more now, I may set up an account over there so I can join in the thread. I just need my ESP8266 board to turn up and this will be my first attempt at anything microcontroller related. Currently set up with an STC-1000 but changing temp throughout fermentation is a pain. Your project looks great. Keep up the good work.

  27. Hi Vito,
    I am struggling to install BrewpiLess onto my Node ESP-12e, and would like more guidance such as do I need to install the full library listed above, or can I just flash the ESP8266 memory with the 1.2.5 bin? Also any other website that I new to look at to understand programming?

  28. Hi Vito,
    I am using a NodeMcu, and downloaded 1.2.5.bin. I have also nodemcu-flasher and tried updating a clean flash to 0x00000 having formatted the flash memory with Python 2.7.
    When checking in ESPtools I don’t see any firmware.

  29. Hi Vito,

    Thanks for the reply, and do I just flash brewpiless 1.2.5 straight into 0x00000?

  30. –port <serial-port-of-ESP8266> write_flash -fm <mode> 0x00000 <nodemcu-firmware>.bin

    mode is qio for 512 kByte modules and dio for >=4 MByte modules (qio might work as well, YMMV).

  31. Hi, thanks for the hardwork. I’m having a go at following your instructions and building my own Brewpiless.
    I’ve not done anything like this before, and I cant get everything to upload to the ESP8266, I’m not sure if its something I’ve got wrong or something with the libraries I’ve downloaded.
    I see you mention about getting the libraries from your dropbox, but I get a 404 when trying to access it. Could you restore access?


  32. What is the easiest way to calibrate the temperature sensors?
    They are showing 2*C difference when laying on the table.

  33. 12:43:47 ↑ U{“i”:0,”j”:1.2}
    12:43:49 ↓ L:[“Mode Off “,”Beer 24.5 –.- °C”,”Fridge 23.3 –.- °C”,”Idling for 14h22m29″]
    This does not seem to be working. Is there a complete list of variables some place?

  34. U{i:0,j:0.36} worked 😉
    Thanks for the effort you put in to this!
    I’m building a iSpindel soon, and looking forward to get it implemented into the brewpiless!

  35. Thanks for this awesome project and detailed instructions!
    I Just put mine together and have it working for its first time with an American wheat fermenting right now.

  36. Any tips where I can buy a DS18b20 with cable that works with my d1 mini?
    I have tried two different suppliers of temp sensors (, and note of them work. BrewPiLess or BrewPi-ESP8266 can find the sensors. The sensors work fine in CraftbeerPi connected to my Pi.

    I have tested a TO-92 DS18b20 supplied with my iSpindel kit. That works fine with my d1 mini running BrewPiLess and BrewPi-ESP8266.

    All sensors are connected as instructed to D6 with a pullup resistor of 4,7k to 3,3V.

  37. Edit of my last post:

    Any tips where I can buy a DS18b20 with cable that works with my d1 mini?
    I have tried two different suppliers of temp sensors (, and note of them work. BrewPiLess or BrewPi-ESP8266 can NOT find the sensors. The sensors work fine in CraftbeerPi connected to my Pi.

    I have tested a TO-92 DS18b20 supplied with my iSpindel kit. That works fine with my d1 mini running BrewPiLess and BrewPi-ESP8266.

    All sensors are connected as instructed to D6 with a pullup resistor of 4,7k to 3,3V.
    (3,3V and GND are also connected). The sensors are recognized by CraftbeerPi as 28-8000000xxxxx so they are not running in parasite power mode.

  38. I have no idea.
    I’ve bought the cables from three sources, one from amazon and two from eBay.
    All of them works fine.

  39. I’ve also bought multiple DS18b20 sensors, in raw component form and also wired within a housing. All of them work with my Wemos D1 Mini and also NodeMCU dev kit. Have you tried running a basic DS18b20 test sketch on the D1 mini ? I’d start from there and try and get that working first.

  40. I have not tested a basic ds18b20 test sketch. I will try that. Thanks!

  41. Good morning everyone.
    Vito, I finally managed to venture one of his projects.
    I compile and install the firmware on a nodeMCU but when I enter the GUI it tells me to configure the wifi, after that it seems to hang and does not connect to my router, when I enter again in AP mode it is locked in the initial screen with the following message :
    “Communicating with brewpiless controller”

    In lcd the 4 lines normally appear as being:

    Mode off
    Beer — 20.0 ° C
    Fridge — 20.0 ° C
    Idling for 41m41 (example)

    Is it some error in some library that has been updated?
    If so could you give a valid link to download the ones you use?
    Or is it something else?

  42. Please turn on javascript console and copy the output. I don’t really understand your problem.
    What browser are you using? Did you configure it as AP mode or not?
    Do you continue to hang at “communicating..”, or you proceed to see the Mode off LCD display?
    Did you setup the device or not?

    You should be able to get the file on Github.

  43. Bom dia Vito.
    I was able to get into AP mode because I can not connect it to my home AP.
    Note that even though you open the Main Menus and recognize the sensors, you can not save any settings.
    I made a video to demonstrate.

    What do you think?

  44. PS. All the libraries that you made available in Github were used in my browser in case it is chrome.

  45. First, I never use Firefox. Please use Chrome if possible.
    1. At “Device Setup” page, click the “Erase Setting” button before you “apply”.
    2. RELOAD the main page. I don’t know why there are XML or success.txt. I never see error messages like that. If possible, please use Chrome, and press “Ctrl + Shift + J”, then reload the page.
    3. The main page requires internet access to show the graph. Please read the on GitHub.
    4. I can’t help on your hardware setup. I have no idea why you can’t connect to your home router. Maybe you can try other sketch. After connected to your home router, reload BrewPiLess. It should connect to your router successfully.

  46. Hi vito,
    great job here! Really man!
    I’ve compiled and flashed v2.0 but I’m experiencing the same leandro’s problem. When I chose AP mode (or after 3 mins from startup), in the lcd screen i see
    Mode off
    Beer — 20.0 ° C
    Fridge — 20.0 ° C
    Idling for 4m30
    and the IP is

    If I’m quick and only sometimes, in the browser (chrome on Android) I see the BrewPi page with the message
    Communicating with BrewPiLess controller
    and then it hangs.
    Most of the time I cannot even see the page.
    The webserver doesn’t respond at

    Hope I explain well.

  47. 1. I don’t have any Android device. I never run it on Android. Maybe it is NORMAL that it doesn’t work on Android.
    2. How do you know the IP is
    3. The charting function might not work under AP mode because the library is hosted somewhere on the internet.
    4. Why do you use The default IP under AP mode seems to be
    5. Make sure everything works fine under normal station mode, and connect it by Chrome on Windows or Mac. Sometimes, you might get bad copy of NodeMcu or D1 mini.

  48. Vito I believe it does not have to do with the browser or even with the installation of the software, researching I realized that there are several models of NodeMCU. I have been told that it is V3, but on the internet there is another one with this nomenclature, I am sending the link in some numbered examples, I would like it if it is possible for you to indicate which one is most similar to yours so that I can buy one that is the same. This may be important for other adventurers not to make the same mistake as me.
    Thankful again.
    Follow the link.

  49. Another thing I can connect in the brewpiless network, without problems, to configure the wifiManenger it finds the wifi network of my house but when I connect it does not do anything the message appears:
    Credentials Saved
    Trying to connect ESP to network.
    If it fails reconnect to AP to try again
    Settings appear to be not being saved.
    Is it possible to do them manually before compiling the program so that it already starts with the ssid and password preconfigured?

    I can only enter AP mode with only a few options available, I realized that you said that you can only create beer profile if you have access to the internet,
    But there is no connection to my router I changed the router and the same thing happened, this way there is no internet access.
    I was able to configure the sensors with the tip of erasing the configuration before applying.
    Now the temperature of both sensors appears on the LCD correctly but I can not program the temperatures nor start the controller.

  50. I have a few pieces of NodeMcu. One of them is like yours in the photo. I think it should work if it is 4M bytes ESP-12E.

    You can use any sketch to write the wifi credential, like this one

    You just need to change the SSID and Password, build and upload it. Try to connect to it to check if it works.

    I have no idea why your NodeMcu can’t connect to you router. Do you know which channel your router is using? What kind of security mode?

  51. Thanks for your reply.
    1. It happens with Chrome on Win.
    2. The IP is written on the lcd disply, black on white (in oled), just after BrewpiLess goes in AP Mode (hitting on the WifiManager config page or waiting 3 mins)
    3. It’s not only the charting that doesn’t appear, the web server doesn’t respond.
    4. I misstyped. I’ve used But still with no avail
    5. In normal station mode it works like a charm. But still not in AP mode.
    And I’ll try with other boards, but the fact it works in normal station mode makes me think that it shoud be a sw issue.
    Thank you again for being so available and willing to help

  52. Thanks.
    Then, I know it’s about AP mode.
    I have to admit that it has been for a while that I haven’t tested AP mode. I will look into it later.

  53. I tested it today.
    Mine just works fine.

    The display of is “expected” under AP mode, because I was not aware that the IP address under AP mode is different from station IP.

    What platform are yo using? Would you check the network configuration of your host(the computer you use)? Make sure your computer get correct IP like with correct gateway IP
    If the IP configuration is correct, check by ping the gateway

    If the result is something like this:
    64 bytes from icmp_seq=0 ttl=128 time=32.439 ms

    Then, try

  54. It is with great joy that I come to report to colleagues and Vito that I finally managed to make the system work properly on my nodeMCU, I think it is important to pass on the information so that other users who may have the same problem solve their demands.
    My problem occurred due to the ARDUINO IDE having other libraries and files that I used to drive the traditional Ardbir and were flawing with brewpiless installation, this way in another PC with a new installation of the Arduino IDE the problems were solved. The strange thing is that even though I had deleted the ARDUINO IDE, and reinstalled the software, the problem persisted on my home PC.
    Thank you Vito’s attention.
    Great beers to everyone !!!

  55. Good news!

    It’s possible to install the Arduino IDE in “portable” mode so it exists as a self-contained unit and any libraries loaded apply to that portable instance only. You can install as many such portable instances as you want. I’ve got one dedicated to BrewPiLess for example.

  56. I have model 1 described as CP2102 and although I can read the temperature through the same hardware using other software, I can not get the BrewPiLess to detect the temperature sensors. BrewPiLess compilation occurs without problem, I have all the libraries installed and I followed all the steps in this topic, I just can not detect the DS18B20 temperature sensors. Can anyone help me?

    Eu tenho o modelo 1 descrito como CP2102 e apesar de conseguir fazer a leitura da temperatura através do mesmo hardware utilizando outro software, não consigo que o BrewPiLess detecte os sensores de temperatura. A compilação do BrewPiLess ocorre sem problema, tenho todas as bibliotecas instaladas e segui todos os passos deste tópico, apenas não consigo detectar os sensores de temperatura DS18B20. Será que alguém pode me ajudar?

  57. My suggestion:
    1. use 4.7k resistor
    2. make sure using adequate power supply

    You can either build a hardware that is compatible to the software or choose a software that is compatible to the hardware.

  58. Very odd. So the devices work and your wiring is good, as shown with the “termometer” sketch.

    Not sure what to suggest next. BPL just works for me. Do you have another NODEMCU board to try, or a Wemos D1 mini ?

  59. I tested with resistors starting at 10k up to 2k2, also tested on 3 boards nodeMCU 2102 all of the same model.

    Just does not work with BrewPiLess, it has something to do with the link I posted yesterday, another project had the same problem and was corrected by the author following the tips of that link:

    It seems that the problem is connected to the low current supplied by the mode in question.

    I do not have other hardware nodeMCU, and I have 3 of that model 2102 that I would very much like to use in this project, anyway thanks for your help.

  60. Hi Vito,
    I have bought all the hardware bits and pieces but I am struggling to make sense of how I actually download and install the V2.2 software.
    I am using Windows 7. I have downloaded the v2.2. zip file from GIT and have installed IDE 1.8.3. plus all the recommended packages.

    I am new to the Arduino IDE I can’t work out what steps I have to do to get the v2.2 source files – presumably complied – so that I can upload to the esp8266
    You help appreciated

  61. Thanks Vito – I was able to install the VSCode etc and upload to the board. Peter

  62. Hi,

    I wasn’t able to connect to the ESP8266 in the first 3 minutes. After that the wireless network disappeared and I can’t find it anymore. What can be done to find it again?

  63. Hi vito.
    I want to build a version of BrewPiless 2.3 oled.
    Tell me how to order a display
    64×48 IIC I2C OLED
    128X64 IIC I2C SPI Lcd Led
    Where you can see the diagram of the connection to the D1 mini
    Thank you

  64. Try find 128X64 driven by SSD1306 if you prefer OLED.
    I implemented the OLED support in a quick and dirty way.
    The font used is 6×12 to display 20×4 characters. (An additional 5th lines will show IP when power on, and UTC time after a short time.)

    Other resolution is not supported.

    SH1106 instead of SSD1306 might also works, but I didn’t try. An additional compile option “BREWPI_OLED_SH1106” needed to be be set.

  65. Thank you Vito.
    I do not have much experience with programming yet and I use your ready projects.
    I am also ready to contribute to the development of your project and your website. Tell me how to do this.
    I will be happy to help you.

  66. Hi VITO
    What should I upload to ESP8266 ?
    I don the step up to 5. But now I don’t know what to put into a ESP.
    platformio.ini is not the right one.
    Thank you

  67. I installed brewpiless using and got it working. Now I want to use it for glycol chilling. I did an OTA update with your 2.3.3 glycol.bin and everything seems to be working. Did I miss something by not building the image with the hack you say needs to be done in Platformio.ini in visualstudio? I made the change in the .ini file before I ran the glycol.bin. Is it automatically picked up in the file structure or already included in the .bin? Many thanks, great work.

  68. The pre-built images are built by the specific options.
    You are fine to use it if it meets your requirement.
    If you need a configuration that is not built, modifying the platformio.ini and BUILDing the image is necessary.
    For example, using OLED with glycol, or need glycol option on Thorrax’s board, and etc.

  69. Thanks, for the update. BTW, using the 2.3.3.glycol.bin changing these parameters seems to make my system rock solid (within .1 C):

    j{“minCoolTime”:10,”minCoolIdleTime”:10, “maxCoolTimeForEst”:60, “maxHeatTimeForEst”:30, “idleRangeH”:0.100, “minHeatTime”:10, “minHeatIdleTime”:10, “deadTime”:10, “Kp”:0, “Ki”:0, “Kd”:0}

    Any other tweaks you might suggest? It is working so well, I’m going to try running two separate brewpiless glycol modules off one glycol chiller. I’m assuming that I will have to review the results on two separate ip addresses as I haven’t found a way to have multiple instances of brewpiless modules on a single web address. Please correct me if I am wrong. Thanks again, great job.

  70. You can change the Host name in “System Config” pages.
    You can also change the Title so that you will know which controller you are connecting without checking the address line.

  71. I just built a iSpindel, using firmware 5.1.2. everything works with ubidots, so I am pretty sure it is functional. When I connect it to brewpiless running the glycol2.3.3.bin and setting up softap and a network name of brewbucket1, iSpindel see everything and I can configure it with those settings, but when I go back to brewpiless and setup everything under gravity and then refresh–actually I even tried rebooting as well, nothing happens with gravity. Does this mean that the module for iSpindel is not included in the glycol.bin file and that I need to compile both of them together? Any suggestions about how to get these two working together greatly appreciated.Thanks again

  72. OK, my error, I got it to work: I didn’t see the drop-down box under Ubidots, when I pulled that down, chose http, put the static ip address of the brewpiless in and added “/gravity” into the field for the URL, I immediatly got readings. Very exciting. Thanks again!

  73. Wow, this is great. Just as I was about to calibrate everything. It also solves a problem I have on trying to control 2 batches with the glycol cooler module with 2 brewpiless ESP8266 boards built into 1 project box and trying to share the “Room” probe hooked into the glycol chiller. It just hasn’t been stable Now I can use the auxiliary temperature for the “beer” temp and run two separate probes into the glycol, leaving me one probe for whatever (I built the box with 3 probes, thinking my testing had demonstrated that it would work).
    Is this branch stable enough that I should go ahead and try it with a real batch or should I hold off for awhile?

  74. I’ve used it for a month. However, I didn’t try using iSpindel as beer sensor. Other than this, the modification is most on the WEB side. Therefore, the stability should be the same as previous version.
    It is now available in main branch.

  75. This project is always getting better and better.
    I’m using the 2.3.3 OLED version and I plan to update to 2.4 via OTA.
    I would ask some questions (if I may):
    1: with the prebuild version (oled) can I modify parameters with the testcmd page? I think it’s necessary to modify platformio.ini and Build from source, but I’m not sure. I wish to shorten the wait time before cooling and heating.
    2: can I use the Beer Profile without the SG feature (I don’t understand well how it works)?
    3: since I use BPL in AP mode can I use Beer Profile mode with no prob?
    Thanks a lot

  76. 1. testcmd.htm is accessible for all versions. The minimum cooling/heating time is configurable in all v2.4 or previous versions with Glycol option.
    You have to be careful not to mess up. Short start/stop time might damage your compressor.

    2. Yes. You can. In fact, that’s what I have been doing most of the time.

    3. Yes. BPL will get time from your browser if it can’t connect to any NTP servers.

  77. Hi,

    I’m facing the same problem as Luciano Rampanelli.

    I’m unable to find any onewire temp sensor.
    I’ve tried with 3 NodeMcu bord, 2 Weemos Board with 3 different one wire sensors.

    With all this board ans sensor, it work perfectly with the test script of OneWire Lib.
    If someone have an idea …

    Thank you in advance


  78. To complete my previous post,

    I have a 4.7 khom resistor between +3.3v and D6
    test with precompiled firmwares (2.3.3, 2.4, 2.4-oled) and self compiled firmware
    Test with 2 other sensors (DS18B20 and DS18S20) coming directly from manufacturer (not Chinese clones)


  79. I am not an expert, and my setup is even uglier than yours. But it just works.

    You might try supplying 5V to the sensor.

  80. I’ve made some other tests to try to understand the problem.

    If I compile the OneWire test sketch from the GitHub repository with Arduino IDE, all is OK with my test bed :

    ROM = 28 5C 7A 26 0 0 80 68
    Chip = DS18B20
    Data = 1 50 1 FF FF 7F FF FF FF EB CRC=EB
    Temperature = 21.00 Celsius, 69.80 Fahrenheit
    ROM = 28 E1 B7 27 0 0 80 64
    Chip = DS18B20
    Data = 1 49 1 FF FF 7F FF FF FF D6 CRC=D6
    Temperature = 20.56 Celsius, 69.01 Fahrenheit
    No more addresses.

    I’ve tried to compile the same code with plateformio (see But this time nothing returned :

    No more addresses.
    No more addresses.

    Maybe a compilation or a lib problem ?

    Thank for your help.

  81. Sorry,

    My last message get an error in plateformio code. If I set the correct PIN, OneWire is OK and I have the same result as arduino IDE

    So It’s something in the code but don’t really know what. I’m trying to search.


  82. The “library” for temp sensor is included in the source code. It is DallasTemperature.h/cpp.

    It’s strange, and I can feel your pain. Hardware issues happen to me occasionally.

    The code to scan OneWire device is at

    I would suggest you to enable debug output by adding “-DSerialDebug=true” to build_flags in platformio.ini.
    Then add some Serial.printf(). For example, add this at line 826
    Serial.printf(“Found address:%d\n”,config.hw.address[0]);

    Connect the USB, open the debug console to check it.

  83. Hi Vito,

    As you suggest I’ve tried to debug :
    I had a print to check used pin (OK, pin 12)
    I had the print you suggested :

    byte i;
    Serial.print(“ROM =”);
    for( i = 0; i < 8; i++) {
    Serial.write(' ');
    Serial.print(config.hw.address[i], HEX);

    with give me :
    ROM = 28 5C 7A 26 0 0 80 68
    ROM = 28 E1 B7 27 0 0 80 64

    So 2 lines for my 2 onwire temp sensors that seems to be detected. (as the test sketch)
    (your piece of code only return Found address:40)

    Thank you for your help


  84. Yes. I just wanted to know that something is detected.
    Would you please try open testcmd.htm, and issue the following commands


  85. here’s the output for these commands:
    14:59:23 ↑ d
    14:59:23 ↓ d:[D:{“logType”:”E”,”logID”:10,”V”:[10]}
    14:59:23 ↓ L:[“Mode Off “,”Beer –.- –.- °C”,”Fridge –.- –.- °C”,”Idling for 27m43″]
    14:59:50 ↑ d{r:1}
    14:59:50 ↓ d:[{“i”:0,”t”:1,”c”:1,”b”:0,”f”:5,”h”:5,”d”:0,”p”:0,”v”:null}]
    15:0:25 ↑ h{u:-1,v:1}
    15:0:27 ↓ h:[{“i”:-1,”t”:0,”c”:1,”b”:0,”f”:0,”h”:1,”d”:0,”p”:13,”x”:1},{“i”:-1,”t”:0,”c”:1,”b”:0,”f”:0,”h”:1,”d”:0,”p”:14,”x”:1},{“i”:-1,”

  86. correct last line:
    15:0:27 ↓ h:[{“i”:-1,”t”:0,”c”:1,”b”:0,”f”:0,”h”:1,”d”:0,”p”:13,”x”:1},{“i”:-1,”t”:0,”c”:1,”b”:0,”f”:0,”h”:1,”d”:0,”p”:14,”x”:1},{“i”:-1,”t”:0,”c”:1,”b”:0,”f”:0,”h”:1,”d”:0,”p”:2,”x”:1}]

  87. Hi Vito

    here are the logs :

    21:15:5 ↑ d
    21:15:5 ↓ d:[D:{“logType”:”E”,”logID”:10,”V”:[10]}

    21:15:11 ↑ d{r:1}
    21:15:11 ↓ d:[]

    21:15:26 ↑ h{u:-1,v:1}
    21:15:26 ↓ h:[{“i”:-1,”t”:0,”c”:1,”b”:0,”f”:0,”h”:1,”d”:0,”p”:13,”x”:1},{“i”:-1,”t”:0,”c”:1,”b”:0,”f”:0,”h”:1,”d”:0,”p”:14,”x”:1},{“i”:-1,”t”:0,”c”:1,”b”:0,”f”:0,”h”:1,”d”:0,”p”:2,”x”:1},{“i”:-1,”t”:0,”c”:1,”b”:0,”f”:0,”h”:5,”d”:0,”p”:-1}]


  88. It’s weird. The sensors are detected but not reported(listed).

    We might need to check the following function in DallasTemperature.cpp.
    bool DallasTemperature::initConnection(const uint8_t* deviceAddress).

    Try put some Serial.printf() at every returns. I suspect that the connection attempt failed.
    I found this information:

    It seems that some sensors are not supported by BrewPi, and hence BrewPiLess.
    Run the sketch to check if the sensor is not supported.

  89. Hi Vito,

    Effectively, if I run this script I give me that my sensors a in parasitic mode 🙁

    I’ve look in my sensors stock and I finally found ONE which is working. It was from a very old batch, all my new sensors and official directly buyer from Maxim are not working.

    I think it would be a problem in futur, I’m not sure that we ca find old sensor indefinitely …

    Thank you for your help


  90. Sadly. Elco, the creator of BrewPi, found that parasite power is not stable.
    Although there is an option for it, you might run into trouble with the sensors eventually.

  91. Hi Vito

    Great work! I’m just starting to build a BrewPiLess and iSpindel. I have two problems (and two solutions!)

    When entering AP mode after 3 minutes I get the error:

    “Error setting mDNS responder”

    Also the D1 mini (v3.0.0) did not enter the initial setup AP mode after flashing until I removed the USB and reconnected. I made the following changes in WiFiSetup.cpp that resolve these issues –

    void WiFiSetupClass::enterApMode(void)

    WiFi.mode(WIFI_OFF); // fixes D1 mini not entering initial AP mode without hard reset
    DBG_PRINTF(“AP Mode\n”);
    WiFi.mode(WIFI_AP); // fixes Error setting mDNS responder
    dnsServer.reset(new DNSServer());
    dnsServer->start(DNS_PORT, “*”, WiFi.softAPIP());

    I hope it helps


  92. Hi Vito!

    First of all, congratulations by the project! It’s amazing!!!

    Now i have one question, is it possible to control brewpiless over the internet? for example, i travel a lot and my wife doesn’t know how to change the temperature, for me it would be very useful if I could access the brewpiless from anywhere.


  93. Ok, I think i understand. But are you suggesting me to install a VPN on nodemcu or install a VPN on a machine here at home and access it with VPN?

  94. It’s not possible to install a VPN on nodemcu.
    So far, VPN is the best way to do that.
    Anything that can do similar thing cannot be more secured than VPN.

    If there is a IOT service that supports scripts to response data update, maybe I can come up a solution.

  95. Hi Vito,

    I’m facing to a new problem.

    The actual code is sending 3V to the relay when no operation needing and go to 0 when heat or cool is required.
    My relays are working in the other way, they are open with no current and closed with 3V.

    Is there a way to inverse that on the code ? I’ve tried

    But this is not the solution.

    Did you have another idea ?

    Thank you in advance.


  96. Oh, I’ve just notice there is a “inverted” / “not inverted” switch in the config tab …

    It’s OK now !

    Sorry !

Leave a Reply

Your email address will not be published. Required fields are marked *