iSpindle - DIY Electronic Hydrometer

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.
I did some reading and slow translating (it's been a long time since I lived in Germany!). This uses a Wemos D1 Mini (same as used by a couple of the BrewPi variants).

This could be a very interesting project to follow.

Looks like the basic BOM is:

There's also a kit available minus the vial and battery: https://3d-mechatronics.de/de/ispindel-diy-set-ohne-schlitten-ohne-batterie_148.html
 
Last edited by a moderator:
Looks awesome, but the size is a bummer. Current configuration doesn't seem to fit down the neck of a carboy.
 
Chrome's translation of the site isn't horrible, fwiw.
Yeah, the capsule diameter is an issue for my glassware as well.
And going WiFi seems like a stretch on battery life - I'd have thought the BTLE4 transport would be a better choice.
Will be interested to see this evolve...

Cheers!
 
Interesting. Inspired by this thread: https://www.homebrewtalk.com/showthread.php?t=385352

I just collected the parts and roughly tested the MPU6050 to find out the reading of temperature sensor on MPU6050 is not usable.

I think I roughly know what they are going to do, or what I was going to do.

Basically, it is a WiFi version of TILT digital hydrometer. The difference is obviously the WiFi instead of bluetooth. I believe that TILT uses Bluetooth BLE because of power consumption. The nature of WiFi is power hungry. The solution is DEEP SLEEP mode of ESP8266. ESP8266 can enter a DEEP SLEEP mode and schedule a wake-up time. (You can find detail information by googling.) Therefore, the systems should report the reading to a specified server and enter deep sleep before next report, so that it minimize the power consumption.

The most important parts are the interpretation of the gyro readings and the calibration procedure. I haven't gone that far so I don't have any idea for now. I might need to trace their code later.

dh.jpg
 
I just collected the parts and roughly tested the MPU6050 to find out the reading of temperature sensor on MPU6050 is not usable. [...] The most important parts are the interpretation of the gyro readings and the calibration procedure. I haven't gone that far so I don't have any idea for now. I might need to trace their code later.
Please let us know how it works out for you. I'd be willing to help contribute to somewhat easier to follow instructions for instance if it seems to be worthwhile.
 
This project is suspended because I don't know how to put the batter in and how to keep the chip in fixed position.
I bought a 18650 battery and a USB charger housing but found they can't fit. Therefore, I plan to use 2 AAA battery to try. The power is an issue only when it works. Building hardware is not easy for me, so it is sitting there.
 
This project is suspended because I don't know how to put the batter in and how to keep the chip in fixed position.
I bought a 18650 battery and a USB charger housing but found they can't fit. Therefore, I plan to use 2 AAA battery to try. The power is an issue only when it works. Building hardware is not easy for me, so it is sitting there.

I would think for prototyping purposes you could just use a little silicone caulk and stick it to the side of the tube. If you are sparing with the caulk you could get it back out easily to do tweaking.

If this project works out there are a number of us who have 3d printers and would be interested in designing a bracket that would hold the parts inside the tube.
 
I would think for prototyping purposes you could just use a little silicone caulk and stick it to the side of the tube. If you are sparing with the caulk you could get it back out easily to do tweaking.

If this project works out there are a number of us who have 3d printers and would be interested in designing a bracket that would hold the parts inside the tube.

The batteries won't last for a few hours during test.
Some simplified math:
ESP8266 might draw a peak current of 250mA. Let's assume it 200mA for it with MPU6050 and DS18B20.

I don't know the capacity of the battery, but I would guess 400-1000mAH for general AAA batteries. That means 2hr~ 5hr running time.

ESP8266 only draw 20us in deep sleep mode. That is nearly nothing compared to 250mA.
If we set the report period to 5 minutes and assume that it takes 1 minute to get the job done. We might roughly extend the time to 5 times. Obviously, the AAA battery isn't good enough. That's why I bought the 18650 declared to have 6000mAh capacity. Unfortunately, it doesn't fit.

BTW, the power supply to MPU6050 is not cut off during deep sleep mode. This might be a minor issue since it draws only 3.8mA.

Update: iSpindle reports every hour, or 60 minutes.
 
I doubt it takes a minute to update the receiving system. Let's say it does though, that's 120 to 300 hours (if my math is right, up to 12 days) so do-able for a batch of ale. I assume there's better batteries to be had so that should only get better.

Folks seem to be using this. My only concern would be using it for a long lager where the time + the cold would work against it.
 
I doubt it takes a minute to update the receiving system. Let's say it does though, that's 120 to 300 hours (if my math is right, up to 12 days) so do-able for a batch of ale. I assume there's better batteries to be had so that should only get better.

Folks seem to be using this. My only concern would be using it for a long lager where the time + the cold would work against it.

I think it needs around 10 seconds, not more than 20 seconds. Per my experience, ESP8266 takes less than 5 seconds to connect to my AP and setup the HTTP server. I might program to read the sensor for about 1~3 seconds to make sure it is stable. The connection to remote server should be done in 5 seconds.

Without some tools, I can't figure out precise numbers. That's a rough idea so that I have a target to shot off.

The circuit of iSpindel is simple and the same as I have thought: MPU6050, DS18B20 and the circuit for Deep Sleep of ESP8266. What I didn't think of is the measurement of power voltage. I don't understand the reason of removing the diode of D1 mini either.

If anyone is interesting in this project, you might now start to collect the parts and even BUILD it. Even I will start a different project, the hardware will be the same. I have only one concern about it: the leakage of MPU6050 and DS18B20 might be an issue in the long term. I would try to power them by GPIO, which provides maximum 12mA, if I had not soldered the MPU6050 on the NodeMcu board.

You know what? I am more willing to use this design because it is proven and there is already a software even I fail to create one.
 
I can't help but finish the software part.
tl;dr
As I have said, the most critical part is how to interpret the tilt data. I thought I could figure it out by plotting the real data. Nevertheless, TILT uses a polynomial of degree 3 while iSpindel uses degree 2. It must be a polynomial. I don't know how iSindel derives the coefficients, because the excel file doesn't seem to work on Apple's Number, nor on Excel On-Line. The only way I can think of is Polynomial Regression. It seems that I am right. I plug the data from the table of iSpindel and get the same result.

Now, it's time to build the hardware. A bigger container instead of a tube seems to be a better idea at this stage.

calibration.jpg
 
I can't help but finish the software part.
tl;dr
As I have said, the most critical part is how to interpret the tilt data. I thought I could figure it out by plotting the real data. Nevertheless, TILT uses a polynomial of degree 3 while iSpindel uses degree 2. It must be a polynomial. I don't know how iSindel derives the coefficients, because the excel file doesn't seem to work on Apple's Number, nor on Excel On-Line. The only way I can think of is Polynomial Regression. It seems that I am right. I plug the data from the table of iSpindel and get the same result.

Now, it's time to build the hardware. A bigger container instead of a tube seems to be a better idea at this stage.

Try NeoOffice for Mac. It's a free msoffice equivalent
 
I can't help but finish the software part.
tl;dr
As I have said, the most critical part is how to interpret the tilt data. I thought I could figure it out by plotting the real data. Nevertheless, TILT uses a polynomial of degree 3 while iSpindel uses degree 2. It must be a polynomial. I don't know how iSindel derives the coefficients, because the excel file doesn't seem to work on Apple's Number, nor on Excel On-Line. The only way I can think of is Polynomial Regression. It seems that I am right. I plug the data from the table of iSpindel and get the same result.

Now, it's time to build the hardware. A bigger container instead of a tube seems to be a better idea at this stage.

Just post the data file here. It's about 2 clicks to get Excel to fit a poly of any order to a set of data. I've got firmware (ANSI C) to do a 3rd order poly and a cubic spline fit if you want to fit in firmware for some reason.
 
Try NeoOffice for Mac. It's a free msoffice equivalent

I doubt it will work since even Microsoft's on-line version doesn't. The excel might have something in C# or VB because the on-line version Excel complained something about ActiveX or VB. Never mind, I've found my solution. Even iSpindel does it in other way, I am going to stick this way unless it doesn't work.

Just post the data file here. It's about 2 clicks to get Excel to fit a poly of any order to a set of data. I've got firmware (ANSI C) to do a 3rd order poly and a cubic spline fit if you want to fit in firmware for some reason.

Spline was my first homework in Algorithm class and the first algorithm that came to my mind. I tried studying it on the internet, ( I was too lazy to find my text book.), but one thing kept bothering me: ERROR. The data we have has error in it and is nothing near precise. It didn't seem right to me to derive the coefficients by fitting data with errors. Therefore, I concluded that regression is the solution. I am lucky to find a Javascript library for regression, and the example code even has a chart.

https://github.com/Tom-Alexander/regression-js

This library also supports exponential and other regression. If my real data doesn't seem to be polynomial, I can adapt quickly.
 
So in order to use this you need big mouth bubbler? Because it seems rather large to fit in a regular car boy! And I read a post on the English instructions where it seemed that you can't really change the size/weight of stuff? But you have to tune it no matter what, so I'm confused as to why you can't change the size of the container?
 
So in order to use this you need big mouth bubbler? Because it seems rather large to fit in a regular car boy! And I read a post on the English instructions where it seemed that you can't really change the size/weight of stuff? But you have to tune it no matter what, so I'm confused as to why you can't change the size of the container?
If you are reading the German instructions - you can't change the container because the carrier is made to fit into a specific container and will not hold the electronics in the same manner in a different one. If you are remixing the solution, you can make it work but unless you are a programmer you would want to use the same solution the person doing the coding is using.
 
Well, skimmed with the aid of Google translate. But, since I have access to a 3D printer, or even a small amount of silicone glue, I was hoping to be able to squeeze the components into a small enough vessel to fit into a regular carboy neck!
 
Well, skimmed with the aid of Google translate. But, since I have access to a 3D printer, or even a small amount of silicone glue, I was hoping to be able to squeeze the components into a small enough vessel to fit into a regular carboy neck!

I believe they choose the big container to fit the battery.
I can't put even the smallest board, ESP-01, with one 18650 in my 50ml centrifuge tubes.
 
Wouldn't it be possible to use the temperature readings as an input for BrewPi or some other fermentation temperature control software?
 
Wouldn't it be possible to use the temperature readings as an input for BrewPi or some other fermentation temperature control software?
It would ... but likely as a display point only. People doing that with the Tilt for instance have found the temp to not always be exact and certainly not steady enough to run the control from.
 
It would ... but likely as a display point only. People doing that with the Tilt for instance have found the temp to not always be exact and certainly not steady enough to run the control from.

MP6050, the sensor I use, has a temperature sensor built-in. The reading is the temperature of the die, not environment temperature. The longer the system runs, the higher the temperature seems to be. I was convinced again when I learned iSpindle uses a DS18B20.

I checked the specification of the Bean Arduino. The temperature sensor of Bean is part of the accelerator sensor, BMA250. I don't have any knowledge or experience with BMA250, but I doubt the temperature reading is affected by the accelerator sensor, if TILT doesn't have a dedicated temp. sensor.

You can't use the temperature of iSpindle because iSpindle wakes up every hour. Of course, you might be able to config a shorter time in price of shorter battery life. I don't think that will work.
 
I've been giving some thought to this (more than I care to admit actually). My plan has been to respin this into a custom board using an ESP32 (In part because it has bluetooth, and in part because I've been looking for an excuse to play with one.). By building a custom board I'm pretty sure I can make it fit in a 50mL tube.

