Winding large multi-layer coils for minimum winding area by hand is quite tedious.  Slight changes in tension and spacing lead to uneven outer layers and turns counting is error prone.  I need at least three and perhaps as many as six small compact precision coils with about 1,000 turns (to be determined) for a project that I am working on.

Now might be a good time to make a cylindrical coil winder.  Please note that this is a development project and I expect to make a heap of changes as the design progresses.

I have a couple of stepper motors from my failed toroidal transformer winder that should do nicely.  The mechanical brackets, bearings, rods and drive screws can either be 3D printed, made from recycled parts, or machined from stock material.  The winder doesn’t need to operate particularly quickly and I figure on a speed of less than 5 turns per second (300 RPM).

The winder consists of three separate parts.  A  wire spool holder with tension to supply the wire, a travelling carriage to direct the windings, and a driven bobbin on an adjustable mandrel on which to form the coil.  Note that a sheave is like an idler pulley.  It simply directs or changes the direction of the wire with no drive.  The bobbin consists of a core and two cheeks which stop the turns falling off the ends.  I’ll try and use this terminology consistently but if err then please bare with me. The two drive motors can be controlled by either oscillators or preferably a microcontroller with some sort of user interface. 

I’m going to start with the mechanical parts.  I drew up something that should work and set about making it.



Figure 1.  Winder Concept Drawing (less spool)
Carriage in front, mandrel (less bobbin) at rear.


While I had to re-design several parts the basic construction appears to work.  The biggest bother was the M6 x 1 threaded rod for the shuttle and the motor to shaft couplings.  I used a scrap piece of industrial galvanised threaded rod for the rotating shafts which was anything but precision and bent all over the place.  I’ve straightened it to within about 0.1 mm but this may need further work.

The plastic motor-to-shaft couplings were a bit difficult to make on centre.  This was overcome by first attaching the threaded plastic coupler to the threaded rod using Super Glue and then machining the remainder of the coupling on the threaded rod centre.



Figure 2.  Initial Build


The design has a couple of novel features.  The shuttle carriage has a pair of spring-loaded hex nuts to reduce slop.  The shuttle has adjustable end stops (nothing unusual here) but I have used a couple of miniature tactile switches as opposed to micro-switches for the actuators.  With the simple single sheave carriage the winding tension is set by the feed wire spool holder tension.

In order to test the mechanical parts I threw together a voltage controlled oscillator and some direction changing logic and a Sparkfun Easydriver stepper motor controller.  The VCO is based on an LM331 IC and provides an output pulse width of 30 us with a variable frequency from 0 to about 10 KHz.  The output has quite a lot of jitter but is adequate for testing.



Figure 3.  Simple Motor Drive


The carriage drive consumes about 85 mA from 12 V unloaded and 100 mA lifting a 1 kg weight vertically which is more than adequate for 0.5 mm diameter copper wire.  I can drive the motors at up to 300 RPM with lots of torque but they start skipping above this speed.  From a 24 V supply the stepper motor speed can be increased above 400 RPM with an average motor current of less than 100 mA.  However a loaded take-up spool (66 g at an average diameter of 18 mm) will not start at this speed.

Unfortunately I can’t find the torque/speed data for the SparkFun Mercury Motor SM42BYG011-25 1.8°.  These motors are rated at 12 V and 0.33 A with a bipolar winding resistance of 34 Ohms and an inductance of 46 mH.

The inertia of our loaded spool can be estimated as:

    I = m * (R2 – r2) / 2 + m * r2 / 2

      Where R is the outer diameter of our spool, 10 m
      r = inner diameter of the spool, 7.5 mm
      m = mass of spool, 66  g
      r = radius of threaded rod, 3 mm
      m = mass of threaded rod, 12.5 g

     I = 1,444 g mm2 + 112.3 g mm2

       = 1,556 g mm2

This is not huge, so the problem must be with the bearing static friction under increased load.  I’m using simple threaded rod on brass bearings as I don’t have any suitable roller bearings.  The solution is to apply speed ramping on start-up (which is probably nice to have anyway).

The next mission is to make a controller board.  I’ll need lots of IO for an LCD, the stepper motor drivers, end stops, and user interface.  The port requirement could be reduced by using a serial LCD interface this application needs speed so I’m going to implement the LCD drive with full parallel 8 bit read/write functionality.

The controller board has been designed as a double sided board without plated through holes.  Now I just need to make the board, populate it, test it and write some code.



Figure 4.  Controller Board


The board was made and tested without too much drama.  There were a few minor issues:  solder paste shorts under the regulator and associated tantalum decoupling capacitors that needed to be resolved and a problem with the rotary encoder mounting footprint.  These were readily resolved.

The controller has no LCD feedback for now and a fixed 500 turns count with a 0.5 mm winding pitch set in software.  I’ll need to add LCD visual feedback, variable count, pitch and maybe provision for wave and bank winding in due course.

The controller software sequences setting of the end stops, home left, establishing initial anchor turns, and full winding with pause/restart and pause/abort.  The stepper motors start any movement at 60 rpm and accelerate over 3 seconds to 300 rpm to ensure adequate staring torque (which is higher at low rpm).  There should be no jitter in the motor step drive and the carriage should auto-reverse at the end stops.

I just need to program the controller board and test it, and then connect the stepper motor drivers and carriage controls.  The controller board has been tested and it works just fine (after some further software debugging).  I think I’ve got all the motor directions right but this will be confirmed during initial testing.  The code is just over 300 bytes and we have a whole 8 K available.

Driving the LCD was an interesting exercise in itself. You can read about this by clicking here.

The basic LCD menu structure for the winder has been completed.  There is some further work required here, particularly with setting the total turns, pitch and display of the actual turns.



Figure 5.  LCD Display


Setting the pitch is interesting.  I have decided to limit the pitch range from 0.1 mm to 1.00 mm in 0.01 mm increments.  Above 1.00 mm the governing drive speed is the carriage.  Below 1.00 mm it is the coil spool.  Other really clever stuff (like orthocyclic, wave and bank winding) will wait for now, but there is lots of code space for implementing other winding regimes.

