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

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.
How do you setup the wifi on the ESP 8266 after you flash it with Fermentrack?
Power on the esp, press reset button and it should create an ad-hoc WiFi network. You can connect to this network from your phone or PC, and add in details of your WiFi network. You can then restart the esp and it will connect
 
Can anyone answer this for me?

I finally received all my components and break out board https://pcbs.io/share/46AR1 I ordered the wrong phone jack connector to attach to the 6 hole place. Can I just solder 3 wires to certain holes to get + - and the one wire signal? if so, which ones do I solder to?
... Row 1 LMR left, middle, right
-... Row 2 LMR

The holes are lined up like the periods I posted above. It appear from the traces on the board, that Row 1 middle goes to D6 for the one wire signal. Row 2 Middle traces back to ground, Which one is power for the temp sensors and what are the other 3 for?
It appears that no traces go to R1 Left and Row2 right.

What do I do with the Jumper, does it need to be connected or is it optional?
 
Can anyone answer this for me?
The pinouts are silkscreened on the back of the board. I would wait and get the proper rj jack. If you don't want to wait I would solder header pins and use Dupont wires for the connection to the Dallas ds18b20. It's down and dirty way to do it.
 
BigDaddyale,

I appreciate your suggestion, nut the pinout that is silk screened does not list the pins for the RJ jack. If I did have the RJ jack, I still need to know what all 6 pins hook up to. I am using individual headphone jacks for each temp sensor ds18b20 I am using. Thorrack where are you?


The pinouts are silkscreened on the back of the board. I would wait and get the proper rj jack. If you don't want to wait I would solder header pins and use Dupont wires for the connection to the Dallas ds18b20. It's down and dirty way to do it.
 
Capture100.JPG
 
Is there a way to modify BrewPiSetting.maxDegree that is inside the gziped HTM?
When doing lactic fermentation temps above 30 are used some times.
 
Not sure about the gziped htm but from the home screen if you select the device you want to control from the top menu, then after that’s loaded click the device name and select configure control constants you can amend the max temp there. Mine is max 35c and min -8c which seems to work
 
Over the course of the past couple of weeks I've been working on a project to convert the BrewPi Arduino firmware to work on an ESP8266 device. This project replaces the Arduino with an ESP8266 -- which means that you can add WiFi capability to a BrewPi without needing any additional hardware. Although it isn't yet 100% complete, I'd love to get feedback from anyone who is interested in trying it out and telling me about their experience.

Features Currently Implemented:
  • WiFi Support
  • Serial Support
  • Temperature Sensing
  • Relay-based Temperature Control
  • I2C LCD Support (Currently address 0x27 only)

Features Currently Missing:
  • Rotary Encoder Support
  • Buzzer Support

In order to both implement WiFi support and support the custom pinout of the ESP8266 device, I had to create a custom version of the brewpi script. I also created a custom version of the brewpi-tools installation tool as well. Both of these are on GitHub and are linked below.

Hardware:
There are a number of ESP8266-based boards out there - I took a look at a few of them, but highly recommend the WeMos D1 Mini if you are interested in picking up a board specifically for this project. In addition to the ESP8266 board you will need the standard hardware for a BrewPi build (Raspberry Pi, SD card, power supply) and a USB cable to connect your ESP8266 board to your Raspberry Pi. This project was designed to integrate with a 2-channel relay board and DS18B20-based OneWire temperature sensors. You will also need a separate power supply for your ESP8266 board if you don't want to leave it powered by the Raspberry Pi itself.

Board Pinout:
  • D1 - I2C SCL
  • D2 - I2C SDA
  • D3 - Cool
  • D4 - Heat
  • D5 - Door Sensor
  • D6 - OneWire Data

Installation Instructions:
Full installation instructions are available here. If you prefer, I've also uploaded videos to YouTube showing how to , , and . If you've already used BrewPi then the process should feel very familiar - the only major difference is a small configuration change to brewpi-script and the fact that you are flashing the firmware through the command line rather than through the BrewPi interface.


As of right now the firmware appears to control temperature as I would expect -- for me, in my environment. Please test the firmware in your environment prior to hooking it up to heating/cooling equipment.

If you have any questions about this firmware or run into any issues, please post here or PM me and let me know. Hopefully you find this project useful and it helps you to make better beer!


Links:
brewpi-esp8266 - GitHub repo for the firmware
brewpi-esp8266/docs - The docs
brewpi-tools - The custom BrewPi tools repo
brewpi-script - The custom BrewPi script repo
YouTube - Playlist of installation instruction videos

