Automated coil winder
Published: 2018-08-28 17:10:32


This machine allows you to make varying size vertical coils, so it would be handy for Tesla coil builders or amateur electric equipment building or repair. Designs is inspired by those already available on the internet but improved and uses affordable parts, is simple to make and modify to personal needs. Most of the mechanical parts are fabricated on 3D printer. Winder is propelled by two stepper motors, this combination was tested on wire diameters from very thin 0.06mm (40 AWG) to thick 0.8 mm (20 AWG), using a thicker wire is problematic because of stepper motor loosing steps. Replacing it with DC servo might be a task for future improvements. Winding process is controlled from PC by dedicated GUI application. Electronics board communicates with AVR micro-controller via USB serial connection. Any 3d printer electronics board can be used or there is option to etch your own.

Some pics of machine look and in operation.


Build and assembly

CAD is made with FreeCAD and partially OpenSCAD, you need both installed to open and export meshes for printing to format commonly understandable by 3d slicers. Project repository is in there.

List of printable parts:

  • 3x bearing8mm_distance.fcstd
  • 1x carriage_base.fcstd
  • 1x carriage_lid.fcstd
  • 1x carriage_motor_holder.fcstd
  • 2x coupler_holder.fcstd
  • 2x frame_vertex_bearings.fcstd - print with 90deg supports
  • 1x frame_vertex_bearings_motor.fcstd - print with 90deg supports
  • 3x frame_vertex_foot2.fcstd
  • 3x frame_vertex_foot.fcstd
  • 2x knob_tightener.fcstd
  • 2x rod_clamp.fcstd
  • 1x wire_guide2.fcstd
  • 1x wire_guide_arm1.fcstd
  • 1x wire_guide_arm2.fcstd
  • 1x wire_guide_base.fcstd
  • 1x wire_guide.fcstd - optional, this is another variant
  • 3x wire_guide_wheel.fcstd
  • 3x wire_guide_wheel_lid.fcstd
  • 2x wire_tensioner_knob.fcstd
  • 2x wire_tensioner_washer_backplate.fcstd
  • 2x wire_tensioner_washer.fcstd

Those parts are from scad directory and are parametric, which means that you can easily change things like motor axis diameter, used belt profile, number of teeth for pulley and so on - all to suit your setup or already owned parts.

  • 1x winder_gears.scad - two parts in one file (small and big gear)
  • 1x winder_pulleys.scad - two parts in one file

Check also files from tools directory for necessary printable accessories like holder for your bobbins or templates for windings preparation for induction motors.

Non printable

  • 6x 608ZZ_Ball_Bearing
  • 2x 626ZZ_Ball_Bearing
  • 2x 623ZZ_Ball_Bearing
  • 3x 693ZZ_Ball_Bearing
  • 76x DIN 125 class 4 M8 Flat Washer
  • 4x ISO4032_Hex_Nut_M6
  • 76x ISO4032_Hex_Nut_M8
  • 3x ISO7091DIN126_CLASS_C_M6 washer
  • 1x NEMA-17_Stepper_Motor_40mm -> high torque
  • 2x rod_8x250mm
  • 1x rod_M6_220mm - cut on different length to adjust work area.
  • 1x rod_M8_125mm
  • 3x rod_M8_160mm
  • 1x rod_M8_210mm
  • 3x rod_M8_270mm
  • 4x rod_M8_300mm - cut on different length to adjust work area.
  • 3x rod_M8_330mm
  • 1x stepper_tin - cheap recycled stepper motor or other NEMA-17 with any torque
  • 1x infinite loop belt 150mm length, any profile should work - ultimately it can be made by gluing together straight belt
  • some M3 screws (for hex key if possible), nuts and washers


Just open main FreeCAD assembly and study it, start by assembling parts together, in a way shown in those files:

  • 1x assembly_carriage.fcstd
  • 2x assembly_triangle.fcstd - note: one frame contains also carriage_motor_holder, other one rod_clamp.fcstd
  • 1x assembly_triangle_motor.fcstd 

Collect all needed parts, press roller bearings into place, but remember to put small distance cylinder between bearing, it is easy to preview in project assembly files. Note that appearance of some parts presented in photos might change with newer releases.

Start assembly from frame triangles, there are small differences between each triangle, keep it in mind. Don't screw nuts with too high torque because it may smash and broke plastic parts.

Screw frame triangles together with 300 mm threaded rods, cut those rods on different lengths if you need wider work area (for example tesla coil). Measure and check if all the distances between vertices are equal, correct that by screwing a nuts. Correctly assembled frame should stay steadily on flat surface.


From this point there is the time to start putting together wire guide carriage. Slide in smooth rods with linear bearings, with cable ties (straps) attach carriage to the bearings. Carriage is moved by M6 threaded rod (220 mm by default), inside carriage there is a place for two nuts and spring which are screwed onto this rod. Rod is kept in place by two bearings, placed inside frame part, on the rod end there is a pulley. Mount both stepper motors with gears and pulleys into their places. On the top, there is easy to mount coil tensioner rod and more problematic main drive rod (axle) which needs to be screwed into bigger gear and set of nuts along with washers.


