How to Make an Arduino-Based Copper Wire Winding Machine

Automate your copper wire winding needs with this awesome kit.
Christopher McFadden

If the video player is not working, you can click on this alternative video link.

Need some copper wire wound? Then why not check out this amazing Arduino-based copper wire winding machine. 

No longer will you need to do this laborious task by hand. Just let the power of Arduino do the heavy lifting for you.


Like most projects of this nature, you'll need a few basic tools (listed below), and some other bits and bobs to get the job done.

copper wire winder
Source: Interesting Engineering

We have included links to some of the products in case you need to buy them: 

Main components:

copper wire winding machine complete
Source: Interesting Engineering

Gear needed:

Right, now to get on with the build. Hold on tight, there is a lot to get through.

The basic concept of the machine is to create a smaller spool of copper wire from a larger one automatically. A rotary dial is used to select the number of turns of the wire you want, which displays on the OLED display. 

Once set, the machine gets to work in short order.

The first step is to dismantle that old DVD drive you've managed to salvage. You are after the DVD laser head assembly inside. 

copper wire winder dvd
Strip down the DVD player, Source: Interesting Engineering

With that piece isolated, strip and solder the stepper motor terminals to the appropriate contacts on the salvaging DVD player's optical laser head's motor. This will vary depending on the design of the DVD player in question. 

copper wire winder dvd player
The arrow shows where to solder the stepper motor wiring, Source: Interesting Engineering

Strip off the part you don't need (basically the optical pickup) and make room for the wire guider you will build later. Watch the video for more details on this part. 

Next up, take the bolt and file flat the topmost part of two opposite sides. This will be used to make the wire guider later on.  

copper wiring machine bolt
File flat the topmost end of the bolt, both sides, Source: Interesting Engineering

Then drill a hole in the center to guide the copper wire between the spools. Bevel the hole, if required. 

copper wiring machine wire guide
Source: Interesting Engineering

Now insert the wire guider into the middle of the former DVD laser head assembly. Use a bolt to secure it into place. 

copper wirer guider
Source: Interesting Engineering

Next, take some random plastic pieces, or 3D print them to design. Make, or include in the design, an off-center 5/16 inch (8mm) hole. It will need to be deep enough to hold three 693 ZZ bearings when complete.

copper wiring machine plastic
Source: Interesting Engineering

Drill and tap one of the sides too, as shown in the video. You will need two identical pieces later. If required, cut down to the final shape. 

Again watch the video for more detailed instructions on this section as it will depend on what you get your hands on. 

Insert 3 no. ball bearings into the hole. 

copper wiring machine ball bearings
Source: Interesting Engineering

Test it by Inserting the 1/8 inch (3mm) shaft through the eyes of the ball bearings. This will hold the bobbin for the copper wire later on. 

Now take the 13/16 inch (20 mm) aluminum rod. We are now going to machine the pully and bobbin gripper parts of the machine. 

Secure into a vice, and drill holes into it as shown in the video, This make take some trial and error. They will need to be M3 size, and tapped, and will be used for the locking nuts. 

copper wirer bobbin gripper
Source: Interesting Engineering

Machine into shape, as shown in the video. DrilL A 1/8 inch (3mm) hole into the end to fit on the 1/8 inch (3mm) shaft used earlier. Further machine and part-off the finished piece, as shown in the video. 

You will also need to make a pulley piece to hold the rubber band. This will be used to turn the bobbin using the DC motor later. 

copper wire gripper pieces
The finished machined, drilled, and tapped bobbin gripper pieces and pulley, Source: Interesting Engineering

Now assemble the gripper and pulley assembly. 

copper wiring machine gripper
Source: Interesting Engineering

Now scavenge some more pieces from the DVD player to built a holder for the DC motor. The process, and dimensions, will vary depending on the DVD player design. 

Watch the video for more details on this stage. 

copper wirer drill holder
Source: Interesting Engineering

Attach the motor assembly to the DVD laser head assembly frame as shown in the video. Also, attach the bobbin gripper assembly in a similar fashion. 

Now take the M5 threaded rods. These will be used to make the legs to hold the assembly in place. 

copper wiring machine feet
Source: Interesting Engineering

Next, we will make the display and knob mounting. Take the acrylic sheet and cut to size, as shown in the video. 

