Doc, those are good points, but they have issues. I need this to be small, affordable, and work in a wide rand of environments. I agree if you could limit the places it's used to only indoors with nice backgrounds then it would be a much easier problem, but just like with most consumer products you just can't make those kinds of requirements (especially when they didn't exist on previous versions).
I already have a device that measures distance very accurately if they are willing to respool, but there are significant advantages if we can get a fairly accurate guess at length while spinning the yarn. I did consider putting a measurement device infront of the bobbin, but at all the possible locations there are issues with that so I think estimating bobbin diameter is probably the best option (at least as a first effort).
Cat, I'm hopeful the bobbin will fill pretty evenly and that one time of flight sensor will be good enough. This is mostly a backup plan if I can't get the mechanical system working well. I did mention weight being using previously since I do plan to have a loadcell setup to help with weighing the yarn. The issue with this is the density of different yarns vary a lot (more than 2x).
Your FM idea is something I would have never thought of. I'm not sure it would work because the yarn that is getting fed onto the bobbin is constantly changing in tension and that might affect things so much that the FM gets too noisy. I also am not sure what torque dither even means. I also have no idea how the math of this would work. My hunch is this system wouldn't work just based on the current version having different vibrations depending on lots of factors, but maybe with some really clever algorithm we would pull out useful info. If my other approaches fail I'll take a little time to understand the maths of this better.