Finalizing the mechanical part, there is a wire guide left. This part can be quickly attached or removed at any time by turning four screws. Guide can be mounted in two positions: far or close to the coils. Guide itself has a adjustable frictional wire tensioner and horizontally stiff arm with tip for wire guiding. Arm and rollers are on precise small bearings. Springs are made of thick steel and I think that it is obvious that to control the tension use screws regulation to squeeze the spring. After some time of exploitation tensioner washers wear out and should be replaced. There is also a very sophisticated electric component which needs to be mounted on one smooth rod - a homing micro-switch. Accomplish this with small cable tie, but firstly solder an cable to it and isolate connection.

This is wiring scheme for tensioner and guide.

 Electronic and software

Electronics needs to handle two stepper motors and one switch (for homing), for this version is that all. In future there might be additionally a need for directional encoder and H bridge. Boards like CNC shield, Ramps and similar should do the job, but proper software configuration needs to be written. If you decide to make your own minimalistic board, its design can be found there, check this out for parts list and schematics. This board can be turned into Arduino like electronics by flashing a micro-controller with proper boot loader. All listed boards use AVR mcu family and popular stepstick motor drivers. In this repo (branch coil_winder) you can find dedicated, lightweight firmware, which by default works with atmega32 and mentioned DIY board. Any 3d printer firmware could be adopted but they are so heavy (too much for this task) and I haven't tested that out.

Custom electronics board. Endstop switch is connected to 3-pin connector marked SWITCH1 (bottom right corner as seen on image, top first pin is +5V not used for mechanical endstop). Motors are powered through common +12V jack connector.

Main coil winder repository contains controller_app directory with wxPython GUI application for connecting to the board, commands sending and generation. Launch app by running file, contains configurable constants like maximum speed, work area length, change them to suit your config.

Notes about firmware configuration

Most of the configuration is focused in config.h header file. Every configurable constant is briefly described, but those worth mentioning are listed in snippet bellow. If you decided to have different work area set its value in Y_MAX. For different stepper motors (I have been using 200 and 48 full steps per revolution) adjust STEPS_PER_M_X and STEPS_PER_M_Y values are set as steps per revolution * 1000 (X) or steps per millimeter * 1000 (Y). Baud rate value 115200 is fine and I found higher than 9600 values to work better.
In the pinout section pins are addressed not with arduino numbering but rather avr-libc manner. If you got pin mapping related compiler error, check their presence in arduino_32U4.h. When porting to other other micro controller copy that file under other name and replace it under include directive in config.h. In the future I will be updating different board configurations - if you got your own new working one, then send me merge request.

#include "arduino_32U4.h"
#define Y_MAX                    150.0
#define STEPS_PER_M_X            12800000
#define STEPS_PER_M_Y            768000
#define BAUD                     9600 // it's better to use 115200
#define X_STEP_PIN               PC3 
#define X_DIR_PIN                PC2 

#define X_MIN_PIN                PA5  
#define X_MAX_PIN                DIO2
#define X_ENABLE_PIN             PC4
#define X_INVERT_DIR
#define X_INVERT_MIN
#define X_INVERT_MAX

#define Y_STEP_PIN               DIO9
#define Y_DIR_PIN                PC5 

#define Y_MIN_PIN                PD2
#define Y_MAX_PIN                DIO7
#define Y_ENABLE_PIN             DIO10
#define Y_INVERT_DIR
#define Y_INVERT_MIN
#define Y_INVERT_MAX


Machine usage requires a bit of practice, so i would suggest trying it first time on some non-important training materials. Launch controller application, a window similar to this bellow should pop up. Otherwise check console output or get wxPython in version 3 at least. At the bottom there is a status bar, displaying "Not connected" after starting. Set port device and baud from dropdown lists at top and try connect button. From now status bar should display machine position like: X0.0 Y0.0 F50.0, X stands for turn number, Y is carriage position, F is a feedrate (speed). On the right side there are two white text fields, top one contains log of performed actions, second underneath is a queue of planned commands which is send to machine on "Execute queue" button. Above status bar there are four buttons for manual steering but before that play, home the winder by clicking "Home". Any set of instructions being executed in progress can be stopped with "Stop" button, it comes useful when something is going wrong.

Whole process starts from mounting bobbin or template into the winders main axis, depending of the job there are several different tools which are provided. Small coils can be hold just by one side of the winder, for bigger ones there is adjustable hook from other side too. Correctly mounted bobbin does not wiggle or move in unwanted directions and is straight and geometrically centered much as possible. Take a spool of wire and set up one ending through the guide tensioner system, as it was presented on photo earlier. When bobbin sits tightly in place first step is to set the workarea margins. Use both sliders to set the position and "Go to"  button to check the position. Correctly set margins make wire being wound evenly and close to the bobbin extreme walls positions. To apply new margins values use "Set margins" button. Speed value depends of desired winding precision and used wire, the thicker the wire is then lower the speed. Valid range is between 20-200 rpm, send new speed value to machine with "Set movement" button. Winding motor direction can be set to one choice: upwards (preferred) or downwards. Guide direction depends of the end, where you start new winding, by default start winding them from right end to left end. When typing wire diameter consider additional thickens for insulation and errors from irregularities, for wire 0.26 it might become 0.3.

