Red-Eye Serial

Serial remote control interface for Pace® Digital Cable Receivers.

Home FAQs Downloads, Drivers etc. Purchase info Red-Eye IR translator

    Downloads etc.

Contributions welcome. Any queries regarding these drivers should be directed to their author, although feedback issues like compatibility (e.g. with USB-Serial adapters, other hardware platforms) from users of these drivers is most welcome. Source code examples are also very welcome.
If you are planning to write a driver for a specific application, please let me know, to avoid unnecessary duplication of effort if someone else is already writing one for that application.

Application Hardware/ Software
Platform
Provided by Notes Download link
Red-Eye Serial interface and command specification
Updated 19/9/05
Any Mike Harrison Documents the hardware interface and serial commands etc. for those writing drivers or driving Red-Eye Serial from their own software.
serialspec_e.pdf (335K) (For firmware rev. E)

old version - serialspec.pdf (for firmware rev (A..D)

Demonstration Windows application

Updated 19/9/05

Win95 onwards (tested on W95,98 and 2000) Mike Harrison Simple demonstration control panel, allows single/multiple commands to be sent and IR mode configuration. Supports COM1..6
Reddemo.exe : executable only - use this if you already have VB support files and mscomm32 installed
Reddemfull.zip - full installation including all VB support files.
Reddemsrc.zip - Visual Basic 6 source files
reddemo.exe (23K)
Reddemfull.zip (1.4M)
Reddemsrc.zip (14K)
Snapstream/Beyond TV driver   Mick Wall Driver for Snapstream/Beyond TV
Snap35.zip - Driver for V3.4 and 3.5

Older versions for  V3.4 only :
snapdrv.zip - driver only
snapsrc.zip - driver and source code.

snap35.zip (92K)

 

snapdrv.zip (18K)
snapsrc.zip (1.3M)

Command-line driver Win95 onward Paul Pettit Command-line channel selector utility for use with Showshifter (and other packages that allow channel selection by calling an extarnal program).
Usage: redeye -ch=xxx [-com=y]
-ch=xxx xxx = channel number to send
-com=y y = com port (default=1)

redeye_cmd_bin.zip. Executable. required VB runtime & mscomm32 - install reddemfull.zip above if you don't have this already
redeye_cmd_src.zip VB6 source
redeye_c_bin.zip C version which doesn't require VB runtime
redeye_c_src.zip C source for above
Compiled with mingw as installed by the by the bloodshed dev-c++ ide

redeye_cmd_bin.zip (6K)
redeye_cmd_src.zip (9K)
redeye_c_bin.zip (6K)
redeye_c_src.zip (2K)
Simple Linux driver Linux Malcolm Smith Tar file with source and an i386 binary.
red_eye <device> <string to send> <wait time after send (secs)>
So use red_eye /dev/ttyS1 30 2
to select channel 30. Typically the device will be /dev/ttyS0 or S1 for the serial port on a PC.  The wait time afterwards is intended to leave the red_eye light on when the PVR is recording to indicate that it is in use!
red_eye.tgz
Linux driver Linux Michael Thomson Rewritten to compile with Fedora Core 4 (gcc 4.x and kernel 2.6.x).
red_eye_gcc4x_kernel26.tgz
Command-Line driver Any Win32 platform, tested on XP Dave Court Similar to Paul Pettit's command line driver, but allows any arbitary string to be sent.Usage is:
redeye2 -port=<portname> "string to send"
e.g.
redeye2 -port=COM1 "123o"
cmdline2.zip (27K)
Mediaportal     Supported from version 0.1.0.6 More info here  
Windows Media Center Edition MCE2005 (Probably works on 2004 but not tested) Terry Purchase Uses MCE's interface designed for external displays etc. to drive Red-Eye Serial. Originally written to overcome the problem with MCE controlling Samsung STBs due to the bug in MCE's RC5 remote implementation.
A 'Work in progress' as author stopped NTL subscription before finishing  - I would appreciate any feedback..! (Software will work without Red-Eye Serial hardware installed). Source included. 
mce_redeye.zip
   

Miscellaneous info :


Info from Kieron Wilkinson re USB/Serial converters under Linux :

Recently bought a "Manhattan" PL2303-HX USB to serial converter to use
on Linux: (cheapest one I could find, only 10 UKP!)

I did have a problem with it (it only changed channel once because of a bug in the HX-version of this hardware. However, there has recently been
a work around added to kernel 2.6.13 that completely solved my issue. Details here

Once I had done this, it worked perfectly! So I now have your Red Eye Serial working happy with MythTV with my upgrade to a no-serial-port
motherboard.


Driver developer guidelines - Please read this if you intend to write a driver for Red-Eye Serial

Driving Red-Eye Serial is generally very easy for those familiar with writing software to control RS232 ports, as it handles the critical timing of  the IR remote signals itself, and there is no receive data to deal with. Commands are sent as ASCII characters or short strings, with no handshaking. Please see the Serial command spec document for full details.
In brief, to set a channel number (e.g. from PVR software), all you need to do is :

On initialisation: open the COM port, set the baudrate to 9600 baud, set RTS high (this is to provide power).
To set the channel : Send ASCII string of channel number, e.g. "123"
.....that's it!

To ensure maximum compatibility, so drivers are useful to as many users as possible, it is strongly advised that you use only the standard operating system APIs or controls to access the serial port, as opposed to accessing the serial port hardware directly. This will ensure that your driver is likely to work with alternative configurations, for example via a USB to serial adapter or unusual serial cards having more than the normal number of ports.  As Red-Eye Serial handles the critical signal timing, the timing contstraints on the serial communications are minimal, and there should not normally be any reason to access the port hardware directly. Serial communication is one-way, so there is no need to handle receive data.
On PC based systems, your driver should at the very least support COM1 to COM4, to allow for systems with large numbers of serial ports, and USB to Serial adapters.  
Bear in mind that on some systems, COM1 may not be the first available port, e.g. plugging a USB-Serial adapter into a laptop with no internal COM ports may just provide COM3.


Visual Basic example code using the Mscomm32 control (written in VB5) :

Initialisation :

MSComm1.CommPort = portnumber    ' COM port number (1,2,3 for COM1,COM2,COM3 etc.)
MSComm1.Settings = "9600,N,8,1"  ' set baudrate
MSComm1.InputLen = 0              ' disable input
MSComm1.PortOpen = True          ' open port
MSComm1.DTREnable = True         ' Ensure high for power

To send a command, e.g. set channel 123 :

MSComm1.Output = "123"

Important : If initilising and sending a command immediately afterwards, A delay of at least 20 milliseconds must be inserted between setting RTS high and sending the first command. (This delay is much longer on early units with firmware rev. A - Firmware is indicated by a white-on-black letter on a label).