• Please visit and share your knowledge at our sister communities:
  • If you have not, please join our official Homebrewing Facebook Group!

    Homebrewing Facebook Group

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

Homebrew Talk

Help Support Homebrew Talk:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.
Hi all!
I have been using Fermentrack for years and I am very happy with it (rPI3+Arduino UNO). I updated to the docker version without problem but have the probes in a refrigerator and I need to calibrate them since 2 give me different temperatures (a big difference of 0.7ºC).
The problem is that in the probe configuration, I subtract these 0.7º from the offset and it is not recorded, or it appears the offset recorded with "0.012" for example, that is to say: either the offset is not recorded or this is a wrong number.
I have the software in the latest version, I have reset the EEPROM and it does not solve the problem.

What do you think could happen and how to solve it?

Thank you in advance!
Special Thanks for day_trippr and Thorrak! thanks them I have my system working for years! :)
 
Hi all!
I have been using Fermentrack for years and I am very happy with it (rPI3+Arduino UNO). I updated to the docker version without problem but have the probes in a refrigerator and I need to calibrate them since 2 give me different temperatures (a big difference of 0.7ºC).
The problem is that in the probe configuration, I subtract these 0.7º from the offset and it is not recorded, or it appears the offset recorded with "0.012" for example, that is to say: either the offset is not recorded or this is a wrong number.
I have the software in the latest version, I have reset the EEPROM and it does not solve the problem.

What do you think could happen and how to solve it?

Thank you in advance!
Special Thanks for day_trippr and Thorrak! thanks them I have my system working for years! :)
There were some bugs with the calibration implementation that I recently recall squishing -- but I can't recall if they were in Fermentrack or BrewPi-ESP. Let me dig through the code and I'll let you know what I find.
 
It's been awhile since I brewed, almost a year. It looks like Fermentrack isn't able to connect/find to tiltbridge.local. I can connect with laptop, etc. to tiltbridge.local. I did update the tiltbridge from 1.1.3 to 1.2.1, so not sure if that is the issue.
 
It's been awhile since I brewed, almost a year. It looks like Fermentrack isn't able to connect/find to tiltbridge.local. I can connect with laptop, etc. to tiltbridge.local. I did update the tiltbridge from 1.1.3 to 1.2.1, so not sure if that is the issue.

mDNS resolution is a very finnicky thing. Most communication is done from the TiltBridge to Fermentrack, so as long as you can connect to the TiltBridge and input Fermentrack's settings, you should be fine. Alternatively, you should be able to restart the device which is running Fermentrack which will clear the mDNS cache for the device.
 
Yep, manually updating it worked. I must have missed that last night when I was looking at it. I'll blame the beers during clean up.
 
There were some bugs with the calibration implementation that I recently recall squishing -- but I can't recall if they were in Fermentrack or BrewPi-ESP. Let me dig through the code and I'll let you know what I find.

Hi all!

Could you look at something Thorrak?

Apart from this and addressed to everyone:
Has anyone else had temperature probe calibration problems in Fermentrack?

TY in advance 🍻
 
Hi all!

Could you look at something Thorrak?

Apart from this and addressed to everyone:
Has anyone else had temperature probe calibration problems in Fermentrack?

TY in advance 🍻

Hey - Apologies, I did look before but didn't find anything interesting, and then got distracted before I came back here to report on what I found. From digging through Fermentrack's code, it looks like the changes I was remembering were made several years back.

I'm anticipating that the issue here is in the way that the (string) calibration offset is being converted to BrewPi's internal temperature format. If you look in your device's log when you set a calibration amount, what is the string that is being sent to the device?
 
Hey - Apologies, I did look before but didn't find anything interesting, and then got distracted before I came back here to report on what I found. From digging through Fermentrack's code, it looks like the changes I was remembering were made several years back.

I'm anticipating that the issue here is in the way that the (string) calibration offset is being converted to BrewPi's internal temperature format. If you look in your device's log when you set a calibration amount, what is the string that is being sent to the device?
Hey, thanks for your fast response 👌🏼
The process I did for this test is: disable the sensor, enable it again by adding a test offset (I.e. -1.5) , see stdout log to check.

Here are the images, I don't see any offset in the log, I've tried it several times.

It is curious that sometimes an offset appears (always wrong) and in others there is no offset. I have tried to do an EEPROM reset, I have reconfigured the sensors without noticing any changes.
 

