How to use disk drive stepper-motors


Why to use components from old disk drives

You might ask why use components from old disk drives. The answer is that disk-drives have many expensive components and you can get old bad disk-drives freely or very cheaply. They are good sources for following components with not much effort:
1. Small stepper motors and controllers
2. Optical sensors or microswitches
3. Accurately speed-regulated DC-motor
4. Useful accurate mechanic parts for small projects

Disk drive interface description

Power connector pinout

Normal floppy disk drives use normally +12V and +5V power supplies. They can load each power-line with current of less than 100 mA up to even more than 1 A. That depens on the model of the disk drive. Here is the power connector pinout when you look the connector on the drive back:

  /             \
 |  1 2 3 4   |
 |________ |

Pin Function

1   +5 V
2   Ground
3   Ground
4   +12 V

Shugart disk-drive interface

The following table shows signals of the most commonly used floppy disk drive computers. The pinout is somehow de-facto and the use of certain signals may be different in various systems. This interface is used in both PC and Amiga computers, but the use and handling of various signals are different. Anyway those signals are always TTL-level signals.

Pin Function

1   GND
2   High density select
4   Head load / In Use, Eject
6   Drive select 3
8   Index pulse +
10  Drive select 0 / Motor on A
12  Drive select 1 / Drive select B
14  Drive select 2 / Drive select A
16  Motor On / Motor on B 
18  Direction
20  Step
22  Write data
24  Write enable
26  Track Zero +
28  Write Protect +
30  Read Data +
32  Select Head
34  Disk Changed + / Ready +
3-33 Odd pins are GND

PC/AT disk drive signals

PC/AT computers use those disk drive signals in the following way. In this system the drives are jumpered to be type A or B depending the situation. Usually PC and AT systems use a special cable which changes singal positions of drive A and B motor on and select signals between disk drive connectors. This makes it possible to have both drives to be jumpered as drive A and one drive works in this way as A and another as B.

Pin Function         Direction

1   GND
2   High density sel ???
8   Index pulse      from drive
10  Motor on A       to drive
12  Drive select B   to drive
14  Drive select A   to drive
16  Motor On B       to drive 
18  Direction        to drive 
20  Step pulse       to drive
22  Write data       to drive
24  Write enable     to drive
26  Track Zero       from drive
28  Write Protect    from drive
30  Read Data        from drive
32  Select Head      to drive
34  Disk Changed     ???
3-33 Odd pins are GND

How to use disk-drive stepper motor

What kind of stepper motors there are in disk drives ?

Floppy disk drives use stepper motors for controlling read/write head position. Even early hard disk drives also used steppers, but nowadays hard drives have replaced the teppers with voice-coil servo motors.

The stepper motors used in 5 1/4" floppy disk drives usually move the read/drite head using wheel and spring mechanism which works quite well. Motors used in those drives are usually 200 or 400 steps per revolution models. 200 steps per revolution models are are used in standard density (40 track per disk) drives. High-density floppy-drives have 80 tracks and they use 400 steps per revolution stepper motors. Both of those motors are very useful for your own projects. Stepper motors usually use +12V power, but some new low-power drives use +5V power source for driving steppers.

Small 3 1/2" floppy disk drives usually use screw-type mechanics, where motor rotates the screw-like axle, which moves the read/write head. This type of mechanics makes it possible to make smaller drives and depends on th screw characteristics the motor can have bigger steps. Those motors are usually driven from +5V source, because many modern 3 1/2" drives use only +5V power-supply.

How to use those motors in your own projects

Stepper motors are quite useful for robotics, plotter and control projects. Stepper motors are accurate way of making desired mechanical movements. Stepper-motors are not very powerful or fast (about 300 steps/sec).

You can build your own controller or use ready-made controllers with them. You just have to identify the type, wiring and operating voltage of the stepper motors to be able to use them. Unfortunately stepper motors are not the easiest motor types to control and ready-made controllers are usually quite expensive.

When you have just taken the motor out of the disk drive, you might have thought that there must be also a stepper controller inside the disk drive electronics. You are right that there is a controller, which is capable to drive the motor. It is quite easy to send signals to that controller using PC parallel port and small program.

How to use controller in disk-drive electronics

