Replacement firmware for iSpindel (GravityMon)

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.
new beta released that should fix most of the bugs that have been reported. all releases are available on github and on brewflasher.

https://github.com/mp-se/gravitymon/releases/tag/v1.3.0-beta3
Since there are a few boards being supported right how I would like to know which ESP boards are of most interest so I can focus on testing those.

These are the ones that are supported right now:
  1. ESP 8266
  2. ESP32 D1 mini
  3. ESP32 C3 v1.0
  4. ESP32 C3 v2.x
  5. ESP32 S2
  6. ESP32 LITE (Floaty)
Double reset and WiFi config was a struggle with the ESP32-S2 too. Seems to be much more reliable now with the 3x taps in beta3.
With the 2x taps, I found some tricks to come through WiFi config:
* Temporarily configured the phone to "Forget" my ordinary home WiFi
* Tapped RST not too slow, not too fast. A few cut-and-tries to find the "sweet spot".

With the 3x taps, I do not need to "Forget" my home WiFi.
The not too slow, not too fast -tapping is still applicable.
AP delay is also shorter.

I have just finished a Schwarzbier with kveik @33 degrees Celcius running beta2 on the Ispindel.
SG was spot on all the way.
The Ispindel was in the fermenter partly during cold crash too. It did not like that temperature very much though :)
 
Double reset and WiFi config was a struggle with the ESP32-S2 too. Seems to be much more reliable now with the 3x taps in beta3.
With the 2x taps, I found some tricks to come through WiFi config:
* Temporarily configured the phone to "Forget" my ordinary home WiFi
* Tapped RST not too slow, not too fast. A few cut-and-tries to find the "sweet spot".

With the 3x taps, I do not need to "Forget" my home WiFi.
The not too slow, not too fast -tapping is still applicable.
AP delay is also shorter.

I have just finished a Schwarzbier with kveik @33 degrees Celcius running beta2 on the Ispindel.
SG was spot on all the way.
The Ispindel was in the fermenter partly during cold crash too. It did not like that temperature very much though :)
Thanks for the feedback, good to hear that the enter wifi is working better. I will update the docs to clarify on the frequency. As you mentioned the you cant be to fast to do the tapping, an interval of 1-2 seconds would be optimal, not slower than 3 seconds.

Most of the wifi issues was connected to the Arduino framework. There was a 60 second timeout as default on the esp32c3 and esp32s2 boards for some reason and this didn't affect the other esp32 boards. So this is why it was slow to get an access point on those devices. I reduced that down to 1 second which seams to work better. The serial logging is also improved so its easier to see what is happening.

Glad to hear that the measurements was spot on, that's the main purpose of the software. Did you enable the temperature compensation formula or did you build that into your own formula?
 
Thanks for the feedback, good to hear that the enter wifi is working better. I will update the docs to clarify on the frequency. As you mentioned the you cant be to fast to do the tapping, an interval of 1-2 seconds would be optimal, not slower than 3 seconds.

Most of the wifi issues was connected to the Arduino framework. There was a 60 second timeout as default on the esp32c3 and esp32s2 boards for some reason and this didn't affect the other esp32 boards. So this is why it was slow to get an access point on those devices. I reduced that down to 1 second which seams to work better. The serial logging is also improved so its easier to see what is happening.

Glad to hear that the measurements was spot on, that's the main purpose of the software. Did you enable the temperature compensation formula or did you build that into your own formula?
I enabled the temp compensation formula. Maybe the formula did not like such drastic temperature changes over that short time. When I started cold crash, SG fell from a stable 1.014 (same value measured with a hydrometer) down to 1.005'ish.
If you wonder about the "notch" as temperature was falling, it's because I opened the fridge door to
Screenshot at 2023-03-01 09-40-22.png
cool down fermenter to basement temperature (+12C) before closing and cooling further down to +5C
 
