• TalkBass has been independent since 1998. Add your voice.
    Create a free account to reply to discussions, view embedded media, and browse with fewer display ads.
    Join freeLog in
    Want zero display ads or expanded classifieds tools? Compare plans.

Custom fully automated pickup winder build

I need some pickups for a few upcoming builds so started looking into winders. The readily available commercial winders that only control the bobbin are really expensive, and ones that are fully automated are stupid expensive. There are some DIY examples too, but most start off along the lines of "go to your local second hand shop and find an old sewing machine..." and, at best, you end up with a scatter wound pickup.

So I figured, for the price of one good commercial pickup, I could build myself my own fully automated winder using readily available off shelf parts.

Here's what I have so far:
  • Stepper bobbin motor running at 500 RPM (10 minutes for a 5000 turn wind)
  • Stepper controlled wire guide with 0.02 mm (about 0.001") steps
  • Slow start with synchronized bobbin and wire guide for perfectly flat wind layers
  • Unlimited start/stop with perfect layer alignment
  • 8 digit display/buttons and with menu to set options and display to count winds
The menu allows the ability to configure:
  • Total number of winds
  • Wire thickness (used to automatically calculate guide rate)
  • Bobbin width
  • Winding direction (CW, CCW)
All the parts so far have cost $127 CAD (about $95 US), about half of which is the linear motion slide, so the budget is looking good.

As always, this turned out to be much more work than expected. I didn't plan to learn so much about how Arduino interrupts work, nor write custom functions for the stepper library, but it was all quite educational. The progress so far has me looking forward to the finished project. I still have to bolt all the pieces together, fabricate a tensioner, spool holder, bobbin mount, wire guide etc. but the motors and controls are done and working perfectly. Of course, I still need to see if it can turn a decent sounding pickup! I will post progress as I make it.

Once complete I will post the source code and parts list if anyone is interested. For now here is a picture of the motors and controls prior to mounting:
electronics_and_motors.jpg
 
Last edited:
Scatter wound or honeycomb winding reduces capacitive losses between the windings. In theory, it should result in a brighter, more even response.

That's what they say......somebody says, anyway. In practice, scatter winding a pickup usually makes it warmer and thicker sounding, because the wire is spread out more in relation to the magnetic field. The outer windings are farther away from the denser part of the field.

A coil that's wound evenly and precisely is more compact, putting all the turns tightly within the field. Its sound will be clearer and more even. If all else is the same, of course. There are many variables in pickup design.

The main reason scatter winding is so popular today is that the ladies at Fender did it way back when. And, by definition, they made the best sounding pickups ever! Why did they scatter wind? Because they had simple hand-feed machines back then, and random scatter winding was faster and easier than precise winding. And their bosses were happy with the sound and the production rate. So that's what they did.

These days, most small boutique and hobbyist pickup wonders don't bother to make automated feed machines. Too much trouble. Scatter winding is easier to do. So therefore, because the Fender ladies did it, it must be the magic secret to better sounding pickups! Harumph.

And yes, I make my own pickups for my basses. And I built my own winding machine, which does precisely layered feeds. I've experimented with scatter winding, and I like the sound of the precise coils better.
 
Cool project! I'm working on a similar winder, using Arduino controller. Instead of a digital display, I've been using the serial port back to the computer for data input. I've got mine running at 800 rpm and worked out the acceleration. Still monkeying with the deceleration. You'd think it would just be the reverse. I'm pretty focused on whether it skips steps. Anyway, Cheers! Great project.
 
  • Like
Reactions: Jeff Siddall
A counter would be a good addition and pretty easy. Regarding deceleration, when the pickup is almost wound it has more mass. The momentum is greater than when starting. Step motors are, by their nature, more likely to skip steps as they go faster. That's another reason the counter is a good idea. I've got the wire feed running with a variable, which can be set and left or changed during winding. That should allow me to duplicate imperfect (scatter wound) coils. According to Jason Lollar the winding pattern affects microphonics and perfectly symetric winding can become sterile. Are you winding to a resistance, or based on inductance?
 
Personally I'm going for sterile! But yes, if I wanted scatter I could change the wire guide algorithm to be more random.

I used AccelStepper library, and it accels and decels. I did have to make a change to allow it to work with interrupts (see here for details), but I have absolutely no missed steps. I will post a video of the winder working when I get a few minutes.
 
I need some pickups for a few upcoming builds so started looking into winders. The readily available commercial winders that only control the bobbin are really expensive, and ones that are fully automated are stupid expensive. There are some DIY examples too, but most start off along the lines of "go to your local second hand shop and find an old sewing machine..." and, at best, you end up with a scatter wound pickup.

So I figured, for the price of one good commercial pickup, I could build myself my own fully automated winder using readily available off shelf parts.

Here's what I have so far:
  • Stepper bobbin motor running at 500 RPM (10 minutes for a 5000 turn wind)
  • Stepper controlled wire guide with 0.02 mm (about 0.001") steps
  • Slow start with synchronized bobbin and wire guide for perfectly flat wind layers
  • Unlimited start/stop with perfect layer alignment
  • 8 digit display/buttons and with menu to set options and display to count winds
The menu allows the ability to configure:
  • Total number of winds
  • Wire thickness (used to automatically calculate guide rate)
  • Bobbin width
  • Winding direction (CW, CCW)
All the parts so far have cost $127 CAD (about $95 US), about half of which is the linear motion slide, so the budget is looking good.

As always, this turned out to be much more work than expected. I didn't plan to learn so much about how Arduino interrupts work, nor write custom functions for the stepper library, but it was all quite educational. The progress so far has me looking forward to the finished project. I still have to bolt all the pieces together, fabricate a tensioner, spool holder, bobbin mount, wire guide etc. but the motors and controls are done and working perfectly. Of course, I still need to see if it can turn a decent sounding pickup! I will post progress as I make it.

Once complete I will post the source code and parts list if anyone is interested. For now here is a picture of the motors and controls prior to mounting:
View attachment 3737279
Awesome. If it works, build another one. I'll buy it from you
 
If you are interested in building custom pickups, and the tooling and winders, come on over and join us on our thread in Luthier's Corner. All of us there have built our own winder machines from scratch; many different designs.

Magnets & Copper Wire: A Pickup Building Thread
 
My first attempt has an art-deco feel. I think I was bending wood for ukulele's and made the stepper cover. Sorta has the Frankenstein lab look. Franken-winder! Does have adjustable endstops for the wire feed and the program detects them. The wire goes through an adjustable, spring-loaded felt tensioner. the dowels are just for eye-balling the end stops.

Will be looking at others efforts in the Luthier's Corner.

winder1.jpg
 
Personally I'm going for sterile! But yes, if I wanted scatter I could change the wire guide algorithm to be more random.

I used AccelStepper library, and it accels and decels. I did have to make a change to allow it to work with interrupts (see here for details), but I have absolutely no missed steps. I will post a video of the winder working when I get a few minutes.

Jeff,

I tried using accelstepper, but found it to be too slow and it was easier to just write my own stepper function. Going back to look at the code, I found an extra line that was probably a cut and paste error. I think this was the problem. This weekend I'll recompile and try it.
 
  • Like
Reactions: Jeff Siddall
I guess I should post a follow-up to this. I finished building the winder and it works as expected. I won't be able to see if it can actually wind a pickup until I get some wire, bobbins, magnets and pole pieces.

Click here for a video demonstration of it running.

I set it up so the wind can be started/stopped any number of times. In addition, settings can be changed and the wind resumed anywhere along the way. And yes, it really does sound like a jet taking off. The slow start is so the wind can be monitored when it first starts.
 
Last edited:
Sounds like the one I built. I'm refining the acceleration algorithm to get rid of the obnoxious sound. I've wound several pickups and am really happy to be able to produce consistent windings that retain scatter wound properties, but exactly the same everytime. I just varied the speed the wire feed traverses back and forth.

Great job!!! :thumbsup::thumbsup::thumbsup:
 
  • Like
Reactions: Jeff Siddall
Update: on my second wind I discovered an issue with the alignment of layers when you change wind parameters, like the width of the bobbin, part way though a wind. Since it was going to be tricky to solve the way I wrote it initially I decided to entirely rewrite the wire guide algorithm. It involved a lot more head scratching than I had guessed, but too many hours later it now handles all the scenarios I could think of -- even some pretty corner cases. Along the way I also found and fixed an elusive overflow bug created because the display module doesn't count decimal point as a character but C does. Grrr.

I also added some features I realized I wanted after the first wind. One is the ability to jog the wire guide motor left or right in single steps (0.02 mm or about 1 mil) at any point in the wind to help with perfect alignment. Another is an extra slow 0.5 RPM startup speed to allow observation of the first few turns of the wind.

Time for a few more coils!
 
Jeff, was the problem in how the interleaf worked with the wire guide and turns of the bobbin? Or, was it in the wire guide traverse not aligning? Mine works by moving X steps on the wire feed guide per Z steps on the bobbin. It just passes variables during the wind to vary the way the wire lays on the bobbin. It can produce an exact scatter wind that can be replicated exactly. If I recall, its running 1/4 step, so 800 steps per wind on the bobbin.

Do you use adjustable end/limit stops to set the wire guide traverse and have it check for misalignment during the wind? Mine can reset the limits as the error occurs. Its a little tricky at higher speed, it turns 800 RPM, and its easy to cause delays, which can cause skipped steps. I settled on 800 because delays were more of a problem at faster speeds.

You are right! There's just enough differences with C to be annoying. But, the price is right. :D

I think we have functionally similar harware, except I'm using the serial port for setting parameters. Serial is way to slow to interact during the wind, so a digital display may get added at some point. I also need to add an optic counter, but will only have a final count to compare with the one tracking steps/winds. It needs to be able to tell me if there's missed/skipped steps.

My code was written more as quick and dirty prototyping, so I will be rewriting to clean it up and move some operations into functions.

I've been enjoying your work on this. Keep it coming!