Attachments

  • IMG_4871.png
    IMG_4871.png
    195.2 KB
  • IMG_4870.png
    IMG_4870.png
    200.9 KB
  • IMG_4872.png
    IMG_4872.png
    205.8 KB
  • IMG_4874.jpeg
    IMG_4874.jpeg
    1.3 MB
  • IMG_4875.jpeg
    IMG_4875.jpeg
    1.2 MB
I need to run an errand before I can try to push out a change to fix this, but I can see the offset being applied here:

Screenshot 2024-02-07 at 3.36.42 PM.png


I think the problem is that the offset is being sent as a float, and the Arduino firmware strictly expects it to be a string. I'm pretty sure I can fix this in the BrewPi Script implementation, but need to double check some code in the BrewPi-ESP firmware first to make sure that won't break anything.
 
Hey, thanks for your fast response 👌🏼
The process I did for this test is: disable the sensor, enable it again by adding a test offset (I.e. -1.5) , see stdout log to check.

Here are the images, I don't see any offset in the log, I've tried it several times.

It is curious that sometimes an offset appears (always wrong) and in others there is no offset. I have tried to do an EEPROM reset, I have reconfigured the sensors without noticing any changes.

I need to run an errand before I can try to push out a change to fix this, but I can see the offset being applied here:

View attachment 841117

I think the problem is that the offset is being sent as a float, and the Arduino firmware strictly expects it to be a string. I'm pretty sure I can fix this in the BrewPi Script implementation, but need to double check some code in the BrewPi-ESP firmware first to make sure that won't break anything.
 
I need to run an errand before I can try to push out a change to fix this, but I can see the offset being applied here:

View attachment 841117

I think the problem is that the offset is being sent as a float, and the Arduino firmware strictly expects it to be a string. I'm pretty sure I can fix this in the BrewPi Script implementation, but need to double check some code in the BrewPi-ESP firmware first to make sure that won't break anything.
@TheFlangerBeer - The image has finished building. To install it, from your fermentrack tools directory run ./install.sh -i dev

Let me know if this resolves the issue!
 
@TheFlangerBeer - The image has finished building. To install it, from your fermentrack tools directory run ./install.sh -i dev

Let me know if this resolves the issue!
Hi man.
Not only has it not worked, but it can't load Fermentrack.

I have attached the installation process with the errors, and also the access screen to my IP (192.168.1.128). it can't access this website and open Fermentrack 😢
——————-

Edit: ok, I thought there was nothing to lose, so I reinstalled Fermentrack:

curl -L install.fermentrack.com | bash

Everything went well, my configuration has been preserved, so I have tested the Offset as follows:

BEER probe: offset -0.7

Apply

“Refresh sensor temp readings” button and this is what is shown: (see screen of temp data):

it shows temp calibration offset: -0.25 (it should be -0.7).

I intuit that I have done something wrong...

—————
More data: I tried again to make a temperature adjustment by adding an offset of +0.7 to the BEER probe (literally “0.7”, no sign)

The result is that after doing so, an offset of 0.188 is shown.

It seems that everything is the same as at the beginning 🤷‍♂️
 

Attachments

  • IMG_4886.jpeg
    IMG_4886.jpeg
    2.9 MB
  • Nuevo.txt
    5.5 KB
  • IMG_4887.jpeg
    IMG_4887.jpeg
    1.2 MB
Last edited:
Hi man.
Not only has it not worked, but it can't load Fermentrack.

I have attached the installation process with the errors, and also the access screen to my IP (192.168.1.128). it can't access this website and open Fermentrack 😢
That's my fault. The command should be:

./install.sh -i docker-dev

I forgot the "docker-" part.
 
That's my fault. The command should be:

./install.sh -i docker-dev

I forgot the "docker-" part.
Thanks for your effort and help man but… it doesn’t work. In resume: No changes.🤷‍♂️
I installed twice with no errors.

No offset:
Probe beer: 23.125°C
Probe chamber: 23.813
All probes inside a flask with water.
Reference thermometer: 23.1°C

(So we need apply a -0.7 offset to chamber):

Offset -0.7 on chamber probe with this result:
Probe beer: 23.188°C
Probe chamber: 23.563
Temp cal. Offset: -0.25

-------
EDIT.
Log2.txt is the result of installation.
 

Attachments

  • log2.txt
    4.6 KB