I enabled the temp compensation formula. Maybe the formula did not like such drastic temperature changes over that short time. When I started cold crash, SG fell from a stable 1.014 (same value measured with a hydrometer) down to 1.005'ish.
If you wonder about the "notch" as temperature was falling, it's because I opened the fridge door toView attachment 813943 cool down fermenter to basement temperature (+12C) before closing and cooling further down to +5C
It could also be caused by my spindel construction:
Inspired by the Thingiverse projects #3271613 and #3666038, I designed some parts to make the CherryPhilip fit into an XXL petling. Much more volume/air in that one vs the original XL.
On the other side it is heavier. Clocks in at around 178g, quite similar to the "Hydrom" hydrometer.
P1010677.JPG
 
I enabled the temp compensation formula. Maybe the formula did not like such drastic temperature changes over that short time. When I started cold crash, SG fell from a stable 1.014 (same value measured with a hydrometer) down to 1.005'ish.
If you wonder about the "notch" as temperature was falling, it's because I opened the fridge door toView attachment 813943 cool down fermenter to basement temperature (+12C) before closing and cooling further down to +5C
The temperature drop should not really have an impact unless it affects the ispindle tilt somehow. I use the same correction formula as many of the online calculators out there which I hope is correct.

If you got a correct value of 1,014 at 32C then the measured gravity before correction would be 1,011, if I apply the temperature correction at 8C then the value would be 1,009 using the formula.
 
merhaba ben bu yazılımı denedim v 1.3.0 beta son sürüm ilk çalıştırdığımda brewspy adresine 1 defa bilgi gönderiyor sonra göndermiyor.
 
merhaba ben bu yazılımı denedim v 1.3.0 beta son sürüm ilk çalıştırdığımda brewspy adresine 1 defa bilgi gönderiyor sonra göndermiyor.
 
Google Translate sez:

"I tried this software v 1.3.0 beta latest version, when I first run it, it sends information to brewspy address 1 time, then it does not."

Also...Merhaba m_sahin45! Ve Homebrewtalk'taki forumlara hoş geldiniz!

Cheers!
 
Lütfen sorunuzu ingilizce yazın
Merhaba bu yazılımı denedim v 1.3.0 beta en son sürüm ilk çalıştırdığımda brewspy adresine 1 kez bilgi gönderiyor sonra açılmıyor."
Please post your question in english
Hi, I tried this software, v 1.3.0 beta is the latest version, when I run it for the first time, it sends information to brewspy address 1 time, then it doesn't open."
 
I had gravitymon setup on one device, but through a series of bad choices I've reflashed it and now cannot manage to connect to the "GravityMon" wifi from my pc or phone. I see the network, try to connect with "password" and then usually it fails to connect. Occasionally my pc will stay connected, but I cannot load anything from 192.168.4.1. any thoughts?
 
Are you trying to connect to the gravitymon network on 192.168.4.1?
Try this from a device near the ispindel.
correct, I'm getting to get into 192.168.4.1 when connected to GravityMon wifi but no luck and the ispindle is right next to my phone and pc
 
Merhaba bu yazılımı denedim v 1.3.0 beta en son sürüm ilk çalıştırdığımda brewspy adresine 1 kez bilgi gönderiyor sonra açılmıyor."

Hi, I tried this software, v 1.3.0 beta is the latest version, when I run it for the first time, it sends information to brewspy address 1 time, then it doesn't open."
Can you explain in more detail what is not working? What are the steps you have done ? Are there any errors in the error log that might be relevant? Have you followed all the installation & configuration steps ? Is this problem only on the 1.3 beta or does it behave the same on the 1.2 release ?
 
correct, I'm getting to get into 192.168.4.1 when connected to GravityMon wifi but no luck and the ispindle is right next to my phone and pc
I
I had gravitymon setup on one device, but through a series of bad choices I've reflashed it and now cannot manage to connect to the "GravityMon" wifi from my pc or phone. I see the network, try to connect with "password" and then usually it fails to connect. Occasionally my pc will stay connected, but I cannot load anything from 192.168.4.1. any thoughts?
Try to do a reflash with full erase and see if that improves things. There are occasions when there have been corrupted memory on the device that can cause issues. Try to connect with another device, phone or tablet and see if that works better. You can also try to move the device away from the computer and try again (could be interference).
 
