Blog Sturntech

ReverseEngineering: FD1231H Floppy Disk Spindle Motor Controller

with 7 comments

This weekend I took apart a NEC FD1231H 3.5″ Floppy Disk Drive (link) with the goal of re-purposing the floppy disk motor. The primary controller board IC is marked TRN9510A and thus far I haven’t been able to find a datasheet. The disk motor assembly is on its own board, connected via a backplane ribbon cable (6 pins).

Picture of the FD1231H Floppy Disk drive internals

The disk motor assembly board has a drive controller IC marked SS300 / 86CR. The motor is permanently mounted to the disk motor assembly and is marked “Y08 8428A”. The disk motor assembly board has PCB silk markings of “Sankyo KS-46 TM95C”.

Picture of the Sankyo KS-46 Motor Drive Assembly from a FD1231H

The above picture shows the motor that I wanted to drive; conveniently mounted to a board with a pre-existing controller IC, The only interconnection to the main controller board is via the 6 pin ribbon cable. My first assumption is that all power and control signals must pass through this connection. Since I haven’t found datasheets detailing the operation of any IC in this design, I started by scraping together every scrap of information I deemed relevant.

Close-up picture of the off-board ribbon connector on the Sankyo KS-46 Floppy Disk Motor assembly

First and foremost, a connectivity test on the Primary controller board’s pins indicates that one of the ribbon pins connects to GND, another connects to +12V, and the other four each connect to pin on the primary controller IC. From the silk-screened text on the Motor Drive assembly, I found useful names describing the functions of each pin on the backplane ribbon cable.