Windings count is the number of turns to be wind, from this point a guide starting position and direction are important. If number of windings does not fit current layer and hits a established marginal position, next layer is started and guide direction changes to opposite. Before queuing new commands check proposed guide direction, because it changes automatically after queuing, to value right for next queue. Ending position for the guide is also calculated automatically to right value for next queuing task, but after preforming immediate "Stop" this position needs to be corrected by "Get starting pos" button. Assume that you have planned new queue but decided to delete it without executing, calculated position is invalid and needs to be corrected as well. By default queue is not cleared after executing, I'm not sure if thats right because it is permitted to execute same queue multiple times. For unexperienced users this might be a trouble so just "Clear queue" before every next step and "Get starting pos" after each "Stop" or queue undo - hmm seems like it can be automated in code.
In some conditions don't try to wind whole hundreds of turns at once, start by first and second layers and when everything seems to lay fine - queue the rest - otherwise fix some parameters like wire diameter, margin position or wire tension.

Bellow are some pictures of winding process. Bobbins can be bought, made of some pieces of plastic or printed on 3d printer (ABS only) as a two halves for gluing. If you want to print your custom bobbins, it is good to start from adjusting this model.

It is important to wind first layer evenly and pretty, turn close to turn, otherwise next layers become ugly and hard to wind evenly too.


Second layer in progress, this is 0.6 mm wire.

When layer is complete, all the sides are impregnated by applying a lacquer. It prevents wire insulation from grinding due to vibrations from alternating field and improves insulation at all.

This bobbin is finished and has exactly 490 turns of wire.

This additional tool allows to wind bobbin-less coils for electric motors.

On second page, a practical procedure of rebuilding a mains transformer is described.

  • 1
  • 2
Comments (3)
Waylon 2018-11-21 06:47:01
Great day! I am Stephen from Hong Kong and we are a maker of hysteresis brakes and also hysteresis dynamometers. Our best item: hysteresis brake (use magnetic force as braking system, non-contact, exact, sturdy yet much more expensive than mechanical brakes). Application: Machinery building contractors/ producers (usually progressed machinery, for cords, cables, optic fibers, textiles, yarns, motor, transformer production, product packaging, accurate stress control is required). Extremely precise and also reliable. Most importantly, the cost is really affordable! Hysteresis Brakes, electro-magnetic brake - Validmagnetics Ltd. Hysteresis Brakes Summary When power is put on the field, it creates an internal magnetic flux.That change is then transferred into a hysteresis disk travelling through the area without using magnetic particles or friction elements As there is no direct call partly when the torque is generated, its life is long, while the torque is really exact as well as smooth, throughout the ... I would love to ask if you or your customers are searching for hysteresis brakes/ dynamometer or have interest in trading these products? In terms of technology and also high quality owned, we are positive that we are the leading one in Asia. I am anticipating hearing any kind of remark from you. Ideal concerns, Stephen Legitimate Magnetics Limited Room 604, Leader Industrial Centre, Fo Tan, Hong Kong Telephone: 852-62908202 Email: Web site:
Deanna 2019-05-11 20:37:12
How would you like to Upload A SINGLE Video And RANK for 100 LANGUAGES !!! FACT #1 ONLY 25% of the searches made online are in ENGLISH! And yet everybody focuses on trying to rank in ENGLISH! FACT #2 YouTube is the 2nd BIGGEST website in the world… And still you focus all your efforts trying to rank and get traffic ONLY from Google! DO THE MATH: With Over 3 Billion Searches A Month… All the visitors that you will ever need ARE ALREADY ON YOUTUBE! 3 billion searches a month. 75% are not in English… Do the math… 2.2 billion searches each month in foreign languages! Are you getting an idea on how much money you are leaving on the TABLE?
Almeda 2019-05-13 19:02:19
OVER 100,000 people have grabbed this Video Creation Software since it's release... The top marketers know the incredible power of an awesome well made video. It's been proven time and time again to boost conversions and sales. What video creation software doesn't take weeks or months to master? master it in hours! Make Awesome Videos In Minutes Using... Watch Some Of The Samples Below! No Restrictions. Ever. No More Limits! No Watermarks! Create Unlimited Videos & Have Full Rights to Everything Made! Grow Your Sales Captivate & Engage Your Audience. Make Easy Videos For Just About Anything! So You Can Quickly & Easily Make... Product Promotion Videos Affiliate Review Videos Amazon Product Review Videos Offline Business Promotion Videos Videos From Text Articles
Add a comment

For problems related questions please use issue tracker on git project repository (if any). Tags in comment will not work for now.