Merhaba bu yazılımı denedim v 1.3.0 beta en son sürüm ilk çalıştırdığımda brewspy adresine 1 kez bilgi gönderiyor sonra açılmıyor."

Hi, I tried this software, v 1.3.0 beta is the latest version, when I run it for the first time, it sends information to brewspy address 1 time, then it doesn't open."
I've been running the latest beta on my current brew and it works correctly on my services. Can you use the "Gather support info" function and send me the result so I can check your configuration ? You can do it in a PM or open a ticket on github.

1679233977975.png
 
I
Try to do a reflash with full erase and see if that improves things. There are occasions when there have been corrupted memory on the device that can cause issues. Try to connect with another device, phone or tablet and see if that works better. You can also try to move the device away from the computer and try again (could be interference).
As seen in the photo, the device sends information once, then does not send it, when I restart it, it sends again.. I have uploaded many times and it has not changed.
 

Attachments

  • Screenshot_20230319_235202_Gallery.jpg
    Screenshot_20230319_235202_Gallery.jpg
    383.3 KB · Views: 0
  • Screenshot_20230319_235650_Gallery.jpg
    Screenshot_20230319_235650_Gallery.jpg
    310 KB · Views: 0
  • Screenshot_20230319_235502_Gallery.jpg
    Screenshot_20230319_235502_Gallery.jpg
    281 KB · Views: 0
  • Screenshot_20230319_235300_Gallery.jpg
    Screenshot_20230319_235300_Gallery.jpg
    273.9 KB · Views: 0
  • Screenshot_20230319_235245_Gallery.png
    Screenshot_20230319_235245_Gallery.png
    1.2 MB · Views: 0
  • Screenshot_20230319_235225_Gallery.jpg
    Screenshot_20230319_235225_Gallery.jpg
    307.5 KB · Views: 0
  • Screenshot_20230319_235414_Gallery.jpg
    Screenshot_20230319_235414_Gallery.jpg
    292.9 KB · Views: 0
  • Screenshot_20230319_235650_Gallery.jpg
    Screenshot_20230319_235650_Gallery.jpg
    310 KB · Views: 0
  • Screenshot_20230319_235502_Gallery.jpg
    Screenshot_20230319_235502_Gallery.jpg
    281 KB · Views: 0
  • Screenshot_20230319_235414_Gallery.jpg
    Screenshot_20230319_235414_Gallery.jpg
    292.9 KB · Views: 0
  • Screenshot_20230319_235300_Gallery.jpg
    Screenshot_20230319_235300_Gallery.jpg
    273.9 KB · Views: 0
  • Screenshot_20230319_235245_Gallery.png
    Screenshot_20230319_235245_Gallery.png
    1.2 MB · Views: 0
  • Screenshot_20230319_235225_Gallery.jpg
    Screenshot_20230319_235225_Gallery.jpg
    307.5 KB · Views: 0
  • Screenshot_20230319_235202_Gallery.jpg
    Screenshot_20230319_235202_Gallery.jpg
    383.3 KB · Views: 0
As seen in the photo, the device sends information once, then does not send it, when I restart it, it sends again.. I have uploaded many times and it has not changed.
I would bet on that this is a hardware issue not software. It looks like to manages to go to sleep but not wakeup again.

Check the resistor / diode between RST and D0 that is most likely the problem. Either wrong value of the resistor or wrong direction on the diode.
 
I would bet on that this is a hardware issue not software. It looks like to manages to go to sleep but not wakeup again.

Check the resistor / diode between RST and D0 that is most likely the problem. Either wrong value of the resistor or wrong direction on the diode.
i will check is this schematic correct
 

Attachments

  • Screenshot_20230320_125559_Chrome.jpg
    Screenshot_20230320_125559_Chrome.jpg
    454.4 KB · Views: 0
