Fermentrack: Fermentation monitoring & BrewPi-www Replacement for Raspberry Pi

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.
No LCD hooked up. After the fermentrack reports the controller is non responsive the controller continues to work. I have watched the fridge cycle on / off while fermentrack is in this state. I have disconnected / connected the uno / power cycled the PI and issue still exist.

possibly a power drop since I'm powering everything via usb? thinking about providing a 5v 2a vdc power supply to arduino. do you know if there is a jumper i need to use to use external power?

Very strange. What are the last few lines of the logs for the controller in Fermentrack?

Links to the log files can be seen by either clicking the gear or the question mark in the upper right. (I can’t recall offhand)
 
No LCD hooked up. After the fermentrack reports the controller is non responsive the controller continues to work. I have watched the fridge cycle on / off while fermentrack is in this state. I have disconnected / connected the uno / power cycled the PI and issue still exist.

possibly a power drop since I'm powering everything via usb? thinking about providing a 5v 2a vdc power supply to arduino. do you know if there is a jumper i need to use to use external power?

While I'm hoping that the logs will answer the question as to what is happening, I wanted to write out some options on what might be going on when I'm home & have a keyboard, rather than when I'm not at home & would have to type from my phone ;)

The first thing that I would test is - as I mentioned - unplugging & replugging the Arduino from the Pi. This will cause the Arduino to reset and should bring it back to a consistent state where it is controlling temps. If unplugging & replugging works, then I would guess it's something hardware-related on the controller side. This could be a power supply issue (most likely), issue with the serial controller (less likely), or something else. To @day_trippr 's point - if you have a 9V 1A power supply handy and can try using it to power your Arduino this is a good first step - the vast majority of "hardware" issues I've had with microcontroller projects over the years stem from bad/insufficient power supplies.

The second thing I would test is restarting the Raspberry Pi (potentially followed by unplugging/replugging). This will guarantee that BrewPi-script has reset which will fix the issue if it's related to that component of the software. If this fixes it, it's possible that it's some kind of bug - let me know and I can try to reproduce it on my end.

The third thing I would test is seeing if the issue is related to the way the device is detected using udev. The easiest way to test this is to delete the device within Fermentrack & go through the process of setting it up again. If this causes it to work, the most likely culprit is that the udev rules aren't working as intended. Disable udev for the device & see if that helps.

