08/21/2019 at 03:27 •
Long long ago, I took a break from this project for a while. Then I picked it back up again and totally made it a thing and forgot I had even put it on Hackaday until I googled myself and remembered again. :) I've delivered 370 SkeinTwisters thus far, and after this next batch is made, there will be SkeinTwisters in 45 US States and on 6 continents. If anyone stationed in Antarctica wants one, I'll just send it to you for free. Actually, no wait. I'll deliver it PERSONALLY. I dig mountains, snow, cold weather, love wearing and sleeping in down, and don't complain in the face of hardship. I'll be a freakin asset. Call me.
Anyway...it's totally a product, albeit a niche one. I still don't know when I'll saturate the market and the demand will stop because there isn't really any demographic info available about the number of people dyeing yarn out of their houses, garage, and small workshops. So I build them in batches, and I crowdfund/run pre-orders for each batch so that I don't build too many and get stuck with inventory. As long as people keep wanting them, I'll keep making them!
Official website is: www.alpenglowyarn.com/skeintwister
05/26/2016 at 21:16 •
How does it all work, anyway? I've explained that generally, a knob sets the desired twist firmness. Press a foot pedal to turn the twister on, and it'll automatically turn off when it gets to the set firmness. But how do is firmness calculated and compared?
Yarn is essentially a big spring. As the skein gets more and more twisted, the amount of torque required to keep it twisted goes up. I'm using a brushed DC motor, which means that current is directly proportional to torque.
Torque is difficult to measure directly (from a pure electronics perspective), but current is easy. So instead of setting a torque limit, we can set a current limit. First, we'll need to measure the motor current. Here's the schematic, for reference (also in the "Files" section as a pdf).
Starting on the GND side of the motor, there's a FET. Ignore it for now. Next is a 0.005 ohm current sense resistor (it's really just a calibrated thick bar), and the voltage across the resistor goes into an INA199 current sense amplifier. The motor can pull about 5A before it stalls. Using trusty:
means that the voltage across the resistor at 5A is 0.025V. We're running the processor off 5V and would like to use that entire range to sense current, so we can really dial it in. 5V/0.025V = 200. It just so happens that the B3 model of the INA199 has a gain of 200V/V, so it's perfect. Add a little TVS clamp to prevent any accidental over-voltage from damaging the processor pin, and a little RC filter to smooth out the signal. That signal then goes into the AIN0, or the "positive" input to the analog comparator, and is a measurement of our motor current.
Now we need to be able to set the current limit. Really, we don't even need to know what the exact current or torque is, users don't know this piece of information and will just turn the knob until the skein feels right. So a simple trim pot that varies the comparison voltage from GND to 5V works great. Moving the pot towards GND will be less torque and a "softer" skein, moving it towards 5V will be more torque and a "harder" skein. This voltage is fed into the AIN1 input, or the "negative" input to the comparator. When AIN0 > AIN1 (or motor current > the setpoint), the comparator generates an interrupt.
Next, we need some method of telling the motor when to turn on and turn off. A momentary foot pedal is great for this. Feed this into a digital input that is internally pulled high. When the foot pedal is depressed, the pin is shorted to GND. When the foot pedal is in the normal position, the pin is pulled to 5V. This pin is also INT0, meaning it generates an interrupt. I've set this to falling edge detection, so when the pin goes from 5V to GND (the foot pedal is depressed), the interrupt fires.
Finally, we need to be able to actually turn the motor on and off. The dirtiest, simplest method is to just use an N-channel FET on the GND side. When the gate is high, current flows through the FET and the motor is turned on. When the gate is low, no current flows through the FET and the motor is off. Important (but not shown on the above sketch) is that there's an additional diode across the motor, to prevent voltage spikes when the current is switched on/off.
Putting it all together:
- The foot pedal is pressed, generating an interrupt.
- The interrupt routine toggles the FET from off to on. Motor turns on.
- If the foot pedal is pressed again while the motor is on, the interrupt routine again toggles the FET. This time the motor turns off.
- Otherwise, when the motor current reaches the setpoint, the comparator interrupt fires.
- The interrupt routine sets the gate to GND and turns the motor off.
That's it! I've included the C code in the files section. Nothing happens in the main loop, it's entirely interrupt-based. I may eventually add a soft start (instead of turning the FET fully on, send a PWM to the gate of the FET which slows ramps it up over ~ 0.5s). This will decrease the start-up current spike, and allow for lower knob settings (more softly twisted skeins).
What about motor direction?
I'm glad you asked. This version is very simple, and the motor only goes one way. I _could_ add a complete H-bridge, which would allow the processor to also change motor direction. But does the processor really have to do this? Dyers are likely going to set the direction once, when they first use it. Then it'll be the same for the rest of its life. So keep the electronics cheap and simple seems like a better idea, and just use a DPDT mechanical switch on the power input to the motor to reverse the direction. This also allows the dyer to see which direction it's set to at a glance.
05/25/2016 at 03:26 •
The SkeinTwister's first major milestone has been achieved! The prototype unit is now with a fellow dyer, who is putting it through its paces even as I write this. I had the opportunity to demo it to a few more dyers at Vogue Knitting LIve than I anticipated, which was fantastic for getting varied feedback early on. It's always interesting to see how other people use it for the first time, the new motions definitely take a little practice to master, and dyers who have twisted thousands of skeins by hand have a lot of muscle memory to overcome. Despite that, the feedback was very positive. It's amazing how prevalent repetitive motion injuries are in this line of work - one dyer showed me scars on both hands from surgery due to stress injuries from skein twisting. The relief that several people expressed to me, and the difference it will make in their daily lives is hugely motivating. I know this is not curing cancer, but I'm happy I can make an improvement in a community I care about.
Onto more mechanical thoughts - the hook! If you'd think you buy a hook in just about any shape & size, you'd be wrong. I found this out early on, as I scoured both the internet and my local hardware store. Screw hooks are about the closest thing, but they're meant to carry large loads. They don't have a large radius, and the bigger ones are made from pretty thick wire so they don't deform. This application sees smaller loads, and needs a larger radius to accommodate fat skeins of yarn. Here's a selection from the hardware store. As you can see, they're a little too small for the end of this fatty skein to easily fit in.
Bicycle hooks are the next size up, and just too large. Plus, they tend to be plastic-coated, which is too grabby. The yarn should be able to slide off the hook easily. A shallower angle on the tip is also preferable, it should only be bent back enough to hold the yarn under tension. An "L" at first seems ideal, except that you don't want the yarn to rotate around the axis of rotation (and wobble), the yarn should rotate exactly on the axis. So a hook that only doubles-back slightly is best. This is a draft sketch of the hook and shaft coupler (more on the shaft coupler in a few.):
At first, I thought I may need a small hook for mini-skeins and a large hook for fatty skeins, and make them interchangeable. Toollessly, of course. The more I thought about this, the more I realized that mini skeins didn't actually need smaller hooks. People are used to winding them around a finger, which is much larger than the hook size I'd use for fattie skeins. So really, the same hook can be used as long as it's big enough for fatty skeins to fit on. I'm currently thinking around 0.2" wire OD is about right to provide a stiff enough hook.
The hook will be attached to the motor via a shaft coupler. Many motors come with a flat shaft designed to be used with a set screw, but most motor applications are also designed solely for torsional loads. This has both a torsion and axial load component. The dyer has to hold a fair bit of tension on the skein, to prevent it from doubling up on itself until _after_ the twisting is done. So there's a fair bit of load coming straight off of the shaft. A set screw only relies on friction to keep it in place axially, and there were a few mishaps early on where the hook did come flying off at me. I needed to devise a way to fix it permanently to the shaft in the presence of this axial load, so I decided to pin it. And since one hook will suffice, the shaft coupler can be permanently pinned to the shaft, and the hook can be permanently pinned to the shaft coupler. I'll use standard spring roll pins which are easy to install. I can have the motor shafts drilled by the manufacturer, have the shaft coupler made by a machine shop, and the hook made by a wire forming company. The next step will be to make more formal drawings, and send the hook and shaft coupler out to be quoted.
The enclosure & clamping mechanism is the last big mechanical task. I do want to integrate clamps into the product, because it's just kind of annoying to have to furnish your own. And C-clamps are pretty large and clunky, and since yarn likes to snag on everything in sight, they're just not a good choice. I'm thinking of mounting the motor (and maybe circuit board) to a metal baseplate, and having a threaded L clamping mechanism, similar to the yarn guide and ball winder pictured below. The enclosure could then be a vacu-formed or molded part that would only need holes for the threaded Ls. A threaded knob and metal or plastic piece would form the bottom of the clamp, also similar to below.
This ball winder uses an annoyingly small wing nut to adjust the clamp:
This yarn guide uses a much friendlier large knob to adjust the clamp:
I'm making good progress, it's exciting to flesh out some of these concepts!
05/12/2016 at 00:20 •
So, with the initial spaghetti-breadboard proof-of-concept phase behind me, it's time for Phase 2. I always like to get my projects into another person's hands as soon as possible. I mean, I think the Twister is good and that I'm on the right path, but is this actually true or am I just being optimistic? I have the perfect opportunity to get it into a professional dyer and peer's hands this weekend, at the Vogue Knitting Live event in Pasadena. Brooke Sinnes of Sincere Sheep is one of those rare people that won't fixate on the current prototype-y form factor, but will give excellent feedback about the general function and her particular use case.
There's nothing like an external deadline for motivation, so I've been busy taking the breadboard version, and soldering it into more stable & permanent perfboards. I love these little 1" square guys from Sparkfun, I try to always have a handful of both the single and double-sided ones on hand. Super useful.
The SkeinTwister electronics have gone from the spaghetti mess you see in the background here:
To the slightly less spaghetti-mess cable harness on the bench:
To installed in an enclosure:
The two connector inputs at the top are 12V from the power supply brick, and a 1/4" audio plug from the foot pedal. The foot pedal is momentary, currently configured so that one tap starts the motor, and another tap stops it. The green board in the upper right is the motor current feedback amplifier (the SOT-23-6 chip on the green adapter board), and the motor power control FET. In the lower left is the processor chip and a 12V to 5V linear regulator. I've kept the processor (an Atmel ATTiny85) in a carrier to make software updates easy. I can simply send Brooke a chip with new code if I have to, and she can easily replace it.
The top of the enclosure shows the twist-firmness knob, and the ever-present-on-a-prototype blinking LED:
The knob sets the automatic cutoff on twist torsion. The dyer can set it high for large skeins that need lots of torque to bundle up nicely, and lower for mini skeins that need less torque. When the foot pedal is pressed once (momentary action), the motor will turn on and the hook will start twisting the skein. When the proper amount of torque/current is sensed, the processor turns the motor off automatically. Or, if the setting is too high for the skein you have and your fingers are about to have the life squeezed out of them, you can press the foot pedal again and it'll stop. Ask me how I figured out the need for that feature.
The wires exiting the right side go to the motor, which for the moment, is simply clamped directly to a table, like the first photo above. I've connectorized it, and I'll actually give Brooke a couple of different motors to try. Some are faster, some are slower, some are torquier, some are less torquey. I know which I like best, we'll see if she concurs. Mechanical design is next on the development list, for the hook, enclosure, and clamping mechanism.
This is obviously a rough prototype, but I believe strongly in getting user feedback early, before I'm too far down one path. It makes changes easier and less expensive. I also believe in getting feedback on pre-production prototypes - what I define as my first attempt to make a real production unit. Those will have custom hook, enclosure, and clamping mechanisms, as well as actual PCBs. I'll make roughly a dozen of them, and have a beta test group run them through their paces. Then I'll have representative feedback from a variety of different use cases and conditions, and be able to make adjustments before committing to a production run.
I'm excited for the first unit to fly the nest! I might even be able to demo it for a few more dyers at the show this weekend, the more feedback the better. Hopefully I'll get a few videos to post too!
04/27/2016 at 03:42 •
Hey! So I've built a very rough proof-of concept model of the SkeinTwister. This is the first version - just a foot pedal that connected and disconnected power to a motor. Here's a video of it in action, so those of you not familiar with the Wonderful World of Yarn have some idea of what I'm talking about:
A few dyers I talked to were interested in the ability to twist a skein exactly the same number of times each time, automatically. This thought percolated in the back of my mind for a while. I certainly could instrument it with a rotation counter, and dyers could use it with a SkeinMinder. But I felt that this wasn't the right solution. Even though people were asking for the same number of twists, what they really meant is that they wanted each skein to look and feel the same.
If each skein is exactly the same, this equates to number of twists. But the reality is that yarn is practically a living thing that hates to stay put. During dyeing, sometimes loops will get snagged, causing the skein to get a little out of whack, and need a different amount of twist to look tidy. Also, skeins will actually measure slightly different circumferences, depending on how far out on the winder arms they were initially wound. Not to even mention that it's difficult to keep perfectly consistent winding tension over different winding sessions. The upshot is that hanks will require different amounts of twist to look and feel consistent when in their final twisted put-up.
So if there were just some magical way to measure the force it takes to wind a skein.....good thing DC motors are pretty magical in that force = current. The second proof-of-concept has a current sense amplifier fed into a comparator on an ATTiny85 processor. The other side of the comparator is hooked up to a trim pot (knob), so the user can adjust the "skein firmness" and wind consistently, no matter how the skein is prepared.
A video demonstrating the automatic stopping capability: