Submitted by Dabrush t3_yd4jph in DIY

I am currently getting started on a small thread winding machine, which would allow me to wind an approximately accurate length of string or thread from a big spool to a small spool or card.

I have a few different ideas and there is one project on youtube, which however requires a lot of 3D printing.

One general trouble I have is that I have no real idea how to measure the amount of thread being spooled. If I just measure according to the rotations of the spool being spooled onto, this wouldn't at all consider the spool getting thicker with the thread already on it. If I run it through a pulley and measure the rotations there, this would be highly dependent on enough tension and friction being present at all times to turn it. I am not sure if an optical solution or similar exists as a component for a microcontroller that could be used.



You must log in or register to comment.

juz_sayin t1_itq6m5y wrote



gt_ap t1_itrdgjk wrote

> len(string)

As a DBA (T-SQL), I have to modify this a bit to correct the syntax:

select len('string') as 'Length of String'


cfdeveloper t1_ittgs54 wrote

>as 'Length of String'

it bothers me to see spaces in there

edit: it really bothers me. I would consider caning of this offense.


gt_ap t1_itthfyq wrote

Username checks out. lol

Actually, it depends on the application, but I'll sometimes do something like "as 'LengthOfString'" or "as 'Length_of_String'".


HalcyonKnights t1_itpx98g wrote

Make your measuring "pulley" more of a flat-sided barrel and wrap the thread around it a few times before it goes onto the spool. That will maximize the friction and keep it moving, but keep the thread on a single layer where the diameter wont change your measurement. If you are 3D printing (or even if not) you can get really cheap skateboard bearings that you can put into the design too if you need to, especially if it's thin thread that ends up breaking on you. A separate, adjustable tensioner (spring or weighted, maybe) would probably be a good idea too.


Dabrush OP t1_itpygwq wrote

This does sound like a relatively safe idea, now I'd just have to find a good way to count the rotations of that barrel, or ideally just give out the total spooled length directly.


Angdrambor t1_itq6j57 wrote

Just buy a Measuring Wheel and skip building your own mechanisms. It's designed to be rolled over the ground for long distances, but there's no reason you can't use it to measure thread rolling over the wheel.

If your string keeps falling off the wheel, you can glue cardboard guides to keep it in line.


HalcyonKnights t1_itpzrlf wrote

I would not try to reinvent that Wheel (unless you want to spend more time and money on the learning experience).

Mechanical (Rotating Shaft):

Mechanical (Paddle Whack method):



Gubguls t1_itr3j2h wrote

I don’t think that’s the type of sensor he needs. Something like the rotary encoder as was suggested.


SuperbLlamas t1_itqjqeq wrote

Rotary encoder is how I’ve done something similar in the past.


seriouslea t1_itrox9a wrote

This is the answer. I used to work at a production yarn dye house, and this is exactly what we used to measure our spools of yarn while winding.


amarrah t1_itth3o7 wrote

Of course it’s like $13. If it was specific to yarn it would be $120


ursus-habilis t1_itq09ap wrote

Taking a practical engineer's approach - what accuracy do you actually need? You may find the difference between the actual length and the measured length after stretching and increased spool circumference is largely irrelevant. Or you can apply a conversion factor after the event to get 'close enough'.

Alternativel, an idea out of left field... could you find a way to precisely weigh the spool and calculate the mass of added thread, assuming you know the weight of a reference length of the thread to then convert it to a length?


Idontknowhowtobeanon t1_itqusao wrote

This is also a good solution, threads are often sold in weights which literally is the weight for a given length. Issue could be precision scales but depending on how froggy op is feeling, you can make a very precise and accurate scale with a strain gauge and a cantilevered beam. Full disclosure: didn’t watch this video, I’m at work.


Lazysailor12 t1_itt8foe wrote

This is most logical to me if you don’t need absolute accuracy. If you wanted more precision you should also be reasonably able to estimate the spool circumference increase in relation to the length (after x revolutions, increase diameter by y). Yes this is not perfect as diameter will require increasingly quantities to “grow” but.. close enough?


OTee_D t1_itq166g wrote

Put a wheel on a spring mounted arm between the 'source' and the target spool your string passes just by.

This way by adjusting the spring you can control the tension it winds up the string and also count the rotation of THIS wheel that doesn't change it's diameter.


r2k-in-the-vortex t1_itqkwmh wrote

If you are unsure about tension you can sandwich the string between two pulleys like so O|O

If the pulleys are tight to each other, the string can't slip in between and then you count rolls with a magnetic sensor or smth. Do it well and it'll also double as your tensioning mechanism, you kind of need proper tension to wind nice looking spools anyway.


Blah-squared t1_itr0mv6 wrote

They make a MEASURING DEVICE for FISHING, CALLED A “LINE COUNTER”, which is basically a small wheel to measure, by foot, how much fishing line is going out. Or on too your spool. I imagine you could configure this for your task at hand.