If these three tests don't explain the issue then it becomes much harder to diagnose. Start with these and if they don't work (and the logs don't help) then we can go from there.
 
Thank you for the tips! and you help is appreciated.

I have placed a external power supply in place, and removed / re-attached the uno to fermentrack. Placed a carboy full of water in fridge and started a test fermentation. Fermentrack trended data from 1900 - 0300 (per chart) then lost the script again. Whats weird to me is that the STDOUT Logs show there was an error @ 12:00pm yet I still have data on my chart untill 0300. Then when i look at the STDERR Logs i see errors with my serial connection occurring @ 1330. Is this a timing issue?

Also after reassigning the controller to fermentrack I received this OS fault.

I'm thinking there is a issue with the arduino's serial port. I have read some similar reviews on the web. Just amazon primed a replacement. unless you think there is a smoking gun on the fermentrack side?

View attachment 583599 View attachment 583600 View attachment 583601
 
Update. I am still experiencing the loss of comm between the pi / uno. I am however able to recover from this by only restarting the pi.
 
is it possible to have three temperature probes on the one-wire bus? I've got three set up on the pin, and for some reason when I have 3 probes plugged in the one-wire bus crashes. I've verified that the probes are wired properly so I know it's not my soldering work with the sensors themselves.
 
I'm not sure what the logical or physical limit is wrt ds18b20s sharing one wire but I have a monitoring system with 5 probes on one channel.
BrewPi and its analogs only use three probes, however.

Have you figured out if a certain pair of your probes work together and its only when the third probe is added that the problem happens? Or do any two probes work?

Cheers!
 
good question- I'll try different combinations of ports AND probes and see what's up.

it did end up being a bad probe. I'll re-solder it to the 3.5mm lines I'm using but I have a feeling it's just a faulty sensor.
 
Last edited:
After all of my n00b mistakes, I've finally gotten a build going with a iSpindel device calibrated and communicating.

Beyond basic common sense like "if you're flashing something through the Raspberry pi- you need it connected to the raspberry pi via usb" sort of stuff, the only things that would have made it easier was intimate knowledge like:

1. When you first configure your iSpindel device- set the data recording interval for something like 5-10 seconds instead of 900 seconds (default). For a while I thought my gyro was bad - then I found this setting. (I ended up having a bad gyro but that's a long unnecessary story)

2. using the default method to calibrate a iSpindel is nice- if you have a narrow vessel to start the 2.75L batch of water and no sugar in where the device doesn't bottom out on the vessel. I used this S.G. curve of sucrose in water to back calculate how much sugar (by mass) to add to the solution to build a good S.G. estimate:
https://www.engineeringtoolbox.com/...ganic-sugar-alcohol-concentration-d_1954.html

3. Thorrak's PCBs are amazing. And so is his software. Fermentrack allows you to flash varieties of his firmware onto your ESP boards as well as iSpindel's latest firmware! This man made this almost idiot proof- don't use the wemos ESP flashing programs as they are confusing and not needed when setting up your Fermentrack controller and iSpindel. You also don't need to create a unidots account either.

4. If your multimeter is reading the right input voltages on your end paths of your circuit, doubt the Ali Express components before tossing everything into the trash. I have had bad temp probes as well as bad gyros. So order extra of those when you're building your hardware up.
 
Last edited:
After all of my n00b mistakes, I've finally gotten a build going with a iSpindel device calibrated and communicating.

Beyond basic common sense like "if you're flashing something through the Raspberry pi- you need it connected to the raspberry pi via usb" sort of stuff, the only things that would have made it easier was intimate knowledge like:

1. When you first configure your iSpindel device- set the data recording interval for something like 5-10 seconds instead of 900 seconds (default). For a while I thought my gyro was bad - then I found this setting. (I ended up having a bad gyro but that's a long unnecessary story)

2. using the default method to calibrate a iSpindel is nice- if you have a narrow vessel to start the 2.75L batch of water and no sugar in where the device doesn't bottom out on the vessel. I used this S.G. curve of sucrose in water to back calculate how much sugar (by mass) to add to the solution to build a good S.G. estimate:
https://www.engineeringtoolbox.com/...ganic-sugar-alcohol-concentration-d_1954.html

3. Thorrak's PCBs are amazing. And so is his software. Fermentrack allows you to flash varieties of his firmware onto your ESP boards as well as iSpindel's latest firmware! This man made this almost idiot proof- don't use the wemos ESP flashing programs as they are confusing and not needed when setting up your Fermentrack controller and iSpindel. You also don't need to create a unidots account either.

4. If your multimeter is reading the right input voltages on your end paths of your circuit, doubt the Ali Express components before tossing everything into the trash. I have had bad temp probes as well as bad gyros. So order extra of those when you're building your hardware up.

Glad to hear everything is working - and that you found it easy to use!

I need to update the iSpindel links here shortly - the links right now point to an older version of the firmware that doesn’t support the new temp_units option. As long as you primarily use Celsius (or let Fermentrack do the conversions) you’re fine, but it’s not quite as easy to set up as one would hope.

The iSpindel calibration routine needs some work. I need to go through and get a new set of calibration points for my test iSpindel, set things up to plot the formula against them, and see if some of the points might be extraneous — my guess is that right now the number of points that Fermentrack collects are more than are actually required/useful. The overall setup will be the same (bucket, water, sugar, scale) but hopefully it makes it more accessible. (Plus, I think it would be neat to plot the calibration equation against the calibration points regardless, as it would be some nice eye candy ;) )

If you run into trouble or find something that isn’t easy to use, as always - let me know and I’ll see what I can do to help!
 
Last edited:
Hey Thorrak -

I'm on master w/ fermentrack and on FW 6.0.0 for iSpindel. Saw you added temp units for iSpindel in commit 38c54c97163, but fermentrack still seems like its converting C-> F, even thought its already in F. Here's the post from the ispindel:

{"name":"GreenLantern2","ID":3975449,"token":"fermentrack","angle":54.98454,"temperature":87.6875,"temp_units":"F","battery":3.727841,"gravity":12.1981,"interval":20,"RSSI":-44}
HTTPAPI: posting
code: 200
{"gravity": 12.198095503604563, "status": "ok"}

And Fermentrack:
fermentrack.PNG
 
Hey Thorrak -

I'm on master w/ fermentrack and on FW 6.0.0 for iSpindel. Saw you added temp units for iSpindel in commit 38c54c97163, but fermentrack still seems like its converting C-> F, even thought its already in F. Here's the post from the ispindel:

{"name":"GreenLantern2","ID":3975449,"token":"fermentrack","angle":54.98454,"temperature":87.6875,"temp_units":"F","battery":3.727841,"gravity":12.1981,"interval":20,"RSSI":-44}
HTTPAPI: posting
code: 200
{"gravity": 12.198095503604563, "status": "ok"}

And Fermentrack:
View attachment 588804

I mean, I never claimed to have implemented it correctly. ;)

I’m unfortunately not able to test any code at the moment, but will take a look here in a week.
 
I mean, I never claimed to have implemented it correctly. ;)

