• Please review our updated Terms and Rules here

SCSI-1 to/from IDE drive converter

NobodyIsHere

Veteran Member
Joined
Dec 21, 2006
Messages
2,409
Hi! I'd like to know what level of interest here on a SCSI-1 to/from IDE drive converter board. This would be useful for hobbyists with systems that use SCSI-1 drives. SCSI-1 drives are still available but less common these days. IDE drives are still fairly plentiful. There are some commercial products which do this but can be rather expensive.

I am interested in a project along the lines of the XT-IDE project. Something simple and cheap. Most of the computers using SCSI-1 drives aren't fast to begin with so we don't need it to be high speed. There was some discussion of this topic on CCTALK which was immediately killed by the denizens there. However I think this idea has merit and am offering to add it to the N8VEM project. I would draft a schematic, layout a PCB, and get some prototype boards similar to the XT-IDE project.

Ideas, thoughts, comments? I have some ideas for a design using elements from existing boards but am open to other concepts. Please keep in mind this would be intended for the hobbyist Do-It-Yourself audience so the usual DIP/PLCC/PTH 2 layer PCB restrictions would apply.

Thanks and have a nice day!

Andrew Lynch
 
A BIG YES from me. I'm a SCSI junkie and small functioning SCSI drives are becoming difficult to find. Not necessary for a first run but at some point supporting removable devices would be like a dream. I'm open to building and testing (I have several machines to test on). I could possibly help with coding also. :)
 
Hi! I have a notional design based on some other N8VEM projects. Basically it is a Z80 with 32KB ROM, 32KB RAM with battery backup controller, an 8255 PPI for IDE, a 16C550 UART, and another 8255 PPI for SCSI-1. It is a simple design using only 12 commonly available low cost chips.

The theory is you power the converter with the drive power cable. You plug in the SCSI cable on the right hand side, plug in the IDE cable (or CF or IDE SD adapter or whatever) on the left hand side. The Z80 and runs a program in EPROM and just transfers the sectors from one interface to another. There is also a serial port on board to set up the device and input any parameters needed which are stored in battery backed SRAM.

The Z80, RAM, ROM, UART, PPI circuitry is all reused from other projects. The PPI IDE interface is reused from the N8VEM mini-board that adds an IDE interface to the SBC parallel expansion port. I made something similar to the PPI SCSI port. I've not seen one of those before but I think it is possible to make one along the same lines as the PPI IDE port. The 50 pin connector is 50% ground pins, 8 data bits + parity (bidirectional), 3 bidirectional control pins, 2 input control pins, and 4 output control pins. The 8255 has a nasty habit of setting its pins low during a direction change so I added some inverters to prevent that issue. There is a similar inverter on the PPI IDE interface.

Later I will post a schematic and PCB layout on the N8VEM wiki. Thanks and have a nice day!

Andrew Lynch
 
Hi! I've been doing a bit more research on the SCSI interface and am thinking of updating the design to use a NCR5380 type SCSI chip instead of a 8255 PPI driver. Certainly the SCSI driver software would be much easier to write using a chip specifically designed for the SCSI interface and would use fewer chips.

The good news is there are apparently several NCR5380 style clone chips which are still available. For instance the Zilog Z53C80 is PLCC-44 or DIP-48 (PTH hobbyist compatible) and appears to be a single chip solution. The bad news is the Zilog Z53C80 is more expensive than a 8255 PPI but is still reasonable at $12 each in single quantity. I am confident a group buy would get better pricing.

One issue I am a bit concerned about is that SCSI is a complicated and proprietary interface. I think we can probably get around most of that with the datasheets and some experimentation. My plan is for the SCSI interface to be for a single drive only if using the 8255 PPI due to the current required to drive a SCSI cable. However, if a NCR5380 clone is used it will have the high current on chip drivers and then regular SCSI cables with multiple drives could be used which is appealing.

To keep this simple, I am restricting the hardware to supporting SCSI-1 only. Going to higher levels of SCSI will force usage of SMT style parts and higher frequency PCB design which is not practical for hobbyist systems. If they want to use SCSI-2 or greater then they can get the specific controllers and drives necessary.

I have the a draft schematic and PCB layout already although based on the new information I am probably going to change to the NCR5380 style SCSI controller. If there is interest in this project we'll need some volunteers. I can think of a few jobs of the top of my head

Project manager
hardware (review design)
software (write code)
build and test

I think we have a good starting point with the notional design already. Certainly if there are other ideas out there I am open to them. The software is *mostly* already done. Certainly there are Z80 debug monitors and the 8255 PPI IDE driver at N8VEM project which would require minimal porting to use. The SCSI driver is a bit more complex but still within reason. The NCR5380 and clones were commonly used in early Mac and Amiga style SCSI computers. I think also in some early low end ISA SCSI controllers for the PC also. It stands to reason that probably there is already some NCR5380 driver code available.

