The goal of this project was to come up with a way to use my Android phone as my Samsung TV remote. This has been achieved using some fairly basic things; my trusty Arduino, and IR LED, and a Bluetooth Module.

Thanks to Hackaday for featuring this project!!! -> see here.
NOTE: This code only works with Samsung IR Protocol other TV types will not work.
The phone talks to the Arduino via Bluetooth, the Arduino then sends the IR signals corresponding to the command given from the phone. I started by seeing if I could get the Arduino to generate an IR signal, to do this a borrowed some great code that Lucas Eckels created (see his blog post here) that was just what I needed. The code is designed to take in three digit function codes via the serial port then generates the correct sequence of IR pulses for the Samsung NEC protocol remotes. I uploaded the sketch to my Arduino I got it working fine (apart from one mistake that was in the code where a serial write command was used instead of a serial print). Using the Arduino serial monitor I could send the function commands without any problem.

Next I had a go at making the Arduino work via Bluetooth, I went for a cheap module of ebay rather than a proper shield (they a little expensive). The Bluetooth was easy to set up and worked like a charm straight away. All you need is to connect the rx on the Arduino to the tx on the module, and vice versa. Then connect 3.3V to Vcc and Ground to Ground. The Bluetooth Module had 9600 set up as default baud rate. I’ve noticed a few instructions say to change the Baud rate for use with Arduino but I thought I would stick with 9600 and change it if I noticed any problems.

Using a Bluetooth terminal program downloaded off the Android Marketplace called BlueTerm I was able to send the codes to the Arduino via my mobile. The three digit codes are the function codes for each button on the remote. A comment on Lucas Eckels blog gave some of the codes, but most of the codes I found by trying random 3 digit numbers in the BlueTerm program. A list of the functions I have found is given at the bottom of this page.
Next I decided to see if I could make my own app that would send particular codes for different button presses. I’ve had a go with AppInventor using Kucza’s project BennyBlue as a starting point to model my own bluetooth app. App inventor is free and very easy to use. I added more buttons and changed the graphics. Instead of sending single letters to serial, I changed it so it sends the various 3 digit function codes. I also made it so that the phone vibrates a little after each button press to give the user feedback that the app has registered the button press.
For future development: Multiple protocol support (maybe using the Arduino IR library) and a nice enclosure might be nice, though I think I would switch to an Arduino Nano first.

Hardware used:

  • Arduino Diecimila (ancient) but any Arduino should work.    (approx £15 to £30 depending on Arduino flavour)
  • Bluetooth Module. (£8 off ebay)
  • IR LED (about £0.20 off ebay)
  • Android Phone
  • Power Source 9V Battery or power adapter.

Software Used:




 Bluetooth Module:
Android App:

Demo Video

AndroidIR Demo Video

Samsung Remote Device Information

Samsung LCD TV Device Code 7.7
Samsung TV Remote Function Codes:
004 1
005 2
006 3
007 Volume Up
008 4
009 5
010 6
011 Volume Down
012 7
013 8
014 9
015 0
016 Channel Down
018 Channel Up
031 Info
037 Subtitle
039 Audio Description
040 Picture Mode
043 Sound Mode
044 Teletext
075 Tools
079 Guide
095 Left
096 Up
097 Down
098 Right
104 Select
152 Power Off
153 Power On
James Rudge,
22 Sep 2011, 02:42
James Rudge,
21 Sep 2011, 00:18