The controller in the disk drive electronics can be succesfully used in the following way:
1. The electronics needs +5V to operate and usually +12V for motors
2. If the disk-drive has function to automatically got to track zero on powerup, you have to disable that option unless you want to use that option and the track zero detectio in your project. This option can be found from modern disk-drives, but old drives does not have it. Sometimes there is jumper for enabling and disabling this option.
3. Make sure that the electronics does not need to detect the disk in the drive to be able to move the stepper motor. This sensor can be easily easily make to give electronics the info that the disk is in drive. You only have to put some tape or glue to the sensor to make it think that disk is always in the drive. You can also accomplish this by cutting one wire or adding one extra wire to bypass the sensor.
4. Use drive select signal to select the drive electronics. Then use direction and step pulse signals to control the steper motor.

Disk drive interface stepper motor control signals

The following signals are used to control the disk drive stepper motor controller circuit. First you have to select the drive by connecting the correct drive select signal to ground. Then you use the direction signal to select the direction which you want the motor to take step. The stepping is controlled using step pulse signal, which is normally high. One low going pulse at step pulse line makes the motor to take the one step. Make sure that pulse signals are longer than 1 microsecond and you are not sending then faster than the motor can take steps.

Pin Function         Direction

1   GND
12  Drive select B   to drive
14  Drive select A   to drive
18  Direction        to drive 
20  Step pulse       to drive
26  Track Zero       from drive
3-33 Odd pins are GND

PC parallel port to stepper-motor interface

This is a simple example how to control disk drive stepper motor using PC parallel port. I expect that the drive is jumpered to be as drive A. The parallel port pin numbers are according the 25 pin connector numbering which is in the the back of your PC.

Connect parallel port pin 20 (ground) to disk drive connector pins 17 and 19 (ground). Connect disk drive connector pin 14 (drive select A) to disk drive connector 17 (ground). Connect parallel port pin 2 (D0) to disk drive connector pin 20 (step pulse). Connect parallel port pin 3 (D1) to disk drive connector pin 18 (direction).

In this way you have made a cable with which you can easily control the stepper motor using parallel port datapins D0 and D1. Those pins can be easily controlled in your software by directly writing to parallel port hardware. You can't use the DOS, BIOS or other operating system functions, because this interface does not generate the handshaking signals those routines need.

Directly controlling the parallel port is very easy. First you have to read the I/O address from the BIOS data area. LPT1 I/O address is the 16-bit word which can be found from memory address 0008h at segment 0040h. Then you simply write the data you want send to parallel port data pins to this I/O address. The writing can be easily done using following commands in different languages: out in assembler, outp in borland c and port in pascal.

How to use disk drive rotating motor

Disk drive motors are quite nice motors quite accurate speed control system. Disk drive motors rotate the disk at 300 or 360 rpm speed. Standard drives use 300 rpm, but high-density drives use 360 rmp or selectable speed 300/360 rpm motors.

Motor control signals in disk drive interface

You can make the disk drive motor to spin when you enable both drive select and motor on signals by pulling those signals to low logical state. This can be easily done by connecting both signals to signal ground.

The high-density signal mightr have something to do with selecting the speed of the motor in disk drives with two-speed (300/360 rmp) motors. I have not needed and figured out this yet.

Pin Function         Direction

1   GND
2   High density sel ???
10  Motor on A       to drive
12  Drive select B   to drive
14  Drive select A   to drive
16  Motor On B       to drive 
3-33 Odd pins are GND

Other useful components from disk drives

Disk drives are also quite nice source for other components also. When you take the motors out of the disk drive, you can easy take other components also. Usually there are optical sensors or microswiches in disk drive to sense the write protect tab. Those components are useful sensors in you stepper-motor controlled robotics circuits. Many direct drive rotating motors use hall-sensors for sensing rotating speed. This can be quite useful component if you can figure out how it is connected.

How about using hard disk stepper motors ?

Many older hard disk also had stepper motors for controlling read/drite head motion. Many modern disk drive drive motors use voice-coil control systems, which makes another story.

In my experiments I have used ST506/412 interface hard disk drives. Those are the original IBM PC/AT hard disks (usually called MFM disks) which needed a controlling card. The modern ATA/IDE drives are basically the same drives, but the controller electronics is integrated to disk drive electronics, which makes them more complicated and harder to control.

