Home

How To Add Line 23 Widescreen Switching (WSS) to Sky+

What is Line 23 WSS?
What Have Sky Said About Line 23 WSS?
Can I Add Line 23 WSS to my Sky+ Box?
Conexant Bt861 Video DAC
Arizona Microchip PIC16F876
Mod Circuit Diagram
Program Code

Connecting the Mod

Final Testing
FAQ
Acknowledgements

Copyright and How to Thank Me!
Revision History

What is Line 23 WSS?

Widescreen switching automatically controls the aspect ratio of your widescreen TV when an anamorphic 16:9 picture is being displayed. All Sky Digital Satellite Receivers output a signal on SCART pin 8 to control the TV's aspect ratio:
+12v indicates a normal 4:3 picture
+5v indicates an anamorphic 16:9 widescreen picture

This is fine if you connect your Sky box to your TV via SCART, however there are various reasons why this may not be the case:

  1. You connect your DVD to your TV via the only RGB enabled SCART socket on your TV. You then use the S-Video output from your Sky+ box to connect to the S-Video input of your TV.
  2. You connect all your AV equipment to your TV via an AV Amp using S-Video. Usually because you have far too many bits of kit, and not enough inputs on your TV to cope!
  3. You pipe the output from your Sky+ around your house (either with direct cables or via a video-sender) using the RF output, Composite or S-Video outputs.
  4. You regularly archive programs to VHS tape from your Sky+ box.

Because RF, Composite and S-Video connectors do not have a dedicated pin to indicate a WS signal, they use a standard called PAL WSS instead. This involves encoding a special digital signal onto line 23 of the video signal, in much the same way as analogue Teletext. You can find exact details of the format of line 23 in this Intersil Application Note.

The good news is that your Sky+ box contains a video chip which is capable of automatically generating this signal and inserting it into all of the above video outputs from your Sky+ box. The bad news is that Sky haven't got round to programming their software to instruct the chip correctly! Unfortunately this means no WSS output on line 23 with Sky+.

Update: As of EPG 5 Sky have finally got round to programming the line-23 output on the Sky+ boxes themselves! This also means that CGMS-A is now being placed on line-23 for shows that require it. Another added advantage to this software upgrade (and one that my mod provided too) is that WSS now works correctly on TVs connected via a magic eye and RF2.

Well done Sky - Only about 6 years late, but better late than never!

