Open Source Stepper Motor Controller

From Open Source Ecology
Jump to navigation Jump to search

Introduction

Stepper motors are the simplest drive for moderate precision motion control applications (such as CNC plasma cutting). They provide the best price:performace for low to moderate mechanical power (<200W) at low to moderate RPM (<500 RPM). There is no open source stepper driver, AFAIK. This project will fill that need.

Concept

The output of this project will be a family of general purpose electronic drivers for a variety of electromechanical actuators. The first of them will be a stepper motor driver. With the appropriate alternative firmware (embedded software) the same hardware might be used as a servo driver for a brush-DC servo. With a modified output stage we could drive brushless DC or AC servos, or linear motors.

Design Rationale

Adaptability is good. Software is usually easier than hardware. Microprocessors are cheap. Simple circuits are better than complicated ones (other things being equal).

We keep the circuit simple and general, and we implement the control algorithm in software. We can tweak it most easily that way, and even replace it with something totally different.

Major functional units:

  • Computational logic. An Arduino could be used in the initial prototype, for speed of development. Later versions would want a cost reduced and/or higher performance microprocessor, or an FPGA for minimum latency and maximum bandwidth. The logic must be shielded from electromagnetic interference by the other parts of the system, especially the output drive (and the plasma cutter, if there is one). Independent power and small signal power supplies, and careful grounding, are likely to be needed.
  • Fast A/D converter. Allows the logic to monitor the current flowing through the load.
  • High power robust drive circuit. N-channel power MOSFETs in an H bridge, with appropriate protection. Select MOSFETs with plenty of current and voltage headroom, and favour ones with built in clamp diodes. A stepper motor is a heavily inductive load, so it can generate voltages substantially outside the supply rails.

This design should give good performance, excellent versatility, good replicability, and moderate cost.

Block Diagram and Modules

References

Development Team

Leo.dearden - Ideas. I'm to busy to do very much at the moment, but I'll do what I can.