Instructables

RemoteJack: Arduino awaits in ambush to thwart unwanted TV channel changes

Picture of RemoteJack: Arduino awaits in ambush to thwart unwanted TV channel changes
RemoteJack-Circuit.jpg
WARNING: An Instructables bug keeps removing the name of the IRremote.h library surrounded by <> following the #include statement in my RemoteJack code at the bottom of the guide. Please remember to put it back before you compile and upload to Arduino. 

INTRODUCTION

For those of you who are still struggling with powerful siblings over TV channel selections, I give you the RemoteJack.

This Arduino contraption sits somewhere in between the TV and the holder of the remote control. While inactive, you can change channels all  you want. But once you activate RemoteJack, it just waits in ambush for any remote control signal. Once it intercepts one, it will sends a random remote control code (which you select) to the TV, cable box, satellite receiver, etc that's guaranteed to drive those who unjustly changed the channel mad.



CREDIT

The RemoteJack project is based on Ken Shirriff's IR remote library


PARTS
  • Arduino Uno
  • 38KHz IR receiver (3-pin)
  • IR transmitter LED
  • 100 Ohms resistor
  • Breadboard
  • Jumper wires

PROCEDURE
  1. Build the RemoteJack circuit
  2. Decode your remote buttons: Upload to your Arduino the IRrecvDump.ino  then capture the remote button codes you wish to use with the RemoteJack. This is the remote button code that RemoteJack will transmit at random whenever RemoteJack detects any incoming remote signal, such as a channel change.  For example, you can choose your remote's on/off button or the channel increment/decrement button as the button code you want RemoteJack to transmit at random.  You decide what command the RemoteJack should send to your TV or device. With the IRrecvDump.ino loade into your Arduino, open the Arduino serial monitor and point the remote at the RemoteJack IR receiver. Click any remote control button of choice to display its code in the serial monitor window in HEX. Save the codes for the buttons you wish to use in the RemoteJack. Also, this sketch will tell you which remote vendor-specific library method  to use. My remote controls were detected by the sketch as NEC remotes. There is an IR send and receive method in the IR remote library for various manufacturers such as Sony, NEC, etc. You have to use the method/function that matches your remote. Out of the box, Ken's IR remote library supports NEC, SONY , RC5, RC6 remote control standards and can also decode/transmit many non-standard remote control codes.
  3. Type the remote button code(s) you selected from above step in my RemoteJack.ino sketch (below) then upload the sketch to the Arduino.
  4. With the RemoteJack located somewhere between  the TV and the remote control path, give it a shot. Press any button on the remote and watch the TV (or any target device) behave erratically. Make sure the tip of the IR LED is pointing in the direction of the TV receiver. This is important for good IR transmission.

Remember this is just for fun so please don't go too far. Do this at your own risk.

----------------------------------------------------------------------------

/*
  RemoteJack: Intercepts any remote control signal then adds to it
  preselected remote button codes in random numbers simulating random
  remote button clicks. You need to replace my remote button code and method with yours.
  Remixed by: Hazim Bitar (techbitar)
  Contact: techbitar at gmail dot com
  LICENSE: IRremote library copyright by Ken Shirriff http://arcfn.com
  Everything else is in the public domain.
*/

#include   

int STATUS_PIN = 13;
int BUTTON_PIN = 12;
int RECV_PIN = 11;


IRrecv irrecv(RECV_PIN);
IRsend irsend;

decode_results results;

void setup()
{
  Serial.begin(9600);
  irrecv.enableIRIn(); // Start the receiver
  pinMode(BUTTON_PIN, INPUT);
  pinMode(STATUS_PIN, OUTPUT); 
  randomSeed(analogRead(0)); 
}

void loop() {
  if (irrecv.decode(&results)) {
    digitalWrite(STATUS_PIN, HIGH);
    Serial.println(results.value, HEX);
    for (int i = 0; i < random(3,10) ; i++) {
// Change the method below and its two parameters based on the output of the
IRrecvDump.ino sketch.
       irsend.sendNEC(0x80BF4BB4, 32);

    // sendNEC(unsigned long data, int nbits)
    // sendSony(unsigned long data, int nbits)
    // sendRC5(unsigned long data, int nbits)
    // sendRC6(unsigned long data, int nbits)
       delay(100);
    }   
    digitalWrite(STATUS_PIN, LOW);
    irrecv.enableIRIn();
    irrecv.resume();
  } 
}

djsfantasi7 months ago
How about having it remember the code to return to the last channel being watched? That way, any attempt to change the channel will automatically go back to what you were watching?
marios85437 months ago
dude not working
At IRrecvDump.ino i get a variable or field dump declared as void.
At the code i get an IRrecv does not name a type.
abibi111 months ago
Got a question!

How come the signal from the remote doesn't reach directly to the TV?
What I'm trying to say, is that the whole idea is solid, but how can the jack interrupt the whole signal from the remote without anything of the IR signal leaking to the TV?

When you press a button, not all the signal is caputred and resent by the jacker, some of it reach the TV! Why that doesn't happen in your case?
now make it change inputs to a channel saying TOUGH LUCK and then change it back
pabhilash1 year ago
Hi! great I'ble! i have a doubt,and TBH, I'm very new to this. i uploaded "IRrecvDump" to the board, and i got the codes i needed(mine is an RC5 remote). so, what part of your program should i change now so that it works with my remote?
WWC1 year ago
Nice idea.

You make some nice quality ibles. Is that a picture you have taken yourself of the Arduino w/ protoshield? Also what do you use to put the red arrows and the black lettering in the picture?

Thanks
W
techbitar (author)  WWC1 year ago
Thanks WWC. I have a Canon video camera with still photo capabilities and a flash. I use Photoshop for the arrows and text.
WWC techbitar1 year ago
Thanks

W
zomfibame1 year ago
Cool idea
techbitar (author)  zomfibame1 year ago
Glad you like it.