I’m unfortunately not able to test any code at the moment, but will take a look here in a week.

Got bored & looked at gravity/models.py & gravity/views_ispindel.py.. i don't think it handles the temp_unit's data being in quotes ("F"), but i could be mistaken
 
Last edited:
I am still trying to figure out why it wont work with my Pi 3 B+ and i bought a second one and it will not connect. If i put it in my PI 3 standard like i have it in now, it has been communicating to it for 14 days with no issues. If i switch the card back in again it does not pick it up.

the image is Strech with latest Fermentrack and did latest get update and get upgrade.

I had a similar issue, same pi model (3 B+ w/stretch). Took me three days to solve. See my post here.
To fix it, run bluetoothctl and the command set-scan-filter-clear
 
Last edited:
I had a similar issue, same pi model (3 B+ w/stretch). Took me three days to solve. See my post here.
To fix it, run bluetoothctl and the command set-scan-filter-clear

Thanks for finding this. From doing a bit of searching on the solution you found, it seems like it may be a function of the “bluez” package which powers the iBeacon scanning library that Fermentrack uses. I’m going to dig through the library later to see if there is a way to explicitly clear/reset filters, but regardless it sounds like there is another library that potentially doesn’t suffer from the same filtering limitation. Assuming I can’t find a definitive fix in beacontools, I might try switching BLE libraries as an alternative.

For the time being, I’m going to track this fix against this issue on GitHub: https://github.com/thorrak/fermentrack/issues/304
 
I had a similar issue, same pi model (3 B+ w/stretch). Took me three days to solve. See my post here.
To fix it, run bluetoothctl and the command set-scan-filter-clear

Using the post you linked, I went ahead and whipped up a rewrite of the tilt_monitor script. The new script is in the aio_ble branch and should in theory run automatically after updating for all new/existing Tilt gravity sensors. I've got it running on a local install of Fermentrack - if it seems to have been working after a few days, I'll merge into dev.

Thanks again for finding/linking that post - hopefully this fix solves the issue for good!
 
Using the post you linked, I went ahead and whipped up a rewrite of the tilt_monitor script. The new script is in the aio_ble branch and should in theory run automatically after updating for all new/existing Tilt gravity sensors. I've got it running on a local install of Fermentrack - if it seems to have been working after a few days, I'll merge into dev.

Thanks again for finding/linking that post - hopefully this fix solves the issue for good!

I'm glad to help in any small way.
To be clear, I wrote the linked post after doing a bunch of investigation. I went looking on the RPI forum for help, found none and wound up answering my own question.
 
I'm glad to help in any small way.
To be clear, I wrote the linked post after doing a bunch of investigation. I went looking on the RPI forum for help, found none and wound up answering my own question.

Thanks for researching this! I don’t expect I would have come up with anything similar as a solution without it. Hopefully aioblescan does a better job than beaconscan given the lower level interface - in testing last night it appeared to be picking up both Tilts with regularity, so I’m hopeful!
 
Just recently migrated to this platform from having a bunch of individual brewpiless devices. Really loving it. Awesome work. Have a couple of questions, have done a bit of searching and haven't found either discussed previously, sorry if they have been.
  • Is there a way to change the order of devices on the Multichamber Dashboard? (Short of removing them and re-adding them in the right order)
  • I re-flashed all of my brewpi-esp8266 devices using the integrated method. Went through the wifi setup options and noticed that it defaulted to DHCP and didn't give me the option to set a Static IP when connecting to my wireless network. Currently using DHCP which is fine, but I would like to make them static at some point. Is this possible?
 
Just recently migrated to this platform from having a bunch of individual brewpiless devices. Really loving it. Awesome work.
  • I re-flashed all of my brewpi-esp8266 devices using the integrated method. Went through the wifi setup options and noticed that it defaulted to DHCP and didn't give me the option to set a Static IP when connecting to my wireless network. Currently using DHCP which is fine, but I would like to make them static at some point. Is this possible?