Pin 1 – Vcc (+12V)
Pin 2 – G (GND
Pin 3 – I
Pin 4 – CLK
Pin 5 – SPD
Pin 6 –  S/S

Additional interesting silk-screen text markings include “Hv+”, “Hv-“, “Hw+”, “Hw-“, “Hu+”, and “Hu-“. This indicated to me that the motor controller IC is meant to drive a stepper motor with 3 primary coils. These markings indicate the existence of sensor amplifiers used in determining the position of the motor’s rotor.

Powering the Motor Drive assembly board with +12V on Vcc and measuring the voltage on each pin indicates that the S/S and SPD signals have weak pull-ups to Vcc (32k and 47.2k respectively), whereas CLK and I signals are provided by an external circuit.

A couple hours of googling turned up several motor controller ICs for similar applications that use similar naming conventions. Most useful were the M56787FP Spindle Motor Driver  (link) and the ZMBM1015 Brushless DC Motor Controller (link).

I was able to deduce that CLK is an external clock signal. I assumed that it would be 50% duty cycle since the destination IC is a probably a Motor Controller IC (and any PWM function would be implemented by such a controller). The S/S signal is a Start/Stop logic signal. The SPD signal seems to be a voltage variable control on the motor rotation speed. I couldn’t find any direct reference to “I”, but since the only typical control line yet missing is a motor spin direction control, I assumed that this is probably what the “I” line was for.  See the comments for a more logical purpose of pin “I”. It is commonly used as an RPM output from a sensor that monitors the rotation rate of the motor.

Simulation of the 555 timer circuit used in the FD1231H Floppy Disk Controller project

For the first test run, I decided to leave SPD untouched (pulled to Vcc) and signal “I” pulled to GND. The S/S signal I pulled to GND. The CLK signal I arbitrarily decided to generate a 300kHz 50% duty cycle square wave (since this frequency was used by one of the reference Motor Control ICs I found earlier). For the CLK signal, I used a 555 timer circuit. When interfacing the 555 output to the CLK signal line, I used a BC547 NPN transistor.

The motor spins! The S/S signal was confirmed as a Start/Stop signal (GND/Float). The SPD signal is 100% Float, decreasing with voltage dividing down from the Vcc pull-up. The “I” signal does not seem to handle spin direction control CW/CCW as thought. See the comments for the information that pin “I” is commonly used as an RPM output (presumably from the position sensor that used to be mounted on the board, opps!).

A CLK of 300kHz resulted in a pretty jerky spin motion. Reducing the frequency worsened the performance. Increasing the frequency helped a lot, with a smooth continuous rotation discovered around 1MHz. Further increases in frequency heated the motor driver IC up quite a bit, without any noticeable gain in spin performance.

Using a 1MHz CLK signal, I was able to get this motor to spin at near 360RPM (measured with light strobe).

Build of the FD1231H Motor Drive Controller Project

Written by sturnfie

December 4th, 2010 at 11:23 pm

7 Responses to 'ReverseEngineering: FD1231H Floppy Disk Spindle Motor Controller'

Subscribe to comments with RSS or TrackBack to 'ReverseEngineering: FD1231H Floppy Disk Spindle Motor Controller'.

  1. Hi, first of all, nice informations !
    There is just a small mistake about the pin I, at least in my motor, it’s an RPM output, you must place a pull-up resistor, I used a 10k resistor connected to 12V. So, there is no CW/CCW control in this one.
    In the SPD, I used a 10k trimpot connected to ground, changing the resistance is possible to decrease some % of the RPM (12V max RPM and GND min).
    Best regards,
    Rodrigo

    Rodrigo Nunes

    9 Jan 11 at 4:36 PM

  2. I tried testing the board…..and well, it definitely isn’t a CW/CCW direction control. I had stripped the sensor module off the board when I was removing all objects hanging off the board’s edges so while I can’t directly test your excellent information, I suspect you are correct.

    sturnfie

    19 Jan 11 at 9:01 PM

  3. Hi Lucas,

    By first my congratulations for your work that resulted in a useful and valuable information about the floppy disk spindle motor. I found your page when was looking for a schematic of the NEC FD1231H 3.5″ Floppy Disk Drive motor board. My first attempt was not use the motor itself but discover the pin function of the hall effect sensors used to control the motor velocity by the controller IC. Here in my city is not easy found hall effect sensors to sell and as they are used in the floppy and HD spindle motors the discarded ones are a good supply of these sensors. After a friend sent a link describing how to make a magnetic levitation circuits I became very interested to build one using the TL494 to drive the coil and one hall effect sensor ripped from a HD spindle motor as height sensor:

    http://uzzors2k.4hv.org/index.php?page=magneticlevitation

    Like you I was not able to found the datasheet of the control IC but the links to the datasheets of the control ICs was useful to make a comparison with my analysis using a multimeter. The hall effect sensors are connected in a different way than depicted in M56787FP datashet, instead the arrangement is like depicted in the application example of the BA6486FS

    http://www.classiccmp.org/rtellason/chipdata/ba6486.pdf

    where the hall sensors are connected in series with the +Vcc. Following the connections in the PCB I discovered that the circles are test points connected to the hall effect sensors, probably the most important since two pins of each sensor are connected to the 3 amplifiers in the circuit. The inputs of these amplifiers are pins 7, 8, 9, 10 and 11. The test points are tied to pins 7, 8 and 9. The bias resistor is connected to pin 5, also the +Vcc pin of the IC (pin 2 is the GND). If the PCB is positioned with the flat cable pointing upward the upper left pin of H3 is connected to the pin 13 of the controller IC. Surely it is tied to ground internally by a switch like in the BA6486FS. If you wish a sketch of how the hall effect sensors are connected to the controller IC, please send a message to jrgabbardo@yahoo.com and I will be pleased to send it to you.

    Best regards,

    João Roberto Gabbardo

    João Roberto Gabbardo

    12 Mar 11 at 7:12 PM

  4. Thanks for the information! I just took apart one of my old spare floppy drives and found this motor. This is a great writeup.

    Justin

    23 Mar 11 at 8:45 PM

  5. My first thought was “I for Index pulse”. I’d expect it to fire in one rotational position. It could be used to regulate the spindle speed in a closed loop. I think locating sectors might be more fiddly and done by detecting gaps in the head signal. I don’t think discs are supposed to be spun in reverse anyway 🙂

    Very nice writeup. I’ll have to keep it in mind if I see a board like that. Spindle motors are a part I’ve never been able to salvage.

    XTL

    27 Sep 12 at 2:54 AM

  6. your nice information glad to me but my silk marking
    text is..
    clk 1M
    spd RPM
    S/S DMO
    I IXP

    is this similarity is write?
    Tell me about this.
    Thanks
    Ripon

    Ripon

    13 Dec 12 at 5:55 AM

  7. Can you enumerate all the materials used on this project?

    Frinzx

    3 Mar 16 at 8:04 PM

Leave a Reply