Drill holes and cut in notches as also shown in the video. You may want to mock this up before committing to cutting the acrylic sheet.

Heat and bend it to the desired angle. 

copper wiring machine acrylic
Source: Interesting Engineering

Attached the OLED display and rotary dial to the acrylic mounting. 

copper wiring machine OLED
Source: Interesting Engineering

Now take the IR sensor. This will be used to count the number of turns of the bobbin.

Create a suitably sized, and shaped, mounting for it, and attached the appropriate place on the ex-DVD player's main assembly. 

copper wiring machine IR sensor
Source: Interesting Engineering

Make a small opaque black semi-circle to attach the outer face of the pulley on the bobbin gripper. This will turn with the pulley and obscure the IR sensor every turn. 

Connect the pulley and DC motor with the rubber belt. 

copper wiring machine pulley
Source: Interesting Engineering

Now take the MDF board. This will form the main base for the entire contraption and will also hold the main PCB board in the center. 

Drill holes to match the positions of the main assembly legs and secure them into place as shown in the video. 

copper wire base
Source: Interesting Engineering

With most of the mechanical parts complete, the next stage is to complete the electrical circuitry. You will need to watch the video for detailed instructions on this part. 

Especially for information on the custom PCB design. Solder on the necessary component as shown in the video and below image. 

copper wiring machine pcb
Source: Interesting Engineering

Attach the stepper motor drivers, Arduino Nano, and stepper motor controller into their respective slots on the PCB board. 

copper wiring machine pcb complete
Source: Interesting Engineering

Fix the PCB and main assembly to the base. 

copper wiring machine complete
Source: Interesting Engineering

Now you will need to copy the code to the Arduino. Here it is in all its glory: 

#include <Wire.h>
#include "SSD1306Ascii.h"
#include "SSD1306AsciiWire.h"
#define I2C_ADDRESS 0x3C
#define RST_PIN -1
SSD1306AsciiWire oled;

#define EN 5
#define M1 3
#define M2 4
#define OUTA 9
#define OUTB 8
#define SW 6

int state = 0;
int statea = 0;
int Astate = 0;
int Alaststate = 0;
int count = 0;
int PWM=200;
int startpos =120;
int minpos=140;
int maxpos =178;
int pos;
int pause = 20;
int k;
int encoder_pin = 2; // pulse output from the module

int pulses;
int x ;



void counter()
//Update count

void setup() {
#if RST_PIN >= 0
oled.begin(&Adafruit128x64, I2C_ADDRESS, RST_PIN);
#else // RST_PIN >= 0
oled.begin(&Adafruit128x64, I2C_ADDRESS);
#endif // RST_PIN >= 0

pinMode(OUTA, INPUT);
pinMode(OUTB, INPUT);
pinMode(EN, OUTPUT);
pinMode(M1, OUTPUT);
pinMode(M2, OUTPUT);
Alaststate = digitalRead(OUTA);

pinMode(encoder_pin, INPUT);
//Interrupt 0 is digital pin 2
//Triggers on Falling Edge (change from HIGH to LOW)
attachInterrupt(0, counter, RISING);
// Initialize
pulses = 0;

void loop() {
oled.setCursor(0, 0);
oled.println(" TURNS");
oled.setCursor(0, 13);
Astate = digitalRead(OUTA);
if (Astate != Alaststate){
// If the outputB state is different to the outputA state, that means the encoder is rotating clockwise
if (digitalRead(OUTB) != Astate) {
count ++;
} else {
count ++;
// Serial.print("Position: ");
// Serial.println(count);
oled.println( count*10);




void motrun(){
digitalWrite(EN, HIGH);

void motstop(){
digitalWrite(EN, LOW);

Upload to the Arduino, attached the main copper spool to the main assembly, thread through the guider, and attach to the smaller bobbin. Your copper wire winder is ready to go!

copper wire winder complete
Source: Interesting Engineering

To use, power up the electronics, turn the knob to the desired number of turns and press the rotary dial to kick it into action. 

copper wiring machine in action
Source: Interesting Engineering

Happy copper wire winding!

Add Interesting Engineering to your Google News feed.
Add Interesting Engineering to your Google News feed.
message circleSHOW COMMENT (1)chevron
Job Board