SCSI2SD

From code/src wiki
Jump to navigationJump to search

The SCSI Hard Drive Emulator for retro computing.

SCSI2SD_V3.0_small.jpg

News

29 Oct 2013:
Firmware update and device configuration tools now available. Download.

27 Oct 2013:
Version 3.0 PCBs assembled, tested, and available for purchase.

3 Oct 2013:
Source code and PCB files uploaded.

10 Sep 2013:
It works! I have a working prototype that works well. There are a few minor errors in the PCB layout that will be fixed in the next revision.

Overview

Traditional hard drives last 5 years*. Maybe, if you're luckly, you'll get 10 years of service from a particular drive. The lubricants wear out, the spindles rust. SCSI2SD is a modern replacement for failed drives. It allows the use of vintage computer hardware long after their mechanical drives fail. The use of SD memory cards solves the problem of transferring data between the vintage computer and a modern PC (who still has access to a working floppy drive ?)

*All statistics are made up.

Features

  1. In-built active terminator.
  2. Can optional supply terminator power back to the SCSI bus
  3. Emulates a non-removable hard drive for maximum compatibility.
  4. Firmware updatable over USB
  5. Highly configurable over USB
    • Selectable SCSI ID
    • Selectable parity support
    • Enable/disable Unit Attention Condition
    • Artificial limits on the SCSI disk size (eg. limit size to 4G to avoid OS bugs)

Technical Specifications

SCSI Interface SCSI-2 Narrow 8-bit 50-pin connector. Supports asynchronous transfers only.
SD Card Interface Standard SDSC (1GB maximum size)

SDHC (32GB maximum size)
SDXC cards are untested. Donations welcome.
Communication is via the SPI protocol at 25MHz.

Power 5V via standard molex drive connector.
Dimensions 10cm x 10cm x 1.5cm

A 3D-printable bracket is available to mount in a standard 3.5" hard disk bay.

Performance

As currently implemented:

Sequential read: 424kb/sec Sequential write: 414kb/sec

Tested with a 16GB class 10 SD card, via the commands:

# WRITE TEST
sudo dd bs=8192 count=100 if=/dev/zero of=/dev/sdX oflag=dsync
# READ TEST
sudo dd bs=8192 count=100 if=/dev/sdX of=/dev/null

I am working on updating the SD card communication to use DMA, to allow simultaneous use of the SD and SCSI interfaces. I expect the performance to reach 1Mb/sec.

For comparison, here are some benchmarks of some older SCSI hardware.

Compatibility

Tested with Linux (current), Apple Macintosh System 7.5.3 on LC-III, and LC-475 hardware.

Users have reported success on these systems:

  • Mac II running System 6.0.8
  • Mac SE/30

Files

Firmware update utility and configuration tool download.

These files are currently available for Windows and Linux (64bit, requires the libudev1 package).

The schematics, pcb layout, and source code is managed under the git version control system. A copy of all sources can be obtained via the command:

git clone --recursive git://www.codesrc.com/git/SCSI2SD

Alternatively, the git sources can be viewed using your web browser by clicking here.

The schematics and PCB layout files can be viewed/edited with the free gEDA tools. For those without access to gEDA, I've exported the content as PDF:

The software is built using the Cypress PSoC Creator IDE.

Howto

Alternative Open SCSI Projects

  • AJ's alternative implementation. AJ and I originally had a competition to design and build a SCSI device to boot an old Mac LCIII. The deadline for that competition has long-since expired without a winner, but we have both continued to progress our designs.
  • S2I (was: SCSI2IDE)
  • AVR based SCSI RAM disk

Old

For historical project information see SCSI2SD old