Last edited:
Thanks for your effort and help man but… it doesn’t work. In resume: No changes.🤷‍♂️
I installed twice with no errors.

No offset:
Probe beer: 23.125°C
Probe chamber: 23.813
All probes inside a flask with water.
Reference thermometer: 23.1°C

(So we need apply a -0.7 offset to chamber):

Offset -0.7 on chamber probe with this result:
Probe beer: 23.188°C
Probe chamber: 23.563
Temp cal. Offset: -0.25
Just to make sure everything is doing what I expect, do you mind quoting the logs here again?
 
Just to make sure everything is doing what I expect, do you mind quoting the logs here again?
Again new attemps to set chamber temp. Offset sent -0,7. Shown (not always) -0,25

EDIT. Log2.txt is the result of installation.
 

Attachments

  • stderr.jpg
    stderr.jpg
    2.8 MB
  • stdout.jpg
    stdout.jpg
    3.7 MB
  • log2.txt
    4.6 KB
Can you paste them here?
What do you mean? I posted stderr.log, stdout.log. Do you mean screen capture?
Ok here is it.

Do you mean other logs? if so, which ones and how can I get them?
TY

----
EDIT: Well, I did it again:
I reinstalled Docker again: ./install.sh -i docker.dev
Then I set beer prove offset to "-0.7" again.
In the new stdlog and stderr you can see that I asked for -0-7 offset and interrnally Fermentrack "translate" it to "0.25".
So no changes, I am sorry to report to you bad news man, ty for your effort and support

-----
The following summary may help you.
In the log you receive (observing the variable 'j'):

Example 1:
Request updating: "-0.7" (pay attention to the quotes and lack of them)
Updated to: 0.250
Received: 0.25

Example 2:
Request updating: "-22.0"
Updated to: 0.000
Received: 0.0

Example 2:
Request updating: "7.0"
Updated to: 0.000
Received: 0.0
 

Attachments

  • Configure Sensors & Relays.pdf
    29.3 KB
  • stderr12-2-24.txt
    13.2 KB
  • stdout12-2-24.txt
    1.5 KB
Last edited:
What do you mean? I posted stderr.log, stdout.log. Do you mean screen capture?
Ok here is it.

Do you mean other logs? if so, which ones and how can I get them?
TY

----
EDIT: Well, I did it again:
I reinstalled Docker again: ./install.sh -i docker.dev
Then I set beer prove offset to "-0.7" again.
In the new stdlog and stderr you can see that I asked for -0-7 offset and interrnally Fermentrack "translate" it to "0.25".
So no changes, I am sorry to report to you bad news man, ty for your effort and support
I appreciate it. The logs are very helpful, as the hardware you’re using (Arduino) isn’t what have set up on my end, so I'm debugging through you, unfortunately.

I’m not seeing anything obvious on the Fermentrack side of things that could cause this as everything appears to be getting properly converted & sent to the controller, so I'm going to have to build a controller on my end to debug this, it seems. Am I correct that you are using @LBussy 's BrewPi-Remix firmware for your Arduino?
 
Te lo agradezco. Los registros son muy útiles, ya que el hardware que estás usando (Arduino) no es el que configuré por mi parte, así que desafortunadamente estoy depurando a través de ti.

No veo nada obvio en el lado de Fermentrack que pueda causar esto, ya que todo parece estar siendo convertido y enviado correctamente al controlador, por lo que tendré que construir un controlador por mi parte para depurar esto. parece. ¿Estoy en lo cierto al decir que estás utilizando el firmware BrewPi-Remix de @LBussy para tu Arduino?
Bingo! :)

In any case, I would not want this to involve a lot of work time or effort, it is not a vital thing and I can take into account the temperature difference when programming the fermentation.

I have been using it for several years now so if something works then "don't touch it" (kiss principle). The problem arose when changing a defective probe and seeing the phase difference of almost 1ºC. I'm not very sure but I think the firmware may be this:

brewpi-arduino-uno-revc-0.2.13+da7e14a9.hex

Good luck with it and as always, thank you


 
Last edited:
Bingo! :)

In any case, I would not want this to involve a lot of work time or effort, it is not a vital thing and I can take into account the temperature difference when programming the fermentation.

I have been using it for several years now so if something works then "don't touch it" (kiss principle). The problem arose when changing a defective probe and seeing the phase difference of almost 1ºC. I'm not very sure but I think the firmware may be this:

