Hardware-HOWTO -------------- This attempts to describe how to build a Sony S-Link parallel port interface. It is based on Mike Muise's (mike.muise@digital.com) code and hardware design (c)1998 released under the GPL. A big initial thank you to Mike for using a free software license that allowed others to reuse his code and design. Additionally, the 2.2 version of the kernel driver is based on short.c from _Linux_Device_Drivers_ by Alessandro Rubini published by O'Reilly and Associates. ISBN 1-56592-292-1. A great reference for writing kernel device drivers, as you could guess from the title. As mentioned in the GPL -- this information is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY. You are resposible for your own hardware. I can not build the adapters for you nor be held liable if you break something trying to build your own. Damn lawyers make me say this. Control-A1 hardware interface: ------------------------------ The driver expects to have the bus tied to the interrupt pin, and the collector of a 2N2222 small-signal transistor, whose base is connected to DATA0 (LSB of the data port), and whose emitter is grounded. Resistors may be placed in appropriate places, if current- limiting is a concern. This should not be a problem. The bus ground line should of course be grounded along with the emitter. I need to draw an ASCII schematic to better explain this. Control-S hardware interface: ----------------------------- Directly tie the output to DATA1 and ground. This may be dangerous and destroy your parallel port, but they are cheap. T Control-A1 protocol: -------------------- Incoming bits trigger an interrupt which is time stamped in the interrupt handler. These are decoded every time the timer tick runs, which depends on the system. The incoming waveforms look like this: ___-----___ ^ ^ 1500 ms = ZERO ___--------___ ^ ^ 2000 ms = ONE A start of packet is signaled by a minimum of 2400 ms of high, followed by a 600 ms low. The end of packet is a minimum of 4200 ms low. Control-S protocol: ------------------ Documentation on the Control-S protocol was found at: http://www.armory.com/~spcecdt/remote/control-S which describes the IR over wire protocol. It is a rather bad design; no status queries, no feedback and no commands oriented formats. Generally no high quality automation is possible. The start bit is high for 2400 ms and low for 400 ms. A ONE is high for 1200 ms, low for 600 ms. A ZERO is high for 800 ms, low for 600 ms. We only support the twenty bit codes used by the DVD players, which have a fixed length of 45000 ms, so the port needs to be held low for a variable amount of time.