Thanks
In working on this project I'd like to first thank ame and his wonderful Fuscus project as it was in working with him that the idea for this arose. I'd additionally like to thank Elco and the other people on the BrewPi team as - obviously - without BrewPi this project wouldn't exist.

Cheers,
Thorrak
:mug:

Thorrak,

I'm currently putting together a Brewpiless using a Wemos D1 Mini following Pocketmon's build where you replace the Brewpi and the Arduino with the Wemos. I'm running Fermentrack on a Rasberry Pi that I'll link the Wemos to track fermentation. I ordered your PCB board for the Brewpiless and am having trouble trying to discern what some of the pads are for, like the R1, R2, R3, R4, R5, Q1, Q2, and C1. I couldn't find a walk through anywhere of exactly how to wire it - I have the surface mount RJ45 version. Could you give me some tips on how to go about it?

Thanks.
 
Last edited by a moderator:
I numbered the pins different in this picture but they are labeled on the board

https://www.homebrewtalk.com/forum/...no-arduino-needed.586476/page-21#post-7953480
Bigdaddyale maybe you can help me:

I'm currently putting together a Brewpiless using a Wemos D1 Mini following Pocketmon's build where you replace the Brewpi and the Arduino with the Wemos. I'm running Fermentrack on a Rasberry Pi that I'll link the Wemos to track fermentation. I ordered Torrak's PCB board for the Brewpiless and am having trouble trying to discern what some of the pads are for, like the R1, R2, R3, R4, R5, Q1, Q2, and C1. I couldn't find a walk through anywhere of exactly how to wire it - I have the surface mount RJ45 version. Could you give me some tips on how to go about it?
 
Capture200.JPG
Bigdaddyale maybe you can help me:

I'm currently putting together a Brewpiless using a Wemos D1 Mini following Pocketmon's build where you replace the Brewpi and the Arduino with the Wemos. I'm running Fermentrack on a Rasberry Pi that I'll link the Wemos to track fermentation. I ordered Torrak's PCB board for the Brewpiless and am having trouble trying to discern what some of the pads are for, like the R1, R2, R3, R4, R5, Q1, Q2, and C1. I couldn't find a walk through anywhere of exactly how to wire it - I have the surface mount RJ45 version. Could you give me some tips on how to go about it?
https://pcbs.io/share/8DDk0
BOM
Bill of Materials:
1x 2-Pin 5mm Pitch Screw Terminal
1x 2-Pin Pin Header
2x 4-Pin Pin Header
5x 10k 0805 Resistor
1x 100uF 1206 Capacitor (Optional)
2x BSS138 MOSFET
1x RJ-11 Jack (RJ-11 variant only)
1x RJ-45 Jack (RJ-45 variant only)
1x WeMos D1 Mini ESP8266 board
1x LCD 20x4 I2C LCD Screen
 
