New Floppy Interface for the +2a/b (black case)
Hello everybody!
For a long time I wondered about the posibility of adding a FDD to the +2a/b (black). I knew it was possible; All the logic is already in the +2 ULA and the DOS is already in the +2 ROMS. It has been done before: http://www.worldofspectrum.org/BackToThePlus3/
That design uses a 74s188 bprom + about 8 logic chips. My approach was to clone the +3 FFD controller circuit component by component which uses quite less chips (4 logic chips + SED9420 + 765fdc, and you dont have to burn the bprom). This is the result:

When connected to the expansion port, the interface will turn any +2a/b into a +3 (the startup menu will show "+3"):

Of course all DOS commands are available:

The interface is working with 3.5” floppy disk drives (DD mode only), and most probably will work with the HxC emulator too. It has some configuration jumpers and switches on board:
DS1: Enables the use of drives configured as DS1
RDY: Forces the READY signal (for drives which cannot output this signal)
A/B: Assign the DS1 drive to either A: or B:
HDSEL: Select the head (toggles between disk sides)
Also has a standard 4 pin power socket on board. I do not recommend to power floppy drives that uses the +12v line unless you have a +3 power supply. Most modern drives uses only the +5v line anyway.
At the moment the interface support only one disk drive connected at a time.
Contact me by PM if you like to have one of these. Im planning to have a very few assembled units by the end of the month and if theres enough interest I’ll make some more.
Cheers!
For a long time I wondered about the posibility of adding a FDD to the +2a/b (black). I knew it was possible; All the logic is already in the +2 ULA and the DOS is already in the +2 ROMS. It has been done before: http://www.worldofspectrum.org/BackToThePlus3/
That design uses a 74s188 bprom + about 8 logic chips. My approach was to clone the +3 FFD controller circuit component by component which uses quite less chips (4 logic chips + SED9420 + 765fdc, and you dont have to burn the bprom). This is the result:

When connected to the expansion port, the interface will turn any +2a/b into a +3 (the startup menu will show "+3"):

Of course all DOS commands are available:

The interface is working with 3.5” floppy disk drives (DD mode only), and most probably will work with the HxC emulator too. It has some configuration jumpers and switches on board:
DS1: Enables the use of drives configured as DS1
RDY: Forces the READY signal (for drives which cannot output this signal)
A/B: Assign the DS1 drive to either A: or B:
HDSEL: Select the head (toggles between disk sides)
Also has a standard 4 pin power socket on board. I do not recommend to power floppy drives that uses the +12v line unless you have a +3 power supply. Most modern drives uses only the +5v line anyway.
At the moment the interface support only one disk drive connected at a time.
Contact me by PM if you like to have one of these. Im planning to have a very few assembled units by the end of the month and if theres enough interest I’ll make some more.
Cheers!
Post edited by BCH on
Thanked by 1leoc
Comments
It should be trivial to change it to support both drives (depends if you have any NOT gates left unused), and by making a cable with a twist in, they can both be modern PC drives permanently wired as DS1, so there's no need for selection switches.
Thanks for the input about supporting both drives. There are some unused gates in the 74hcu04 inverter. I could look it up for a future version. Could you roughly explain how would you do it?
Also I thought to generate the READY signal based on the SEL0 and INDEX (some floppy adapter for Amiga does that), but I didnt got the time for it...
Without knowing exactly how you have wired things up it's hard to say.
I was meaning IC15f on the original schematic. If you have that gate already you're sorted. Wasn't sure if you'd omitted it to save an IC as it's not used for [strike]Drive0[/strike] Drive 1 :)
Could you post a copy of your schematic?
The lines DRIVE_0 and DRIVE_1 coming from the IC15 are both routed into pins 10 and 12 on the floppy connector. I thought this will enable both drives but it seems not to work propperly. I will do some further testing with two drives
Anyway, I'll post my schematic soon.
Greetz
Yep, that's exactly how I was planning to do it :D
I never got around to it cause I don't have a +2B :lol:
I was wondering what your switches were doing for drive select, the same (terrible) design as the floppy cables you can buy on ebay? Of course when you get both drives working with an appropriate cable there'll be no need for a drive swap switch anyway.
The reason your second drive won't work is that DRIVE_0 should go to pin 14, not 10! And also you must connect both pin 16 AND pin 10 to N_MOTOR_ON.
Once you've done that you should be able to use a standard PC twist floppy cable and two standard PC drives (i.e. both jumpered DS1). The drive in the middle will be Unit 1 (B) and the one after the twist Unit 0 (A).
You will still have to force the N_READY signal with a switch of course. :(
I had the idea to build on of these a while ago when I was doing the schematics and researching the history of the +2A/+3 etc. As I say, I don't own a +2B myself so never got around to building it. I'm glad BCH is doing what I was too lazy to do and producing one! :-)
A board such as this is effectively what Amstrad planned to release as the SI-1. At least from the description in the +2A user manual. As far as we know Amstrad abandoned it and it never went into production. Whether they ever had a prototype isn't known.
The planned SI-1 is the reason for the three drive control signals present on the expansion port which, until now, have been useless :)
Thanks for the info. I just followed a table found here:
http://www.secarica.ro/html/plus3_hardware.html
Which shows n_DRIVE SELECT 0 on pin 10 and n_DRIVE SELECT 1 on pin 12... I've successfuly used this pinout to build floppy ribbon cables...
But I see what you mean:
n_DRIVE0 (IC15 pin 4) to pin 14
n_DRIVE1 (r76) to pin 12
n_MOTOR_ON to pins 16 and 10
I will try it out over the weekend to see the results.
You will still need the HDSEL switch if you want to access both sides of the disk.
Mark
Repair Guides. Spanish Hardware site.
WoS - can't download? Info here...
former Meulie Spectrum Archive but no longer available :-(
Spectranet: the TNFS directory thread
! Standby alert !
“There are four lights!”
Step up to red alert. Sir, are you absolutely sure? It does mean changing the bulb!
Looking forward to summer in Somerset later in the year :)
Well done my friend, well done indeed!
Er, you don't need a manual head select switch... The head select line is wired up from the floppy controller, if you've copied the +3 circuit right...
er, nope :p
An SI-1 type interface only works on the machines with the Amstrad gate array. That does all the port decoding for the floppy control lines. You could build them into the 128k of course along with all the extra ROM and RAM paging but why bother :lol:
mmm, but lets say you copy two images from the WOS archive; one to each side of the disk. You will need the switch to access to each side, right?
Ah, I see what you mean. I guess I just wouldn't do that :)
My 3.5" disks are natively formatted and files copied onto them, I've never just written 180k .DSK files to them.
If you want a switch to force the head select line high or low, I would try putting a series resistor between the gate and the switch and drive to stop it shorting the gate out when you ground it. Alternatively you could do it properly in you logic. Change the 7404 (IC15) for a quad NAND or NOR for example since you're only using a single NOT in that chip.
Thanks! I've already fix that and it seems to work fine with two DS0 drives. As you said, the one after the cable twist becomes A: and the other is B:
At the beginning seemed kind of erratic behavior (wouldnt read some disk, etc) but I belive it was the disks themselves that were bad. Still Im going to do more testing the coming days.
Hurrah! \o/
How are you handling ready signal at the moment? Just the usual switch to force N_READY to 0v?
Obviously the best solution is just modifying drives to provide the RY instead of DC but that's beyond the skills of most people and only possible with certain drives. I must get around to having an experiment with my ALPS drives that I have several of to see if they can be modded at all.
At the moment, yes. But I've been looking at this Amiga floppy adaptor that uses a 74ls38 to generate a ready signal out of the nSEL and nINDEX lines:
http://www.ianstedman.co.uk/Amiga/designs/Floppy_Adaptor/floppy_adaptor.html
So, I just got a few ls38 to try it out...
very nice work BCH :) I will give try tomorrow :)
okey explain please again about jumpers :)
I need to get floppy cable, 2 equal floppy drives (from where power for fdd's ? I think to connect to ATX power supply for test)
and what after this ?:) I have recorded few 3.5 disk with speccy games, I think to try and 3' amstrad external drive, that will be fun :)
jumpers are for ... ? :)
Greets,
Gorski
Glad you got them!
Jumper "DS1" and switch "A:/B:" must be always like you received them (jumper closed and switch in downward position).
Jumper "READY/DC" must be closed only if your floppy drives cannot output the "READY" signal. I very much recommend to modify (if possible) the drives to output this signal.
I personally use two Samsung SFD321B modified for READY (they have a small jumper inside) and they work flawless. I've also tryed mixing different drives models but the behavior is somehow unstable.
The "HDSEL" switch is to select the side of the disk (since we can only insert the disk one way). The limitation is that the switch acts on both drives at the same time (you can select side 1 or 2 for "A:" and "B:", but not side 1 for "A:" and side 2 for "B:").
If you use 720k formatted disk you need to keep this switch in the upward position.
Use a normal PC ribbon cable with the twist at one end; the drive connected after the cable will become "A:" and the one before "B:". Of course you can use just one drive :)
To power the drive from the interface itself you will need to build a cable. The power socket is the white one, on the side of the floppy connector. Pinout is: 5v, GND, GND, 12v (from left to right; Also the "5v" is matked on the board).
I also have an Amstrad 3 inch drive that I would like to try it with the interface. Lets see if I have time next holidays.
Please let me know how it goes.
Cheers!
small video not very interesting at all :)
https://www.youtube.com/watch?v=9h3IftgWWOk
fdd interface working perfectly well :)
I try with different fdd's and all of them have excellent results, I make on two samsung sfd321 mod to have ready signal on pin 34 and they work great but I don't show difference compared to normal fdd's, I record 3.5 disks with greatest Simon Owen samdisk tool of course, on very stable floppy drive sony on brand new diskettes, first times I forget to close high density hole and resulting disks don't read on spectrum but this is normal, after close hole and make diskettes "dd" I have 100% writing and reading success, 2 fdd's working well, amstrad 3' working well too after little play with jumpers and one burned fuse on +2a power :) May be getting power from interface is better idea at all. Very nice interface at all :)
Greets,
Gorski
Great! Nice you have them working!
You can also modify the disk drive to be on DD mode always by taking out the density detect switch and cut a trace. In this way you dont have to close the density hole on every diskette.
A word of caution if you power the old Amstrad 3' drive from the computer; this drives use also the 12v line so if you are powering the Spectrum with the original +2 power supply it wont hold longer (hence the burned fuse). With modern disk drive is not a problem because most of them only use the 5v line.
If you like to power the Amstrad 3' drive from the Spectum (either from the power socket or from the interface) is better if you use a +3 power suppy as they have more amps on the 12v line.
Cheers!