Jump to content


SCSI Voodoo HowTo

  • Please log in to reply
7 replies to this topic

#1 trag

  • 68020
  • LocationAustin, TX

Posted 18 July 2012 - 08:17 PM

I saw JT's mention of the need for this thread here:


so I decided to start rolling that ball. I posted a lot about this topic back in the 90s in the comp.sys.mac.* hierarchy in the news groups, so at first, I'm just going to quote some of my old postings as I find them. After a week of desultory searching in Advanced Google Groups Search, I've found my first useful posting, quoted below Early SCSI History:

Alan Lehotsky wrote:
> Can someone concisely explain what the difference is?
> Can I use a drive that supports fast or wide or ultra with
> any old SCSI controller and just not get the maximal performance?
> Or, is it that the interfaces are incompatible?
> -- Al

This is probably explained better in the FAQ over on comp.periphs.scsi,
or that might be comp.periph.scsi. But here it goes:
[2012 Edit: comp.periphs.scsi FAQ, Part 1 of 2
[2012 Edit: comp.periphs.scsi FAQ, Part 2 of 2

In the beginning there was SCSI and it was pretty good and it maxed out
at transfer rates of about 3 MB/s. But that was the early 80's, so
it was faster than any hard drives worked anyway. There were
ambiguities in the IEEE standard as written, so SCSI from one company
wasn't necessarily compatible with SCSI from another company. This
problem mostly expressed itself in the PC world as little proprietary
SCSI controllers that were included with scanners or other peripherals
and that wouldn't work with any other SCSI devices. We had it good
in the Mac community when it came to SCSI, except that most of Apple's
implementations would do maybe 1.5 MB/s transfer rates.

SCSI was based on a 50 wire cable transferring 8 bits of data in
parallel. The other 42 wires are ground wires and various control
signals. The frequency of data over this cable is also part of
the standard but I don't remember the number. I think it was
10 MHz. [2012 Edit: It was 5 MHz.]

So it was decided to write a new SCSI standard that would vanquish the
ambiguity and while they were at it, they decided to add some
improvements, because 3 MB/s was getting pokey.

Thus was SCSI-2 born. By making use of synchronous transfers (or maybe
that was asynchronous transfer [2012 Edit: It was synchronous],
I get the two confused) SCSI-2 was
able to up the transfer rate to 5 MB/s using the same 8 bit parallelism
at the same frequency as the old SCSI standard. But the standards-makers
were not satisfied. So they added two more options to SCSI. It could
be Fast--operating at twice the normal frequency, and/or it could
be wide--transferring 16 bits of data in parallel instead of 8. And just
to help confuse things, they prescribed a new SCSI connector to replace
teh old Centronics 50--the High Density SCSI connector--often called
a SCSI-2 connector because it came out when the new standard was

And the standards-makers declared backward compatibility. The original
SCSI devices would work on the same bus as the SCSI-2 devices. And Fast
SCSI-2 devices would work with them all. But to take advantage of the
new features, both of the devices communicating must have the same
features. What this means in proactice is that the user would never
get performance better than what his SCSI controller supported and the
controller would have to slow down to the speed of whatever device it
was talking with at the moment.

Because Wide devices transfer 16 bits at a time, they need a different
cable. You must have some extra wires to carry those 8 extra bits.
So Wide devices usually go on their own 68 wire bus. But those wily
SCSI Standards-writers thought of everything. If you put an
adapter on a wide device and attach it to a narrow bus, or put
an adapter on a narrow device and attach it to a wide bus, the
controller and the device will negotiate their transfer method,
and agree to just use 8 bit transfers, so that you don't have the
other 8 bits getting lost in the ether somewhere.

Wide devices usually cost a little extra, so people usually don't
buy them and then handicap them by putting them on a narrow bus.
And putting a narrow device on a wide bus can decrease the overall
performance of the wide bus, as well as causing issues with SCSI
ID's over 7 (wide uses ID's 0-15), so it's best to avoid that too,
if you can.

A note--wherever I write "wide" I really mean Fast & Wide. I've
never seen one, but a SCSI drive that was simply Wide, would have
a maximum transfer rate of 10 MB/s, the same as a Fast narrow one.
It's the combination of Fast (twice the bus frequency) with wide
(twice as many bits in parallel on the bus) that gets the
20 MB/s theoretical transfer rate of Fast & Wide.

Still later a newer SCSI standard was born and it was called
Ultra-SCSI. I'm less familiar with this new stuff, but somehow
it upped the maximum transfer rate on the old familiar 50 wire
cable to 20 MB/s. Yet, it is backward compatible in the same way
that SCSI-2 and Fast SCSI-2 was. Just keep in mind, that if you
put an Ultra-SCSI drive on a plain SCSI-2 controller, your max performance
will still be 5 MB/s. And any old original SCSI devices on a fancy new
ultra-SCSI chain are still stuck at 3 MB/s. But an Ultra-SCSI
controller with Ultra-SCSI drives can get you 20 MB/s.

And following in tradition, there is wide ultra SCSI which does
twice as many bits at the same speed as ultra-SCSI, getting
a maximum theoretical performance of 40 MB/s.

So to summarize. There are devices built for 50 wire buses (50 pin
cables) which can all be connected to the same bus without adapters:

original SCSI 3 MB/s
SCSI-2 5 MB/s
Fast SCSI-2 10 MB/s
Ultra-SCSI 20 MB/s

In general only two devices on a bus talk to each other at any given
time. This is almost always (is always in any case the normal Mac
user will encounter) the controller (logic board or SCSI card) talking
with one of the devices on the chain. These two devices will com-
municate at the rate of the slower device.

And there are devices that are built for 68 wire buses:

Wide SCSI-2 10 MB/s (never seen one of these, don't think they
were ever built)
Fast & Wide SCSI-2 20 MB/s
Wide Ultra SCSI 40 MB/s

Wide devices can be adapted to narrow busses and narrow devices can be
adapted to wide busses, but when you do those devices will only give you
narow performance. And putting narrow devices on a wide bus may slow
down the performance of that bus with the wide devices.

Finally there are some 80 pin devices out there, but I'm not sure what
the deal is with them. I think they're built for hot pluggable
systems. And there are what are called Differential drives. These
use a differnet method of interpreting electrical signals as data,
so that they can better tolerate environments with a lot of
electrical noise and use longer cable runs. Differnetial drives
are not compatible with other SCSI drives and can cause damage if
attached to a regualr bus. There are some adapters for differential
drives, but they are so expensive, you are better off just getting
the correct drive in the first place.

Hope this helps. It's not concis...oh well.

Okay, that's rather incomplete because it's so out of date and not very concise. But I don't have time to write something short and to the point at the moment.

Oh, I also found this useful link: http://www.scsifaq.org/

I'm still looking for my old postings on configuring SCSI chains properly and the finer points of mixing wide and narrow drives. As I recall, those had some nice ASCII diagrams included.

#2 trag

  • 68020
  • LocationAustin, TX

Posted 18 July 2012 - 09:21 PM

Finally found another old message. This one is from the early days of the LEM Lists before they went to Google Groups.

SCSI Voodoo exists because SCSI works when it shouldn't, not because
it doesn't work when it should. So folks misconfigure their SCSI
chains, the machine works anyway, they think everything is fine, then
one day it stops working and they declare SCSI Voodoo.

If your cables are short and your SCSI bus is slow it will still work
without termination, sometimes. The things which termination deal
with are into the realm of analog electronics as opposed to digital
and so it's not an all or nothing deal. Sometimes poor or no
termination is still good enough.

A great site: http://www.scsifaq.org .

Basic SCSI:

1) I will use the terms chain and bus pretty much interchangably.