Mockup.png


I've done some power estimates and here's what I've come up with.


Code:
Component	Idle(mA)	Active(mA)
ESP32	        0.02	        260
MPU6050	        3.9	        3.9
RT9013	        0.05	        0.05
DS18B20	        0.0001	      1.5

So if you assume 10 seconds to update 4 times an hour (the code currently does every 15 minutes until the battery drops below a certain level then steps back to 60 minutes) you end up with an average load of about 6.9mA therefore to last 14 days you would need a capacity of 2310mAh, which is right about where a 18650 is. There are a lot assumptions here so actual performance may vary.

There are also newer versions of the motion chip that have more advanced low power modes. I need to look in to how they're using the sensor in the code more in order to understand if we could take advantage of that.

Another issue with the 50mL tube that I hadn't thought of until recently is buoyancy. I did a test with just the battery in a tube and it floated at the level of the cap. I need to study the math more but I'm guessing that's not going to let it tilt correctly. I'm not sure if a taller tube with the same diameter is available or if I can 3d print an extension to it.

Still a lot of work to do...
 
Great to see someone pick up this challenge! I'd love to try to help, although I'm not sure how much help I could be!

I've been thinking about this too. Unfortunately my understanding of coding and electronics is novice level only.

My "bright idea" was in wondering why these solutions try to cram all the electronics into the float. It seems like getting a thermowell into the fermenter is a doable thing for most of us, why not build this so the accelerometer can be put through the thermowell and run it via wires with a control box on the outside? I am picturing something like a traditional thermowell, with a hinged section at the bottom that is just large enough to hold the accelerometer.