yep, that is where I'm at. I've tried flashing with two different programs (one of which I have used before several times). I flashed another d1 mini that I don't have installed on an ispindle and that appeared to flash just fine. Interestingly after I flashed that device it still wanted to connect to router from a previous flash (even more funny is that I had flashed gravitymon, then a wifi externder, and back to gravitymon and it still knew about my old router). Well a bright idea occurred to me. I downloaded the 4MB memory from my test esp8266 and flashed it onto my ispindle. This got me set back up into the configuration interface, but when I tried set it back into wifi mode with GravityMon network I am unable to connect a device to it. So good news I can get into the device, but I need to change the wifi it is connecting to. Any suggestions? As a hack, that didn't work, I tried to download the config (in 1.3.0B3) and change the wifi then reload the config....it reverted back to the original wifi.
 
Last edited:
yep, that is where I'm at. I've tried flashing with two different programs (one of which I have used before several times). I flashed another d1 mini that I don't have installed on an ispindle and that appeared to flash just fine. Interestingly after I flashed that device it still wanted to connect to router from a previous flash (even more funny is that I had flashed gravitymon, then a wifi externder, and back to gravitymon and it still knew about my old router). Well a bright idea occurred to me. I downloaded the 4MB memory from my test esp8266 and flashed it onto my ispindle. This got me set back up into the configuration interface, but when I tried set it back into wifi mode with GravityMon network I am unable to connect a device to it. So good news I can get into the device, but I need to change the wifi it is connecting to. Any suggestions? As a hack, that didn't work, I tried to download the config (in 1.3.0B3) and change the wifi then reload the config....it reverted back to the original wifi.
Then you didn't do a full erase before the flash. Brewflasher has an option to do a full erase. A normal flash will only erase part of the memory leaving parts for the file system and wifi settings intact.

Gravitymon will find old credentials and try to use them (Even from other wifi enabled software). I have had some strange issues in the past when doing the development and in most case it has been corrupted memory in these areas.

By doing a full erase you should start from scratch with no wifi settings. If you have it connected to the old wifi there is another option for removing the wifi settings and force it into wifi setup mode. Let me know if you want to try this option.
 
Then you didn't do a full erase before the flash. Brewflasher has an option to do a full erase. A normal flash will only erase part of the memory leaving parts for the file system and wifi settings intact.

Gravitymon will find old credentials and try to use them (Even from other wifi enabled software). I have had some strange issues in the past when doing the development and in most case it has been corrupted memory in these areas.

By doing a full erase you should start from scratch with no wifi settings. If you have it connected to the old wifi there is another option for removing the wifi settings and force it into wifi setup mode. Let me know if you want to try this option.
I've tried doing a full flash with the command line esptool and the ESP8266Flasher GUI tool. Then tried to flash the GravityMon firmware (both 1.2 and 1.3.0B3). None of those seemed to let me get access into GravityMon wifi. Since this was a clean config it also doesn't go into configuration mode. So I flash a different device, downloaded the image and transferred it to my iSpindle. From there I could at least get it into configuration Mode. Once there I was able to view error log and I see the following message (many repeated, but removed for this message). Any idea about the HELP line and CFG line? I have't done any configurations so the gyro message is expected and I think the WIFI errors are just scanning to connect

WIFI: Failed to connect to wifi 1
GYRO: No valid calibration values, please calibrate the device.
HELP: Exception (28) reason=2 epc1=0x402167ac epc2=0x00000000 epc3=0x00000000 execvaddr=0x00000068 depc=0x00000000
WIFI: Failed to connect to wifi 7
WIFI: Failed to connect to wifi 1
GYRO: No valid calibration values, please calibrate the device.
CFG : Configuration file does not exist.
 
I've tried doing a full flash with the command line esptool and the ESP8266Flasher GUI tool. Then tried to flash the GravityMon firmware (both 1.2 and 1.3.0B3). None of those seemed to let me get access into GravityMon wifi. Since this was a clean config it also doesn't go into configuration mode. So I flash a different device, downloaded the image and transferred it to my iSpindle. From there I could at least get it into configuration Mode. Once there I was able to view error log and I see the following message (many repeated, but removed for this message). Any idea about the HELP line and CFG line? I have't done any configurations so the gyro message is expected and I think the WIFI errors are just scanning to connect