2) Every device on the SCSI bus must have a unique SCSI ID. It
doesn't matter what order the IDs are in, just as long as they are
each unique.

3) A "device" is anything on the bus, including the host computer, a
SCSI card, disk drives, scanners, etc.

4) No branches are allowed in a SCSI chain, i.e. no Y formations.

5) Every SCSI bus/chain has two ends and only two ends. It's a line
because there are no Ys.

6) Each end of the SCSI bus must be terminated.

7) You, the user, may only need to provide termination at one end,
because some device (host computer, or SCSI card) may be providing
termination automatically for the other end of the chain.

8) Here are some example SCSI chains:

===== internal SCSI ribbon cable
:T or T: A SCSI terminator or termination on a SCSI Device
Dn A disk device of some type, such as a disk drive, n is an integer
which I'm just using as a label for easy communication. It has
nothing to do with SCSI IDs.
C A connector on a SCSI cable with no device attached
MB The host motherboard, or a SCSI card
-------- external SCSI cable

Example 1, Internal SCSI only; Good Termination


The motherboard provides termination at one end and the device at the
end of the chain provides termination at the other end. Notice that
the device providing termination is on the last connector on the

Example 2, Internal SCSI only; Bad Termination


The motherboard is still good, but now the terminating device at the
other end of the chain is no longer at the end of the cable. Unless
the distance from D:T to C is only a few inches this is a SCSI no-no.

Example 3, Internal SCSI only; Bad Termination


The motherboard is still good, but the second terminating device is
not at the end of the cable where it belongs. D1 should have
termination disabled and D2 should have it enabled, or their
positions on the cable could be reversed.

Example 3a, Internal SCSI only; Bad Termination


The motherboard is still good, but there is simply no termination for
the other end of the chain. This is bad as both ends of the bus
must be terminated.