Something like one of thesehttp://www.mouser.com/ProductDetail...Elgu6tBH0Q5RUFCADH1Y7Rldu1q47IerSyRoCHwPw_wcB

It would take some work to figure out how to connect things in a sanitary way down there, and with the reduced weight it would take some experimenting to balance the thing somehow. But I think we could even figure out how to do it in stainless if we set our mind to it. The joint might be tricky, but I tend to think it might be able to just be tethered via the wire to avoid having a hinge that could collect nasties.

One of the ways my brain got to this idea was thinking bout that 50 ml tube floating in the krausen. If the sensor was held under the krausen, wouldn't it have a better chance of not getting crusted up and changing its buoyancy?

I would love to hear some of your thoughts on this idea.
 
I suppose I get the challenge of learning/doing such a project, but the Tilt is pretty cheap. I think the time you end up investing for one-off runs would not be worth the effort compared to just buying the Tilt. Unless you wanted to make a business out of it... just check you aren't infringing any IP protection.
 
lol! DIY never pays if you figure in your time!

I would love to turn it into a business, but that would not be my primary goal. I have my hands full with my day job!

It's about just learning and trying something new for me. I love problem solving challenges. Also crave the sense of accomplishment in making something that works.
 
lol! DIY never pays if you figure in your time!

I would love to turn it into a business, but that would not be my primary goal. I have my hands full with my day job!

It's about just learning and trying something new for me. I love problem solving challenges. Also crave the sense of accomplishment in making something that works.

Exactly.

If cost is the only point, why bother home brewing?
 
Wouldn't it be possible to use the temperature readings as an input for BrewPi or some other fermentation temperature control software?

This is can be used in the current version of Craftbeerpi I believe.
 
I feel like if you hard wired anything to the float then the wires would throw off how the float reacts to the change in density? Like the hanging wires would throw off the center of gravity and couldn't keep it consistent depending on how the wire hangs.
 
Back
Top