All of the resistors R1,R2,R3,R4,R5 are all the same. 10k Resistor 805 SMD( the number 805 represents the physical size of the Surface Mount Device)
Q1,and Q2 are both BSS138 MOSFET 805 SMD
C1 is 100uF 1206 Capacitor (Optional)1206 SMD ( different size than 805)
JP1 is for the buzzer. (I don't use it) and uses a 2 pin header
01,02 is for power in and uses a 2-Pin 5mm Pitch Screw Terminal
LCD and Relay uses four pin header
This post and the one below it explains the pin out for the RJ-45 jack.https://www.homebrewtalk.com/forum/...no-arduino-needed.586476/page-54#post-8446806
 
Last edited:
All of the resistors R1,R2,R3,R4,R5 are all the same. 10k Resistor 805 SMD( the number 805 represents the physical size of the component)
Q1,and Q2 are both BSS138 MOSFET 805 SMD
C1 is 100uF 1206 Capacitor (Optional)1206 SMD ( different size than 805)
JP1 is for the buzzer. (I don't use it) and uses a 2 pin header
01,02 is for power in and uses a 2-Pin 5mm Pitch Screw Terminal
LCD and Relay uses four pin header
This post and the one below it explains the pin out for the RJ-45 jack.https://www.homebrewtalk.com/forum/...no-arduino-needed.586476/page-54#post-8446806
Ah ok that makes sense now, I have never used surface mount resistors before, I ordered them on Aliexpress a while back and still haven't got them yet. I was trying to figure out how to mount a normal resistor on there, then remembered that I have the 0805 surface mount ones coming. So I'm at a stand still until I get those in then since I need to solder those on before soldering the Wemos in. Appreciate the help.
 
Ah ok that makes sense now, I have never used surface mount resistors before, I ordered them on Aliexpress a while back and still haven't got them yet. I was trying to figure out how to mount a normal resistor on there, then remembered that I have the 0805 surface mount ones coming. So I'm at a stand still until I get those in then since I need to solder those on before soldering the Wemos in. Appreciate the help.
I don't hard solder the D1Wemos in I use both male pin headers on the D1 and female pin headers on the board makes it easier to swap out a D1 if you brick it
 
Sorry for the silence the past few weeks from my end. In planning for the trip to GABF this year, we decided to extend things on both sides resulting in me being out of town for the past few weeks. Combine that with the fact that my job tends to have much longer hours during the first 8 business days of each month, and, well... :) Anyways, a few responses to some stuff that came up over the past few weeks:



Yes, thanks for the suggestions! I've added the following issue to GitHub to track the above, and will try to get them implemented shortly: https://github.com/thorrak/fermentrack/issues/306

With regards to your question as to why the controller didn't work until flashed through Windows, I can only imagine it has something to do with the controller being zeroed out (or otherwise more thoroughly "reset") by the Windows flasher you used in comparison to the one used by Fermentrack. I'll have to dig through the docs for esptool to see if maybe there's a flag or something I can add.




Nice - Hopefully it works for you! I thought I had the Eagle .brd uploaded for the RJ-11 Sensor Breakout Board - if I didn't, I'd be happy to provide it (assuming I can find it). That said - I would strongly recommend using the RJ-45 boards (both the PCB & breakout board) as it's a lot more forgiving in terms of cable selection. Apparently there's a mix of both straight-through & crossover RJ-11 cables out there, and only one kind works with the board.

Sorry, lost track of this conversation. The reason I'm enquiring about the Eagle .brd files is I went ahead and ordered the boards through PCBS.io but after 3 months they sent out the wrong boards and it was a mission to try resolve the issue. In the end, they refunded my money. I'm not to sure whether to try submit again!? Do you have contacts at PCBS.io? That's why I was after the .brd files. You have the main board available but not the breakout/sensor board. Thanks for the recommendation about using RJ-45 instead of RJ-11
 
Sorry, lost track of this conversation. The reason I'm enquiring about the Eagle .brd files is I went ahead and ordered the boards through PCBS.io but after 3 months they sent out the wrong boards and it was a mission to try resolve the issue. In the end, they refunded my money. I'm not to sure whether to try submit again!? Do you have contacts at PCBS.io? That's why I was after the .brd files. You have the main board available but not the breakout/sensor board. Thanks for the recommendation about using RJ-45 instead of RJ-11

Apologies for the trouble you had with pcbs.io -- The only issue I've had in the past with them is orders being delayed, but the shipping timelines were still in line with what I used to get from OSHPark so I haven't paid it much mind.

I've added what I think are the .brd files for the RJ-45 boards to GitHub. It would be worth taking a glance at them in comparison to the pcbs.io versions before ordering, as it's possible that the version on my desktop isn't the latest. Eagle does weird things with filepaths which makes me worried that these were saved into the wrong folder or something.

Files are here: https://github.com/thorrak/brewpi-esp8266/tree/master/hardware
 
Can you have 3 temp sensors on the Onewire ? Everytime I put a 3rd sensor on the Fermentrack, both temperature readings go away.
 
I'm not sure what the logical or physical limit of one wire networking is, but I run a temperature logger I wrote years ago with five ds18b20 running on a single channel...

Cheers!
 
Can you have 3 temp sensors on the Onewire ? Everytime I put a 3rd sensor on the Fermentrack, both temperature readings go away.

That sounds like you have a bad temperature sensor. The controllers are designed to have at least 3 sensors on the same OneWire bus (Room/Fridge/Temp) which tends to work pretty well.
 
Trying to get my fermentrack connected to TILT bluetooth. I followed directions but am getting this error.

arm-linux-gnueabihf-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector-strong -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -fPIC -I./port3 -I/home/fermentrack/venv/include -I/usr/include/python3.4m -c bluez/btmodule.c -o build/temp.linux-armv7l-3.4/bluez/btmodule.o
In file included from bluez/btmodule.c:20:0:
bluez/btmodule.h:5:33: fatal error: bluetooth/bluetooth.h: No such file or directory
#include <bluetooth/bluetooth.h>
^
compilation terminated.
error: command 'arm-linux-gnueabihf-gcc' failed with exit status 1
----------------------------------------
Command "/home/fermentrack/venv/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-22zgpn8f/pybluez/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-faxnogjz/install-record.txt --single-version-externally-managed --compile --install-headers /home/fermentrack/venv/include/site/python3.4/pybluez" failed with error code 1 in /tmp/pip-install-22zgpn8f/pybluez/

Ran update + upgrade
all dependencies appear up to date
Running ESP controller to new Pi3 (Raspbian Jessie)

***Resolved error with these steps***
sudo apt-get install libbluetooth-dev
sudo apt-get install python-dev
sudo pip install --upgrade PyBluez

However, after reboot I still get bluetooth error and can't connect my TILT. Thoughts?
 
Last edited:
I just ended up restarting everything on a Raspbian Stretch setup and it works great!

**Edit**
Not working great. I'm not getting updates on the TILT and signal strength is reading 0. I did a
Code:
sudo hcitool lescan
and it came up with lots of results but none said "TILT".

TILT is reading great on my phone which is 5x further away than my pi3.

UPDATE:
Looks like it's working but needs calibration. I'll work on that.
 
Last edited:
Hey @Thorrak

Any way to get the last values to stay in the legend box to the right of the graph after a refresh without moving the mouse?

Basically I've got a display that cycles between my taplist and the Fermentrack graph. However, when it refreshes, the graph updates but the values disappear unless I move the mouse. It may be a long shot and not super necessary but if it was relatively easy I'd like to do that.
 
@Thorrak

I'm trying to install Fermentrack on a Raspberry Pi 3 B, Stretch Lite. The install error's out, unable to install:

libtiff5_4.0.8-2+deb9u2_armhf.deb

E: Failed to fetch http://raspbian.raspberrypi.org/raspbian/pool/main/t/tiff/libtiff5_4.0.8-2+deb9u2_armhf.deb 404 Not Found [IP: 93.93.128.193 80]

In the repository I'm only seeing deb9u4, not deb9u2. Not sure what to do... Thanks!

I switched mirrors and was able to apt-get update / apt-upgrade and it resolved the problem. It led to an issue with PIP during Fermentrack install, but I switched back to the default mirror at that point and it completed successfully. Sweet.
 
Hey @Thorrak

Any way to get the last values to stay in the legend box to the right of the graph after a refresh without moving the mouse?

Basically I've got a display that cycles between my taplist and the Fermentrack graph. However, when it refreshes, the graph updates but the values disappear unless I move the mouse. It may be a long shot and not super necessary but if it was relatively easy I'd like to do that.

Sadly, not that I know of. The values that populate the "dashboard" (the boxes up top) are always available, and could be integrated into another app if you were so inclined, as they're exposed via a hidden "API". For the graph legend though -- that's dygraphs, which is not my favorite library to code with.

It's not as clean as a 3d printed enclosure but it's definitely an upgrade.

That's awesome! Which project box did you use? How are you connecting the temperature sensors?
 
Sadly, not that I know of. The values that populate the "dashboard" (the boxes up top) are always available, and could be integrated into another app if you were so inclined, as they're exposed via a hidden "API". For the graph legend though -- that's dygraphs, which is not my favorite library to code with.



That's awesome! Which project box did you use? How are you connecting the temperature sensors?

Project box was found on Amazon here.
I just wired the temp sensors directly to a terminal. The pass-through is a cable gland - one for the grounded power and the other for 3 temp sensors and the usb cable to power the esp board.
 
I think I know the answer to my question but that's never stopped me before...

I've got my fridge working nicely on fermentrack. I have built an iSpindel which I connected up to fermentrack a while back. I'm trying to use it all for the first time today and I'm not getting any updates on the iSpindel. Is there a way to check the update frequency from fermentrack. I think I've set it hours or something but short of pulling the iSpindel out of the beer I'm not sure there's much I can do?
 
I think I know the answer to my question but that's never stopped me before...

I've got my fridge working nicely on fermentrack. I have built an iSpindel which I connected up to fermentrack a while back. I'm trying to use it all for the first time today and I'm not getting any updates on the iSpindel. Is there a way to check the update frequency from fermentrack. I think I've set it hours or something but short of pulling the iSpindel out of the beer I'm not sure there's much I can do?

There is a way to check if the ispindel is sending data to Fermentrack, I’ll need to check my emails from GitHub to refresh my memory though so will try and post later it’s in one of the st readouts I think.

Pretty sure adjust the frequency that iSpindel sends though has to be done by resetting it manually.

Could be wrong on both counts though!
 
Are there any plans to add a fridge profile mode? I've used Fermentrack/brewpi-esp for a couple fermentations now using the fridge temp probe to control my glycol solenoid and a heater using fridge constant, and it's worked good, but I have to manually run my lager profiles. Would be great if I could control my glycol solenoid using the beer temp, or create a profile using the fridge temp.
 
Back
Top