Example 4, External SCSI only; Good Termination


Note that this looks pretty much exactly like good internal
termination. The biggest difference to note is that with external
devices one usually leaves the on-board (built-in) termination turned
off and uses an external terminator module. The module plugs into
the unused cable connector at the end of the SCSI chain. Every
external SCSI device should have two SCSI connectors. One for each
of the two external cables that connects it to the neighboring
devices. When you reach the end of the chain, there's only the one
incoming cable, so the other cable connector is available for a
terminator module to plug into.

Also note that if you use an external module, it is very difficult to
incorrectly terminate your external SCSI chain. You can only plug
the terminator into the last device on the chain, becuase it's the
only one with an empty cable connector. However, you can still
screw up by enabling termination on one of the intermediate devices
on the chain.

Some external devices have only one SCSI connector and have
termination permanently enabled. Such devices must go at the end of
the SCSI cable.

Example 5, External SCSI only; Bad Termination


In this case SCSI device D1 somehow has termination enabled. It is
not at the end of the SCSI chain so this is wrong. There are two
primary ways this could happen. D1 could be a disk drive of some
sort and the user left the "Termination Enable" jumper installed so
that D1's built-in termination is still enabled. Or the case in
which D1 is installed may have a built-in termination feature and it
may be switched on. Some of the APS brand cases came with this
termination feature.

So, when you put SCSI devices on an external SCSI chain be sure to
disable the built-in termination (remove the SCSI Term Enable
jumper), unless you will not be using an external terminator, and the
device will be at the end of the chain. But using the built-in
termination is a bad practice because you cannot see at a glance
whether termination is enabled on a device. And you would have to
pull the device out of its case to check the jumpers.

Example 6, External SCSI only; Bad Termination


This example builds on the information in example 5. The last
device on the chain is terminated but it is double terminated. This
happens when the user leaves the "Termination Enable" jumper
installed on the SCSI device and installs an external termination
module on the unused cable connector on the last device. This is
also a big no-no.

Example 7, External SCSI only; Bad Termination


This one is trivial. There is no termination at the left end of the
SCSI chain. Termination needs to be provided in some manner.

Example 8, Internal & External SCSI; Good Termination


Most Macs which shipped with built-in SCSI have both an internal and
an external SCSI connector and these connectors are both on the same
SCSI bus. In a PCI Mac such as the x500 and x600 series which have
two SCSI busses, this internal/external SCSI bus shows up as Bus 1 in
utilities such as SCSIProbe.

So, in this case we have devices on both the internal connector and
the external connector. This involves two different types of
cabling: a ribbon cable on teh inside and external cable in a chain
of cables and boxes on the outside. However, it is still a straight
line. The rules still apply. There must be a terminator at each
end of the chain.

So the last device on the ribbon cable must be at the end of the
ribbon cable and it must have termination enabled (usually the
"Termination Enable" jumper installed). The last device on the
external chain must have a terminator installed.

The motherboard detects that it is no longer at the end of the SCSI
chain and automatically disables its built-in termination. This is
documented in the Apple Developer Notes for these machines.

I'm going to skip the "Bad Termination" examples for internal &
external because they can be drawn from teh examples for internal
only and external only.

Mac models such as the x500 and x600 machines and the 8100 have two
built-in SCSI busses. Each bus must be properly terminated. So an
example would be:

SCSI Bus 0 T:MB===D====C====D:T
SCSI Bus 1 T:D----D------D------MB===D====C====D:T

The machines with two built-in SCSI busses have two internal SCSI
connectors. One of those connectors is the sole connector for SCSI
Bus 0. The other connector is the internal connector for SCSI Bus 1
and is on the same SCSI bus as the external SCSI connector.

I think that's enough. There's a bunch I could write on SCSI IDs
and SCSI cards, but there's a length limit on messages to the list.

Jeff Walther

Still looking for one of my old messages, with similar examples and diagrams about mixing narrow and wide devices...

#3 trag

  • 68020
  • LocationAustin, TX

Posted 18 July 2012 - 10:24 PM

Another old message.

Now on to our regularly scheduled pedantry... Single ended simply means that it is not differential. It refers to the form of the electrical signals sent over the cables and is not descriptive of the wires or cabling.

In the beginning there was single ended SCSI and differential SCSI and only very high end installations used differential so all you needed to know was to avoid differential stuff.

Now days, we have the wonderful LVD which is Low Voltage Differential. U2W SCSI and the later versions (U160, U320) are LVD. Most, if not all, of the U2W drives are capable of operating in Single Ended mode, which means that they adjust their form of electrical signaling to the old style if they find themselves on a SCSI bus where that is what is being used.
[2012 Edit: One big advantage of LVD signalling and cabling is that the cables can be longer than what was allowed for UW, the previous generation of SCSI.]

