Slink-e Organization

The organization of the Slink-e is somewhat evident from looking at the unit, from the various connectors and the printing on top. But it can be rather misleading too, because the internal organization, in particular the definition of "ports" does not exactly match the organization of the connectors.

In fact, "port" as used in the printing on the unit is not the same word we use in this manual! What the printing calls "port," we call "connector" and what we call "port" is something else -- something that makes more sense in describing the programming interface. So just remember: A "port" is not a place to plug something in. It is an organizational part of the Slink-e.

The Slink-e is organized into 7 ports of 4 types:

The IR port handles both IR signals and S-link Control-S signals.

The IR port can be quite confusing because it has 8 separate zones. This makes people think of it as 8 IR ports. But there is just one. By contrast, the S-link Control-A1 ports are not subdivided and there really are 4 of them.

In Nirvis documentation, you see mention of an eighth port called the "control" port. I find that concept confusing and don't use it in this manual. Nirvis' control port is just an abstraction to explain operations that aren't specific to any port. In this manual, we just skip the abstraction and call them operations that aren't specific to a port.

The control port is just an internal entity that you use via the programming interface to control the Slink-e.

Explanations of each type of port follows:

S-link Ports

The purpose of an S-link port is to talk to the S-link port of an appliance such as a CD jukebox. Each S-link port can talk to one appliance S-link port. All 4 Slink-e S-link ports are identical except for their names.

Connecting the S-link Port

Each Slink-e S-link port is connected to the appropriately labelled S-link connector on the Slink-e. An S-link connector is a 1/8" mono phone jack.

The S-link port on your appliance is also a 1/8" phone jack, and should be labelled "S-link" or "Control-A1". It is not the connector labelled "control-S", "S-link Control-S", "Control-L", "LANC", "IR IN", or "IR OUT".

The Slink-e comes with a 6 foot S-link cable (1/8" mono phone plug to 1/8" mono phone plug). You can get cords like this, and longer ones, at stores like Radio Shack or easily make your own. S-link cables can be up to 100 feet, but at distances that long, the cable should be either coaxial or twisted pair.

Here's an odd thing to look out for: Sometimes phone plugs have a longer than standard shaft. If you push one of these all the way into the Slink-e jack, the jack will short and the Slink-e will think it is receiving a continuous S-link signal. You'll know this is happening because the Slink-e port activity light will turn solid orange. If you simply pull the plug out a little, the light will turn its normal green and the cord will work fine.