The LCD is running just fine and I have integrated the display with the stepper motor drives, incorporated variable pitch (0.01 to 1.00 mm) and variable turns (10 to 9,999) with the last set of parameters saved in EEPROM to ease setup.  The motors accelerate smoothly and the turns counter is effective (although the last digit can be difficult to read once the spool motor is running at 300 rpm.  The code is just over 2,000 bytes and comfortably within the ATMega 8515’s resource limits.  I could probably reduce the code length by a few 100 bytes without too much difficulty but there is no need for now.

The next mission is to actually wire up the stepper motor controllers and the carriage LEDs and switches (hardly a challenge) and test the winder for real.  After that I’ll need to mount the motors and drives on a base board and think about a case for the electronics.

The carriage motor and stops are wired up and working.  This required fixing a couple of software issues.  I had the pitch control inverted and a really odd software issue with global interrupts being disabled.  Fixing the first problem was straight forward.  Finding the second issue took some effort but the problem was eventually tracked down to changing the 16 bit counter timer compare  register.  This has now been properly implemented as an atomic write.

The carriage micro-stepping is not as smooth as I’d like because of how I’ve implemented the pitch division as a fraction of the micro-steps per revolution modulo 100.  So with a pitch of 0.50 mm the carriage micro-steps the first 50 of every 100 steps and does this 16 times per revolution.   

The next step is to wire up the bobbin drive motor.  This should be straight forward and I’m not anticipating any problems because it runs at 300 RPM and uses the same acceleration routine as the carriage motor.

The physical wiring is getting a bit messy.  Some of this is down to the number of leads (20 for the LCD, 6 for each stepper motor, a further 6 for the carriage stops, and 2 for power) required to the controller board.  With some simple changes to the PCB layout the wiring orderliness could be significantly improved.



Figure 6.  Messy Wiring


As an aside I started getting all sorts of grief from my in-circuit programmer board during programming.  The problem was that the 24 V supply I am using is a split supply about mains ground.  So the negative rail was actually being shorted to ground via the USB connector through my workstation!  Yuk.  The problem has been fixed by reducing the controller board voltage from 0 (ground) to 12 Volts during programming.

The bobbin motor is now wired up and working just fine complete with acceleration.  I have got the spool motor direction backwards but this was easily resolved.  I added another menu so now the bobbin direction is user selectable.  This was hardly a challenge and completed in less than 30 minutes with a slight code increase to 2,032 bytes plus the LCD messages.

The stepper motor controller boards run  quite warm.  I’ll need to think carefully about how best to mount these in a 3D printed case.

Finally I can mount the hardware on a base board and actually try winding a coil.  The base board will be a piece of 6 mm Perspex with a lot of holes for adjustment of the bearing mounts to suit various spool lengths.  Getting these holes  on centre is quite important.

Oops, I may need to change the design of the wire spool support.  These are jumble wound so the point of wire take-off is not well defined.  Ideally the spool will self-centre so the take-off aligns with the carriage sheaves, but this won’t happen with my current design.  As the take-off angle changes so will the wire tension.  The spool  needs to slide freely, yet maintain the wire under tension.  Another problem that I can see with my current design is that the threaded rod tends to force the spool to one end of the stops.

There are a few ways I can improve this.  One is to simply position the current spool a long way from the carriage so the take-off angle is significantly reduced.  This will work but at the expense of a large machine base unless I go vertical.  A more common option is to make the wire reel free floating and use a weighted plate on the spool rim to stop it unravelling.  A third option is to incorporate a spring arm tensioning device but this is starting to get complicated.

I’ve settled on going vertical which keeps the base plate small and retains my current axial spring tensioner which is effective, easily adjustable and compact.  Note that the relatively long wire feed from the wire reel to the wound coil (almost 750 mm) does not waste wire.

The winder is on the base and I set about testing it.  The first coil was far from perfect, but it is a good start.



Figure 7.  First Coil Attempt


I need to make some design refinements.

    The bobbin is stalling at high speed with large winding diameters.  I need to reduce the winding speed to improve the drive motor torque.

    The windings are not nicely side by side.  The carriage design needs some more thought.  If the carriage sheave is too far from the bobbin then the wire is free to wander.

    I need to think about an overlap delay on the carriage to ensure that turns sit nicely side by side.

    The 3D printed former core is not perfectly smooth.  This is forcing the first layer turns to wander.  The easiest solution is to wrap some paper or Sellotape on the former core.

    I have got the pitch wrong.  The actual wire diameter is 0.53 mm and has an as-wound tight turn pitch of 0.54 mm.  This is a simple user-interface adjustment.

    The spool tensioner needs work.

First up was a redesign of the carriage to incorporate three sheaves and bring the final sheave closer to the bobbin.  This also makes loading the wire into the carriage a breeze.  The new  carriage has side mounted sheaves with bronze bearings, a thrust washer and mounting boss.   They turn freely with no appreciable axial slop.



Figure 8.  New Carriage Design


Interestingly (but not unexpectedly) the wire tension is now largely determined by the diameter and vertical centre to centre distance of the sheaves.  If the tension is too high then I’ll need to reduce the centre to centre distance and maybe the sheave diameter.

I tried another coil at low speed.  The first few layers looked really nice but as the coil diameter got larger (say 6 layers) the windings started to jumble, particularly near the ends of the coil.  Although the winding wasn’t perfect I continued on until I had 750 turns.  The coil has a resistance of 5.5 Ohms and seems to make plenty of field when energised with 0.5 A.

During my experiments the field strength suddenly plummeted.  I had blown up my ancient bench power supply!  The supply is quite rugged with current and thermal overload and it has sustained years of use (and abuse).  I figure that I have killed it through switching what is a large inductive high current load.  So there will be an intermission while I rebuild the supply.  I’ll be needing to put a fly-back diode across the coil for future experiments.

On with testing.  The 750 turn coil gets quite warm as a consequence of Ohmic heating. The current limit for 0.5 mm diameter wire is a couple of Amps but this needs to be de-rated by at least 50% due to poor heat dissipation from multi-layer windings.  Unfortunately as the windings heat they also expand and during my tests this forced the end cap off the former.  Bugger!  This was a disaster as the coil could not be recovered and the wire immediately got into an unrecoverable birds’ nest.  The wire was put in my scrap copper collection.

With the first real coil reduced to scrap it was time to think about what is going on with the winding that is causing the jumble.  It turns out that this is a direct consequence of multiple layer helical winding.  With sufficient layers these will eventually jumble, particularly at the ends, because the helix advances clockwise and then anticlockwise on alternative layers.  Wire alignment jumps to follow the layer below until there is sufficient tension to resume the correct path.  The resulting gaps create further disruption to the layer above.  This also results in less than optimum winding packing.

Eventually a Multilayer Helical Coil will Jumble (get used to it).

One solution to this problem is to use paper or tape between layers (but this not ideal because it increases the total winding thickness and does not implement optimum fill).  A better approach is to use an orthocyclic winding pattern.


Orthocyclic Winding

There is an excellent paper on orthocyclic winding by Philips.  In essence the pitch increment per turn changes over about 30 degrees as opposed to throughout the revolution.  This means that each layer aligns immediately with the layer below over 90% of each turn.  This provides optimal winding packing and prevents jumble.



Figure 9.  Othocyclic Winding (image reproduced from Philips Paper)


In order to implement orthocyclic winding I will need to adjust my code, and perhaps my coil former.  The rules appear to be quite simple but experimentation will be required.

  • The coil former must be (n  + 1/2) * pitch long, within 0.2 * pitch.
  • The full pitch increment  per turn must occur within the final ~ 36 degrees of the turn.
  • The pitch increment must regress (occur slightly earlier) with each turn depending on the winding length per layer.

Given the required accuracy of the coil former length it may be desirable to count layer turns in software rather than rely on the end stops.  This will also ensure appropriate register between layers provided that the first layer is correct.  It also means that I don’t need end stops (although I’m going to leave these to prevent accidentally driving the carriage against the shaft coupling or bearing).

A further consideration is sealing the coil so it will not disintegrate into a birds nest when it is removed from the former.  I don’t have thermosetting wire insulation but maybe I can simply coat each layer with epoxy as the coil is wound?  This will certainly hold the windings in place but it may be challenging to remove the former.  I figure that this can be removed by heating the to around 180°C.  The former, which is exposed, will heat much more rapidly than the epoxy in the windings. 

There are a number of parameters that must be calculated for an orthocyclic winding pattern and many of these vary as the winding increases in diameter.  The maths involves squares and square roots of real numbers.  While squares are relatively simple multi-byte multiplication square roots require iterative methods (Newton-Raphson algorithm) that take time to solve.  The simplest solution is to use a off-board MS Excel spreadsheet to calculate the winding parameters and input these into the winder.  We can mess with parameters in Excel with almost instant results that won’t waste wire.  Excel also allows calculation of a whole heap of other stuff and checking for potential errors.  If this works then I’ll consider incorporating the Excel calculations in the winder software.

With my Excel spread sheet set up it has become apparent that the carriage movement necessary for accurately maintaining a constant crossover angle on successive layers is not linear.  As the coil grows in diameter the crossover length increases (with a constant crossover angle) and the distance between the coil and the final carriage sheave decreases.  So the carriage over-feed decreases on successive layers.



Figure 9.  Carriage Overshoot for Crossover
(Red and Green are tolerance limits, Blue is ideal and Purple is Piecewise Approximation)


Of course we can’t do the carriage overshoot near the end of a layer because the carriage will move beyond the former cheeks causing the wire to hit the former rims.  The carriage overshoot needs to be reduced at the end of layer.  I still expect to get a good crossover in this layer region because the last few turns in a layer should track against the previous turns.

The carriage increment for each layer can be calculated as follows:

    R1 (coil radius) = L * sqrt(3)/2 * Wd + (Fd + Wd) / 2

      = L * constant + constant

      where L = layer number
      Wd = wire diameter
      Fd = former diameter
      R2 (sheave radius) = constant
      D (axial distance between sheave and former) = constant

    X (crossover length) = 2 * R1 * pi * 36/360

      = R1 * constant

    +Steps (carriage overshoot steps) = sqrt(D2 – (R1 + R2)2) * P * 1600 / X

      = sqrt(constant –(R1 + constant)2) * constant / (R1 * constant)

      where P = winding pitch

     -Steps (carriage return steps) = +Steps – P * 1600

      = +Steps * constant

So we need six real number multiplications, a square root and a division to calculate the carriage step parameters for each layer.  For some reason I’m not looking forward to coding this in assembler!  However there is a better way.  Using our Excel spreadsheet we can simply represent the curve in the graph above using a piecewise linear approximation for each 10 layers or so (see graph above).  This is simple to code and should be very efficient.

The basic orthocyclic winding scheme is to calculate the carriage overshoot based on the layer number.  Wind 323.6 degrees with no carriage feed.  Move the carriage forward with overshoot to form the crossover (but within the limits of the former).  Wind a further 36 degrees.  Now move the carriage back to a single pitch increment and start on the next turn.  If you add the two winding angles you’ll see that they don’t quite equal 360 degrees.  The missing 0.4 degrees makes the crossover region regress (start slightly earlier) on successive turns.  The coil diameter is slightly greater in the crossover region so we want to progressively distribute this around the perimeter of our winding.



Figure 10.  Orthocyclic Flowchart


I’ve written a new flowchart for the software.  You can see that there are quite a few required variables for required for the orthocyclic winding process.  Initially I’m going to hard code these values so I can test the software.  In due course I’ll move them to EEPROM with a user adjustment menu during initialization.

Time for some more coding...

Several weeks later (28 Sep 17 due to other commitments) the code has been written, compiles without error, and simulates just fine.  While the flow chart at Figure 10 is still essentially correct I have refined it somewhat for code optimization.  My rule of thumb is that each block of the flow chart should be realized in about 10 lines of code.  Any more than this and maybe the block should be reduced to smaller blocks. 

Now all I need to do is test it on the hardware.  Hopefully this will be happening in the next day or two.

Okay, I’ve completed the first few attempts at winding an orthocyclic coil and we’re almost there.  You can view the winding action on YouTube (click on the following image).  The lay overshoot is working great and reduces at the end of each layer to prevent the wire clashing with the spool cheeks.  The cross-over retard is perfect so that the third layer cross-over starts just after the first layer cross-over finishes.   The crossover angle is programmed at 36 degrees.  I’ve slowed the winding down to increase the stepper motor torque, and so I can keep an eye on things.  A mistake at 5 turns per second is a disaster.  The carriage is entirely under stepper motor control but I have retained the end stops to prevent an accidental over-run.  If the end stops actuate then the winder stops with an error message.  The first layer only winds while the left push button is actuated.  This allows me to make minor manual adjustments to the critical first layer.  Further layers wind automatically, stopping at the end of each layer to allow application of epoxy resin to hold everything in place.  With the reduced speed the stepper motor drive voltage has been reduced from 24 to 12 V.



Figure 11.  Click on Image to View on YouTube


The following image is a six layer 285 turn orthocyclic coil using 0.5 mm diameter wire.  The coil still isn’t perfect.  Any slight error in the first layer causes issues on subsequent layers.  Unfortunately there was a winding error at the very first turn of the first layer which has transferred to upper layers and eventually caused a lay-skip. 



Figure 12.  Six Layer Orthocyclic Wind Attempt
(Close, but no cigar!)


In order to improve the coil I need to:

    use some clean new copper wire.  This lot was recovered from a previous coil disaster (see above) and has been wound about twenty times now.  It has small kinks and twists that aren’t helping, has hardened and the stretched, and I no longer trust that the insulation is intact.

    clean up the bobbin surface so it is dead flat.  I’ve tried using Sellotape but the 3D printed ripples are still pressing through causing individual first layer turns to misalign.  Perhaps paper might be a better option?

    change the wire anchor on the bobbin to get the very first lay flat against the bobbin cheek without a 90 degree bend in the wire (which is next to impossible to actually make).

The current coil is already a heap better than my multilayer helical attempt and with but with a bit more care on that critical first layer I expect to get some good coils.

I also have some more coding to do.  At the moment here are seven (7) parameters that are hard coded.  These are:

    lays per layer (always an integer plus 0.5)

    the pitch steps per lay,

    the first layer overshoot,

    the initial overshoot decrement per layer,

    the second decrement layer threshold,

     the second decrement, and

    the third decrement layer threshold.

All of these parameters are generated from an Excel spreadsheet which looks after all of the trigonometry and rounding.  While I’m happy to stick with Excel at the moment, I don’t want to be recompiling the software and programming the hardware every time I change the coil parameters.

I’ve discarded the old copper wire, flattened out the bobbin core with paper, and adjusted the wire anchor and tried two more coils.  The first windings look great but everything is turning to custard at the start of the second winding.  Both attempts failed during the second layer. Bugger!  Time for some thinking...

The carriage and spool movement appears to be perfect and repeatable (there is no stepper motor skipping).  The smooth bobbin core allows an underlying layer to slip horizontally under pressure from the next layer.  This creates gaps in the winding.  In the Philips paper (linked above) they use a precision former grooved at the pitch to ensure that the initial turns stay in place.

This indicates that the first layer winding needs to be tight to prevent horizontal slippage.  So the former length must be within 20% of an integer + 0.5 wire lays.  My current former is exactly 25.5 mm between the cheeks so, with 0.53 mm diameter wire it is totally out of wack.  25.5 mm  / 0.53 mm = 48.11 lays when we need either 47.5  or 48.5 lays +/- 0.1 mm.  No wonder the winding fails on the second layer.  There are a few solutions to this problem.  I can either:

    make a new bobbin or machine the existing one out to 48.5 lays x 0.53 mm = 27.7 mm.

    secure the first layer with adhesive to stop horizontal spread.

    increase the winding tension to prevent slippage on the first layer.

The easiest solution is to adjust the bobbin length.  I machined this out to exactly 25.7 mm and tried the winding two more times.  Darn.  The first layer looked tight and finished exactly on the bobbin cheek,  but I am still getting lay problems on the second layer - either a lay jump or a single lay sinking low into the first layer.

I’ll need more experimentation and thought to sort this out.

When stuff isn’t working a good place to start is the beginning.  I reviewed the original Philips paper and found a couple of things I was doing wrong.  After the first layer we don’t need layer overshoot because upper layers will track the wire lay of layer below.  I adjusted the code with an immediate improvement in the second layer.

But I still have a problem with the very first turn of the second layer.  It is caused by the very last full lay of the first layer being hard up against the bobbin cheek when it should be 0.5 pitch diameter away.  This causes the first lay of the second layer to slip left.  The error compounds with each additional layer.  The cause is likely to be a lack of precision with the former and slight eccentricity with the bobbin drive.

There are a couple of things I can do to resolve this.  The first is to slow down the very last lay and manually adjust the winding spacing to ensure a half pitch clearance.  The second is to place a removable spacer on the right hand bobbin cheek to force the space.  The third is to change the l bobbin profile to force the space.



Figure 13.  First Layer Lay Issues

For now, the easiest solution is to slow stuff down and manually adjust the wire lay.  Adding the manual wind was a straight forward software adjustment.  The initial layer looks great with no gaps between turns but it is a whole two turns short!  The bobbin dimensions haven’t changed so I rechecked the wire diameter.  Successive attempts at winding appear to have stretched the wire causing the diameter to reduce from 0.53 mm to around 0.51 mm.  This puts the winding out by an entire two turns at the end of the very first layer (0.53 - 0.51) x 48.5 = 0.97.  This is annoying because I know that most of the wire on the spool is probably 0.53 mm diameter.  I figure I need to loose a few metres of wire from the spool.

After some more winding attempts with new wire I still can’t get a consistently good orthocyclic winding and the problems still appear to be with the first layer.  After each attempted winding I can see that that the first layer is not stable.  The first layer turns are slipping sideways due to the upper layers so the wire tension isn’t right on the first layer.

In addition to improving the tension there are some other issues.

    Carriage advance with overshoot for the crossover maintains tension, but the carriage return to the next lay position looses tension because there is no concurrent spool advance.  This requires a software solution.

    While the carriage is dead stable in the horizontal plane it has vertical angular play.  The carriage needs a second guide rail to fix this.

    The friction on the three sheaves on the carriage and sometimes some of these are sticking which results in wire tension variations.  The solution is to go to ball bearing mounts.

    The current wire lay position can be improved by using the previous lay as a guide.  Rather than using a calculated fixed coil pitch increment I might do better to force a quarter pitch overlap on the first layer.  This should force the adjacent turns together.

    The carriage drive threaded rod is pretty rough.  This could certainly be improved by using something better than construction grade industrial galvanised steel stock.

I re-designed the carriage with ball bearing mounts for the sheaves and a second guide rail.  The 3D prints for the new carriage motor mount, carriage and bearing block were straight forward but I do  regret purchasing cheap nasty plastic shell ball bearings.  While these are significantly better than my previous bearings they feel rough.  The new parts were fitted to the base board.  The carriage is working well with no play at all and the sheaves are free wheeling.  The new carriage is lighter than the previous design and the guide rail diameter has also been increased to 6 mm.  Now I just need to adjust the software for a 1/4 turn lay overlap on the first layer and some spool advance during the overshoot return.

I have also purchased some 6 mm diameter stainless steel threaded rod.  This is definitely superior to my previous rod but I haven’t replaced the original yet.



Figure 14.  New Carriage with Second Guide Rail and Sheave Ball Bearings


I need an improved tensioner, but with increased tension I’ll also need more torque from the spool stepper motor.  The torque issue was fixed with a 3D printed planetary gearbox.

In the current design the wire tension is established by a compression spring acting on the feed wire spool, and both friction and bending of the wire around the three sheaves on the carriage assembly.  This arrangement is far from satisfactory.  The tension is dependent on the bobbin diameter which varies as the winding proceeds, the spool diameter and the jumble winding on the spool.  So the tension is far from constant and generally increases as the winding proceeds.

In my winding experiments to date the inner winding layers on the take-up spool have less tension than the outer layers.  This causes the outer layers to push into the inner layers, and the effect compounds on successive layers eventually resulting in a jumbled winding.  So I need adjustable but constant tension independent of the wire feed rate.

There are a few common approaches to tensioner design but I’m going to experiment with the merits of friction disks (the basic mechanism used in millions of sewing machines for over 100 years) and a capstan tensioner.


Friction Disks

In a friction disk tensioner  the wire passes between two smooth circular plates pressed together under a manually adjustable compression spring.  I expect that the friction between the plates will be lower for higher wire feed rates which will be desirable in this application.

The friction disks sit on a fixed capstan post which is hard and smooth.  Under tension the wire bends to the diameter of the post and then straightens.  It also undergoes frictional forces as it slides over the surface of the post.  A greater contact angle increases the friction.

Sewing machines also incorporate a torsion spring that dynamically increases the friction under high feed rates by increasing the wire contact angle with the capstan.

I’ll need to adjust the basic sewing machine design.  Unlike sewing thread, copper wire work hardens when bent through an acute angle and if the angle is sharp it will not feed reliably, if at all.  This means that I can’t use a simple torsion spring which will need to be replaced with an idler roller on a torsion arm.  The capstan also needs to be relatively large to reduce wire bending.  I have already determined that the wire diameter is not constant and I need to protect the insulation from damage so this may necessitate felt disks between the compression plates.

The feed point to the tensioner needs to be fixed to ensure that the wire stays between the friction disks with a more or less constant contact angle with the capstan.  

The wire feed rate as the layers build on the take-up spool increases linearly and can more than double for the coils I am building.  I can easily reduce the take-up spool RPM with successive layers through the motor drive software.


Capstan Tensioner

A capstan tensioner relies on the contact angle of the wire over one or more fixed capstans.  With a simple compression spring or weight the contact angle becomes self-adjusting about the set point.

A capstan tensioner is not unduly affected by minor changes in wire diameter and, without friction disks, reduces the possibility of wire insulation damage.

The tensioner will still need wire guides on the intake and output.

I’ve decided to start with a capstan tensioner design because it should be self adjusting and less complicated to build than a friction disk design.


Before I start on the tensioner build it is worth while reflecting on what tension is, why we need tension, and how this relates to motor power, torque and work.

Tension is a resisted axial force in the wire.  Perhaps the easiest way to apply tension to a wire is to fix one end to a support and attach a weight suspended by the wire at the other end (static tension).  However  the wire is not free to feed.  In a winder the tension force comes from the motor and the resistance comes from the tensioner through friction and deflection of the wire.  There is very little tension between the feed spool and the tensioner (just enough to prevent the spool from unwinding).  Tension causes the wire to straighten between, and deflect around, contact surfaces, and maintains turns tight against the bobbin.  Too little tension and the wire will bend, twist or kink, slip on the bobbin, and/or come free from the drive path.  Excessive tension results in increased drive requirements, wire stretching and potential breakage.

Large variations in tension can also be problematic, causing recent turns to press through lower tension turns below resulting in an uneven winding.  Tensioners can be expected to alter the applied resistive force depending on whether the wire is stationary or moving (in exactly the same way that it takes more power to start an object moving on a friction surface than to maintain motion once it is moving).  This is particularly problematic for stepper motors which step between stopped states.

Work is force times distance.  If nothing is actually moving then we aren’t actually doing work.  In our winder the tension force in the wire applies a torque (a turning force) to the bobbin.  The torque is simply the radius of the current turn  times the wire tension force.  Because the radial distance increases as more layers are added to the bobbin the wire tension increases as the winding proceeds.  The motor must provide more torque than applied by the wire tension or it will stall.

Power is the rate of doing work.  If we do the same work in a shorter time then we need more power.  Interestingly, not only is the torque on the bobbin increasing as we add more layers to the coil, but the length of each turn also increases.  If the motor is turning at a constant speed then the rate of work increases with successive layers and we need more power from the motor to prevent stalling.


I prototyped the capstan tensioner design using 3D printed parts to suit a tension spring selected from my recycled collection of nuts, bolts, washers, spacers and springs (amongst other useful stuff).  The initial build provided instant wire tension but there were a few design weaknesses including: flexing of the frame, an insecure tension mount adjustment, and sliding wire through the intake guide sheave.   I redesigned and reprinted the prototype to resolve these issues.

The wire tensioner appears to be operating just fine and is adjustable from almost no tension (limited by the feed spool) to enough to make the wire twang when plucked.   Hand turning the take up spool and carriage makes for a nice tight winding with no slippage between turns, even with excessive carriage advance.  And on standing the tension remains constant.



Figure 15.  New Tensioner


Before proceeding further I remodelled the carriage, changing out those cheap and nasty plastic roller bearings.  I also considered dropping the central guide sheave but this increases the carriage to take-up spool wire length which is not desirable.  In any case there is virtually no friction with the new bearings so this shouldn’t be an issue.  The 3D printed  sheaves aren’t perfect but they’ll do for now.



Figure 16.  New Carriage


I also made a new stand for the vertical sliding guide roller between the tensioner and the carriage out of recycled aluminium tube from an old VHF TV antenna.  This frees up my retort stand and makes the coil winder sturdy yet compact.

While I messing with stuff I have also changed the feed spool carrier from horizontal to vertical.  The new arrangement is much simpler than the previous horizontal axle design, saves a heap of 3D printing, and provides better alignment with the tensioner throughout the duration of a winding job.  The spool is prevented from unravelling by an axial compressing spring working on two centring cones.



Figure 17.  New Vertical Feed Spool


I need to make a new base plate and drill a raft of holes (about 50) to mount everything and provide for easy adjustment to suit different coil diameters and lengths.  This is essential before reverting to computer motor drive as there are currently too many unmounted components to adequately keep stuff aligned by hand or with tape.  The new base plate is done.

With all of these new components I have decided to do away with my cut rubber sheet vibration mounts and replace these with 2 mm thick 3D printed NinjaFlex rubber pads.  These work at least as well as the previous design and align perfectly with the part and the mounting holes.

Oops!  The 3D printed gearbox driven plate has broken right at the weakest point (the root of the M6 internal thread connecting to the output shaft.  I shouldn’t be surprised by this at all given the mechanical advantage of the gear box and the increased tension.  While I could simply 3D print a replacement it is bound to break in the same place unless I make the output shaft substantially thicker.  A better option is to machine this part from aluminium or plastic.  I machined a replacement part from aluminium.

With everything assembled it is time to revisit the winder software.  There are only a few minor adjustments needed, and in particular slow the take-up spool stepper motor to ensure it is operating near maximum torque, multiply all take-up spool steps by four to account for the gear box, and adjust the winder control for manual turns on the first layer, followed with pauses at the end of subsequent layers.

I’ve had an idea for the bobbin drive motor.  Instead of slowing the motor by adjusting the number of steps in the software I can reduce the micro-stepping from eight to two in the motor drive hardware.  This compensates for the gear box speed reduction and should increase the motor torque and detent accuracy.

The winding experiments were an improvement on previous efforts but the take-up bobbin is causing issues with some wire lays, and setting up the winder is painful.  I went back to the original Phillip’s article on orthocyclic winding again and clearly my existing bobbin is not up to the desired precision.  Rather than continue to mess about with 3D printed bobbins I’ve decided to make a precision adjustable bobbin.

I machined a new 90 mm long bobbin shaft and hand lapped to 18.00 -0.02 mm (that’s less than 1/1000 of an inch) from mild steel.  The finish is so good it looks like it is chrome plated.  The bore needs to be tapered at the ends to ensure that the shaft is concentric with the mandrel, but this improvement will wait for now.

The adjustable end cheeks were machined for a running fit from aluminium with a bore diameter of 18.10 +/- 0.05.  They are secured to the bobbin shaft by M5 x 0.8 mm grub screws.

The wire feed slot in the bobbin cheeks was shaped on the lathe using a boring bar with an appropriately formed cutter from a high speed steel micro-drill shaft.  I should also make a number of tie off holes in the end cheeks but, as I am not yet using thermal bonding insulation there is no immediate need for these.  My mission for now is just to get the wire lay pattern correct.



Figure 18.  Wire Anchor Slot Trial



Figure 19.  Wire Anchor Slot


The first layer turns are now tight to the bobbin shaft and will not slide.  This is good for the winding but it raises the question of how a finished coil will be released from the bobbin?  After some thought I’ll need to redesign the bobbin shaft so it has an axial  taper split at an acute angle (say 2 degrees).  Axial driving of either half of the bobbin will release the coil.  The cheeks should free during the thermal expansion associated with thermosetting the coil insulation.

With the new bobbin I can change the winding procedure with just three input parameters: number of full lays per layer (remembering that each layer must have n + 0.5 lays), pitch, and total number of turns (or perhaps number of full layers).  At the moment the software is re-compiled and tye microcontroller is reprogrammed for every parameter change which is  hardly convenient.  I need to input these parameters interactively which means some more software effort is required.

I have also modified the winding procedure is as follows:

    Anchor the wire, align carriage left to the left hand bobbin, take up any wire slack, and advance the bobbin so the wire is tangential from the carrier sheave to the bobbin  Set the right hand bobbin cheek set-screw approximately opposite the left hand cheek wire anchor (otherwise it will be next to impossible to access at the end of the layer).

    Wind the designated number of integer lays, checking that each initial lay is square with the right hand cheek at the end of each parallel turn (prior to carriage advance).

    Set the right bobbin cheek at half the pitch from last turn using a spacer.  Note that if we manually adjust the wire this will mess with the tension of the existing windings causing mayhem.

    Wind the last crossover of the first layer to form the start of the second layer.

    Proceed with winding each subsequent layer.

Before starting the winding it might be useful to confirm that the pitch (which affects movement of the carriage) is appropriate for the actual wire diameter (which determines layer length on the bobbin).  Our wire isn’t perfect and varies in diameter over its length, so we need to allow for a maximum spacing of 0.03 times the maximum diameter.  I figure that the best way to do this is actually complete a dummy first layer winding and ensure that the carriage is correctly aligned with the last lay on the first turn.  In one of my first experiments with the new precision bobbin, after 50 lays of nominal 0.5 mm diameter wire the carriage lagged the last lay by 2.3 mm!  I figure that is at least in part due to re-using the same wire for my winding experiments.

An advantage of this revised procedure is that I no longer need to restrict the extended carriage movement for the crossovers on the first layer as we approach the right hand bobbin cheek because it isn’t yet fixed in place.  This should lead to a perfectly regular first layer.

While testing the tensioner I broke the next weakest link in the gearbox drive train (I have already broken the gearbox output coupling shaft).  The motor helical gear was a simple press fit onto the motor shaft.  Once this started to slip it wouldn’t stop.  I disassembled the gear box and fixed the gear to the motor shaft with a drop of super glue.  On reassembly the gear box is still working well but I noticed a slight deflection in the ring gear casing (about 0.1 mm).  This issue may have always existed or stuff has got out of alignment.  The easiest fix is to re-print the ring gear with a little more clearance.  This requires a simple rescaling of the model.

The next issue that I noticed was the precision bobbin is running slightly eccentric, about 0.2 mm at the motor end tapering to 0.05 mm at the static remote bearing.  The threaded rod was hand straightened and almost dead true so this issue is likely due to:

    the gearbox shaft coupling,

    the fact that the gearbox output shaft  is not actually positively supported (it is held in place by the planet gears and a running fit over the motor shaft),

    centring of the mandrel tapers on the threaded shaft, and perhaps

    the gearbox ring gear clearance.

The bobbin can be eccentric without too many problems but taper is unacceptable because it forces a wave winding.  I need to sort this out.  I figure that a roller bearing on the motor output shaft and far end coupling, combined with modifications to the gearbox coupling should fix this eccentricity and taper issue.

I’ve incorporated a  roller bearing for the gearbox output shaft and the re-made the gearbox ring gear.  The gear box is actually smaller than when I started.  The eccentricity at the gear box output shaft has been reduced to 0.05 mm (2 thou “).  This isn’t perfect but it is a huge improvement and should do the trick.  Sure I can reduce this further, but only with more expensive bearings.

The gearbox to mandrel coupling is a threaded rod adhered into a mating hole on the gearbox output shaft.  This is probably the largest contribution to the observed eccentricity and taper.  I have remade coupling machined from the threaded rod axis and have provided three set screws to fix it to the gearbox output shaft.  These should allow enough adjustment to minimize eccentricity to acceptable levels.



Figure 20.  New Gearbox Bearing Mount and Mandrel Coupling


The mandrel back bearing is currently crude with a threaded rod running in a static brass hole.  The threaded rod is far from precision, and the bearing surfaces are the thread tooth peaks which are subjected to the wire tensioning force orthogonal to the axis.  This causes eccentricity, friction and wear.  I’ll replace this with a ball bearing.  The far end mandrel cone will be threaded to the rod but will supported by a ball bearing in a 3D printed housing.  The mandrel is now supported between two ball bearings and is independent of the threaded rod.



Figure 21.  New Back Bearing for Mandrel

I have also tapered the bobbin core ends to 60 degrees to ensure alignment with the mandrel cones and ensure adequate friction to prevent the bobbin slipping on the mandrel.

Okay, the  machining is done and the bobbin is running true to within 0.05 mm (about 2 thou or half the thickness of a sheet of paper).  The faces of the bobbin cheeks are out by less than
0.05 mm.  The circumference of the cheeks is out by about 0.15 mm due to the shaft clearance and grub screw attachment but this shouldn’t be an issue.  I’ve been machining these parts off a three jaw chuck to a live centre, but if the current tolerances aren’t good enough I can do better by machining between centres.

The very first test with the new bobbin was a disaster.  The take-up spool is running 4 times too fast.  I’ve messed up something in my software adjustment.

The second test looked good to layer 3 when an extra turn appeared and the coil eventually failed (jumbled) at layer 5.  That’s weird.  I gave the winding another go with essentially the same result but the coil failed on layer 6.  What we have is already far better than a normal helical winding but something still isn’t right.



Figure 22.  Second Layer Looking Good



Figure 23.  Extra Turn on Later Three



Figure 24.  Extra Two Turns on Layer Four



Figure 25.  Winding Failed on Layer Five


After some more measurements  I have determined that the problem is that the wire has been stretched during repeated tests (I should have anticipated this by now).  The measured wire diameter was 0.46 to 0.47 mm over the first eight or so metres.  But after about eight metres the wire diameter is 0.53 mm.  The winding parameters were set up for 0.5235 mm.  With 50.5 turns per layer just an 0.01 mm increase in average wire diameter will result in an extra turn over the length of a layer.  So I need to discard the stretched wire and adjust the basic pitch to say 0.540 mm.

We’re almost making real orthocyclic coils!  I’m confident enough to modify the software for dynamic coil parameter input (which also saves me reprogramming the microcontroller every time I need to change something), and order some 0.5 mm thermosetting wire.

I also need to remake the bobbin core (some tricky machining to achieve the desired axial taper split) and replace the 3D printed carriage sheaves.

With the software modified and the stretched section of wire discarded I set about doing another test winding, with 10 layers at 20 turns per layer.

We have orthocyclic winding Houston!

The 10th layer of a 200 turn coil is completely stable so there is no reason why this coil should not continue to wind maintaining stability.



Figure 26.  Successful Ten Layer 200 Turn Orthocyclic Winding


On detailed inspection the trial coil looks pretty darn good, but the crossover angle is much greater than the 36 degree software parameter (10% of the circumference), and this caused too much overshoot during winding of the first layer.  While the trial coil is adequate I’ve thought about what is causing the extension of the crossover.

The problem is that there is nothing holding the wire in place when the crossover is formed.  So it tends to slip away from the previous turn under tension increasing the crossover angle to about 60 degrees.  The easiest solution is to manually hold the wire in place during the first layer as the crossover is formed to cause a slight bend in the wire.  The alternative is to groove the bobbin core at the intended wire pitch but this would limit the bobbin to a fixed winding pitch and make core removal difficult.  If I acid etch the bobbin core this will also increase the friction between turns and bobbin. But perhaps the problem is with the tension?  Too much tension will tend to straighten the crossover bend forcing it to slip backwards.  But too little tension will also be a problem.  More experimentation is needed but I have reduced the tension for now. Perhaps there is another solution.



Figure 27.  Plan View of Circumferential Crossover Slippage (shown in red)

I did a couple of further winding experiments holding the wire in place as the first layer crossover crossover is formed and with reduced tension.  Okay, we have a great crossover angle (about 36 degrees), but the winding failed after a few layers due to wire stretch again (the actual diameter had reduced from 0.53 mm to about 0.46 mm in places).  This much stretch is a bother after just a couple of experimental coils.  I figure I may need to look at the tensioner again because we have too much tension.



Figure 28.  Reduced Crossover Angle (about 36 degrees) on First Layer
(Formed by manually holding the previous turn prior to crossover.)


Sure enough there was a problem with the tensioner.  I had previously incorporated a simple loop guide to ensure a constant contact angle from the spool over the first tensioner sheave.  But this is causing the wire to bend acutely to the first tensioner sheave causing a significant friction point at the loop guide (see Figure 15 above).  I have added another sheave to the tensioner so the loop guide cannot cause the acute wire angle.  The tension is now somewhat less than 0.4 kg weight and doesn’t cause wire stretch.



Figure 29.  New Tensioner


I attempted two more coils with the new tensioner and both were failures.  The only thing that I have changed is a reduction in tension so I figure that the tension is now too low.   Let’s run some numbers and see if we can figure out what is an appropriate tension limit is before the onset of wire stretch.

The elastic limit for copper is in the range of 45 to 330 MPa.  If our wire is 0.5 mm in diameter then we can estimate the maximum tension force to prevent wire stretch.

F = 45 MPa * 0.5E-3 2 * pi  / 4

~ 8.8 N

Dividing by g to get the equivalent weight:

8.8  N / 9.81 m/s2 ~ 0.9 kg

So the tension needs to be less than 1 kg.  I reset the tensioner to about 0.5 kg measured using an improvised spring balance.

All of these failed recent experiments raise the question,  Was my successful ten layer 200 turn othocyclic coil just a statistical freak?  I cut the feed wire back to pristine and wound a new coil with ten turns per layer.  It was perfect over all ten layers and, with the reduced tension, the crossover angle was significantly reduced.  The issues we are experiencing seems to be directly associated with reusing wire stretched from earlier experiments and tension.  I cut and discarded the wire and wound another ten layer 200 turn coil perfectly.



Figure 30.  Successful Ten Layer 100 Turn Orthocyclic Winding
(Note clean 36 degree crossover angle.)


For my next trick I want to try and chemically etch the bobbin core to decrease the potential for turn slip on the critical first layer.  I’ve mixed up some 3% Nital using methanol and experimented on some steel scrap with about 3 minutes immersion.  The etch doesn’t seem to have been effective with little change to the surface texture.  Perhaps I need another etchant?  Let’s try a few grammes of copper sulphate and sodium chloride (1:1) made up to about 50 ml with distilled water (the salt is there apparently to stop the copper depositing on the steel).  The reaction didn’t proceed at room temperature but at about 60°C the solution started to change from blue to green (good - we have iron in solution) followed by copper deposition on the steel as the solution reached boiling.  The etch isn’t perfectly even due to the sample laying on it’s side at the bottom of the beaker and possibly due to grease from handling.  But if you run your thumb nail down the etch it has a nice even resistance where as the original was just plain slippy.  I’ll apply the etch finish to the new tapered bobbin core.



Figure 31. Etched Steel Trial for Bobbin Core
(Un-etched left, etched right.)


So I’ve still got some work to do (but we are getting close):

    Make those new carriage sheaves.

    Design and make the new split-taper bobbin core.

    Maybe put the electronics in a box.


Prior to remaking the sheaves for the carriage I thought I’d check the dimensions of the slot that guides the wire to make sure it was not going to interfere with the winding during the crossover section and will adequately retain the wire.

It turns out that an angle of greater than about 11 degrees should be fine, but an acute angle requires a greater depth of cut.  A 60 degree angle needs just 1 mm of depth for wire retention and should provide adequate wire guidance with no interference, even for a significant increase in wire diameter.  The 3D printed carriage sheaves had a 90 degree angle to prevent the print requiring support.

In completing this check I used a drawing rather than a mathematical approach.  Interestingly my original Excel spread sheet isn’t calculating the crossover carriage advance correctly and the current carriage feed for the crossover is too small.

Also the sequencing between carriage and spool motion is too simplistic to create a perfectly straight wire crossover because the two don’t move concurrently.  While the microcontroller is pretty fast it can only do one thing at a time.  However this shouldn’t be a problem as it simply causes the initial wire angle off the bobbin to be out by less than 1 degree and the effect is not cumulative.   The ideal crossover winding sequence is as follows:

    Move the carriage for the crossover (exactly 4,766 carriage steps).  This sets the wire angle on the bobbin.

    Wind the spool 36 degrees (160 spool steps) while simultaneously advancing the carriage one pitch (864 steps).  This keeps the crossover straight.

    Move the carriage back for the crossover (exactly 4,766 carriage steps).  This sets the carriage up for the orthogonal portion of the turn.But I’m going to stick with the current crossover winding sequence because it is a significant reduction in programming burden:

    Move the carriage for the crossover and pitch (exactly 5,630 carriage steps).  This sets the wire angle on the bobbin.

    Wind the spool 36 degrees (160 spool steps).  The crossover will not be perfectly straight but it should finish in the right place relative to the previous turn.

    Move the carriage back for the crossover (exactly 4,766 carriage steps).  This sets the carriage up for the orthogonal portion of the turn.

I still have some more programming to do, but first I remade the carriage sheaves on the lathe from nylon.  Then I completed another ten layer, ten turns per layer test coil.  The coil wound perfectly, despite the fact that the crossover carriage advance and the turn retard (set for 50 turns per layer) are set incorrectly.



Figure 32.  Ten Layers, Ten Turns per Layer Orthocyclic
(Note new nylon carriage sheaves.)


Just for the hell of it I also wound 4 layers of a 50 turn per layer coil, even though the wire is starting to get a bit stretched.  I would have wound more layers but I ran out of wire after the fourth layer.  During the winding I stopped the winder at various points with no adverse effects apparent.  Each layer formed well so I can reasonably expect that the coil would have continued to build without failure.



Figure 33.  Four Layers, 50 Turns per Layer Othocyclic


My new thermosetting wire has arrived so I’ve also got to be making progress with the new taper split bobbin core so I can actually wind and set some real coils.  I’ve decided to make the bobbin core from aluminium as opposed to steel.  I can still roughen the surface by anodizing or a light chemical etch. I need to think through the machining carefully to avoid a cock-up.

    I plan on starting with two pieces of rectangular section aluminium.  Two mating faces need to be made pretty much dead flat and the then bolted together at each end.

    Then mark and centre drill for a 2 degree taper over the length about the part.  Mount the work between centres and turn down to exactly 18 mm diameter over at least 80 mm of stock.  Now mill recesses for clamping screws (two at each end), counter drill, drill and tap.  Then fit the mounting screws.

    Now remove the bolts, cut off the rectangular end sections, face, and bore to 6.5 mm in a three jaw chuck.  Finally turn the mandrel tapers.

All of the heavy duty machining is done with the bolts in place between centres for a good finish.  All other operations are done with the mounting machine screws in place, and with the two sections held together by a three jaw chuck.  It should be noted that the mounting screws should not be subjected to significant load in use.  Their job is simply to keep the two halves of the bobbin core aligned and together under light compression.

I’ve purchased some flat aluminium bar for the bobbin core.

More to follow...