WIFI: Failed to connect to wifi 1
GYRO: No valid calibration values, please calibrate the device.
HELP: Exception (28) reason=2 epc1=0x402167ac epc2=0x00000000 epc3=0x00000000 execvaddr=0x00000068 depc=0x00000000
WIFI: Failed to connect to wifi 7
WIFI: Failed to connect to wifi 1
GYRO: No valid calibration values, please calibrate the device.
CFG : Configuration file does not exist.
This is a good log. The first part of the line just refers to the part of the code where the log comes from. Help = Helper functions, Cfg = Configuration.

There seams to be some kind of crash in the code (exception 28) which is probably the reason for the wifi connection problems, it will reboot when that happends. For me to try to find the issue I need to know which exact version you used when this happend. I guess this is an esp8266 build. Can you confirm that this is still the case with the 1.3.0 final build that I released yesterday?

Good work in spotting this one.
 
Last edited:
yep, that is where I'm at. I've tried flashing with two different programs (one of which I have used before several times). I flashed another d1 mini that I don't have installed on an ispindle and that appeared to flash just fine. Interestingly after I flashed that device it still wanted to connect to router from a previous flash (even more funny is that I had flashed gravitymon, then a wifi externder, and back to gravitymon and it still knew about my old router). Well a bright idea occurred to me. I downloaded the 4MB memory from my test esp8266 and flashed it onto my ispindle. This got me set back up into the configuration interface, but when I tried set it back into wifi mode with GravityMon network I am unable to connect a device to it. So good news I can get into the device, but I need to change the wifi it is connecting to. Any suggestions? As a hack, that didn't work, I tried to download the config (in 1.3.0B3) and change the wifi then reload the config....it reverted back to the original wifi.
Before you select download firmware and flash controller, you have selected the option to erase flash ( yes wipes all data) ?
 
I've tried doing a full flash with the command line esptool and the ESP8266Flasher GUI tool. Then tried to flash the GravityMon firmware (both 1.2 and 1.3.0B3). None of those seemed to let me get access into GravityMon wifi. Since this was a clean config it also doesn't go into configuration mode. So I flash a different device, downloaded the image and transferred it to my iSpindle. From there I could at least get it into configuration Mode. Once there I was able to view error log and I see the following message (many repeated, but removed for this message). Any idea about the HELP line and CFG line? I have't done any configurations so the gyro message is expected and I think the WIFI errors are just scanning to connect

WIFI: Failed to connect to wifi 1
GYRO: No valid calibration values, please calibrate the device.
HELP: Exception (28) reason=2 epc1=0x402167ac epc2=0x00000000 epc3=0x00000000 execvaddr=0x00000068 depc=0x00000000
WIFI: Failed to connect to wifi 7
WIFI: Failed to connect to wifi 1
GYRO: No valid calibration values, please calibrate the device.
CFG : Configuration file does not exist.
After some digging into the error codes here are the failure codes from the "connect to wifi"

1 = No SSID available, so this would mean that it failed to connect to the defined wifi. Could be wrong SSID or poor coverage.
7 = Disconnected, the connection has been terminated for some reason.
 
I've tried doing a full flash with the command line esptool and the ESP8266Flasher GUI tool. Then tried to flash the GravityMon firmware (both 1.2 and 1.3.0B3). None of those seemed to let me get access into GravityMon wifi. Since this was a clean config it also doesn't go into configuration mode. So I flash a different device, downloaded the image and transferred it to my iSpindle. From there I could at least get it into configuration Mode. Once there I was able to view error log and I see the following message (many repeated, but removed for this message). Any idea about the HELP line and CFG line? I have't done any configurations so the gyro message is expected and I think the WIFI errors are just scanning to connect

WIFI: Failed to connect to wifi 1
GYRO: No valid calibration values, please calibrate the device.
HELP: Exception (28) reason=2 epc1=0x402167ac epc2=0x00000000 epc3=0x00000000 execvaddr=0x00000068 depc=0x00000000
WIFI: Failed to connect to wifi 7
WIFI: Failed to connect to wifi 1
GYRO: No valid calibration values, please calibrate the device.
CFG : Configuration file does not exist.
It looks like it crashes when trying to do a wifi scan for what networks are available. But I dont really understand why..... Do you have lots of wifi networks in your area ?
 