brewpi-arduino-uno-revc-0.2.13+da7e14a9.hex

Good luck with it and as always, thank you



I'm at a bit of a loss at the moment, unfortunately. I built a slimmed-down proof-of-concept based on Lee's code that can be run in a C++ shell, and best that I can tell it seems to be doing the conversion appropriately:

Code:
my_strtol called with -0.7 - Converted to 0
stringToFixedPoint called my_strtol with -0.7 - Converted to 0
my_strtol called with 7 - Converted to 7
Converted temperature difference: -358 (512=1)
calibrationAdjust: -12 (16=1)

Internally, BrewPi tracks temperatures as whole numbers, stored with either 512 steps-per-degree precision or 16 steps-per-degree precision. When I convert -0.7, it comes back with -358/512 (-0.6992) from the initial conversion which it then converts to -12/16 (-0.75) which is what it stores. If you were seeing -0.75 rather than -0.7 this would explain it -- and be OK -- but to see it convert to -0.25 makes no sense.

The only thing that I can think is that the command being sent to the controller is different somehow from the command the controller thinks that it sees.

I'll have to think a bit outside the box here to see if I can figure out how to debug this. I'll let you know what I come up with.
 
I'm at a bit of a loss at the moment, unfortunately. I built a slimmed-down proof-of-concept based on Lee's code that can be run in a C++ shell, and best that I can tell it seems to be doing the conversion appropriately:

Code:
my_strtol called with -0.7 - Converted to 0
stringToFixedPoint called my_strtol with -0.7 - Converted to 0
my_strtol called with 7 - Converted to 7
Converted temperature difference: -358 (512=1)
calibrationAdjust: -12 (16=1)

Internally, BrewPi tracks temperatures as whole numbers, stored with either 512 steps-per-degree precision or 16 steps-per-degree precision. When I convert -0.7, it comes back with -358/512 (-0.6992) from the initial conversion which it then converts to -12/16 (-0.75) which is what it stores. If you were seeing -0.75 rather than -0.7 this would explain it -- and be OK -- but to see it convert to -0.25 makes no sense.

The only thing that I can think is that the command being sent to the controller is different somehow from the command the controller thinks that it sees.

I'll have to think a bit outside the box here to see if I can figure out how to debug this. I'll let you know what I come up with.
Your involvement and commitment are worth applauding.
Thank you and good luck
 
@TheFlangerBeer - I've created a test firmware that will print some debugging info to the log that I can use to (hopefully!) figure out what is going on. If you have a moment, can you flash the correct one of the following two firmware to your Arduino:

RevC: https://www.kegscreen.com/brewpi-beta/brewpi-arduino-uno-revc-0.2.13+f1fa1.hex
I2C: https://www.kegscreen.com/brewpi-beta/brewpi-arduino-uno-i2c-0.2.13+f1fa1.hex

Once flashed, can. you attempt to set the device up (with calibration offset) and then post the logs here?
 
@TheFlangerBeer - I've created a test firmware that will print some debugging info to the log that I can use to (hopefully!) figure out what is going on. If you have a moment, can you flash the correct one of the following two firmware to your Arduino:

RevC: https://www.kegscreen.com/brewpi-beta/brewpi-arduino-uno-revc-0.2.13+f1fa1.hex
I2C: https://www.kegscreen.com/brewpi-beta/brewpi-arduino-uno-i2c-0.2.13+f1fa1.hex

Once flashed, can. you attempt to set the device up (with calibration offset) and then post the logs here?
Hello! I have a problem: I am not an expert in this and I am not sure I do it right, I have several doubts.
I installed my hardware approximately 7 years ago, I remember that it is an Arduino UNO RevC Legacy but I remember little else. I have installed VNC server and client on my PC and Rpi and placed your .hex on the Rpi desktop to do the test firmware update.
I can deduce that to install a firmware in a .hex file I must enter the django administrator but from here I get lost.

How do I proceed from django?
"Flash Firmware" section. Then 'Firmware - Add".
A new screen with a lot of data.
I add name, Family (Arduino UNO), then "Download URL", no partitions, no spiffs, no bootloader, no otadata?
Weight? default '5'?
Etc etc. I need to know what to put in so many fields.

And most importantly: how to restore the current firmware I have? Can I make a backup first?
 
Back
Top