SCSI termination and cabling for LVD is quite different from single ended though they appear similar. The single ended 68 pin cable is a just a smooth ribbon cable. The 68 pin LVD cable is that weird looking twisty turny stuff where the pairs are broken out of the ribbon and twisted around each other.

The terminators for single ended (SE) and LVD are also different. However, there's a detail. Most of the LVD terminators will also automagically do SE termination. But the reverse is not true. So, if you get an LVD terminator, you're probably okay, no matter which regime you're operating in, but with an SE terminator, you can only use it on an SE bus. Usually the LVD terminators will have "LVD/SE" embossed on their plastic indicating their dual nature.

Similarly, the LVD cabling seems to work fine on SE busses, but don't try the reverse.

If you're running an SE bus (UW or earlier) then it doesn't matter much which form of cabling you choose. But these days, if you're buying new, you may as well pick up the LVD cabling and termination.

Also note that most U2W and later drives do not have an option to enable on-board termination. They depend on there being a separate terminator installed on the SCSI cable. UW drives and earlier have a jumper which will enable termination on the drive, so that the drive can go at the end of the SCSI cable instead of a termination module. This means that you generally need one more position (plug) on an LVD SCSI cable than you would have needed on an SE SCSI cable.

Jeff Walther

#4 Trash80toHP_Mini



  • 68040
  • LocationBermuda Triangle, NC, USA

Posted 19 July 2012 - 12:20 AM

Many thanks, JW! :approve:

#5 Bunsen



  • Administrators
  • LocationMelbourne, Australia

Posted 19 July 2012 - 10:53 AM


have you searched? Seeks: Nubus PDS DSP PB170 Newton; TRS-80 III/4; CBM BBC SX-64 CX5M Likes: 8bit luggable palmtop terminal NC tablet audio MIDI analog FM drum synth steam&dieselpunk; 1930-1980 lab/comm/mil Score! NC100 PB190 Q950 IIe-PDS

#6 trag

  • 68020
  • LocationAustin, TX

Posted 08 May 2013 - 08:40 PM

SCSI Termination Resistor Packs:

These are SIP (Single Inline Pin) assemblies with internal arrays of resistors used to provide termination on very old SCSI hard drive and on the FWB NuBus JackHammer card.

Insert the resistor packs to enable SCSI termination on the device. Remove the resistor packs to remove SCSI termination from the device.

If the termination resistor packs were removed from your device a long time ago, they can be very difficult to replace. Searches on useful terms like "SCSI Termination Resistor Packs" will turn up very little useful information and it will appear that these useful little SIPs are no long available for purchase anywhere.

However, if you know that an 8 pin (3 required) SCSI termination pack is a Bourns 4308-104-221/331 or 4608-104-221/331 and search on that, you'll find that several electronics supply houses, such as Mouser, Jameco and Questcomp stock them. For the 10 or 11 pin (2 required) SCSI termination pack use Bourns 4311-104-221/331. Or if it's 10 pin then 4310-104-221/331.

I found that at Mouser there are extra letters in the full part number, so a search on 221/331 is more useful.

If you can't find the 43xx then search for the 46xx. The only difference is the package above the pins.










#7 Aoresteen

  • 6502

Posted 08 July 2013 - 03:30 AM

In the SCSI chain, bandwidth is SHARED. If you have 7 hard drives in the SCSI chain and they are all going at the same time they get 1/7th of the bandwith.

If there is just one hard drive in the chain that is active it gets all of the bandwidth. With tape drives, ZIP dridve, and CD-ROMs thrown in, who knows how much bandwidth a device will get.

Vendors like to publish data on their device with it being the ONLY device in the chain.
Tony Oresteen
Newnan, GA
128k Mac, 128k -> Plus, SE/30, IIci, Quadra 605, PM 9500, G3 Blue

#8 trag

  • 68020
  • LocationAustin, TX

Posted 19 July 2013 - 09:06 PM

It depends on what you mean by "shared".

Only two devices can communicate at a time on a SCSI bus. So at any given moment, the bandwidth is not shared. It is all devoted to the channel between the two devices (usually the host controller and a device) which are currently communicating.

Further, SCSI devices have a priority ranking based on their SCSI ID, which determines which devices get control of the bus, if multiple devices are trying to talk at the same time.

SCSI ID 7, usually the host controller, always has the highest priority. From there, highest priority is ID 6 and descends to 0. If the SCSI bus is a wide bus with IDs from 0 - 15, then the previous statement is still true, but after SCSI ID 0, ID15 has the next priority and descending from 15 to 8.

Of course, if you have an array of disks, all on the same SCSI bus, and a controller scheme which gives them all about equal usage, then it will look a lot like the bus is dividing its bandwidth evenly amongst them all.

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users