Preparing to microstep my Rodime RO202E

31 views
Skip to first unread message

Tom Stepleton

unread,
May 30, 2023, 6:49:32 PM5/30/23
to mfm-d...@googlegroups.com
Hi folks,

I wish to attempt a recovery from a misaligned head on a set of Rodime RO202E drives by applying the procedure described here: https://www.pdp8online.com/mfm/microstep/index.shtml . I have the stepper controller called for on that page, and I believe it's appropriate to the drive. To increase odds of success, I'd hoped to ask a few questions ahead of time. Bear with me --- I wish to ask in full detail :-)

As I go, I'll refer to the procedure document linked above as [Microstep]. I'll also refer to the Rodime 200E-series manual as [Manual] (http://www.bitsavers.org/pdf/rodime/Rodime_RO200/USM0038-A_200E_Series_Disk_Drives_1983.pdf --- beware potato-quality schematics).


1. Stepping.

[Microstep] says, "The Miniscribe was using a half step technique", while [Manual] says "The two phase stepper motor operates in a fractional-step mode under microprocessor control (0.45° per track)."

Does it sound like [Manual] is describing a similar configuration to the Miniscribe? 0.45° per track is 800 steps per rotation, which is 2*400 steps, where 400 is apparently a standard configuration for a stepper and a value also mentioned in drive_read_stepper.c.

See also Figure 18 describing the patterns of current going through the stepper wiring on PDF page 34 of [Manual].


2. Track zero.

[Manual] indicates that the track 0 sensor may really be a "track 3-4 sensor" --- it sounds like the Rodime controller detects this position and then counts steps backwards to track 0:

Track zero is defined from a combination of a particular stepper motor phase (one of eight) and a flag mounted on the drive arm. This flag is set up, using a special assembly fixture to switch on opto-interrupter (track zero transducer) mounted on the base casting. The flag is set to switch between tracks 3 and 4. Track zero requires the flag to be true (transducer interrupted) and the correct stepper phase to be selected.

Will it be necessary to alter drive_read_stepper.c or some other code to account for this way of detecting track zero?


3. Stepper wiring.

I'm unfamiliar with wiring conventions for stepper motors. While drive_read_stepper.c talks about A+, A-, B+, and B-, Rodime used different nomenclature: ACa, ACb, BCa, and BCb. These are associated with wires that are yellow, white, red, and blue respectively, and I see that this matches the wire ordering for the Miniscribe in drive_read_stepper.c. Does this sound like a likely correspondence?

There is no label of any kind on the Rodime's stepper motor. Which brings me to:


4. Stepper current.

Unlike with the Miniscribe in [Microstep], there's no handy label saying what current to use in the stepper windings. The Rodime uses PBL 3717 stepper drivers, and based on information in the datasheet (https://www.mikrocontroller.net/attachment/214285/PBL3717_E.pdf), I know two things:

- PBL 3717 output currents top out at 1.2A
- The way the 3717 is used in the circuit would require the drive to use a control voltage of 14.5V to command the 3717 to deliver the full 1.2A. I don't think the control signal could easily exceed 10.5V or so (it's driven by an LM324 with 12V as Vcc) which means 870mA as wired, although I could be wrong about the LM324.

Anyway, how would you approach driving a stepper you knew nothing about? Start low and ramp up?

