|
Success Stories If you have successfully repaired or restored a piece of equipment, why not write up what you did and post details here. Particularly if it was interesting, unusual or challenging. PLEASE DO NOT POST REQUESTS FOR HELP HERE! |
|
Thread Tools |
12th Oct 2011, 11:18 pm | #1 |
Nonode
Join Date: Oct 2008
Location: Warsaw, Poland and Cambridge, UK
Posts: 2,681
|
Shugart SA455 floppy disc drive
OK, so this might be an unusual success story, but I'm very interested to hear what people make of it!
Like many people in the 1980s, I cut my computing teeth on a BBC Micro. After starting with only cassette data storage, the machine was eventually upgraded with a disc drive - a Shugart SA455, one of the first half-height 5 1/5" floppy disc drives. Its half-height nature meant that there was always space in its housing for a second drive, but finances and opportunities at the time never ran to the purchase of a second one. Move on 25 years or so and the internet makes it possible to find obscure bits of computing hardware. Eyes aglow with the spirit of childhood dreams finally realised, I picked up a second almost identical drive in an online auction, advertised as working. The trouble was, it didn't work. The seller was very nice about it, and refunded the purchase price but didn't want the drive back. The first photo shows the drive. This left me with a duff drive. The service manual for the SA455 is available on line, so I started some detective work. It soon became clear that the main controller chip, a CFD8201, wasn't doing anything - its clock wasn't running and the drive's motors were permanently on (and getting hot). I did the obvious checks: replace the clock crystal and loading capacitors, test the reset pulse, and so on, but there was simply no life there. So, where to get a CFD8201? Nowhere, as far as I can see. Not even a data sheet to be found online. This is the much-feared problem with vintage computing hardware: a dead, custom, unobtainable chip. I've written on the forum before about the possibilities of using modern programmable logic to replace such devices, so it was time to put my money (or at least time) where my mouth is, and try it. What does this chip to? As far as I could make out from the service manual, it:
It became clear that there were some subtleties to the CFD8201's operation: for example, it double-stepped the head positioning stepper motor, with two steps 3ms apart for each pulse on the STEP input. These things were ironed out with patient use of a scope, notebook and service manual. But what to replace the chip with? A microcontroller such as a PIC would be the obvious choice, but I didn't like that solution. Performing the various mostly-independent functions required of the chip would be a bit of a pain to program, and the code generated would only run on that particular microcontroller and be little use as documentation for future reference, by me or anyone else. No. I wanted to do it with with programmable logic, in a CPLD (Complex Programmable Logic Device). VHDL is the language I'm familiar with for this task. Doing it this way has the advantage that it creates a model of the hardware which can be understood by other people, as documentation if you like, comprehensively simulated (for testing) and, crucially, can be synthesized to fit into the devices from multiple manufacturers (Xilinx, Altera and Lattice, for example). It can even be used as a component in a larger design in future. I found that http://www.trenz-electronic.de/ sells handy boards with a CPLD on them, with pins which can easily be soldered into Veroboard or similar. All the power supply niceties are taken care of by the Trenz board, and it has the standard connector on to hook up the Xilinx programming tool, and there's even a clock source on there. Perfect. I picked a module based on the Xilinx XCR9572 chip (second picture) because:
I set to and wrote the various VHDL modules, testing them on the simulator as I went. There's nothing very complex in there - just counters for timing, state machines and a bit of logic, but it took some time to get right. Then the moment of truth: would it fit in the chip? No. Compiler reports an error: chip has 72 macrocells, design needs 74. Doh! A bit of fiddling around, compromising the accuracy of a couple of timers, squeezed it on. Then the soldering (third and fourth pictures). Remove dead chip, wire up substitute on a bit of Veroboard with ribbon cables. Will it work? No, of course not! Well, a little bit. The motor control and 'ready' signals seemed to work, but the head wouldn't move. Looking with a scope, I saw the step input to the chip stuck high. That won't work. Why, though? Where does it come from? Ah...the other big chip, which doesn't feature in the service manual. Humph. Is that dead too? Will I have to recreate that? Some desperate prodding with the scope revealed that the CFD8201 produces a 500kHz clock on pin 40. This was unused in the older drive, but fed into the mystery chip on the newer one. It was worth a try. A quick modification to the VHDL (programmable logic is great!) to produce a 500kHz clock output (well, 400ish, but near enough). Bingo! We have stepping! The mystery chip was now working. Phew. Some fiddling with the stepper motor phasing was required to get the head correctly positioned on track 0, and there were some timing wrinkles to sort out, but now it works. I made a quick video of it in operation: http://www.youtube.com/watch?v=Kg5sHVGW65I Extra bonus points for anyone who can tell me what the game it loads is So - it's really possible. Take a dead piece of vintage computing hardware which depends on an undocumented and unobtainable chip which has failed. Re-create the chip with modern technology and the machine works again, and the world gets documentation to boot. I can post the VHDL if anyone's interested. |
13th Oct 2011, 12:31 am | #2 |
Moderator
Join Date: Jun 2003
Location: Oxford, UK
Posts: 27,970
|
Re: Shugart SA455 floppy disc drive
A very impressive example of real hardware hacking. Congratulations
|
13th Oct 2011, 11:38 am | #3 |
Retired Dormant Member
Join Date: Nov 2009
Location: Carmarthen, Wales, UK.
Posts: 79
|
Re: Shugart SA455 floppy disc drive
I'm in awe, brilliant result.
|
13th Oct 2011, 1:17 pm | #4 |
Dekatron
Join Date: May 2008
Location: Derby, UK.
Posts: 7,735
|
Re: Shugart SA455 floppy disc drive
Nicely nicely, Sporty Spicely That's real dedication, and well worthy of a
Whenever I hear anyone complain about the direction the human race is taking, I will direct them to this story.
__________________
If I have seen further than others, it is because I was standing on a pile of failed experiments. |
13th Oct 2011, 11:27 pm | #5 |
Octode
Join Date: Jul 2011
Location: Stockport, Greater Manchester
Posts: 1,217
|
Re: Shugart SA455 floppy disc drive
Now that is clever!!
Well done, happy memories of my BBC Micro and the disc drive I had that cost a fortune at the time! |
14th Oct 2011, 12:10 pm | #6 |
Hexode
Join Date: Jul 2006
Location: Sheffield, South Yorkshire, UK.
Posts: 312
|
Re: Shugart SA455 floppy disc drive
Excellent result. I'm familiar with the PIC and probably (well that is, in the unlikely event I would have attempted this!) would have gone down that route but I accept what you say about the difficulty of documenting the software. At 53 years of age, I come back to projects I tackled a year ago and have to spend a while sussing out how it works- and I thoroughly comment my source code!
__________________
Always expect the unexpected... |
14th Oct 2011, 2:26 pm | #7 |
Pentode
Join Date: May 2008
Location: Leeds, West Yorkshire, UK.
Posts: 236
|
Re: Shugart SA455 floppy disc drive
A fantastic result - well done!
Ed. |
14th Oct 2011, 4:54 pm | #8 |
Heptode
Join Date: Jan 2004
Location: Blyth, Northumberland, UK.
Posts: 858
|
Re: Shugart SA455 floppy disc drive
My hat goes off to you. While I know I *could* do this, I just wouldn't have the patience.
Well done! Dave. |
14th Oct 2011, 5:23 pm | #9 |
Retired Dormant Member
Join Date: Dec 2003
Location: North London, UK.
Posts: 6,168
|
Re: Shugart SA455 floppy disc drive
Impressive result. From my point of view writing the VHDL to perform the required functions is the easy bit. The hard part is reverse engineering a faulty drive to work out what you need to implement.
|
14th Oct 2011, 6:21 pm | #10 |
Nonode
Join Date: Oct 2008
Location: Warsaw, Poland and Cambridge, UK
Posts: 2,681
|
Re: Shugart SA455 floppy disc drive
This has generated more interest than I expected! Thank you to everyone for the kind words. I hope my experiences inspire others to try similar things.
The repaired drive is now, after a little more debugging, reassembled in a housing with its twin and ready for another 25 years of service, with any luck. |
16th Oct 2011, 10:39 am | #11 |
Administrator
Join Date: Dec 2002
Location: Cardiff
Posts: 9,073
|
Re: Shugart SA455 floppy disc drive
Where have you mounted the modification board? Is it attached to the drive or elsewhere inside the case?
|
16th Oct 2011, 11:49 am | #12 |
Nonode
Join Date: Oct 2008
Location: Warsaw, Poland and Cambridge, UK
Posts: 2,681
|
Re: Shugart SA455 floppy disc drive
It's inside the drive, but tucked in underneath the PCB at the back. There's a space there opposite the stepper motor which is big enough for the bit of board and even has a handy pair of M3 tapped holes to mount it with. That's why the ribbon cables are so long: they run under the main PCB, round the insulator and screening plate at the back, and to my little board. No cutting or drilling required, which I like.
|
16th Oct 2011, 11:09 pm | #13 |
Administrator
Join Date: Dec 2002
Location: Cardiff
Posts: 9,073
|
Re: Shugart SA455 floppy disc drive
That sounds like a neat conclusion to an excellent repair/reverse engineering job. Any chance of a photo of the finished unit with the mod board in place?
|
18th Oct 2011, 8:38 am | #14 |
Dekatron
Join Date: Jul 2007
Location: Evesham, Worcestershire, UK.
Posts: 4,244
|
Re: Shugart SA455 floppy disc drive
Firetrak!
Brilliant game; brilliant job |
18th Oct 2011, 4:36 pm | #15 |
Nonode
Join Date: Oct 2008
Location: Warsaw, Poland and Cambridge, UK
Posts: 2,681
|
Re: Shugart SA455 floppy disc drive
Well done to mhennessy for guessing the game! The prize is to see photos of how the finished article goes together.
A lesson to myself and others: having unboxed it all again to take the photos, now it doesn't work any more. The head positioning stepper just shudders instead of moving. In this drive, the power to the stepper coils is normally at 5V to hold the head in place, but increases to 12V during movement. My suspicion is that something's gone wrong with the electronics for that, probably something fallen off or damaged during handling. There's always one more thing! Anyway, on with the pictures... |
18th Oct 2011, 6:29 pm | #16 |
Nonode
Join Date: Oct 2008
Location: Warsaw, Poland and Cambridge, UK
Posts: 2,681
|
Re: Shugart SA455 floppy disc drive
Fixed it (again). The failure was down to my ham-fistedness in getting the drive in and out of its case. There was no electrical problem: the failure to step was because the head assembly wasn't free to move on its runners. I couldn't see or feel any obstructions, but inspection revealed that the stepper motor wasn't straight! That meant that the stainless steel band drive to the head assembly didn't work properly. I'd bent the pressed steel sheet motor mountings by clumsy handling, so I bent them back. Now it works happily and is back in its case.
|