Regarding volunteers, if you'd like to see this project succeed and want to participate you don't have to be a hardware or software wizard. There are things non-technical builders can do to help. First, get the word out to the most likely affected communities where software and hardware experts are and would be willing to join up. Second, I can get five prototype boards made for $150 once the design settles down. You can buy a prototype board ($30 plus shipping) and send it to a hardware and/or software builder. Third, you can build and test the design once we have prototype hardware and software working. Fourth you can advocate for the project since you can expect there will be trolls, nay-sayers, and ne'er-do-wells that will try to drag it down just like we've seen on other projects.

I think the 8255 PPI IDE interface will have similar performance to the XT-IDE project. That's not great but certainly reasonable given the target machines. I've seen CF adapters work on the XT-IDE and N8VEM boards give decent performance at low power and *silent*. I will keep the CF in mind for the design although we'll still need the IDE to CF adapter.

Ideas, thoughts, comments? Thanks and have a nice day!

Andrew Lynch
 
Last edited:
I think the 5380 is the way to go. If it is pin compatible with the actual NCR5380, even better as you can pull the chip from scrap boards (I should have several). If this is the case would it be possible to layout the board for both the 48 DIP and 44 PLCC? I know that would really complicate things but having the option of using what you have on hand would be nice.

If I have this correct in my head you are going: System SCSI bus -> NCR5380 --> Z80 --> 8255 --> IDE device.

Potentially use a z80 based microcontroller? (Or even 8051 based as this isn't speed critical and ATMEL 8051 chips are cheap.)

-Matt
 
Hi! Yes, the more I look the more I like the NCR5380 SCSI approach. Based on some brief searching, it seems the PLCC-44 part is the way to go. The DIP parts appear to be nearly unobtainium.

Yes, you have the basic layout right. I envision more of a SCSI <-> IDE bridge device which could go either direction. There is a Z80 CPU/RAM/ROM/UART in the center of the board with IDE on the left hand side and SCSI on the right hand side. The IDE interface is essentially an N8VEM SBC PPI IDE interface. It is very simple but works fine and is plenty quick.

I have to update the design a bit and will post a schematic and PCB layout hopefully later tonight. I am guessing since the Z53C80 (NCR5380 clone) is obsolete that I'll need to make a part in KiCAD so that will take some time but not too much. I am going to stick with the straight Z80 CPU/RAM/ROM/UART combination to maximize the amount of reuse from other N8VEM projects. Yes, there are other options available but why reinvent the wheel just to use the latest doo-dad. Z80's will be around forever.

Thanks and have a nice day!

Andrew Lynch
 
Hi! The manufactured PCBs $20 each plus shipping. The prototype PCBs are $30 each but only 5 are ordered. You supply the rest of the parts (Z80, RAM, ROM, 8255, UART, glue logic, connectors, passives, etc) and assemble yourself. I am guessing the parts to be in the less than $50 range, probably closer to $30 or so depending. That's a guess though so don't hold me to that. I will only supply PCBs though.

Thanks and have a nice day!

Andrew Lynch
 
Hi! I created a folder on the N8VEM wiki with some information on the *notional* schematic and PCB layout. There is also a 3D rendering image to give an idea of what this will look like. The circuit fits comfortably on a Eurocard (160x100mm). There is also a preliminary parts list in CSV format.

http://n8vem-sbc.pbworks.com/w/browse/#view=ViewFolder&param=SCSI2IDE

Since we are in the very early design phase or even just exploring the concept, I would not get to hung up on any particular detail quite yet. The parts are still in flux as are the PCB layout. There are a few details I think have merit and would like to keep:

hobbyist friendly construction: DIP/PLCC/PTH
low cost: dual layer PCB, commonly available inexpensive parts
common CPU: Z80 is ubiquitous and known by many
programmable: use the serial port to set parameters and store in NVRAM

The real kink in the design is the SCSI port. I am not familiar with the Z53C80 so this is the primary risk area. We need reviewers to go over the schematic and PCB layout and see if what is there is correct or not. If not, what needs to be changed and why?

note: I changed the 27C256 EPROM to 28C256 EEPROM. This will add slightly to the overall cost but will allow reprogramming of the ROM while in circuit. A minor expense but major reduction in aggravation, erasing and reprogramming EPROMs, etc.

Thanks and have a nice day!

Andrew Lynch
 
Last edited:
Hi! I added pseudo DMA mode to the Z80 <-> Z53C80 SCSI interface. Originally it was going to be polling mode only but it is pretty easy to add the pseudo DMA mode. Since the Z80 is dedicated to the data transfer this should be the fastest mode. There is no point in true DMA since the Z80 would just sit idle while the transfers took place. With pseudo DMA the Z80 can emulate the DMA chip and handle the transfers directly without IO the polling.

I noticed there was quite a bit of room left on the PCB so I added the Juha SD circuit. All it needs is some room and the left over input and output pins from the UART. It should work well and be fairly quick.

Thanks and have a nice day!

Andrew Lynch
 
I'm going to work on finishing one of my projects this weekend then find a schematic or two of existing SCSI interfaces to check the board layout if I get a chance. Then it'll be sniffing out source code that can be borrowed. I'm already reading IDE code (well, actually I'm stripping it out and putting something else in its place) but its in 6502 assembler so mental translation may not be forthcoming. I haven't written a single line of Z80 assembler in almost 20 years so if its anything like my recent 6502 experiences (also about 20 years) then there will be a remembering curve.

