Chapter 1 — Introduction and Scope
This manual covers the motorized coil winder controller: a dual-axis CNC system that winds RF coils with programmable turn count, pitch, and wire gauge. The spindle axis (NEMA 23, 2.5 A) rotates the winding former; the traverse axis (NEMA 17, 1.5 A) advances the wire guide one wire-diameter per revolution. The ESP32 controls both axes via DRV8825 or TMC2208 stepper drivers. Parameters are entered via a front-panel rotary encoder + OLED display or via USB serial. A winding program (number of turns, pitch, wire gauge) is stored on an SD card.
Chapter 2 — Theory of Operation
2-1 Step Coordination
For single-layer close-wound coils: traverse steps per spindle revolution = wire_OD / traverse_step_size where traverse_step_size = lead_screw_pitch / steps_per_rev_microstepped. The ESP32 uses a step-rate ratio to keep the axes coordinated. Step pulses are generated via hardware timers (ESP32 MCPWM or timer ISR) to maintain precise step rates at speeds up to 1000 RPM.
2-2 TMC2208 Advantages
The TMC2208 provides stealthChop (silent operation) and 256-step micro-stepping, reducing vibration at low speeds. Current sensing is internal (no external sense resistors required). The UART interface allows current, chopper mode, and speed ramping to be configured from the ESP32 at runtime, without hardware changes.
Chapter 3 — Equipment and Materials
| Component | Spec / Part | Purpose |
|---|---|---|
| Spindle motor | NEMA 23, 2.5A, 200 steps/rev | Rotate winding former |
| Traverse motor | NEMA 17, 1.5A, 200 steps/rev | Advance wire guide |
| Spindle driver | TMC2208 or A4988 | Microstepping drive |
| Traverse driver | TMC2208 or A4988 | Microstepping drive |
| Controller | ESP32 WROOM-32 | Step generation, UI, SD logging |
| Display | SSD1306 0.96” OLED I2C | Turn counter, speed, status |
| Encoder | KY-040 rotary encoder + button | Parameter entry |
| SD card module | SPI, 3.3V | Winding program storage |
| Power supply | 24V 5A (or 12V for NEMA 17) | Stepper VMOTs |
| Limit switches | 2× microswitches on traverse | Home and end-of-travel |
Chapter 4 — Construction and Setup
- Mount spindle motor to the main frame with its axis aligned with the former mandrel. Use a flexible coupler to compensate for minor shaft misalignment.
- Mount traverse motor on a lead-screw linear stage. Lead screw pitch: 2 mm per revolution (M8 or TR8×2). Mount wire guide on the linear stage carriage.
- Wire stepper drivers: VMOT to 24V rail, GND, MS1/MS2/MS3 for microstepping (TMC2208 SPI-configured; A4988 uses jumpers for 1/16-step mode). STEP/DIR to ESP32 GPIO.
- Wire limit switches to ESP32 GPIO with 10 kΩ pull-ups. Connect HOME switch to traverse axis minus limit; END switch to plus limit.
- SD card: SPI bus (SCK, MOSI, MISO, CS). SD CS = GPIO5; SD SPI shares bus with display if display is SPI type.
Chapter 5 — Operating Procedures
- Home the traverse axis: press HOME button. Traverse moves to minus limit switch and sets position to zero.
- Enter winding parameters via encoder: wire gauge (AWG), turns, coil length (or pitch), wind direction (CW or CCW looking at spindle).
- Press START. The controller winds the specified turns, counting on the OLED display. Press PAUSE to stop at any point; press RESUME to continue.
- After completion: the controller stops and displays DONE + final turn count. The completed program is logged to the SD card with date, wire gauge, turns, and any errors.
- For multi-layer coils: increment the layer counter in the program. The traverse will reverse direction automatically for each layer.
Chapter 6 — Calibration
- Spindle step calibration: command 10 revolutions; count actual revolutions with a mark on the former. Adjust steps_per_rev in firmware if actual turns differ from commanded.
- Traverse calibration: command 10 mm of traverse travel. Measure with a micrometer. Adjust mm_per_step in firmware.
- Wire gauge calibration: measure actual wire OD with a micrometer for each gauge in use. Update the wire_od_mm lookup table in firmware.
Chapter 7 — Verification and Acceptance
- Wind a test coil: 10 turns, 28 AWG, close-wound, 20 mm former. Expected coil length: 10 × 0.321 mm (28 AWG OD) = 3.21 mm. Measure: must be within 0.5 mm of expected.
- Measure inductance with LCR meter. Compare to Wheeler's formula. Agreement within 10% confirms turn count and pitch are correct.
- Step alignment: at end of winding, traverse return to home position must be within 1 step of the home limit switch.
- Log: date, test coil gauge and turns, measured length, measured inductance, step calibration values, operator.
Appendix A — Wire Gauge Reference
| AWG | OD bare (mm) | OD insulated (mm) | Max current (A) |
|---|---|---|---|
| 14 | 1.628 | 1.95 | 15 |
| 18 | 1.024 | 1.30 | 7 |
| 22 | 0.644 | 0.85 | 3 |
| 26 | 0.405 | 0.55 | 1 |
| 28 | 0.321 | 0.45 | 0.5 |
| 30 | 0.255 | 0.35 | 0.3 |
Appendix B — Step Rate vs. RPM
Spindle: NEMA 23, 200 steps/rev, 1/16 microstepping = 3200 steps/rev At 600 RPM: step rate = 600/60 × 3200 = 32,000 steps/sec At 1200 RPM: 64,000 steps/sec (near ESP32 timer limit; reduce to 1000 RPM max) Traverse: M8 lead screw, 1.25 mm pitch NEMA 17, 200 steps/rev, 1/16 step = 3200 steps/rev mm per step = 1.25 / 3200 = 0.000391 mm/step (0.391 μm resolution)