The temperature drop should not really have an impact unless it affects the ispindle tilt somehow. I use the same correction formula as many of the online calculators out there which I hope is correct.

If you got a correct value of 1,014 at 32C then the measured gravity before correction would be 1,011, if I apply the temperature correction at 8C then the value would be 1,009 using the formula.
This is a snip from a lager I am finishing off now:
Screenshot at 2023-03-27 15-30-17.png

Dead stable around 1.017 from +12 to +15 and down to +5 :)
1.017 is verified with a hydrometer.
I have used another iSpindel in this brew. Same config as the one with fluctuating SG. The only difference is this one uses MPU6050, the fluctuating one MPU6500.
I will put both into the fermentor during the next brew to check for possible differences.
So far: A brilliant piece of software!
 
This is a snip from a lager I am finishing off now:
View attachment 816190
Dead stable around 1.017 from +12 to +15 and down to +5 :)
1.017 is verified with a hydrometer.
I have used another iSpindel in this brew. Same config as the one with fluctuating SG. The only difference is this one uses MPU6050, the fluctuating one MPU6500.
I will put both into the fermentor during the next brew to check for possible differences.
So far: A brilliant piece of software!
Looks really good and thanks for the kind words. Would be interresting to see the difference of the gyros, i have not used the 6500 myself
 
Looks really good and thanks for the kind words. Would be interresting to see the difference of the gyros, i have not used the 6500 myself
6050 vs 6500 comparison update:
I am now finishing off a London Porter with two spindles in the fermentor:
"gmon-blu" with MPU-6050
and
"gmon-wht" with MPU-6500 (unfortunately not correctly calibrated, about 0.004 too low)
They have quite similar curves in the beginning @18-20C:
(sorry, I have not found a way to have two spindles connected to BrewPi Remix at the same time. These are numbers from Home Assistant via MQTT)

gmon-blu-wht-20230405.png



Here comes the interesting part:

gmon-blu-wht-20230413.png


At around 16:00, I started cold crash down to 5C. 6050 handled it ok, but 6500 values started to drop.
There is something fishy going on with the 6500!
I gave an ispindle with the same setup to my neighbour, and he experienced similar behaviour.
From the datasheets, I can not find any explanation why this happens.

When the beer is finished, I'll just kick out the 6500, insert a 6050 again and do a new calibration :)
 
6050 vs 6500 comparison update:
I am now finishing off a London Porter with two spindles in the fermentor:
"gmon-blu" with MPU-6050
and
"gmon-wht" with MPU-6500 (unfortunately not correctly calibrated, about 0.004 too low)
They have quite similar curves in the beginning @18-20C:
(sorry, I have not found a way to have two spindles connected to BrewPi Remix at the same time. These are numbers from Home Assistant via MQTT)

View attachment 817581


Here comes the interesting part:

View attachment 817582

At around 16:00, I started cold crash down to 5C. 6050 handled it ok, but 6500 values started to drop.
There is something fishy going on with the 6500!
I gave an ispindle with the same setup to my neighbour, and he experienced similar behaviour.
From the datasheets, I can not find any explanation why this happens.

When the beer is finished, I'll just kick out the 6500, insert a 6050 again and do a new calibration :)
This was interesting. Was there any buildup of kreusen on the 6500 ispindle that could cause it to show a different angle? Another option is that the 6500 has different accuracy based on temperature...
 
This was interesting. Was there any buildup of kreusen on the 6500 ispindle that could cause it to show a different angle? Another option is that the 6500 has different accuracy based on temperature...
You made me curious.
It was around the same amount of krausen on both:
p1010706.png


As a small test, I cleaned both and put them in again. "gmon-wht", the one with MPU-6500, still reported the same low values.
On the other hand, this test gave an indication of such amounts of krausen had nearly no tilt angle effect on my larger XXL Petling builds
 
Back
Top