(Stepper voltage will have to be 12V per the schematic --- or a little less since the voltage passes through diodes before going to the 3717. Meanwhile, it's amazing that the wee chip on the Sparkfun board can deliver 2A...)


5. Track zero again.

Do I understand correctly from [Microstep] that I'll have to convert the track zero signal down to 3.3V?


Thanks for reading this far --- with your answers I'll be able to give it a try as soon as I finish sourcing all of the connectors etc.

Cheers,
--Tom

d...@pdp8online.com

unread,
May 31, 2023, 8:42:12 AM5/31/23
to MFM Discuss
On Tuesday, May 30, 2023 at 6:49:32 PM UTC-4 step... wrote:
Hi folks,

I wish to attempt a recovery from a misaligned head on a set of Rodime RO202E drives by applying the procedure described here: https://www.pdp8online.com/mfm/microstep/index.shtml . I have the stepper controller called for on that page, and I believe it's appropriate to the drive. To increase odds of success, I'd hoped to ask a few questions ahead of time. Bear with me --- I wish to ask in full detail :-)

As I go, I'll refer to the procedure document linked above as [Microstep]. I'll also refer to the Rodime 200E-series manual as [Manual] (http://www.bitsavers.org/pdf/rodime/Rodime_RO200/USM0038-A_200E_Series_Disk_Drives_1983.pdf --- beware potato-quality schematics).


1. Stepping.

[Microstep] says, "The Miniscribe was using a half step technique", while [Manual] says "The two phase stepper motor operates in a fractional-step mode under microprocessor control (0.45° per track)."

Does it sound like [Manual] is describing a similar configuration to the Miniscribe? 0.45° per track is 800 steps per rotation, which is 2*400 steps, where 400 is apparently a standard configuration for a stepper and a value also mentioned in drive_read_stepper.c.


That seems reasonable
 
See also Figure 18 describing the patterns of current going through the stepper wiring on PDF page 34 of [Manual].


2. Track zero.

[Manual] indicates that the track 0 sensor may really be a "track 3-4 sensor" --- it sounds like the Rodime controller detects this position and then counts steps backwards to track 0:

Track zero is defined from a combination of a particular stepper motor phase (one of eight) and a flag mounted on the drive arm. This flag is set up, using a special assembly fixture to switch on opto-interrupter (track zero transducer) mounted on the base casting. The flag is set to switch between tracks 3 and 4. Track zero requires the flag to be true (transducer interrupted) and the correct stepper phase to be selected.

Will it be necessary to alter drive_read_stepper.c or some other code to account for this way of detecting track zero?


I never bothered with sensing track zero since I couldn't get a useful signal from the sensor on the first drive I was playing with. I use the --step command line option to manually move the heads when needed. This does mean you can repeatedly bash against the stop if your not careful. If I'm doing big steps I make do it as two half sized steps just in case. If the head at start is close to the right cylinder the code will move it some number of cylinders to read things properly. Looks
like that's  MAX_STEP_OFFSET which is 5 cylinders. If you see it printing larger offset between target and cylinder found ^c it and use --step to tell it how far to move the heads before trying again.

I'm pretty sure the code ignores track zero currently.

3. Stepper wiring.

I'm unfamiliar with wiring conventions for stepper motors. While drive_read_stepper.c talks about A+, A-, B+, and B-, Rodime used different nomenclature: ACa, ACb, BCa, and BCb. These are associated with wires that are yellow, white, red, and blue respectively, and I see that this matches the wire ordering for the Miniscribe in drive_read_stepper.c. Does this sound like a likely correspondence?


Yes. You can use a meter to verify. Should get low resistance from ACa to ACb and BCa to BCb.
 

4. Stepper current.

Unlike with the Miniscribe in [Microstep], there's no handy label saying what current to use in the stepper windings. The Rodime uses PBL 3717 stepper drivers, and based on information in the datasheet (https://www.mikrocontroller.net/attachment/214285/PBL3717_E.pdf), I know two things:

- PBL 3717 output currents top out at 1.2A
- The way the 3717 is used in the circuit would require the drive to use a control voltage of 14.5V to command the 3717 to deliver the full 1.2A. I don't think the control signal could easily exceed 10.5V or so (it's driven by an LM324 with 12V as Vcc) which means 870mA as wired, although I could be wrong about the LM324.

Anyway, how would you approach driving a stepper you knew nothing about? Start low and ramp up?


 At too low of a current the stepper won't operate properly so will be hard to separate too low current from wrong wiring. If parts accessible you could measure the sense resistor voltage and see what value it is, measure control voltage and the two reduced current control bits and calculate the current current. Or start with 0.4A or so.

(Stepper voltage will have to be 12V per the schematic --- or a little less since the voltage passes through diodes before going to the 3717. Meanwhile, it's amazing that the wee chip on the Sparkfun board can deliver 2A...)


5. Track zero again.

Do I understand correctly from [Microstep] that I'll have to convert the track zero signal down to 3.3V?



If you wish to use it. Nothing in the code is currently looking at it.

Tom Stepleton

unread,
Jun 1, 2023, 7:54:29 PM6/1/23
to mfm-d...@googlegroups.com
Thanks for the reply. I'm getting closer to giving this a go.

I've installed the latest BBB image onto an emulator and have compiled the Stepper 2.40-b code from [Microstep].

If I execute `setup_mfm_read` in the /root/mfm directory, it seems to work correctly, saying
Rev C board
as usual. But if I execute `setup_mfm_read` in the Stepper's directory, I get
Rev C board
./setup_mfm_read: line 76: echo: write error: Device or resource busy

Is this expected or is it indicative of a problem?

Many thanks,
--Tom

--
You received this message because you are subscribed to the Google Groups "MFM Discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mfm-discuss...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/mfm-discuss/7e1915de-ff98-4660-8562-2cf2daedcbb2n%40googlegroups.com.

David Gesswein

unread,
Jun 1, 2023, 9:07:01 PM6/1/23
to mfm-d...@googlegroups.com
I'll check. I was using rev B board when I did this. May have to change
pin mapping for C.
> > <https://groups.google.com/d/msgid/mfm-discuss/7e1915de-ff98-4660-8562-2cf2daedcbb2n%40googlegroups.com?utm_medium=email&utm_source=footer>
> > .
> >
>
> --
> You received this message because you are subscribed to the Google Groups "MFM Discuss" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to mfm-discuss...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/mfm-discuss/CAGM3D%2BpOW6dpr9oqUJFBNVcVa9k-FpaKzKp%2BJSe6Bj8TuWmzyg%40mail.gmail.com.

David Gesswein

unread,
Jun 3, 2023, 10:10:05 AM6/3/23
to mfm-d...@googlegroups.com
Typo in file. Use the attached setup script. I'll release updated tarball
later.

Found a problem with NEC drives where they give a write fault if an
invalid head is selected. I'll be releasing fix for that later also.
> To view this discussion on the web visit https://groups.google.com/d/msgid/mfm-discuss/ZHlAtFckfQ98XcgM%40hugin3.
setup_mfm_read

Tom Stepleton

unread,
Jun 4, 2023, 6:53:23 PM6/4/23
to mfm-d...@googlegroups.com
Thanks David! I've applied the new script and things seem to be further along now.

Based on my first attempt, I have a theory that I've wired the stepper motor backwards. For example, if I see an error message like this:

Offset to large on first track. Try running with -S -45

then if I do this, I'm likely to see something like

Offset to large on first track. Try running with -S -90

Using positive values for S will result in the suggested step count moving closer to zero. Once we're in the neighbourhood of 0, the log messages look like this:

Mismatch cyl 0,3 head 0,0 index 14
Mismatch cyl 0,3 head 0,0 index 15
Mismatch cyl 0,3 head 0,0 index 16
Retrying seek cyl 0, cyl off by -3
Setting offset to -0.625000 cyl 0 head 0 last good 0
Mismatch cyl 0,4 head 0,0 index 0
Mismatch cyl 0,4 head 0,0 index 1
Mismatch cyl 0,3 head 0,0 index 2
Mismatch cyl 0,4 head 0,0 index 3
Mismatch cyl 0,4 head 0,0 index 4
Mismatch cyl 0,4 head 0,0 index 5
Retrying seek cyl 0, cyl off by -4
Setting offset to -0.937500 cyl 0 head 0 last good 0
Mismatch cyl 0,4 head 0,0 index 0
Mismatch cyl 0,4 head 0,0 index 1

so it looks like the microstepping process exacerbates the track offset mismatch. There seems to be a sign error in the control lop.

It's easy enough to just reverse the wire pairs, but I'm in no hurry and thought I might do better to check against expert knowledge first. I hope you might not mind answering these questions:

1. Does it also look to you like the stepper wiring is reversed?

2. What would the symptoms be of just one coil being reversed while the other is correctly wired?

3. What would the symptoms be of accidentally swapping the A and B coils?

4. Does the behaviour seen here (specifically mfm_read being able to identify the current cylinder) suggest to you that the drive's read path is working as expected? (That is, unlike your TM503 drive, our Rodime doesn't care that the stepper is no longer under its control?)

Thanks again,
--Tom

David Gesswein

unread,
Jun 4, 2023, 10:06:54 PM6/4/23
to mfm-d...@googlegroups.com
> 1. Does it also look to you like the stepper wiring is reversed?
>
Looks like the stepper is rotating backwards from the way it needs to move.
Could be wiring. Don't know if all drives are designed for the stepper
to rotate in the same direction to move to higher cylinder. I played with
a stepper I had the datasheet from to try to get code correct. After that
I just swapped wires without worying about why if rotation was wrong.

> 2. What would the symptoms be of just one coil being reversed while the
> other is correctly wired?
>
Rotate backwards

> 3. What would the symptoms be of accidentally swapping the A and B coils?
>
Online seems to say also reverses rotation. Haven't verified.

> 4. Does the behaviour seen here (specifically mfm_read being able to
> identify the current cylinder) suggest to you that the drive's read path is
> working as expected? (That is, unlike your TM503 drive, our Rodime doesn't
> care that the stepper is no longer under its control?)
>

Yes. With correct rotation looks like you should be able to read it.

d...@pdp8online.com

unread,
Jul 14, 2023, 9:33:49 PM7/14/23
to MFM Discuss
Curious if you managed to read the drive. Recovered a Seagate drive today that used 5 phase stepper so needed different driver. Also needed a different recovery algorithm since saw several cylinders when reading each track like cylinders were no longer concentric with heads. New code is up though for normal drive recovery don't think any advantage.
Reply all
Reply to author
Forward
0 new messages