You can do this in your router is it supports address reservations. The plus side is the router becomes the documentation of sorts and DNS resolution still works.
 
Agreed. DHCP Address Reservation is extremely useful for IoT stuff that might not be adept at static IP assignment. I have a crap ton of tiny agents managed that way...

Cheers!
 
Hah! I have a wndr3700 v3 with oem firmware V1.0.0.42_1.0.33 and managed to never run into that case-sensitive issue.
fwiw, there've been a rash of nefarious pwning associated with this router and as Netgear doesn't actually support it any longer it's on my list of "things to be upgraded"...

Cheers!
 
I actually have one of their earlier Nighthawks which has apparently the same problem. Also on my list to replace, the interface is driving me spare!
 
Hopefully aioblescan does a better job than beaconscan given the lower level interface - in testing last night it appeared to be picking up both Tilts with regularity, so I’m hopeful!

Is there a way to upgrade from Git (in the app) from a particular branch? I'm guessing not. I'm pretty new to (git-ting…)
 
@Thorrak
This graph looks a bit odd. There are multiple x axis points for 1.011 that are causing the gravity plot to jump around. Thoughts?
 

Attachments

  • FT Snip.png
    FT Snip.png
    79 KB · Views: 64
Is there a way to change the order of devices on the Multichamber Dashboard? (Short of removing them and re-adding them in the right order)

Not at the moment. This would probably be something nice to implement - adding "weight" or something for sorting - but doesn't exist currently.

I re-flashed all of my brewpi-esp8266 devices using the integrated method. Went through the wifi setup options and noticed that it defaulted to DHCP and didn't give me the option to set a Static IP when connecting to my wireless network. Currently using DHCP which is fine, but I would like to make them static at some point. Is this possible?

I... don't know actually! I need to take a look at the library that I'm using for managing WiFi and see how/if it provisions for static IP assignment. Could just be a matter of recompiling with a newer version - I'm not sure.

Is there a way to upgrade from Git (in the app) from a particular branch? I'm guessing not. I'm pretty new to (git-ting…)

There is, but it's hidden. :)

Go into the Django admin, click into "Config" (under Constance), and tick "Allow Git Branch Switching" (the first thing on the page). You'll then see a list of available branches at the bottom of the page used to upgrade from Git.
 
I just pushed out an update to Fermentrack which contains the rewritten Tilt monitor code using aioblescan instead of beacontools. I’m hoping that this “lower level” approach will improve the reliability of the Tilt integration and prevent whatever filtering seemed to be getting applied for some users.

The update is sitting in the dev branch - absent new bug reports I’ll look to merge it to master next week.
 
@Thorrak
This graph looks a bit odd. There are multiple x axis points for 1.011 that are causing the gravity plot to jump around. Thoughts?

The problem appears to be that dygraphs is setting the y axis bounds automatically, and your gravity sensor is jumping between two readings that are exactly one measurable unit apart. Unfortunately there’s not much of a fix for this - but as you get additional readings added to the graph (that are further apart!) it should smooth itself out.
 
I just pushed out an update to Fermentrack which contains the rewritten Tilt monitor code using aioblescan instead of beacontools. I’m hoping that this “lower level” approach will improve the reliability of the Tilt integration and prevent whatever filtering seemed to be getting applied for some users.

The update is sitting in the dev branch - absent new bug reports I’ll look to merge it to master next week.

Thanks. I rebuilt my pi last night and saw the aoi branch was gone. I switched to dev.
 
The problem appears to be that dygraphs is setting the y axis bounds automatically, and your gravity sensor is jumping between two readings that are exactly one measurable unit apart. Unfortunately there’s not much of a fix for this - but as you get additional readings added to the graph (that are further apart!) it should smooth itself out.

I didn't get this working until late in the brew. We'll see what a new brew does in a couple weeks. Thank you
 
Q: Can I move a brew log from one install to another? I tried copying the full and graph csv files and ensured they were named with the same Device name. When I click Load log, it shows the current log but not the one I copied over.
 
I'm not sure what this refers to. Can you link the prior post?

@Bigdaddyale tends to get a bunch of PCBs printed up from time to time for people who don’t want to buy a stack of them. I think he’s getting ready to place an order and is trying to see if anyone wants one/several of the PCBs used for the “base” board for the ESP8266 BrewPi build from the other thread.
 
Back
Top