For the final project of Introduction to Physical Computing, The Weavers, which consists of Jenny, Megan, and Ghalya, was assigned to create an assistive device for Rebecca Herbert. Rebecca loves weaving. For her, the most tedious task in weaving is winding the yarn into a ball because it hurts her wrist and she cannot tell how much she winded. This documents the initial prototype of a motorized ball winder that would save Rebecca from doing it herself.


Ball winder in action.

Full shot of prototype.

User setting the amount of yarn that the ball winder will wind.

We created an automatic ball winder; when weaving, the weaver must initially take the yarn they have and turn it into a form that holds its shape well and is easy to use. Most people do this using a ball winder, which requires the user to turn a knob around until the yarn has gotten into a ball. This step can take Rebecca hours, leading her to get greater pain in her arms, and discouraging her from starting new projects. We have set out to create a ball winder that automatically winds the amount of yarn that the user wants without having to manually turn a crank.


This is a ball winder that Rebecca uses regularly to ball her yarn by hand; we used it as a guide on how to make an automatic version.

These are two of the original schematics we made for our ball winder; it also shows some of our preliminary circuitry.

Testing Individual Components of Prototype

Top Surface of the Device with Prototype String Feeders

Diagonal string winding pattern of the prototype.

Testing different heights of to feed the string into the prototype.

Prototype spinning while collecting yarn.

This shows what our ball winder looked like when in use with Rebecca’s umbrella; this is how it would be used realistically in her house.

This is a video where we tried comparing the movement of our ball winder with the movement of the sample one Rebecca has to see how it moves differently.

Finished Display Screen

Our crit and talk with Rebecca.


Initially, the major problems were trying to figure out how to work the LED screen and the motor; we spent a while working on them and wound up going to office hours for help. After we assembled all the parts, we discovered that the yarn pattern on our ball winder is wrong; instead of forming a criss-cross shape that holds its form well, our ball winder creates a diagonal shape where the yarn goes over itself and doesn’t hold its shape. We spent a while testing different reasons why this may be by holding the yarn at different heights, changing the speed, and extensively comparing our design with the design of the manual ball winder we were given. We were told by Rebecca that the yarn pattern is not the most important step- so going forward we will work on perfecting our distance measuring before focusing on the yarn pattern more.

The critique on November 13th was extremely helpful in the process because it allowed us to touch base again with what Rebecca envisioned for her device. As we worked on the prototype, the string winding pattern was particularly challenging for us and we spent most of the time trying to mimic the exact winding pattern of a manual ball winder. However, after the critique and Rebecca’s opinion, we realized that the most important thing to her was to find the length of the yarn wound on the ball, not the yarn pattern of the ball. While the yarn pattern is helpful in keeping the shape of the ball after taking it off the ball winder, it is not essential to the project.  Rebecca also reminisced that her grandmother would wind yarn around her hands or between a person’s arms, which results in the same winding pattern as our prototype currently has. Thus, moving forward we will be focusing mainly on calculating an accurate distance that the yarn was wound, and try to solve the yarn pattern if time allows.

Another thing that we realized during the critique is that the design of the automatic ball winder must be more user-friendly. During the critique it did not function as intended initially due to some wiring coming undone; we had to make sure that it was plugged in. The button that we were pressing on the rotary encoder wasn’t easily pressed when placed in the box as well, so that needs to be fixed. In general, we want it to be easier for the user to input the amount of yarn they want to wind and to set up the ball winder.

The next steps of this project would be to implement accurate distance measuring functionality alongside a intuitive user design. This would entail measuring the string on a wheel before the yarn is put into the ball form. The user would loop the yarn into a feeder hole which gives the yarn to a rotating disk with a set size. The number of rotations is used to calculate the total distance traveled and therefore the length of the yarn. Then, the thread is fed through another feeder hole and wound into the ball. Currently, there is a screen with a dial that the user can use to input the amount of yarn they would like and press the dial starts the winding process. The screen also alerts the user how many yards are have currently been wound. To make the process easier and to give more functionality for emergency stops or different settings, a keypad would offer more options for the user to have. The main focus for the future of this project is to gain an accurate reading of the yarn measured as well as make the process of using the product as streamlined as possible.