-Matt
 
IDE code is fairly straight forward. SCSI... not so much. As a project it certainly sounds interesting.
Practically I think they already have these things available for about a hundred bucks a piece.
 
I suspect that if someone wanted to goof around with the idea without actually building anything, an Adaptec 1540/1542 SCSI controller might be just the trick--it uses an 8085 as the controller CPU and has all of the necessary interface drivers. Just start off by hacking the controller EPROM.
 
I'm going to work on finishing one of my projects this weekend then find a schematic or two of existing SCSI interfaces to check the board layout if I get a chance. Then it'll be sniffing out source code that can be borrowed. I'm already reading IDE code (well, actually I'm stripping it out and putting something else in its place) but its in 6502 assembler so mental translation may not be forthcoming. I haven't written a single line of Z80 assembler in almost 20 years so if its anything like my recent 6502 experiences (also about 20 years) then there will be a remembering curve.

-Matt

Hi! There is code on the N8VEM wiki for the Z80 debug monitor, IDE interface, and the SD interface. The SCSI interface code will have to either come from someplace else or be written from scratch.

I am volunteering to design a schematic and PCB layout. If we can get some builders to integrate and write the rest of the software this project can happen.

With some luck we can get some interested parties from Amiga, Atari, Apple and other SCSI centric communities to join in. The project holds promise to migrate away from actual SCSI drives to current electronic media such as CF and SD and cheap IDE hard drives.

Thanks and have a nice day!

Andrew Lynch
 
IDE code is fairly straight forward. SCSI... not so much. As a project it certainly sounds interesting.
Practically I think they already have these things available for about a hundred bucks a piece.

Hi! Yes the SCSI interface code is going to be the limiting factor but I don't think it is a show stopper. There are sources available for SCSI interface code such as the Linux ncr53c8xx driver. As a whole it is not valuable but I expect the SCSI primitives could be extracted and reused. There are no licensing compatibility issues since if the code starts as GPL it can just continue on that way.

I posted an up-to-date parts list on the N8VEM wiki. A good research project for a volunteer would be to go through it at Jameco and place some cost actuals against the parts. There are not many parts and mostly cheap passives and connectors. There are about a half dozen glue logic ICs and six ICs (CPU, RAM, ROM, UART, PPI, SCSI) and a few miscellaneous parts like NVSRAM controller, MAX232 level shifter, clocks, etc.

My goal is to keep the design simple, buildable, and affordable. If anyone has specific ideas on how we can reduce cost and/or part count I am certainly interested in hearing them.

Using commonly available parts means much of the board can be built with stuff most of us already have on hand in the junk box. Alternatively, the ICs can be reused/recycled from other scrap and salvage further reducing cost. The Z80 CPU, SRAM, EEPROM, PPI, UART, glue logic, and miscellaneous ICs are certainly all garden variety and I'll bet don't amount to much even bought new. I am setting a goal for $20 on the PCB consistent with other N8VEM projects but may be able to improve that a bit too depending on interest. I think $40 total build cost is not impossible. That would be at least a 60% or more reduction over equivalent commercial products *if* and *when* they are available.

The key to success I think will be identifying a programming lead similar to Hargle on the XT-IDE project. Also a small number of builders willing to hack the initial round of prototype boards (4-5 volunteers). If we get past that we are in like Flynn.

Thanks and have a nice day!

Andrew Lynch
 
Last edited:
I suspect that if someone wanted to goof around with the idea without actually building anything, an Adaptec 1540/1542 SCSI controller might be just the trick--it uses an 8085 as the controller CPU and has all of the necessary interface drivers. Just start off by hacking the controller EPROM.

