Sky Gnome - Digibox RS232 feedback protocol documentation

Intro

Sky released the 'gnome' in September 2005. There's lots of information about it on the main sky gnome website, but you'll need java installed to view it.

The most interesting thing about the Gnome was that when Sky released it, they enabled RS232 output on the Sky boxes. This gives various information about the current state of the Sky box, which is incredibly useful to anyone trying to integrate a Sky box into a home automation system, data center, and so on.

What is the gnome?

Essentially, it's a wireless box with: It comes with 2 x 9V PSUs, and a 'datalink' unit to attach to the sky box.

The two units communicate using 433MHz for data, and choice of a few 2.4 GHz channels for the audio.

The datalink unit connects to the sky box using:

The RF2 protocol seems to be just using the standard IR protocol, as already documented.

The RS-232 protocol

Please note: The gnome only receives data from the sky box via RS 232. It does not send any data back to the sky box. You cannot control your sky box using the RS232 port. If you want to control your sky box from a PC, get hold of one of our controllers.

Example packet

Here's what the sky box sends when you press the '1' key on your sky remote control:
Hex bytes                                          ASCII representation
0a 30 31 35 43 45 30 30 30 31 30 31 2d 2d 61 34    .015CE000101--a4
The baud rate is 57600, 8N1 (8 data bits, no parity, one stop bit).

Decoding the packet

DataMeaning
0a (ASCII 'LF')Start of packet
015Packet length, excluding the LF but including this field.
CE00Packet type - ie. entering a channel number in this case (see below for other packet types)
010Length of this part of the packet (the "CE000101--a4") - packets can contain multiple data types, although this one only contains one.
1--The payload for this part of the packet - in this case the channel number entered so far.
a4Checksum (for the whole packet, including the LF, but excluding the checksum). It's simply the bytes added together.

Packet types

The full list of packet types I've seen is:
DataMeaning
SSCNCurrent Channel number
SSCACurrent Channel name
SSDTCurrent time
SST0Start time of current program
SSN0Current program name
Appears to have some special characters:
  • 0x09 prefix: appears to indicate a potentially inaccurate program name directly after changing channel.
  • 0x86 ... 0x87: these codes appear to surround a program name, indicate the important section - eg. it excludes 'The' or 'A'.
SSE0Current program description
CE00Entering channel
CEEREnter channel error (eg. invalid channel number)
SYICEither -- ('normal') or 8080 (tuned to pin protected channel)
SYFS0 = Okay, 1 = Audio unavailable
SYD1System display - a message to be display on gnome screen
PUSPError - eg. no satellite signal recieved
PUCPError - eg. enter pin number or "audio unavailable (not subscribed)"
SYST0 = sky box powered on, 1 = powered off
SYIA0 = leaving interactive mode, 1 = entered interactive mode (ie. when you press the 'red' key on remote)
SSEISky+ operations (eg. 'Pause', 'Rewind', 'Fast Forward', 'Playback')

When packets are sent

The packets are sent whenever a relevant change on the box occurs, no matter whether the change was requested by the gnome or not.

As well as that, every 60 seconds the sky box sends out a packet - this is how the 'clock' on the gnome is updated!

The packet contains:

Example of the data sent every 60 seconds

00000000  0a 32 33 32 53 53 43 4e  30 31 30 32 37 30 53 53  |.232SSCN010270SS|
00000010  43 41 30 30 39 46 58 53  53 44 54 30 32 36 20 32  |CA009FXSSDT026 2|
00000020  2e 30 36 70 6d 20 53 61  74 20 31 32 20 4e 6f 76  |.06pm Sat 12 Nov|
00000030  20 53 53 54 30 30 31 33  32 2e 30 30 70 6d 53 53  | SST00132.00pmSS|
00000040  4e 30 30 31 32 86 4a 41  47 87 53 53 45 30 31 35  |N0012.JAG.SSE015|
00000050  37 41 64 6d 69 72 61 6c  20 43 68 65 67 77 69 64  |7Admiral Chegwid|
00000060  64 65 6e 20 61 6e 64 20  43 6c 61 79 74 6f 6e 20  |den and Clayton |
00000070  57 65 62 62 20 6d 61 6b  65 20 61 6e 20 75 6e 6c  |Webb make an unl|
00000080  69 6b 65 6c 79 20 74 65  61 6d 20 77 68 65 6e 20  |ikely team when |
00000090  74 68 65 79 20 6a 6f 69  6e 20 66 6f 72 63 65 73  |they join forces|
000000a0  20 74 6f 20 73 61 76 65  20 61 20 43 49 41 20 61  | to save a CIA a|
000000b0  67 65 6e 74 20 66 72 6f  6d 20 49 74 61 6c 69 61  |gent from Italia|
000000c0  6e 20 74 65 72 72 6f 72  69 73 74 73 2e 20 53 74  |n terrorists. St|
000000d0  61 72 72 69 6e 67 3a 20  43 61 74 68 65 72 69 6e  |arring: Catherin|
000000e0  65 20 42 65 6c 6c 2e 62  33                       |e Bell.b3|
Splitting this up, the various sub-packets are:
Type Len Data
==== === ====
SSCN 010 270
SSCA 009 FX
SSDT 026 2.06pm Sat 12 Nov
SST0 013 2.00pm
SSN0 012 JAG
SSE0 157 Admiral Chegwidden and Clayton Webb make an unlikely team when they join forces to save a CIA agent from Italian terrorists. Starring: Catherine Bell.
or fully decoded:
Data typeValue
Channel number270
Channel nameFX
Current time2.06pm Sat 12 Nov
Start of program2.00pm
Program nameJAG
Program descriptionAdmiral Chegwidden and Clayton Webb make an unlikely team when they join forces to save a CIA agent from Italian terrorists. Starring: Catherine Bell.

Other data on the port

Note that you will occasionally see other data on the serial port, mostly during bootup and when entering/exitting interactive mode.

This could just be debug code left in the software, and are easily ignored if you just ensure your parser is robust.

Existing software that uses this data

I thought other people might find it useful to see other solutions people have produced that use this data.

If you know of any others, drop me an email and I'll be more than happy to add them to this list.

And finally...

If anyone spots an error or has any additions to the above please drop me an email!

If you use the above information, I'd appreciate if you'd provide a credit and a link to this site. I'd also be interested to hear of any uses anyone puts the above information too.

Credits

Thanks to the following who have spotted errors or provided extra information for this page:
Joseph Heenan, joseph@heenan.me.uk
The above information is Copyright (C) Joseph Heenan 2005-2013. Feel free to use it and to link to it, but please ask for permission before reproducing it.