-kilgoretrout- t1_itq5sd0 wrote

You could start with a known quantity of thread. The starting known quantity could be measured out on a swift or niddy noddy or warping board/reel. Then wind on to your spool and then count/measure the remainder. If you want to know the number of turns required to fill a certain amount, you can count as you go.

Also they do make yarn counters, but whether it would work for this would depend on the thickness and material of the thread.


craigmadbricky t1_its60k3 wrote

Fishing rod line counter for the win. Too many Rocket Surgeons here, 🤯🤣😜


Dabrush OP t1_itslsx6 wrote

Many stupid suggestions, jokes, and overly complicated suggestions that do the job worse than what I've already come up with myself. Line counter is the way I'm going, it seems like the perfect, relatively foolproof solution.


michaelpaoli t1_itq4332 wrote

Probably very similar to how lengths of cable are measured. It's generally pressed to a metal wheel with a flat outer diameter, and with reasonably appropriate accuracy in machining and such, length is measured with that - often with a counter (and reset button) attached to that wheel. Mostly just need to reasonably well press cable to the wheel as it's drawn across. Well, string would be fairly similar, reasonably well press string to metal wheel like that as the string is drawn across.

Could also do something like accurately measuring circumference of some suitably designed wheel/hub, running the string around that one full turn then off onto something else to be spooled (so it doesn't get fatter with string piling up), and carefully measure it's rotations (and start and end angle of rotation). Probably not too horribly complex to do something like that, and may not be as sophisticated, but may be a much easier set-up ... with a suitable wheel/hub and mounting, and string routing means and procedures.


buffinita t1_itqaejg wrote

what about using time as a metric; run the machine for 30 seconds; how much has trransferred from spool A to spool B


Braincrash77 t1_itqlxc6 wrote

I like to keep things simple. I would look at commercial line counters. Wire line counter for heavy duty or fishing line counter for light duty. I also like things cheap, so I might settle for counting turns off the supply spool. Assuming the supply spool has a largish diameter, its OD will not vary significantly as line unreels.


corvus7corax t1_itrctzq wrote

Low- tech ish: Cut thread into the lengths you want it to be spooled to. Then time how long that takes to wind. Repeat several times. Time your winder to run that length of time. Run a few batches spooled from longer string for the time period. Check the length on the spools would for the time to make sure they are the correct length.

Maybe add 5% length to make sure your customer are always getting at least the predetermined length, to prevent less than a full measure ever being provided.


FortWendy69 t1_ittapm3 wrote

Copy what they already do in sewing machines, have the thickness of the spool hit a switch that turns it off when it gets to a certain thickness. Then all you need to do is calibrate the position of the switch for the thickness which corresponds to your desired length.


thelastestgunslinger t1_ittqj3f wrote

Would weight be doable?

Weigh some thread at the right length. Add a scale to the machine that can weigh the spool.


twokietookie t1_itpxgih wrote

You trying low tech or high tech?

I think engineering wise though it's going to be crucial the string passes around/through a wheel or wheels pinching it so there is no slip. Go to home depot and they have wire/chain/rope for sale by the foot that use these mechanisms which are purely mechanical.


Dabrush OP t1_itpyh93 wrote

I would assume that somewhat high tech will be needed, if I want to spool like 20 or 50 meters and don't want to count rotations by hand. One idea I had for a lower tech solution would be to turn the bobbin being spooled onto with a hand crank with multiple gear reductions, meaning that one turn would for example equal 1 meter. However this solution would only work if I ignore the thickness of the thread already being spooled onto it.


twokietookie t1_itpys2y wrote

No no, seriously go take a look at the mechanism at a hardware store. They just have a rolling counter. Could probably buy something off the rack. I thought maybe you needed extreme precision.

Edit - Also just saw a "digital line counter" on Amazon for $40.


Dabrush OP t1_itq0chx wrote

Oh yes, line counters seem to have the functionality I need, seems like they're made for fishing but I am sure I could make it work for my stuff as well. Thank you for that find! Any search with thread or string length just resulted in info about programming strings and machining threads for me.


twokietookie t1_itq13k9 wrote

Out of curiosity what's the project for?


Dabrush OP t1_itq496i wrote

Just for dividing up some 1000m spools of thread into smaller batches, since it is rather hard to get in this country and resellers are taking big advantage of that by selling 100m spools for more than half the price of a 1000m one imported.


Dabrush OP t1_itpzn5y wrote

I haven't seen something like that in hardware stores here, we just have a long measuring and cutting bench.


IronSlanginRed t1_itqw02u wrote

If they sell bulk rope, they usually have a counting wheel. The ones that don't have one, don't usually have a "rope room".


Blah-squared t1_itr12j4 wrote

They make a Line Counter for fishing rods. A small wheel that measures, by foot, how much line is going out, or can be used to measure how much you’re spoiling on the reel. I would think you could configure it for your application.


MyNameIsRay t1_itq4myv wrote

I would pinch it between 2 rollers, with a bit of pressure exerted (like spring tension).

Similar to what you'd find in a pasta machine. If it works for noodles, it'll work for string.

The clamping force creates the friction you need to get an accurate reading, the resistance of turning the rollers will create tension you need for a clean wind onto your small spool/card, and you can calculate the length based on roller diameter/revolutions (either with a gear, an optical encoder, or just counting revolutions, depending on how far you want to go).


collarsandchains t1_itqgslh wrote

Have done something similar by measuring the speed at which my motor pulled the thread and tracking it by time, not perfect but came in close enough for my use case


incizion t1_itqkaf9 wrote

>I have a few different ideas and there is one project on youtube, which however requires a lot of 3D printing.

Don't have much to offer on the rest of this, but if 3D printing is your only obstacle, check your local library. A lot of public libraries have 3D printing services for pretty cheap or even free. They will usually handle the actual printing, you just supply the project file.


pablo1325 t1_itqlqul wrote

I used to work in paper converting(converting a roll of paper into napkins), and machine speed is basically calculated by what you want to do in reverse. To get a continuous sheet speed while a roll of paper is consumed, the diameter of the roll is measured continuously and the rotational speed is adjusted accordingly.

Assuming you are using some sort of programmable controller, and your wind up speed is constant, if you can measure the diameter you know how much you are winding. There are a bunch of ways to accomplish that.


thisnameblows t1_itqmr7n wrote

Either weight or time, can weigh your completed spool, or take a few test measurements of length/second of runtime, then measure the seconds it's running. Or better yet a combo of both


hapianman t1_itqolut wrote

I am not helping you with this engineering job interview question!


GamerByt3 t1_itqope6 wrote

Local hardware store here has a length measuring device they use to measure out rope etc. The rope passes through an opening, and spins a wheel that spins a counter. It looks somewhat similar to this

The one our shop has here is probably from the 1950's though and has 3 counting wheels, one for ft, inches and yards. It looks pretty badass imho.


Idontknowhowtobeanon t1_itqtemd wrote

The radius of your spool increased by the diameter of your thread with each complete spool layer. The tricky part is getting your thread to go down in even layers. I used to work for a cable manufacturer and i believe we could achieve +3% tolerance.

Take your internal spool width divided by the thread diameter (which can be found online from thread weight or measured directly if you have a micrometer) to get the number of circumferences per layer. Set up code to say every N turns where N = the above number of circumferences, spool diameter increases by 2*thread diameter. Whatever precision your motor turning the spool has will determine your accuracy (and you’ll need to control it with an arduino or similar). There is also a fit factor. It should just be a simple % that accounts for gaps between the threads on the spool caused by seating issues and overlays. Some sites recommend that a spool will contain 80% of its expected capacity due to imperfect winding so you might start there.

Best suggestion is to start by winding known lengths of thread without any adjustment and finding the error in your program, then just adding a fudge number (average error as a percentage).

Also keep in mind that to achieve “perfect spools” you’ll need to have an ideal fleet angle (angle the thread approaches the spool as seen from above on a horizontal spool) from your sheave (the guide into the spool which oscillates with the thread). It should be between .25 deg and 1.25 deg.

Equation should look like

Rotation amount (deg or rad)/360 deg (2pi rad)* spool diameter*pi

Your loop should increment by your chosen motor precision.

Hope this helps


OutOfStamina t1_itqvqs9 wrote

>If I just measure according to the rotations of the spool being spooled onto, this wouldn't at all consider the spool getting thicker with the thread already on it.

Is the thread always the same thickness?

Measure the thread some other way, wind that thread onto the spool noting how many turns it turned, and use that from then on.

Run some tests with thread of known length -> "X turns does what I want it to do" -> Do it X turns from then on.


ThatGuyWhoBarksABit t1_itqxc1k wrote

Probably too simple, but why not thread the spool completely, then take it off the spool, and measure the string?


fangelo2 t1_itr08vw wrote

There is one at Home Depot too. I once needed 50 feet of 3/4” rope for a safety line. I told the girl working there how much I wanted and she started pulling it. I went to get something else I needed while she was doing it. When I came back, there was a huge pile of rope on the floor and she was just finishing. I said that I only needed 50 feet. She insisted that it was 50 feet and put a label on it. I took it to the cashier and checked out. When I got home I measured it. Over 300 feet. It must have been slipping when she pulled it.


WittyTiccyDavi t1_itr6g29 wrote

Someone's getting a talking to after the next RGIS visit... That's not even a conversion error, as neither 50 yards nor 50 meters would equal 300+ feet.


similarityhedgehog t1_itr9urw wrote

i'm not sure what you're working on, but you'd want an intermediate spool with a single winding around a known diameter, the spool would be on an axle with say a larger diameter disk with evenly spaced marks around its outside edge, and an optoelectronic sensor counting each mark that passes. set the number of marks to count, corresponding to the length of thread you want to wind.


rgraham888 t1_itrgqkh wrote

The issue with the spool diameter increasing as you wind string on it is a differential equation, I did something similar in my Dif Eq. class for the width of cassette tape reel. But I'd just use multiple wraps on a pretensioner pulley.


reefdiver118 t1_itrm0gs wrote

Measure out a couple of feet and weigh it. (ie: 10 ft/2 oz) Weigh the spool before you start spinning. When you have finished the spool. Weigh the finished spool subtract the weight of the spool and divide the remaining weight by your test string. It may not be 100% accurate but it should be close. Or you could just sell it by weight.


IddleHands t1_itrmbe9 wrote

You could put a measuring wheel to run perpendicular to the spool - the thread would pass under or over the wheel. The linear feet of travel should give you the amount of thread on the spool.


abfarrer t1_itrrym3 wrote

I'd run it between two rubber wheels, one to measure, the other to hold it tight to the measuring wheel to prevent slipping. As long as the thread isn't super thin and it's a flat, even, sticky enough rubber wheel, it should work. Then you just have to count/convert rotations of the measuring wheel to the length.


craigmadbricky t1_its5fr3 wrote

Just repurpose a rolling tape measure. Its got a rubber wheel and you just tape the wholr contraption to some cardboard or ironing table and pull it across the wheel. Trial and error or you can buy a LIDAR hat and SBC computer and program it to measure moving string... 20 bucks my way or $500 and a BS in engineering the other way.


pentasyllabic5 t1_its5tlo wrote

There are good posts on how to measure the length (counting wheel, etc). In terms of getting tension consider doing what many commercial sewing machines and almost every motorized vehicle does with it's belts.

That is you change the direction of the thread so that it creates tension across the surface of whatever you need to turn to get an accurate measurement.


Fabri-geek t1_itsytgf wrote

You first have to ask: How accurate does your measurement need to be? +/- 5%? +/-1%? +/- 0.5%?

And once the error been established, the change in the diameter of the smaller spool may be irrelevant or well within your error budget.


mnij2015 t1_ittf04a wrote

Who measures tolerances in percentages? Unless you’re trying to calculate a safety factor. +/- usually in inches or mm.


yvonnars t1_ittr6nl wrote

I knit and I've seen indie dyers using a little device to measure yarn yardage lol. Not sure if that would work for your strings tho


SpuddleBuns t1_ittt21m wrote

Have you watched this?

While a 3d printer makes things more compact and sleek, before 3d printers, many things were assembled using components that got the job done, even if they weren't the "prettiest." Sheet metal can be bent into many shapes...


magnolya_rain t1_ittxnde wrote

there is such a thing called string/rope length counter. Just google it.


VectorD t1_ittxtca wrote

std::string is part of the STL so you can call std::string::size()


Warrensk t1_itu7oq4 wrote

Is it always the same size thread? Count the number of rotations it takes to fill the final spool. If it’s consistent just use that number of rotations


vryhngryctrpllr t1_itpz2g4 wrote

Measure a thread, count the # of turns it takes for it to get taken up on the spool.

Measure another thread and count turns.

Repeat and plot the data points above until you're able to fit a formula for thread length as a function of spool radius & turn count.

Use that formula.


Dabrush OP t1_itpzje8 wrote

But that formula would break whenever there is a thread with another diameter or a spool with a different length.


perplexedtriangle t1_itq5t9d wrote

I have a device that can measure the distance of fibre optics which would work but they're many thousands of dollars (google an OTDR - Optical Time Domain Reflectometer). You can get ones for cat6 called a TDR but that would be imprecise because of the twist rate. Sorry I can't give better advice. Some lower cost PMLS devices can measure distance but only through a loop that returns to the unit.


r2k-in-the-vortex t1_itqlzuh wrote

How the f is TDR supposed to work for string? What signal are you planning to reflect back via a string of all things? A string that is already wound on a spool by the way. TDR only works for waveguides of one sort or another, it's basically saying "echo" and waiting for how long it takes for reflection to bounce back from impedance discontinuity on the other end.


perplexedtriangle t1_itqp5u5 wrote

The suggestion was to replace it with copper cable, which I then explained would not work


SkooksOnReddit t1_itqr1x4 wrote

Just do it by winds, save yourself the trouble. Measure how much a single wind will be and then you can figure out how many winds you need for any length.

Don't overcomplicate it. I mean how accurate do you actually need to be?


mnij2015 t1_itterfc wrote

In excel you can count the length of a string by =LEN(STRING)