I believe Sky originally supported using the Sky HD remote with the Sky Q box but disabled it in a firmware update. Using any of the Ken Shirriff based arduino IR libraries we can easily create a circuit to map the Sky HD remote to the Sky Q commands.
The code is below and commented quite well but if there is any questions please ask.
[code]
/*
Sky HD to Sky Q mapper
Allows use of Sky HD remote with the Sky Q
Chet Kelly
www.chet.ie
*/
#include <IRremote.h>
//base value of all Sky HD codes
#define SKYHDBASE 0xC05C00
//base value of all Sky Q codes
#define SKYQBASE 0xC0081A00
byte buttonVal;
long sendButton;
/*
* Default is Arduino pin D11.
* You can change this to another available Arduino Pin.
* Your IR receiver should be connected to the pin defined here
*/
int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
IRsend irsend;
decode_results results;
void setup()
{
irrecv.enableIRIn(); // Start the receiver
}
void process(decode_results *results) {
//We are only interested in Sky HD codes which are all 24 bit RC6
if (results->decode_type == RC6 && results->bits == 24) {
//assign 24 bit value to 8 bit variable to take least significant byte
buttonVal = results->value;
//check if its likely to be a valid Sky HD code by comparing the base
/*
check if its likely to be a valid Sky HD code by comparing the base e.g.
received = 0xC05C5C
assigned to buttonVal = 0x5C
0xC05C5C – 0x5C = 0xC05C00 = Sky HD base
*/
if(results->value – buttonVal == SKYHDBASE){
//Sky HD least significant byte matches corresponding button on Sky Q
sendButton = SKYQBASE + buttonVal;
//send IR
irsend.sendRC6(sendButton, 32);
//we need to re-enable receiving after sending
irrecv.enableIRIn();
}
}
}
void loop() {
if (irrecv.decode(&results)) {
process(&results);
irrecv.resume();
}
}
[/code]
Here’s a table of the IR remote codes for a Sky Q satellite box which may be of use. All codes are 32 bit RC6.
Note: The remote sends the power command four times.
Button | HEX |
Sky | C0081A80 |
Power | C0081A0C |
Search | C0081A7E |
Rewind | C0081A3D |
Play/Pause | C0081A3E |
Forward | C0081A28 |
Up | C0081A58 |
Down | C0081A59 |
Left | C0081A5A |
Right | C0081A5B |
Select | C0081A5C |
Back/Return | C0081A83 |
Home | C0081ACC |
… | C0081AF5 |
I (information) | C0081ACB |
Channel UP | C0081A20 |
Channel DOWN | C0081A21 |
Record | C0081A40 |
RED | C0081A6D |
GREEN | C0081A6E |
YELLOW | C0081A6F |
BLUE | C0081A70 |
1 | C0081A01 |
2 | C0081A02 |
3 | C0081A03 |
4 | C0081A04 |
5 | C0081A05 |
6 | C0081A06 |
7 | C0081A07 |
8 | C0081A08 |
9 | C0081A09 |
0 | C0081A00 |
HELP | C0081A81 |