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.
|Provided by||Notes||Download link|
|Red-Eye Serial interface and command
|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
|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
|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
|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)
required VB runtime & mscomm32 - install reddemfull.zip above if you don't have this
|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!
|Linux driver||Linux||Michael Thomson||Rewritten to compile with Fedora Core 4 (gcc 4.x and kernel 2.6.x).
|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
redeye2 -port=<portname> "string to send"
redeye2 -port=COM1 "123o"
|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.
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
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"
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) :
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).