Hi! That is an interesting observation. If a basic 8085 with NCR5380 clone can get acceptable performance for a commercial product I suspect we can probably extract similar capabilities with a Z80 CPU and the Z53C80. There is no equivalent IDE controller chip to the Z53C80 that I know of although a 8255 PPI with an inverter comes close to a single chip solution.

Due to IDE's inherent 16 bit nature, the 8 bit to IDE interfaces are going to be clunky no matter what although the PPI IDE is about the smoothest I've seen. Performance is OK but not great.

Microcontrollers struggle with IDE too since it requires ~24 GPIO pins. SCSI requires ~20 GPIO pins too (plus buffers) which means a single chip microcontroller SCSI to IDE solution requires at least 44 GPIO plus whatever programming interface, status, etc. I can see the GPIO pin count going to 55-60 GPIO quickly. Not many hobbyist friendly microcontrollers have that many GPIO pins available.

Thanks and have a nice day!

Andrew Lynch
 
Microcontrollers struggle with IDE too since it requires ~24 GPIO pins. SCSI requires ~20 GPIO pins too (plus buffers) which means a single chip microcontroller SCSI to IDE solution requires at least 44 GPIO plus whatever programming interface, status, etc. I can see the GPIO pin count going to 55-60 GPIO quickly. Not many hobbyist friendly microcontrollers have that many GPIO pins available.

My idea was that a proof-of-concept would be possible with the Adaptec, since it shouldn't be hard to hack the 8085 code to make it appear as a disk drive rather than a host and simply have it communicate with the IDE drive in the PC.

Sometimes you can think outside the box on the I/O issue--MCUs are cheap enough that you could use two and link them together with SPI or other serial protocol, or even share a memory buffer between them.

Some uCs have external memory interfaces, so mapping external latches or registers into the memory space is also pretty straightforward. I'm pretty much forced to do that with the Pertec controller, which uses a 40-pin DIL AVR.

If you need I/Os, it's hard to beat a uC in a 144-pin QFN...
 
If you need I/Os, it's hard to beat a uC in a 144-pin QFN...

Hi! Using SMT is a non-starter regardless of how many GPIO pins. SMT assembly leaves behind so many of the Do It Yourself hobbyists it defeats the purpose of the project.

Thanks!

Andrew Lynch
 
Hi! I just heard from one of the N8VEM builders that the ATAPI standard is similar to SCSI. The N8VEM DiskIO supports ATAPI on its IDE port so there may be some opportunity to reuse that code. Still, the SCSI interface code is where the major effort will be, IMO.

Thanks!

Andrew Lynch
 
Hi! I slightly updated the design so the NVSRAM is powered with a CR2032 battery and there is a holder on the PCB. It may have to be mounted on the back due to clearance issues. You can still use external battery which I would prefer since if the battery goes bad then the PCB is not ruined. Just directly wire the external battery pack to where the CR2032 connects.

Added jumpers to all the devices using the Z80 interrupt. This should help debugging the board since you can isolate physically where an interrupt is coming from. Nothing really needs interrupt support to work since polling mode would be just fine. However the pseudo DMA mode can tie into the interrupt to speed up transfers and the UART and IDE are both enhanced with interrupt support. It is a nice option if we get that far.

I think the schematic and PCB layout are ready for some review and feedback. If anyone has any constructive comments and/or critiques, I am open for suggestions. Please post here so we can discuss.

If people are satisfied with this design I think it is probably ready for an initial run of prototype boards. It costs $150 to get five prototype boards from 33each.com so if you'd like to move this project to the next stage, we need four or more people to buy prototype boards and build the design or kick in the funds so other builders can build and test the prototypes. If there is sufficient interest, I will proceed with the SCSI2IDE prototype boards but if not I'll put them in stasis until if/when it develops.

My intent is for a community project with several builders participating. I offer to make a initial design, write a schematic, arrange a PCB layout, and order some prototype boards just like the XT-IDE project. We still need some builders for build and test and also a software lead to integrate the existing code and write the SCSI interface code. Obviously, there is no point in ordering prototype boards if there is not sufficient interest so we are approaching a go/no go decision point. If you are interested or know hobbyists who would be please speak up!

Thanks and have a nice day!

Andrew Lynch

PS, similar SCSI to IDE bridge devices exist commercially but are quite expensive. I am not sure about availability so if someone could do a bit of market research on the subject that would be helpful. If low cost commercial devices exist, then there would be no need for a home brew project. What I've seen though is these boards generally tend to be >$100, support more recent versions of SCSI, and are rarely available which the following web searches seem to support.

http://www.google.com/search?q=SCSI...t=mode&sqi=2&ved=0CA4Q_AU&fp=7b9141da4f416ce8

http://shop.ebay.com/i.html?_nkw=scsi+ide+bridge
 
Last edited:
Back
Top