S-link has a bus structure. You can connect multiple appliances to the same S-link wire, in parallel. In fact, many S-link appliances have two S-link connectors, wired together in parallel, to make it easy connect multiple appliances to the same S-link bus by daisy chaining (but it's only physical daisy chaining, since the connectors are electrically connected together in parallel).

This works as long as each appliance on the bus responds to one unique "device ID." S-Link CD players generally have a selector switch which allows you set their ID to either CD1, CD2 or CD3. That means you can connect up to 3 CD players to each Slink-e S-Link port. Some other types of appliances such as S-Link receivers do not have a selectable ID (I don't know if that means the ID is fixed or that the appliance responds to all IDs) and therefore you cannot connect two of them to the same S-link bus.

You should not wire two Slink-e S-link ports together. There is no reason to do that.

Should I Connect Everything To One S-Link Port?

Even where you have properly unique device IDs so that you technically can control everything from one Slink-e S-link port, it isn't always the best way to go.

Many S-Link appliances are passive and do not attempt to control other S-Link equipment connected on the same S-Link bus. These appliances can share one S-Link bus with no interactions. Other appliances (such as receivers and certain CD changers) designed to interact with another appliance (e.g. CDP-CX270, CDP-CX90ES, CDP-CX260). For example, a receiver might switch to the CD input when a CD player is playing or paused. Some of these features are handy, and some get in the way of your attempt to control an appliance via the Slink-e. In general, if you are relying on the Slink-e to do most of your system control, it is best to separate these "active" devices onto separate S-Link busses. In a more advanced configuration, you might use relays to switch the interconnection of S-Link busses so that they are disconnected while Slink-e is supposed to be in control and connected when it is not.

IR Port

The IR port is for sending and receiving Infrared (IR) messages. It doesn't necessarily directly send or receive them, though. An IR message is a sequence of pulses of light and much of what the IR port does is generate electrical signals on electrical ports.

The Slink-e does have an IR sensor, which is connected to the IR port, so it can receive an IR message. It does not have an IR emitter, though, so it cannot directly generate an IR message.

The IR port also generates and receives S-link Control-S messages. S-link Control-S messages are electrical versions of IR messages, much like the Xantech electrical IR protocol. Unlike the Xantech system, it wasn't designed for relaying true IR messages, but rather as a way for a machine to control a device which was primarily designed to be controlled by an IR remote control. But except for the obvious differences at the lowest level of the protocol (one is electrical, the other optical), the S-link Control-S protocol is identical to the IR signalling protocol used by IR remote controls.

The basic function of the IR port is to generate arbitrary IR messages (or electrical equivalents) as instructed via the Slink-e programming interface and to receive and report IR messages (or electrical equivalents) via the Slink-e programming interface.

IR Routing

The IR port also has the ability to route IR messages from one zone to another. You supply a routing table via the Slink-e programming interface. For example, you can instruct the Slink-e to repeat every IR message received in Zone 3 to Zone 4. The Slink-e will do that without any further involvement of the programming interface.

A good use for the routing function is to allow you to have multiple identical model IR-controlled appliances. For example, you can't normally have two identical VCRs in a rack, because they both respond to the same IR messages, and you can't point a remote control at one and not the other. But with Slink-e, you can attach one IR emitter to each VCR and shield the VCR's IR sensor so it can't see IR messages from anywhere but its own emitter. Plug one emitter into Zone 1 and the other into Zone 2. Plug an IR sensor that can see your remote control into Zone 3. Your computer can now direct the Slink-e to route IR messages received in Zone 3 to either Zone 1 or to Zone 2, depending on which VCR you want to control at that moment. You would of course program your computer to switch the routing when it receives some IR message that you've chosen to be your "select VCR" command.

For reasons of timing, it works better to have the Slink-e do this routing than to have your computer simply receive all the messages in Zone 3 and then route each one to Zone 1 or Zone 2 itself.

Connections

The Slink-e has an IR emitter connector, which is a 1/8" mono phone jack. You plug an IR emitter into that port and then you can generate IR messages via the IR port with it. Use a Xantech type IR emitter. A Xantech type emitters is one designed for use with Xantech's IR signalling equipment, and normally has the 1/8" mono phone jack so it plugs right into the Slink-e.

In addition, the Slink-e has the ability (through the IR port) to generate and receive Xantech-type electrical equivalents of IR messages on the Slinke-e's IR Zone 1 connector (a 3-wire Xantech type connector) Furthermore, with the Slink-e expansion adapter connected the the Slink'e's expansion connector, it can generate and receive these Xantech electrical IR signals on 5 other connectors.

The IR port uses the Xantech concept of IR zones. It implements 8 zones. People often think of these as 8 separate ports, analogous to the Slink-e's 4 separate S-link ports. But when you look at the details of how the ports work, and especially at how you access them via the programming interface, you see that there is really just one IR port and you'll just get confused if you believe there are 8.

The IR port's Zone 0 is associated with the Slink-e's built-in IR sensor and IR emitter connector. Zone 1 is associated with the IR Zone 1 connector. Zones 2 through 7 are each associated with one connector on the Slink-e expansion adapter. The signals on the Slink-e expansion connector that relate to this are as in the following table, but I do not have any more detail on them. They clearly do not implement the Xantech protocol, because that protocol has a single wire for both send and receive. Note that Zone 1 is represented on the expansion connector, even though there is no connector for Zone 1 on the expansion adapter.
Pin Function
9 Zone 1 receive
19 Zone 2 receive
6 Zone 3 receive
7 Zone 4 receive
20 Zone 5 receive
8 Zone 6 receive
21 Zone 7 receive
4 Zone 1 transmit
16 Zone 2 transmit
15 Zone 3 transmit
1 Zone 4 transmit
14 Zone 5 transmit
3 Zone 6 transmit
2 Zone 7 transmit
18 GND

Zone 7 is S-link Control-S. Zones 1 through 6 are Xantech. Zone 0, assuming an IR emitter is plugged in, is true IR (light).

A simple hardware modification lets you change which of Zones 1 through 7 are S-link Control-S and which are Xantech. I'd tell you what that modification is, but I don't know. Nirvis documentation says to ask Nirvis. I'll bet you can figure it out on your own, from the electrical schematics on Nirvis' web site.

The Xantech bus consists of three wires: ground, 12 volt power, and signal. It has a bus architecture, so multiple sources feed into that one signal wire and multiple sinks draw from it -- just like the ether that carries true IR messages around your living room. The Slink-e neither powers nor draws power from the power line on its Xantech IR connectors.

The IR emitter that comes with the Slink-e can plug into the IR Zone 0 jack. It emits both infrared and red light, so you can see it work. IR messages last long enough that you will see the emitter flash if the Slink-e sends any valid message.

Older Slink-e

The preceding description of the IR port is about the latest version of Slink-e. The Version 1 Slink-e differs in that it has only one IR zone, and no S-link Control-S ability. Before Version 2.1, the Zone 0 IR emitter connector is a modular (telephone-style) connector instead of an 1/8" phone jack.

Parallel Port

The parallel port is just a bonus thrown into the Slink-e. It really doesn't fit into the grand scheme of the unit at all. Inspite of what you might guess from the name and the shape of the connector, this is not an ISA standard parallel port, i.e. "printer port." Do not connect printer port things (like printers) to it. Damage will occur.

The parallel port simply allows you to send or receive parallel data signals -- 8 of them. You configure each of the 8 bits as either input or output.

The parallel port connects to part of the Expansion Connector on the Slink-e. It connects to the following pins. The digital I/O and strobe pins are TTL level. The pins that have alternate descriptions have multiple roles, and you select one via the programming interface.
Pin Name Description
13 DIO 0 data input or output Bit 0 (lsb)
25 DIO 1 data input or output Bit 1
12 DIO 2 data input or output Bit 2
24 DIO 3 data input or output Bit 3
12 DIO 4 data input or output Bit 4
23 DIO 5 data input or output Bit 5
10 DIO 6 or DOSTB data input or output Bit 6 or output strobe
22 DIO 7 or DISTB data input or output Bit 7 or input strobe
5 +9V 9 volt 100 mA unregulated power supply
17 +5V 5 volt 50 mA regulated power supply
18 GND ground

If you attach the TTL lines to voltages or impedances not consistent with TTL, you can cause permanent damage to the Slink-e.

Serial Port

The purpose of the serial port is to allow the Slink-e to communicate with a computer. The computer sends commands to the Slink-e the Slink-e sends reports to the computer.

Physical Connection

The serial port connector is a DE-9F (aka DE-9S) connector. This type of connector is frequently but incorrectly called DB-9. There is no such thing as DB-9. The pinout of the connector is RS-232 DE-9.

The Slink-e is a DCE (The two ends of an RS-232 connection are called DCE (Data Communication Equipment) and DTE (Data Terminal Equipment). This means it fills the role of a modem in a classic RS-232 connection, and that it attaches to a conventional computer via a straight-through cable, not a null modem or crossover cable. Straight through means Pin 1 to Pin 1, Pin 2 to Pin 2, etc., using the standardized DE-9 pin numbering.

The Slink-e ignores Request To Send (RTS) and does not generate Ring Indicator (RI). It implements all the other RS-232 signals on the DE-9 connector. It asserts Carrier Detect (CD) and Data Set Ready (DSR) all the time when it is powered up. It uses Clear To Send (CTS) to control flow of data from the DTE (which otherwise can easily overrun the Slink-e). I'm not sure how it uses Data Terminal Ready (DTR).

Cabling

The Slink-e comes with a 10 foot DE-9F to DE-9M cable that you can use to connect the Slink-e to most computers. But there is nothing special about that cable -- any standard serial cable you get in a computer store will do. Just make sure it's straight through, and not a null modem or crossover cable.

Some computer serial ports have a DB-25 instead of a DE-9 connector, and some have a female connector instead of the standard male. In those cases, you need cables or adapters compatible with your connector.

RS-232 allows cables up to 100 feet. If you want your Slink-e even further from your computer than that, there are various kinds of relaying equipment available to relay RS-232 signals.

Some people like to make RS-232 cables by using CAT-5 cables with 8 position modular plugs on each end (these plugs are often incorrectly called RJ-45 -- RJ-45 actually refers to the pinout of these plugs for Ethernet; they are, though the familiar Ethernet plugs). You plug them into modular-8-to-DE-9 adapters, such as you can get from gadgetpros.com, part numbers MA9 and MA10. Such adapters often come without the pins inserted in the DE-9 shell, so as to let you choose how to route the wires. You want to plug them in so that the same color wire that goes into DE-9 Pin 1 on one end also goes into DE-9 Pin 1 on the other end, and so on. There isn't any standard for RS-232 wiring of the modular-8 connector.

You don't have to run 9 wires. As previously stated, 2 of them aren't even used with Slink-e. And since Slink-e always asserts DSR and CD, you don't have to run those -- just make DTR on the computer end loop back to DSR and CD -- i.e. connect DE-9 pins 1, 4, and 6 together in the connector at the computer end. That gets you down to 5 wires, which is what a typical CAT-5 cable has.

Nirvis' Slink-e manual says Macintoshes have an RS-422 interface with a DIN-8 connector instead of an RS-232 connector, and that you can simply attach a DIN-8 connector to an otherwise RS-232 cable and attach it to Slink-e. That all sounds suspicious to me. I don't know why Macintosh would have RS-422, and I don't think you can convert RS-422 to RS-232 just by changing the connector.

RS-232 Character Encoding

The Slink-e uses 8 bit characters with no parity and one start and one stop bit, i.e. "8N1".

The Slink-e uses asynchronous framing (the only kind you've probably ever seen on a serial line) at 2400, 4800, 9600, 19200, or 38400 baud.

There is a baud rate that is defined to be in effect when the Slink-e powers up (see Startup Defaults), and you change it after that (and change the startup default) via the programming interface. Since the programming interface uses the serial port, this means you must be able to talk to the Slink-e at whatever its startup baud rate is, or you can't use the Slink-e at all. A common strategy is, rather than rely on knowing what the startup baud rate (or current baud rate) is, to hunt for it by sending commands at each of the possible baud rates until one works.

The programming interface includes a command to set the baud rate and a fanciful one to query the baud rate (fanciful because if you didn't already know the baud rate, you couldn't send the command!).

The Slink-e often drives the serial line synchronously with real time events. That's a scientific way of saying that it sends data on the serial line as it receives it from another port, and vice versa. That means if the DTE is not capable of keeping up with the speed imposed by that other port, you will have trouble. Big hardware buffers inside the DTE (i.e. inside the computer's serial port) help.

Serial Line Protocol

The protocol spoken on the serial port (above RS-232) is the programming interface.