Sadly I have now removed my much loved, but now somewhat redundant, line-23 mod from my Sky+ box. It has served me failthfully without a glitch since I built it, but is sadly now surplus to requirements. :(

What Have Sky Said About Line 23 WSS?

Sky do not seem to be interested in implementing line 23. Here is what they had to say to digitalspy back in February 2002:

S-Video Widescreen Switching – this is something that Sky are looking into. It isn’t because they didn’t specify it - they just didn’t realise it could be done and that there was a standard which could be followed.

And here again in March 2003:

Widescreen switching? There are no current plans to change the way this works – via pin 8. As the folk at Sky understand it there is no S-Video offset voltage standard – the Royal Television Society have a working committee trying to standardise this and if they do then there may well be a future version of the hardware that supported this on the S-Video connection (though this will be a hardware modification and so not available on current boxes). Finally they tell me that line 23 is part of the broadcast area so the Digibox does not and will not insert anything into this area – it is something that the broadcaster could do if they wanted to send this information. This is different to the DTT system where the widescreen flag is in the AFD header of the MPEG data stream and that that is then inserted into the output.
But finally in late 2008 we began to see a minor enhancement in EPG5 deliver line-23 to all Sky+ boxes. Presumably a similar modification might just follow for the standard Sky boxes if they are capable of it.

.Can I Add Line 23 WSS to my Sky+ Box?

If you have a Version 1 Pace Sky+ box, then the simple answer is yes! You will need the skills and tools to construct a simple circuit on strip-board and program a PIC micro-controller from your PC. You will also need the nerve to open up your Sky+ box and fit the modification. In doing so you will void any remaining warranty and also risk damaging your box, possibly beyond repair.

While I have successfully performed this modification on my own Sky+ box, I will accept no responsibility for any damage you cause to yours, either as a result of errors in these instructions or your inability to follow them.

Unfortunately, at this time, no known mod is available for Version 2 Sky+ boxes from either Pace or Amstrad. This is because these boxes use a different chip set and do not have the Conexant Video DAC. If I find or hear of a solution for Version 2 boxes (please don't hold your breath) I will post details here.

Conexant Bt861 Video DAC

This chip is the component of your Sky+ box responsible for transforming a digital data stream into analogue data for output to the boxes various video ports. It is also capable (amongst other things) of adding Teletext data, line 23 WSS and Macrovision copy protection to the outgoing video stream.

The datasheet can be downloaded from the Conexant web site.

The chip's operating mode is controlled via a simple 2 wire serial bus called the I2C bus.

The I2C Bus Specification was developed by Philips, and is now used as the standard way of implementing the microchip control bus in many different types of consumer electronic products.

The bus can be accessed via the following pins on the Bt861:
77 - GND (Signal Ground)
76 - SIC (Serial Interface Clock)
75 - SID (Serial Interface Data)

Each device on an I2C bus is addressed via a unique 8-bit address. In the case of the Bt861 this address is 0x88 for data writes and 0x89 for data reads. By writing to sub address locations (or registers) 0x4A, 0x4B and 0x4C we can program the chip to insert WSS information onto line 23 of the outgoing video signals.

The Bt861 is a surface mount, 80-pin MQFP package with pin spacing (pitch) of 0.65mm. Unless you are very experienced at soldering onto surface mount components I would advise investing in an Agilent Technologies HP test probe part number E2615A/B. These are available in pairs from RS Components UK. The RS part number is 377-3644.

Unfortunately, with VAT post and packing, just two of these probes will set you back a total of £72 or £36 each! However I'd view this as a wise investment, especially considering the likely expense, hassle and not to mention embarrassment factor of having to have your Sky+ box repaired/replaced if you damage it.

Also, since completing my mod in January 2003, I notice that RS have now discontinued this particular probe clip. If I find another source then I'll publish it here.

Alternatively, another Sky+ user (Richard G) has now also modified his box, and he provides some alternate solder points for these signals that are easier to access. Thanks Richard!

Again the same proviso applies that neither Richard nor myself came be held responsible for any damage, however caused.

Arizona Microchip PIC16F876

This is the micro-controller we will use to make the modification. It has a built in I2C interface that we will use to interface directly to the Bt861. There are probably other (less complex) micro-controllers that are equally suited to this mod. However I chose the PIC16F876 because it is readily available from Maplins, and development tools and programmers for the Microchip range are easily and cheaply available.

The datasheet can be downloaded from the Arizona Microchip web site.

As well as connecting to the Bt681 the micro-controller will also take input from pin 8 of the Sky+ TV SCART socket. Again the PIC16F876 is well suited because it has a built in analogue to digital converter for sampling the 5v or 12v input.

Mod Circuit Diagram

(Click image for a larger view)

Pin connections:

Pin

Signal

Connection

1

MCLR/Vpp

To ICSP* and pull up to +5v via ICSP voltage blocking diode*

2

RA0/AN0

Output of 10K pot between ground and SCART pin 8

8

Vss

0v

9

OSC1/CLKIN

To pin of 4MHz crystal, then on to ground via 33uF capacitor

10

OSC2/CLKOUT

To pin of 4MHz crystal, then on to ground via 33uF capacitor

14

RC3/SCK/SCL

To pin 76 of Bt861

15

RC4/SDI/SDA

To Pin 75 of Bt861

17

RC6*

To LED1* and then ground via current limiting resistor (WS 16:9 led)

18

RC7*

To LED2* and then ground via current limiting resistor (Norm 4:3 led)

19

Vss

0v

20

Vdd

+5v

27

RB6/PGC*

To ICSP* connector program clock

28

RB7/PGD*

To ICSP* connector program data

* Optional components for ICSP (In-Circuit Serial Programmer) and display LED's

Program Code

The program code was all developed using Microchips MPLAB IDE. Some of the source code, especially that part for correctly controlling the I2C hardware, was borrowed from Microchips application note Using the PICmicro® MSSP Module for Master I2C Communications. Thanks Microchip!

The full source and object code (HEX file for flashing directly into the PIC) can be downloaded here. In order to flash you PIC you will need a PIC programmer. This project was the first time I've programmed a micro-controller, and I purchased the Elvis multi-programmer. This may well not have been the best choice, as it requires you to build an ICSP (In-Circuit Serial Programmer) cable as the IC socket on the device is not large enough to hold the PIC16F876. Also the software supplied with my programmer didn't appear to support programming of this device natively, even though it claims to on the web site. If anyone is more experienced with PIC programmers perhaps they could recommend an inexpensive and simple to use programmer for use with this project.

During the course of his mod Richard has noticed a mistake in my PIC code. For a 4:3 signal it is incorrectly writing an illegal value to the line-23 register of 0x40, this should be 0x48. In my case this doesn't matter as my TV defaults to 4:3 mode if an invalid WSS signal is received. For Richard however the result was that his TV's switched to 16:9 but would not switch back again to 4:3! I will update the PIC code and source shortly.

Connecting the Mod

All directions are given looking down onto the Sky+ motherboard from the front of the box.

Disconnect your Sky+ box from the mains and remove the three security screws at the rear. You will need a security bit set available from either ScrewFix or Maplins

Locate the 5v voltage regulator in the bottom right corner of the motherboard next to the red and black plug connector for the internal cooling fan.

Connect the 0v fly lead to the ground pin of the capacitor located just below the voltage regulator (rear capacitor lead looking from front of box). Alternatively Richard suggests using one of the nearby-grounded main board screws as a suitable earth point.

Connect the 5v fly lead to the 5v regulated output from the voltage regulator (left-hand pin looking from front of box). Test with a multi-meter if you are not sure.

And here are Richard's alternate, hard-wired connections.

NB: Both of these pictures are taken from REAR of Sky+ box.

Tip: When you power up your Sky+ box for the first time with the mod attached check the current you are drawing from the +5v supply of the voltage regulator. If current is excessive (greater than a few mA) disconnect immediately!

Locate the Conexant Bt861 Video DAC IC located to the rear of the motherboard just below the SCART connectors.

Connect the I2C fly lead to pins 75, 76 and 77 of the Bt861 using the HP test probe. These pins are located on the left-hand side of the chip, and are the 4th, 5th and 6th pins up from the bottom (looking from front of box). Tip: Use a magnifying glass!

With the test probe connected the three exposed 0.1 inch spaced pins of the probe are connected:
Bottom Pin = IC Pin 77 - GND (Signal Ground)
Middle Pin = IC Pin 76 - SIC (Serial Interface Clock)
Top Pin = IC Pin 75 - SID (Serial Interface Data)

Tip: You can test that you have connected to the correct pins by testing the voltage at each. Note that the Bt861 is a 3.3v component, and that the I2C bus is also 3.3v. This means that pins 75 and 76 are pulled up to the 3.3v supply by resistors on the main board when the bus is idle (normal state).

Alternatively Richard provides the following access points on the nearby multiplexers which are easier to solder:
Pin 1 of IC next to Q1801 = SIC (Serial Interface Clock) = Bt861 Pin 76
Pin 1 of IC next to Q1802 = SID (Serial Interface Data) = Bt861 Pin 75

Note that it is not necessary to connect the Signal Ground pin when using either method as the 0v is common with the mod power supply. The only advantage to the signal ground is that, if you use shielded cable, it protects the I2C clock and data lines from any interference as they run across the board.

Find somewhere inside your Sky+ box to locate your mod circuit board. I found the space at the front, right-hand side of the box very useful. I mounted the board on some mounting posts and stuck them to the bottom of the Sky+ box using some sticky pads cut to size.

And here's a picture of Richard's completed mod.

Route the wires neatly over the main Sky+ circuit board. You may find that taping the I2C signal cable to the rear of the Sky+ box (as I have done) will help keep stresses on the test probe connector to a minimum. This is important, as we don't want our expensive probe to break or come lose!


Lastly route the WSS input signal wire out of the back of the box and connect into the TV SCART plug pin 8 (4th pin along from the right on the top row, looking into the connector). I've done this simply by solder tinning the end of the wire and pushing it into the plug! A little Heath-Robinson I agree, but I find a proper SCART plug gets in the way of the RCA audio out jacks I use on my system. Alternatively, if you still use the TV SCART connector output, you may need to make up a special cable that still allows you to expose the SCART pin 8 WSS signal.

I chose to make the connection externally mainly because I couldn't find a hook point for the SCART WSS output on the main board. However it also means no physical damage to the inside of your Sky+ box and means the mod is completely reversible. If you prefer you could attempt to remove the shielded cover to the SCART connectors inside the box and connect the cable there instead, or as Richard says it is relatively easy to access the SCART solder pin on the underside of the main board:

Richard also provides the following directions for partially removing the board to gain access to the SCART area:

  1. Remove all rear screws (excluding the fan as it is easier to just unplug the fan fly lead)
  2. Remove the nuts around the two tuners (where the SAT cable plugs in) and the two screws on the RS232 connector
  3. Slide the rear panel off horizontally to the rear - There are three tabs which hold it in place, one to each side and one in the middle at the bottom
  4. Remove screws securing motherboard to base of Sky+ box
  5. It is now possible to lift the board from the back (slide board back slightly as you do this) and gain access to the underside of the SCART connector
  6. Replace everything in the reverse order and ensure that none of the ribbon cables have come loose
  7. Be particularly careful that the hard drive cable has not come lose or been damaged - Any problems here and your Sky+ functionality will be disabled until the cable fault is rectified

Final Testing

Once you have completed all the connections test the mod with the lid off!

Ensure that the mod is drawing no more than a few milliamps from the +5V line.

Adjust the pot dividing down the SCART pin 8 input so that the correct voltage is applied on the input to the PIC A/D converter. A +5v input signal should divide down to a 1.25v signal at pin 2 of the PIC and a +12v input should divide down to a 3.00v signal. Take care that you do not allow the input to the PIC to rise above +5v when connected to a +12v input signal! A LED connected to PC6 of the PIC will flash periodically when a valid WS voltage (around +5v) is detected. The flash happens each time that the Bt861 registers are updated. Similarly a LED connected to PC7 will flash for valid 4:3 voltage (around +12v).

Richard helped by pointing out the following additional information during his mod set-up. These are details that I originally neglected to include:

On start-up the software flashes the LED on PC6 once followed by another single flash of the LED on PC7. This is to show that the code in the PIC is up and running and that the PIC is being clocked correctly. Each flash should last for approximately 0.5 seconds with around 1.5 second pauses between each flash.

After this, with less than 3v on the A/D input, BOTH LED's should be lit continuously.

If the A/D input rises above 3v, both LED's will go OFF and the software will attempt to access the I2C bus and write to the Bt861. However if no valid I2C bus is present (I2C pins are left floating), the software will hang waiting for a bus idle state. Therefore both LED's will remain OFF.

Note you can use the LED switching functionality above to calibrate the A/D converter by applying a 3v input signal and then adjusting the pot up (slowly) until both LED's go off.

When the I2C bus is connected correctly the PC6 LED will flash once for WS and the PC7 LED will flash once for a correct 4:3 write to the Bt861 as previously stated.

However, if an error occurred writing to the I2C bus, the PC6 LED stays on while the PC7 LED flashes. There will be two groups of flashes of the PC7 LED - A single flash in the first group indicates a bus acknowledge error and a double flash indicates a bus collision error. The second group of flashes indicates the point in the I2C interrupt service routine where the error occurred.

Finally replace the lid of your Sky+ box, reconnect and enjoy full Wide Screen Switching!

FAQ

So far only two people have been brave (read stupid?) enough to try this mod so any FAQ's have been incorporated into this document.

In the meantime you might want to check out this thread on the DigitalSpy web site where you can ask me a question directly, or you could mail me. Please not this mail address has been deliberately obfuscated so it can't be trawled by the Spam Bots - you will need to edit it slightly before sending any mail, just replace the <at> and <dot> parts with the appropriate characters.

Acknowledgements

Special thanks to Toria for use of her digital camera and to Chris for actually taking the pictures.
Thanks also to Watty on the (now defunct) Media UK forums for useful help and advice.
Very brave thanks to Richard, so far the only other Sky+ abuser to get in touch and actually make the mod! Richard has provided some valuable input and also pictures of his mod and I2C connections.

Copyright and How to Thank Me!

This page, the PIC micro-controller software and mod design, copyright Stuart McConnachie 2003, 2004.
If you are building this project for your own, non-commercial use, then you are free to use the information I have provided here free of charge. However, you might like to show your appreciation by buying me a beer or two via PayPal. Cheers!

In the very unlikely event you are a commercial company, or are seeking to use the information provided on this page in a commercial product, then I expect to be paid handsomely for all my hard work and effort. If you think this is the case please contact me.

Revision History

27 October 2006
Added links and quotes of Sky's responses to Line 23 WSS from digitalspy

28 February 2006
Imported original page into IBM WebSphere Homepage Builder

23 March 2004
Included details of Richard's successful mod and I2C solder points
Updated broken links

Sometime in 2003
Original Version

Home

Line