Basically hard disk drive has same basic elements as the floppy disk drive: read/write-head, head moving motor, disk rotation motor, sensors and controller electronics. You can use those differents componens at their own or use the controlling electronics provided by the hard disk drive electronics. Stepper motors are same types as used in floppy drives, though the number of steps/revolution might be higher. The drive rotating motor is same type of drushless DC motor as used in modern floppy drives, but those run at much higher speed (about 3000-3600 rmp).

ST506/412 hard disk interface

ST506/412 hard disk interface is something like a modified floppy disk drive interface. The physical interface in ST506/412 consists of two connectors: 34 pin control connector and 20 pin data connector. The control connector carried all disk drive control information and data connector carries the data. The controller cable goes to two hard drive control interfaces (up to four can be supported), but each hard disk drive has it's own data cable.

Control connector pinout

All control connector signals are TLL level signals. They are active when set to low state (0 V).

Pin Function               Direction

2   Reduced write current  to drive
4   Head select 2^2        to drive
6   Write gate             to drive
8   Seek complete          from drive
10  Track 0                from drive
12  Write fault            from drive
14  Head select 2^0        to drive
16  reserved
18  head select 2^1        to drive
20  Index                  from drive
22  Ready                  from drive
24  Step                   to drive
26  Drive select 1         to drive
28  Drive select 2         to drive
30  Drive select 3         to drive
32  Drive select 4         to drive
34  Direction in           to drive

Pins 1-33 all odd pins are ground

Data connector

Pin Function               Direction

1   Drive selected         from drive
3   reserved
4   reserved
7   reserved
9   reserved
10  reserved
13  +MFM Write data        to drive
14  -MFM Write data        to drive
17  +MFM Read data         from drive
18  -MFM Read data         from drive

Pins 2,4,6,8,11,12,15,16,19 and 20 are ground pins.

Using hard disk drive stepper motor

I have made some experiments of using also hard disk drive stepper motor and controller electronics in my own projects. The stepper motor is easy to connect same type of step and ditection signals as disk drives. You can get more information from disk drive chapters. The only difference to disk drive system is that the disk drive electronics can buffer the movement signals, so that the controller stores the movement pulses and executes the muvement after the controller has received the last movement pulse.

Stepper motor control pins in ST506/412 interface

The following signals from control connector are needed for using stepper motor controller in hard disk drive electronics. Most important signals for stepper motor control are Direction and Step signals. The direction signals works so that low logic level moves the read/write head inward (towards the center of the disk) of the disk and high logic level moves the head outward. Step signal is active low pulse signal. Drive select signal must be activated (pulled low) and Write gate must be deactivated (pulled hight) to make the drive to take the stepper motor control signals. Seek complete, Ready and Track 0 provide some extra status information.

Pin Function               Direction

6   Write gate             to drive
8   Seek complete          from drive
10  Track 0                from drive
22  Ready                  from drive
24  Step                   to drive
26  Drive select 1         to drive
28  Drive select 2         to drive
30  Drive select 3         to drive
32  Drive select 4         to drive
34  Direction              to drive
1-33 all odd pins are ground

Procedure to control hard disk stepper motor

I have used the following procedure for controlling hard disk drive stepper motors (taken from DP8466 Design Guide):

1. Deactivate the WRITE GATE line (pin 6)
2. Activate the DRIVE SELECT line (pin 26,28,30 or 32)
3. Wait for READY and SEEK COMPLETE signal to be true.
4. Select the direction with DIRECTION signal. (pin 34)
5. Send the movement pulses using STEP line. (pin 24)

Where I got all this information

I have got most of this information in this documents from numerous some articles usenet newsgroups alt.comp.hardware.homebuilt and sci.electronics. I have also used some reference books to check some facts and get more detailed information. The ideas how to use those motors in your own projects is my ideas. I have used parts from old disk drives in many of my electronics projects (most have been only some simple experiments).



 Ham radio Data Center - free schematics | Free HAM Directory | About me | Acronyms  | CW | Data Sheets | Docs | Download | E-mail | HOME | Ham projects | Hobby circuits | Photo galery | PIC | QTH photos |
Sign in my guestbook | View my guestbook ]

© 2001 - YO5OFH, Csaba Gajdos