Introduction: Android Bluetooth Universal Foxtel IQ Remote Control One Phone to Rule Them All

I have built an Anrdroid phone controlled Bluetooth Remote control. It uses an Arduino Nano, a blue tooth module, an IR diode and 2 resistors. The firmware uses a modified IR library to include the foxtel IQ2. Different TV's etc could be controlled with software changes. The Android software was created in MIT's App Inventor. The foxtel IQ is difficult to control as it used 36Khz frequency and a toggle bit (which I had to find myself through trial and error).

Step 1: The Parts.

The parts required are a

  • Bluetooth module
  • Adruino Nano
  • Prototype board.
  • 2 x 108R resisters (3 for 2 way comms)
  • 940nm IR diode.
  • 3 x 15 way in line sockets

Parts and kits available from my Australian Ebay Store. See

Step 2: The Circuit

The circuit is fairly simple. The Bluetooth is connected to power and TX from the Bluetooth is connected to RX of the nano via a 180R resistor. The IR LED is connected to D3 and returns to ground via a 180R resistor.

Step 3: Required Tools

Tolls required are

  • Soldering iron
  • Rosin core solder
  • Paper Knife
  • Side Cutters

The paper knife is used to score the connector for breaking.

Step 4: Assembly

You need to solder the parts to the board. If you look carefully at the board I used it has a layout similar to solder less breadboard. Make sure you keep the sockets straight. To cut the socket score it with a paper knife at the next pin and snap by hand.

Step 5: Firmware Instalation

Important: Remove Bluetooth module before uploading sketch

Firstly you need to in stall the ssIRremote library. It is just the Arduino IRremote library which I have added support for the Foxtel IQ remote. Download the library and install it as a zip library or place the extracted folder into the Documents/Arduino/libraries folder.



* skIRremote: FoxtelIRsendDemo - demonstrates sending IR codes with IRsend * An IR LED in series with a resistor (180r) must be connected to Arduino PWM pin 3 and GND long led lead to +ve. * Version 0.1 July, 2017 * * */

#include char toggle; char rec_data[20]; char dataflag = 0; char rec_data_counter = 0; IRsend irsend;

void setup() { Serial.begin(9600); } byte a;

void loop() { unsigned char r; a = 0; toggle++; toggle = toggle &3; if(Serial.available()){ byte c =; //get a byte from //Serial.println(c);

if( c=='q'){ dataflag = 1; rec_data_counter =0; } if(dataflag == 1){ rec_data[rec_data_counter++] =c; }

if( c==','){ rec_data[rec_data_counter++] = 0; dataflag = 0; // Serial.println(rec_data); r = vert(&rec_data[1]); Serial.println(r,HEX); irsend.sendFox(r,toggle); // IQ command }


// for (int i = 0; i < 3; i++) { // irsend.sendFox(3,toggle); // IQ command // delay(40); // } delay(10); }

char vert(char *x){ //converts 2 hex bytes to a char if (x[0] < 0x3a) x[0] = x[0] - 0x30; if(x[0] > 96) x[0] = x[0] -87; if (x[1] < 0x3a) x[1] = x[1] - 0x30; if(x[1] > 96) x[1] = x[1] -87; return x[1] + x[0] * 16;



Download the ino and install.

Step 6: Android Program

The android app was created using MIT's App Inventor. I have provided the apk. You can also got to app inventor website and download my program from the gallery.