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.
Would there be any interest in a VirtualBox image that had Ubuntu LTS + BrewPi installed? You wouldn't be able to run anything over serial, but hey - added bonus from the ESP...

Yes, that sounds great :)
 
I'll fresh install my RPI this afternoon and give it another shot. If there are any logs I can grab from my RPI let me know and I'll post with my results

I just got a chance to test after setting everything up last night - Plan A didn't work, but it gave me a chance to test plan B which did.

Bonus from plan B - It's actually closer to the "right" way of doing things (having the ESP8266 announce a "brewpi" service when setting up mDNS).

In any case - give me a few hours. Getting the necessary changes made.
 
Alrighty - Update time!

brewpi-tools
  • Updated updater.py to support other changes below
  • Removed firmware flash option (didn't work with ESP8266)
  • Corrected default brewpi-www directory

brewpi-firmware
  • Added mDNS service registration (creates 'brewpi' service)
  • Added explicit 'revision' number (0.7) to differentiate from base 'version' (0.2.4)
  • Updated firmware to v0.7

brewpi-script
  • Added mDNS service scan to tcpSerial
  • Converted from individual requirements lists to 'requirements.txt'
  • Updated upgrade scripts
  • Added 'zeroconf' requirement


To update brewpi-tools and brewpi-script, you can use the updater.py script within your existing brewpi-tools installation.

You will need to download & reinstall the v0.7 firmware manually. Installing brewpi-tools and brewpi-script will have no impact on the issues reported by @aknetman and @Mikmonken without updating the firmware, and vice versa.

This update should resolve the "Bad file descriptor" issue, but likely will NOT resolve the potential issue with brewpi-script not continuing to update the LCD following a settings change. I'm working on this one.
 
Alrighty - Update time!

brewpi-tools
  • Updated updater.py to support other changes below
  • Removed firmware flash option (didn't work with ESP8266)
  • Corrected default brewpi-www directory

brewpi-firmware
  • Added mDNS service registration (creates 'brewpi' service)
  • Added explicit 'revision' number (0.7) to differentiate from base 'version' (0.2.4)
  • Updated firmware to v0.7

brewpi-script
  • Added mDNS service scan to tcpSerial
  • Converted from individual requirements lists to 'requirements.txt'
  • Updated upgrade scripts
  • Added 'zeroconf' requirement


To update brewpi-tools and brewpi-script, you can use the updater.py script within your existing brewpi-tools installation.

You will need to download & reinstall the v0.7 firmware manually. Installing brewpi-tools and brewpi-script will have no impact on the issues reported by @aknetman and @Mikmonken without updating the firmware, and vice versa.

This update should resolve the "Bad file descriptor" issue, but likely will NOT resolve the potential issue with brewpi-script not continuing to update the LCD following a settings change. I'm working on this one.


I must confess I don't exactly know what any of the above does but can confirm your last paragraph is correct. Install and upgrade.py works well though and confirms I'm on the right distro
 
I must confess I don't exactly know what any of the above does but can confirm your last paragraph is correct. Install and upgrade.py works well though and confirms I'm on the right distro

All good. All that matters is that it works.


This update should resolve the "Bad file descriptor" issue, but likely will NOT resolve the potential issue with brewpi-script not continuing to update the LCD following a settings change.

Unfortunately, as I feared, it doesn't work 100% and didn't solve the second issue. You won't lose the ability to find the controller now, but brewpi-script is still not processing things properly following a temperature update.

At least this fix (once it's done) shouldn't require a reflash!
 
Bought my self a set of 4 PCB's and some of the stuff I didn't already have.
Will try it at home first, and after that we have some 15HL tanks that I'm
thinking of hooking up. Multi fermentor support is a killer-feature. Looking
forward to test. I been on and off writing code for the last 15 years.
I hope that I can help out making it awesome ;)
 
playing around with this again doing some testing i guess.

First off, there is a difference in behaviour between serial connection and wifi connection in terms of the web gui.

When you update via wifi, I have to reboot the RPI to resync (?) the web gui.

with serial it actually seems to work fine the web gui refreshes and updates as expected.

but i'm now wondering whether there is a bigger issues with Beer/Fridge/profile modes?

If i go into advance settings and click update from controller or update from script, i'd expect the cells to populate with target temps below but get nothing?

as an example

With my live version on the Brewpi (which uses an arduino)
aktrAG9lxdAN-90xe5-Nkp-Gi_UreZERXbPD_46SL-4


you can see there is a target temp in the LCD at the top, which is reflected in the advanced settings.

with my ESbrewPi you can see from the attached pic (hopefully)
LAFTrq6lZMEOY-Mbq45W9vNcWkW0ABSUnmAZO3iaysc


that despite beer constant being 20c (regardless of what mode it is in), no target temps are displayed, and again nothing is pulled using the advance script, although depending on what mode your in, it will repopulate with the correct mode.

Now i'm not sure whether this might be because the relay isn't actually attached to a fridge, but i'm pretty certain when i tested the arduino version, i could get the relay to switch on and off by holding the beer probe.

I would expect when i set my Brewpi to beer constant 20c that it would instantly cause the heating side of the relay to become active (even if it wasn't connected to a heater, but it doesn't seem too. similarly when i drop to 0c cooling doesn't come on. So i'm not actually sure whether the system is working properly at all? yet i can manually invert and non invert them.

As an update to this ------

I have noticed that if you select reload defaults beer constant does appear to work as expected.

  1. which means my set up process needs to be, attach all probes relays etc.
  2. go into advanced settings - scroll to the bottom of control constants and select ->Reset controller to factory defaults
  3. Next i install all my devices through Device configuration.
  4. go back to advanced settings and control settings -> reload defaults
  5. reboot RPI
  6. and then seemingly i can select either beer constant which will have a target temp displayed in the LCD.
  7. reboot RPI so web GUI loads correctly

if I want to repeat from point 4 onwards.

On a separate but related note.

With the ESP resetting after each instruction is received, would this cause additional strain on the fridge compressor? i.e. if your cold crashing and profiled the beer to drop from over 36 hours, it's likely to send a number of instructions to the ESP, which in turn resets the ESP and would i assume cuts power to the relay causing the fridge to momentarily power down before powering back on again?

Or am i just being an idiot?

Attachments below.
first pic, what i'd expect to see in advanced settings.
second pic, what i initially see when i set up the ESP devices (not expected)
third pic, result of reloading defaults, not exactly as i'd been expecting
fourth pic, beer constant mode having been selected after reloading defaults

Screen Shot 2016-12-15 at 11.06.45.png


Screen Shot 2016-12-15 at 11.07.12.png


Screen Shot 2016-12-15 at 11.07.50.png


Screen Shot 2016-12-15 at 11.18.55.png
 
Last edited:
Appreciate that this probably now isn't the forum to be debugging, but I will for the time being.

gone back to a serial connection again to try and track the logs and errors the link to my previous post.

Erase Logs

Code:
Dec 15 2016 15:00:04 Fresh start! Log files erased.

Restore Defaults

Code:
Dec 15 2016 15:01:15 Controller debug message: INFO MESSAGE 14: Default settings loaded.

Set to beer constant mode at 15c

Code:
Dec 15 2016 15:02:10 Notification: Beer temperature set to 15.0 degrees in web interface
Dec 15 2016 15:02:11 Cannot process line from controller: 
Dec 15 2016 15:02:11 Controller debug message: INFO MESSAGE 12: Received new setting: mode = b
Dec 15 2016 15:02:11 Cannot process line from controller: Exception (3):
Dec 15 2016 15:02:11 Cannot process line from controller: epc1=0x4000bf64 epc2=0x00000000 epc3=0x00000000 excvaddr=0x40239dd7 depc=0x00000000
Dec 15 2016 15:02:11 Cannot process line from controller: 
Dec 15 2016 15:02:11 Cannot process line from controller: ctx: cont 
Dec 15 2016 15:02:11 Cannot process line from controller: sp: 3ffef940 end: 3ffefc30 offset: 01a0
Dec 15 2016 15:02:11 Cannot process line from controller: 
Dec 15 2016 15:02:11 Cannot process line from controller: >>>stack>>>
Dec 15 2016 15:02:11 Cannot process line from controller: 3ffefae0: 00000000 3ffefb00 3ffefb20 40201681 
Dec 15 2016 15:02:11 Cannot process line from controller: 3ffefaf0: 40239dd7 3ffefb8e 3ffefb20 402016d2 
Dec 15 2016 15:02:11 Cannot process line from controller: 3ffefb00: 3ffe84a8 00000000 3ffefb20 4020bd80 
Dec 15 2016 15:02:11 Cannot process line from controller: 3ffefb10: 3ffefb70 3ffefb8e 3ffefb70 4020bdda 
Dec 15 2016 15:02:11 Cannot process line from controller: 3ffefb20: 3fff1bf4 0000000f 00000000 3ffeec08 
Dec 15 2016 15:02:11 Cannot process line from controller: 3ffefb30: 3ffefb70 3ffefb8e 40239f58 4020b3d8 
Dec 15 2016 15:02:11 Cannot process line from controller: 3ffefb40: 40239f52 00000000 4020bdb4 4020b550 
Dec 15 2016 15:02:11 Cannot process line from controller: 3ffefb50: ffffffff 4020b390 00000009 3ffeec08 
Dec 15 2016 15:02:11 Cannot process line from controller: 3ffefb60: 00000000 4020b390 00000001 4020bb10 
Dec 15 2016 15:02:11 Cannot process line from controller: 3ffefb70: 3fff0062 00000001 3ffeec10 00000001 
Dec 15 2016 15:02:11 Cannot process line from controller: 3ffefb80: 3fffdad0 3ffeec08 402018f0 6f6dec10 
Dec 15 2016 15:02:11 Cannot process line from controller: 3ffefb90: 3f006564 3ffee9a4 00002710 40201968 
Dec 15 2016 15:02:11 Cannot process line from controller: 3ffefba0: 3fffdad0 00000008 3ffeeb54 40201369 
Dec 15 2016 15:02:11 Cannot process line from controller: 3ffefbb0: 3fffdad0 00000000 00000061 4020bb36 
Dec 15 2016 15:02:11 Cannot process line from controller: 3ffefbc0: 0066664f 00000001 00000061 4020bcf8 
Dec 15 2016 15:02:11 Cannot process line from controller: 3ffefbd0: 00000000 00000001 3ffeeab7 4020a4ba 
Dec 15 2016 15:02:16 Cannot process line from controller: 3ffefbe0: 31683831 35316d32 3ffee9a4 4020a4da 
Dec 15 2016 15:02:16 Cannot process line from controller: 3ffefbf0: 3fffdad0 00000000 3ffeeb28 4020d427 
Dec 15 2016 15:02:16 Cannot process line from controller: 3ffefc00: 00000000 00000000 3ffeec00 4020d440 
Dec 15 2016 15:02:16 Cannot process line from controller: 3ffefc10: 3fffdad0 00000000 3ffeec00 4020193c 
Dec 15 2016 15:02:16 Cannot process line from controller: 3ffefc20: feefeffe feefeffe 3ffeec10 4020361c 
Dec 15 2016 15:02:16 Cannot process line from controller: << Dec 15 2016 15:02:16 Cannot process line from controller: 
Dec 15 2016 15:02:16 Cannot process line from controller: J!!H18VKSkHX!HN=!HN=JM!
T:{"BeerTemp": 16.63,"BeerSet": 20.00,"BeerAnn":null,"FridgeTemp": 18.38,"FridgeSet": 30.00,"FridgeAnn":null,"State":6}

Set Fridge constant to 5c

Code:
Dec 15 2016 15:03:57 Fresh start! Log files erased.
Dec 15 2016 15:04:08 Notification: Fridge temperature set to 5.0 degrees in web interface
Dec 15 2016 15:04:09 Cannot process line from controller: 
Dec 15 2016 15:04:09 Controller debug message: INFO MESSAGE 12: Received new setting: mode = f
Dec 15 2016 15:04:09 Cannot process line from controller: Exception (3):
Dec 15 2016 15:04:09 Cannot process line from controller: epc1=0x4000bf64 epc2=0x00000000 epc3=0x00000000 excvaddr=0x40239dd7 depc=0x00000000
Dec 15 2016 15:04:09 Cannot process line from controller: 
Dec 15 2016 15:04:09 Cannot process line from controller: ctx: cont 
Dec 15 2016 15:04:09 Cannot process line from controller: sp: 3ffef940 end: 3ffefc30 offset: 01a0
Dec 15 2016 15:04:09 Cannot process line from controller: 
Dec 15 2016 15:04:09 Cannot process line from controller: >>>stack>>>
Dec 15 2016 15:04:09 Cannot process line from controller: 3ffefae0: 00000000 3ffefb00 3ffefb20 40201681 
Dec 15 2016 15:04:09 Cannot process line from controller: 3ffefaf0: 40239dd7 3ffefb8e 3ffefb20 402016d2 
Dec 15 2016 15:04:09 Cannot process line from controller: 3ffefb00: 3ffe84a8 00000000 3ffefb20 4020bd80 
Dec 15 2016 15:04:09 Cannot process line from controller: 3ffefb10: 3ffefb70 3ffefb8e 3ffefb70 4020bdda 
Dec 15 2016 15:04:09 Cannot process line from controller: 3ffefb20: 3fff1b4c 0000000f 00000000 3ffeec08 
Dec 15 2016 15:04:09 Cannot process line from controller: 3ffefb30: 3ffefb70 3ffefb8e 40239f58 4020b3d8 
Dec 15 2016 15:04:09 Cannot process line from controller: 3ffefb40: 40239f52 00000000 4020bdb4 4020b550 
Dec 15 2016 15:04:09 Cannot process line from controller: 3ffefb50: ffffffff 4020b390 00000009 3ffeec08 
Dec 15 2016 15:04:09 Cannot process line from controller: 3ffefb60: 00000000 4020b390 00000001 4020bb10 
Dec 15 2016 15:04:09 Cannot process line from controller: 3ffefb70: 3fff0066 00000001 3ffeec10 00000006 
Dec 15 2016 15:04:09 Cannot process line from controller: 3ffefb80: 3fffdad0 3ffeec08 402018f0 6f6dec10 
Dec 15 2016 15:04:09 Cannot process line from controller: 3ffefb90: 3f006564 3ffee9a4 00002710 40201968 
Dec 15 2016 15:04:09 Cannot process line from controller: 3ffefba0: 3fffdad0 00000008 3ffeeb54 40201369 
Dec 15 2016 15:04:09 Cannot process line from controller: 3ffefbb0: 3fffdad0 00000000 00000061 4020bb36 
Dec 15 2016 15:04:09 Cannot process line from controller: 3ffefbc0: 736e6f43 00002e74 00000061 4020bcf8 
Dec 15 2016 15:04:09 Cannot process line from controller: 3ffefbd0: 00000000 00000006 3ffeeab7 4020a4ba 
Dec 15 2016 15:04:09 Cannot process line from controller: 3ffefbe0: 38306830 0033306d 3ffee9a4 4020a4da 
Dec 15 2016 15:04:14 Cannot process line from controller: 3ffefbf0: 3fffdad0 00000000 3ffeeb28 4020d427 
Dec 15 2016 15:04:14 Cannot process line from controller: 3ffefc00: 00000000 00000000 3ffeec00 4020d440 
Dec 15 2016 15:04:14 Cannot process line from controller: 3ffefc10: 3fffdad0 00000000 3ffeec00 4020193c 
Dec 15 2016 15:04:14 Cannot process line from controller: 3ffefc20: feefeffe feefeffe 3ffeec10 4020361c 
Dec 15 2016 15:04:14 Cannot process line from controller: << Dec 15 2016 15:04:14 Cannot process line from controller: !
Dec 15 2016 15:04:14 Cannot process line from controller: J!!H
Dec 15 2016 15:04:14 Cannot process line from controller: 18K!kHX!H=!H=JM!
T:{"BeerTemp": 16.56,"BeerSet":null,"BeerAnn":null,"FridgeTemp": 18.38,"FridgeSet": 30.00,"FridgeAnn":null,"State":6}

Try to adjust Fridge constant from advanced settings to 5c

Code:
Dec 15 2016 15:06:00 Cannot process line from controller: 
Dec 15 2016 15:06:00 Controller debug message: INFO MESSAGE 12: Received new setting: fridgeSet = 5
Dec 15 2016 15:06:00 Cannot process line from controller: Exception (3):
Dec 15 2016 15:06:00 Cannot process line from controller: epc1=0x4000bf64 epc2=0x00000000 epc3=0x00000000 excvaddr=0x40239dc1 depc=0x00000000
Dec 15 2016 15:06:00 Cannot process line from controller: 
Dec 15 2016 15:06:00 Cannot process line from controller: ctx: cont 
Dec 15 2016 15:06:00 Cannot process line from controller: sp: 3ffef940 end: 3ffefc30 offset: 01a0
Dec 15 2016 15:06:00 Cannot process line from controller: 
Dec 15 2016 15:06:00 Cannot process line from controller: >>>stack>>>
Dec 15 2016 15:06:00 Cannot process line from controller: 3ffefae0: 3ffefb20 3ffefb00 3ffefb20 40201681 
Dec 15 2016 15:06:00 Cannot process line from controller: 3ffefaf0: 40239dc1 ffffaa00 3ffefb20 402016d2 
Dec 15 2016 15:06:00 Cannot process line from controller: 3ffefb00: 3ffe84a8 3ffefb8e 3ffefb20 4020bd80 
Dec 15 2016 15:06:00 Cannot process line from controller: 3ffefb10: 3ffefb70 ffffaa00 3ffefb70 4020bea6 
Dec 15 2016 15:06:00 Cannot process line from controller: 3ffefb20: 3fff1b4c 0000000f 00000000 3ffeec08 
Dec 15 2016 15:06:00 Cannot process line from controller: 3ffefb30: 3ffefb70 3ffefb8e 40239f70 4020b3d8 
Dec 15 2016 15:06:00 Cannot process line from controller: 3ffefb40: 40239f40 00000000 4020be74 4020b550 
Dec 15 2016 15:06:00 Cannot process line from controller: 3ffefb50: 3ffee9a4 4020b390 00000009 3ffeec08 
Dec 15 2016 15:06:00 Cannot process line from controller: 3ffefb60: 00000000 4020b390 00000000 4020bb10 
Dec 15 2016 15:06:00 Cannot process line from controller: 3ffefb70: 3fff0035 00000001 3ffeec10 00000006 
Dec 15 2016 15:06:00 Cannot process line from controller: 3ffefb80: 3fffdad0 3ffeec08 402018f0 7266ec10 
Dec 15 2016 15:06:00 Cannot process line from controller: 3ffefb90: 65676469 00746553 00002710 40201968 
Dec 15 2016 15:06:00 Cannot process line from controller: 3ffefba0: 3fffdad0 00000008 3ffeeb54 40201369 
Dec 15 2016 15:06:00 Cannot process line from controller: 3ffefbb0: 3fffdad0 00000000 00000061 4020bb36 
Dec 15 2016 15:06:00 Cannot process line from controller: 3ffefbc0: 736e6f43 00002e74 00000061 4020bcf8 
Dec 15 2016 15:06:00 Cannot process line from controller: 3ffefbd0: 00000000 00000006 3ffeeab7 4020a4ba 
Dec 15 2016 15:06:00 Cannot process line from controller: 3ffefbe0: 38306830 0030316d 3ffee9a4 4020a4da 
Dec 15 2016 15:06:05 Cannot process line from controller: 3ffefbf0: 3fffdad0 00000000 3ffeeb28 4020d427 
Dec 15 2016 15:06:05 Cannot process line from controller: 3ffefc00: 00000000 00000000 3ffeec00 4020d440 
Dec 15 2016 15:06:05 Cannot process line from controller: 3ffefc10: 3fffdad0 00000000 3ffeec00 4020193c 
Dec 15 2016 15:06:05 Cannot process line from controller: 3ffefc20: feefeffe feefeffe 3ffeec10 4020361c 
Dec 15 2016 15:06:08 Cannot process line from controller: << Dec 15 2016 15:06:08 Cannot process line from controller: !
Dec 15 2016 15:06:13 Cannot process line from controller: J!H
Dec 15 2016 15:06:13 Cannot process line from controller: 18K3kHX!H=!HNEJM!
T:{"BeerTemp": 15.56,"BeerSet":null,"BeerAnn":null,"FridgeTemp": 18.38,"FridgeSet": 30.00,"FridgeAnn":null,"State":6}
 
Appreciate that this probably now isn't the forum to be debugging, but I will for the time being.

...

This is definitely the place for debugging. What you posted was immensely helpful - Thank you.

v0.8 of the firmware is now posted, and resolves this bug. My apologies for the false starts on this one - this fix is tested and confirmed to work as expected.
 
Cool. I'll load v0.8 and see how it goes. I noticed I had to run the factory reset also before. Thanks
 
just a quick ask as my google search isn't coming up with the right answer, so i'm probably asking the wrong question. at the moment to update, i'm going to the github and downloading the bin file i need and then using cyber duck to drop it into the folder on my pi?

is there any easier way to update the repo so everything is brought up to the same version?
 
just a quick ask as my google search isn't coming up with the right answer, so i'm probably asking the wrong question. at the moment to update, i'm going to the github and downloading the bin file i need and then using cyber duck to drop it into the folder on my pi?

is there any easier way to update the repo so everything is brought up to the same version?

You have a couple of options --

On the Pi, if you have already cloned the repo, then you can go to the repo directory and type:

Code:
git reset --hard
git pull
git checkout origin/master

and it should update everything (including the bin/ folder)

Alternatively, you can just download the firmware to the Raspberry Pi directly. To do this, type:


wget "https://github.com/thorrak/brewpi-esp8266/blob/master/bin/brewpi-esp8266.v0.8.wifi.bin?raw=true"


...assuming you have wget installed.
 
Last edited:
Hmmm getting the

Could not receiveversion from controllerPlease (re)programyour controller

in the LCD screen now? using serial version.

will update with wifi version and see if that makes a difference
 
Wifi Version seems to work fine at the moment.

Well apart from it not logging anymore.

no issues with the GUI having to be reset, and sending commands to the ESbrewPi doesn't seem to cause it to reset either.

I'll wire it up and test it out on as a SousVide this weekend.

Arrrgh man... when did the maximum and minimum temperature settings go?
 
Last edited:
Wifi Version seems to work fine at the moment.

Well apart from it not logging anymore.

no issues with the GUI having to be reset, and sending commands to the ESbrewPi doesn't seem to cause it to reset either.

I'll wire it up and test it out on as a SousVide this weekend.

Not logging, you say? What do you mean?
 
Not logging, you say? What do you mean?

under advanced settings -> view logs, i have a blank screen under stderr:
where usually i'd have the out put that i get when i send a command to the ESbrewPi.

stdout: shows BrewPi: wifiChecker: Successfully pinged 10.0.1.1 (Thu 15 Dec 20:30:01 UTC 2016)
 
Does anyone have any idea when the Min max Temp adjustment under advanced settings got dropped?

I had to drop my min temp in the fridge to held keep my layering temperature steady, and was also hoping to in all seriousness use my brewpi for a mini mash in a crocpot as well as sousvide, so being limited to a max temp of 30c puts a bit of a hold on that.
 
You have a couple of options --

On the Pi, if you have already cloned the repo, then you can go to the repo directory and type:

Code:
git reset --hard
git pull
git checkout origin/master

and it should update everything (including the bin/ folder)

Alternatively, you can just download the firmware to the Raspberry Pi directly. To do this, type:


wget "https://github.com/thorrak/brewpi-esp8266/blob/master/bin/brewpi-esp8266.v0.8.wifi.bin?raw=true"


...assuming you have wget installed.


Thanks for this. I was downloading the bin and using FileZilla to drop into the Pi.

Also v0.8 seems to be working ok. I had to reset factory defaults and reboot the Pi to get it to run but has been running now for 24 hrs ok
 
Alrighty - Update time!
Nice Job! I now have this working for the first time (using brewpi-esp8266.v0.8.wifi.bin and fresh git pull per your instructions). Now, moving on to mounting the power supply, PCBs, and relays, and getting the wiring done to the AC unit, glycol pump, and Asco valves...
Thanks for your effort! :mug:
 
I am planning to mount the power supply, the PCB, and all relays to DIN rails, and noticed that both the sainsmart relay module and Thorrak's PCB have a common dimension of 55mm. Is there some sort of mounting option based on this 55mm dimension, or is that a coincidence?

My current plan is to go with these 3mm nylon standoffs.(see first picture)

I figure I can mount an intermediate board to the generic DIN rail brackets (see second picture). I can then drill holes to match the mounting holes in the PCBs and use the nylon standoffs to mount the PCBs to the intermediate board.

PCB-snapin_posts.jpg


DINtoPCB.jpg
 
Something worth thinking about before you bust out the soldering iron - depending on how you are planning to mount the PCB, you may want to leave some space between the Wemos Mini and the PCB. As you can see in these pictures, I still have a lot of pin length that I could have used to separate the boards. The Wemos board is pushed up tight against the other PCB, which may not leave enough room for the nylon mounting clips. Doh!

IMG_20161218_145248.jpg
 
I am planning to mount the power supply, the PCB, and all relays to DIN rails, and noticed that both the sainsmart relay module and Thorrak's PCB have a common dimension of 55mm. Is there some sort of mounting option based on this 55mm dimension, or is that a coincidence?

Yes, actually - it was a coincidence. I was trying to organize things in such a way to minimize the PCB size (since that's what you get billed based on!) - Glad to hear that it worked out!

If that solution ends up working well, let me know. It's easy enough to rearrange a PCB to have holes exactly where you want them, and with the price pcbs.io (and other fab houses!) charges these days, it's cheap enough to reorder as well.

Something worth thinking about before you bust out the soldering iron - depending on how you are planning to mount the PCB, you may want to leave some space between the Wemos Mini and the PCB. As you can see in these pictures, I still have a lot of pin length that I could have used to separate the boards. The Wemos board is pushed up tight against the other PCB, which may not leave enough room for the nylon mounting clips. Doh!

Good tip! Generally, I would recommend soldering female pin headers to the PCB, male pin headers to the ESP8266 board, and then plugging them together. I've had (admittedly, not OEM) ESP8266 boards burn out in the past - if somehow that was to happen to you, having the female pin headers means you can just swap the board out. That also gives you a bit of extra space, which as you noted, is helpful!
 
Think i may have found another bug when trying to set up as a Sous Vide (i'm getting there though)

1. Under web GUI select Fridge constant and adjust to 50c, (brewpi goes into Fridge Constant but automatically adjusted to 30c for some reason)
2. go to advance settings and manually adjust Fridge Temperature Setting to 50c this updates.
3. next i try to adjust the
  • Heater 1 proportional gain (Kp) - 20
  • Heater 1 integral time constant (Ti) - 300
  • Heater 1 derivative time constant (Td) - 30

these are advised settings on the Brewpi community so i want to test them.

the above steps result in the following log output, errors seem to come from the last three inputs.

Code:
Dec 23 2016 08:21:42 Fresh start! Log files erased.
Dec 23 2016 08:24:50 Notification: Fridge temperature set to 50.0 degrees in web interface
Dec 23 2016 08:24:51 Controller debug message: INFO MESSAGE 12: Received new setting: mode = f
Dec 23 2016 08:24:51 Controller debug message: INFO MESSAGE 12: Received new setting: fridgeSet = 50.0
Dec 23 2016 08:25:19 Controller debug message: INFO MESSAGE 12: Received new setting: heater1_kp = 20
Dec 23 2016 08:25:19 Controller debug message: WARNING 0: Could not process setting
Dec 23 2016 08:25:23 Controller debug message: INFO MESSAGE 12: Received new setting: heater1_ti = 300
Dec 23 2016 08:25:23 Controller debug message: WARNING 0: Could not process setting
Dec 23 2016 08:25:29 Controller debug message: INFO MESSAGE 12: Received new setting: heater1_td = 30
Dec 23 2016 08:25:29 Controller debug message: WARNING 0: Could not process setting

nb. altering the temp from the web gui with a decimal seemed to mean step 1 works properly, not sure why this is?

Any thought?
 
Think i may have found another bug when trying to set up as a Sous Vide (i'm getting there though)

1. Under web GUI select Fridge constant and adjust to 50c, (brewpi goes into Fridge Constant but automatically adjusted to 30c for some reason)
2. go to advance settings and manually adjust Fridge Temperature Setting to 50c this updates.
3. next i try to adjust the
  • Heater 1 proportional gain (Kp) - 20
  • Heater 1 integral time constant (Ti) - 300
  • Heater 1 derivative time constant (Td) - 30

these are advised settings on the Brewpi community so i want to test them.

the above steps result in the following log output, errors seem to come from the last three inputs.

Code:
Dec 23 2016 08:21:42 Fresh start! Log files erased.
Dec 23 2016 08:24:50 Notification: Fridge temperature set to 50.0 degrees in web interface
Dec 23 2016 08:24:51 Controller debug message: INFO MESSAGE 12: Received new setting: mode = f
Dec 23 2016 08:24:51 Controller debug message: INFO MESSAGE 12: Received new setting: fridgeSet = 50.0
Dec 23 2016 08:25:19 Controller debug message: INFO MESSAGE 12: Received new setting: heater1_kp = 20
Dec 23 2016 08:25:19 Controller debug message: WARNING 0: Could not process setting
Dec 23 2016 08:25:23 Controller debug message: INFO MESSAGE 12: Received new setting: heater1_ti = 300
Dec 23 2016 08:25:23 Controller debug message: WARNING 0: Could not process setting
Dec 23 2016 08:25:29 Controller debug message: INFO MESSAGE 12: Received new setting: heater1_td = 30
Dec 23 2016 08:25:29 Controller debug message: WARNING 0: Could not process setting

nb. altering the temp from the web gui with a decimal seemed to mean step 1 works properly, not sure why this is?

Any thought?

Unfortunately, this is the same issue that prompted the research into porting the current (non-legacy) branch. The settings you're looking to change are settings associated with the current branch of the firmware - not with the legacy branch.

If you revert to the legacy branch of brewpi-www you should be able to get this to work (but the settings names will be different)
 
If i revert to legacy will I need to do anything to ensure that the ESP still gets recognised?
 
Apologies - It's been awhile since I checked in with updates. Here is what I've been up to.

The past few weeks I've been distracted with projects that aren't BrewPi related. I tossed together a quick web app for handling a beer raffle I helped run the latest round of - nothing fancy, but something to help the actual raffle process run a bit more smoothly. It's not open source (yet?) but if you're looking to run a similar raffle, let me know and I'll hook you up with login info. It's good stuff!

Separate from that, I've been distracted with the holidays - and decided for some silly reason to try out mead making. The 30 minute "brew day" is fantastic, but the six month fermentation window is painful. I much prefer the faster feedback from beer brewing!

On the ESP/BrewPi front, I've been researching over-the-air updates, and think this may be something that could be implemented into my version of the brewpi firmware. Basically, I'm lazy, and am tired of having to walk six feet when I want to reflash my controller. But hey - over the air is a big win, in my book!

With regards to the multi-chamber Django port, I got dygraphs implemented/tested/working and am currently working on fermentation profile support. The graphs are currently slow & ugly, but I figure working > not working, and I can make it pretty & fast later. Once fermentation profiles are in, the next step will be making it so that you can actually set fridge constant/beer constant/beer profile mode on the controller. I'm guessing that being able to set/change fermentation temperatures is a feature people would like in a fermentation temperature controller. Small details.

On a side note, @rocket4x4 offered to help with some of the development on the brewpi-django rewrite, and hopefully can help either speed things along, or fill in gaps where my own skills are lacking.

(Slight) progress!
 
You took time off?!!! WTH man!?

Actually I've not done a single beer related thing in weeks. I have however been playing with the printer while half-heartedly wondering how I can design a printed case for the Arduino with LCD and encoder. The Arduino mounts are not square or evenly spaced so it may take a few iterations to get right.

Too bad the one someone else did was not a little larger. It includes the .DWG file but I'm not an AutoCAD guy.
 
You took time off?!!! WTH man!?

Actually I've not done a single beer related thing in weeks. I have however been playing with the printer while half-heartedly wondering how I can design a printed case for the Arduino with LCD and encoder. The Arduino mounts are not square or evenly spaced so it may take a few iterations to get right.

Too bad the one someone else did was not a little larger. It includes the .DWG file but I'm not an AutoCAD guy.

I may have mentioned it before, but I love me some OpenSCAD -- not least because there's tons of code out there. It just becomes a matter of remixing the pieces together to arrive where you want to be.

I did the same thing with a wall plate library to make a version of my enclosure with a standard US power outlet rather than the panel-mount snap in version. Once I manage to get it assembled, I'll post photos. That project is a few weeks out though unfortunately.
 
I've seen that library before. I must lack vision because I stare at it, play with it, and fail to find a good way to use his modules to create a box to hold something in addition to an Arduino. Maybe I need to be less shy about hacking and slashing.

On topic ... I have the SMD in now to build the board. Now if I could order a new set of eyes from China ....
 
Once again, apologies as it's been awhile since I last posted an update. Here's what's been going on with this project:

A few weeks ago @rocket4x4 offered to help with the brewpi-django project, and as a result I went ahead and migrated it to GitHub. It's not quite yet ready for public consumption, but it's getting there! The issues list associated with the "Initial Public Release" milestone is below.

Although I initially started the brewpi-django project as a pathway to completing the version 4.x branch of the brewpi-esp8266 firmware, admittedly I've pushed the version 4.x branch to the back burner in favor of the website replacement. There are a number of reasons for this, but the goal is to complete the version 4.x branch pretty quickly once the brewpi-django project reaches the Initial Public Release milestone. It's coming - just not as quickly as I had originally envisioned.

On the legacy branch of the brewpi-esp8266 firmware, I kind of think everything is feature complete. There is one last feature I want to implement if I can which is the ability to do over-the-air firmware upgrades from within brewpi-django. That is - log into the website, click a button, and let the script update your controller via WiFi. I'm not 100% certain that this can actually be done, but from my preliminary research it appears to be a possibility! All this aside, if anyone has any feature requests for the legacy branch, please let me know.

Screen Shot 2017-01-15 at 12.26.30 PM.jpg
 
And yes - "Add support for temperature controls" does in fact mean that at the moment you can't actually tell the controller what temperature to target. As strange as it sounds (and as critical as it is to the project being useful), that feature isn't very high on the priority list as it's mostly a user interface thing.
 
More progress this week with the basics for toggling temperature control in as well as a number of tiny tweaks & bugfixes. More issues are getting added to the list than have been removed, unfortunately, but at least it feels like it's existing issues being discovered rather than new ones being created.

One area I'm struggling with at the moment is trying to figure out how exactly to make the "All Devices" dashboard look. Here is how it looks right now:

wkt8m51.png


This works, I guess, but it just doesn't feel quite right to me. That said, I have no idea how to fix it. Anyone have any suggestions?


Similarly, here is how the temperature control screen looks at the moment. I'm happier with it, but it's still not quite right. We'll see:

tbECCOg.png
 
I wish I were an artistic person or I'd help. When I do web sites I only do the back-end because I understand my limitations. :)

If it helps I agree with you on the All Devices Dashboard but the Temp Control looks fine.
 
I think more of a tabular display. No need to emulate the small LCD display layouts. That way you would have an easier at-a-glance of all the chambers .
 
*quietly asks for rotary encoder support and slinks away*

The only way this would work is if you onewired the heating and cooling relays, therefore creating 'spare' pins. Making this adjustment with this or pocketmon's project is possible and onewire SSR hardware is out there (brewpi shop). You'd have to do some editing in config, and I'm not sure if other libraries would need editing/adding/including.

Cheers
 

Latest posts

Back
Top