User Tools

Site Tools


2016:sending_samsung_raw

Samsung remote IR-codes

The IRremote library could not parse samsung infrared data, but here's the raw codes with examples how to send them. I only read the most used buttons. Codes are already in variables :)

Codes:

// Power ON/OFF
const unsigned int S_pwr[68]={4600,4350,700,1550,650,1550,650,1600,650,450,650,450,650,450,650,450,700,400,700,1550,650,1550,650,1600,650,450,650,450,650,450,700,450,650,450,650,450,650,1550,700,450,650,450,650,450,650,450,650,450,700,400,650,1600,650,450,650,1550,650,1600,650,1550,650,1550,700,1550,650,1550,650};

// channel 1
const unsigned int S_1[68]={4650,4300,700,1550,700,1550,650,1550,700,400,700,400,700,400,700,450,700,400,700,1500,700,1500,700,1550,700,450,650,400,700,450,650,450,700,400,700,400,700,450,650,1550,700,400,700,400,700,400,700,450,650,450,650,1550,700,1500,700,450,650,1550,700,1550,650,1550,700,1500,700,1550,650};

// channel 2
const unsigned int S_2[68]={4600,4350,650,1550,700,1500,700,1550,700,400,700,400,700,450,650,450,700,400,700,1500,700,1500,700,1550,700,400,700,450,650,450,700,400,700,400,700,1500,700,400,700,1550,700,400,700,400,700,450,650,450,700,400,700,400,700,1550,650,450,700,1500,700,1550,650,1550,700,1500,700,1550,650};

// channel 3
const unsigned int S_3[68]={4600,4350,700,1500,700,1550,650,1600,650,400,700,450,700,400,700,400,700,400,700,1550,650,1550,700,1500,700,400,700,450,700,400,700,400,700,400,700,400,700,1550,700,1500,700,450,650,450,700,400,700,400,700,400,700,1550,700,400,700,400,700,1550,650,1550,700,1500,700,1550,700,1500,700};

// channel 4
const unsigned int S_4[68]={4600,4350,650,1550,700,1500,700,1550,700,400,700,400,700,450,650,450,700,400,700,1500,700,1550,650,1550,700,400,700,450,650,450,700,400,700,400,700,400,700,400,700,450,650,1550,700,400,700,400,700,450,700,400,700,1500,700,1550,650,1550,700,400,700,1550,650,1550,700,1500,700,1550,650};

// channel 5
const unsigned int S_5[68]={4650,4350,700,1500,700,1550,650,1550,700,400,700,450,700,400,700,400,700,400,700,1500,700,1550,700,1500,700,450,650,450,700,400,700,400,700,400,700,1550,700,400,700,400,650,1550,700,450,650,450,700,400,700,450,650,450,650,1550,650,1550,700,400,700,1550,700,1500,700,1500,700,1550,700};

// channel 6
const unsigned int S_6[68]={4600,4350,650,1550,700,1500,700,1550,700,400,700,400,700,450,650,450,700,400,700,1500,700,1550,650,1550,700,400,700,450,700,400,700,400,700,400,700,400,700,1550,700,400,700,1500,700,450,650,450,700,400,700,400,700,1550,650,450,650,1550,700,400,700,1550,650,1550,700,1500,700,1550,650};

// channel 7
const unsigned int S_7[68]={4600,4350,700,1500,700,1550,650,1550,700,400,700,450,700,400,700,400,700,400,700,1550,650,1550,700,1500,700,400,700,450,700,400,700,400,700,400,700,450,650,450,650,1550,700,1500,700,450,700,400,700,400,700,450,650,1550,650,1550,700,450,650,400,700,1550,700,1500,700,1550,650,1550,700};

// channel 8
const unsigned int S_8[68]={4600,4350,650,1600,650,1500,700,1550,700,400,700,400,700,400,700,450,700,400,700,1500,700,1550,650,1550,700,400,700,450,650,450,700,400,700,400,700,1550,650,450,650,1550,700,1500,700,450,700,400,700,400,700,400,700,400,700,1550,700,400,700,450,650,1550,650,1550,700,1500,700,1550,650};

// channel 9
const unsigned int S_9[68]={4600,4350,700,1500,700,1550,650,1550,700,400,700,450,650,450,650,450,700,400,700,1500,700,1550,700,1550,650,400,700,450,700,400,700,400,700,400,700,450,650,1550,650,1600,650,1550,650,450,700,400,700,400,700,400,700,1550,700,400,700,400,700,400,700,1550,700,1500,700,1500,700,1550,700};

// channel 0
const unsigned int S_0[68]={4650,4300,700,1550,700,1500,700,1550,700,400,700,400,700,400,700,450,650,450,650,1550,700,1550,650,1550,700,400,700,400,700,400,700,450,700,400,700,1550,650,400,700,450,700,400,650,1550,700,400,700,450,700,400,700,400,700,1500,700,1550,700,1500,700,400,700,1550,650,1550,700,1500,700};

// source
const unsigned int S_scr[68]={4600,4350,700,1550,650,1550,700,1500,700,450,650,450,700,400,700,400,700,400,700,1550,700,1500,700,1550,700,400,700,400,700,400,700,400,700,400,700,1550,700,400,700,450,650,450,650,450,700,400,700,400,700,400,700,450,650,1550,700,1500,700,1550,650,1550,700,1500,700,1550,700,1500,700};

// channel up
const unsigned int S_pup[68]={4600,4350,700,1500,700,1500,700,1550,700,450,650,400,700,450,650,450,700,400,700,1500,700,1550,650,1550,700,450,650,450,700,400,700,400,700,400,700,400,700,1550,700,400,700,400,700,1550,650,450,700,400,700,400,700,1550,650,450,650,1600,650,1550,650,450,700,1500,700,1500,700,1550,650};

// channel down
const unsigned int S_pdown[68]={4650,4300,700,1550,700,1500,700,1550,700,400,700,400,700,400,700,450,650,450,650,1550,700,1500,700,1550,700,400,700,400,700,400,700,450,700,400,700,400,700,400,700,450,650,450,650,1550,700,400,700,450,650,400,700,1550,700,1500,700,1550,700,1500,700,400,700,1550,650,1550,700,1500,700};

// volume up
const unsigned int S_vup[68]={4600,4350,650,1550,700,1500,700,1550,700,400,700,400,700,450,650,450,700,400,700,1500,700,1550,650,1550,700,400,700,400,700,450,650,450,700,400,700,1500,700,1550,650,1550,700,400,700,450,700,400,700,400,700,400,700,450,650,450,650,450,650,1550,700,1500,700,1550,700,1500,700,1550,650};

// volume down
const unsigned int S_vdown[68]={4600,4350,700,1550,650,1550,700,1500,700,450,650,450,700,400,700,400,700,400,700,1550,700,1500,700,1550,700,400,700,400,700,400,700,450,650,450,650,1550,700,1500,700,450,650,1550,700,400,700,400,700,450,700,400,700,400,700,400,700,1550,700,400,700,1500,700,1500,700,1550,700,1500,700};

// TV/DTV
const unsigned int S_tv[68]={4600,4350,650,1550,700,1500,700,1550,700,400,700,400,700,400,700,450,700,400,700,1500,700,1500,700,1550,700,400,700,400,700,450,650,450,700,400,700,1500,700,1550,700,400,700,400,700,400,700,400,700,1550,700,400,700,400,700,400,700,1550,700,1500,700,1550,650,1550,700,400,700,1500,700};

// guide
const unsigned int S_guide[68]={4600,4350,700,1500,700,1550,700,1500,700,450,650,450,700,400,700,400,700,400,700,1550,650,1550,700,1500,700,450,650,450,700,400,700,400,700,400,700,1550,700,1500,700,1550,650,1550,700,400,700,400,700,1550,700,400,700,400,700,400,700,450,700,400,650,1550,700,1550,650,450,700,1500,700};

// exit
const unsigned int S_exit[68]={4650,4300,700,1550,650,1550,700,1550,700,400,700,400,700,450,650,450,650,450,650,1550,700,1500,700,1550,700,450,650,400,700,450,650,450,700,400,700,1500,700,400,700,1550,700,1500,700,400,700,1550,700,450,650,400,700,450,650,1550,700,400,700,400,700,1550,650,450,650,1550,700,1500,700};

// mute
const unsigned int S_mute[68]={4650,4350,650,1550,650,1550,700,1550,700,400,700,400,700,400,700,450,650,450,650,1550,700,1500,700,1550,700,400,700,450,650,400,700,450,700,400,700,1500,700,1550,650,1550,700,1500,700,450,700,400,700,400,700,400,700,400,700,450,650,450,700,400,700,1500,700,1550,650,1550,700,1500,700};

Sending:

Irsend.sendRAW(S_pwr,68,38);

Remote will probably work in all samsung models, but with LE40M8 for sure. Posted by Ville Valta at 2.6.11

20 comments:

AnonymousTuesday, June 07, 2011 3:45:00 PM Hi,

You can use IRSend with Samsung.

See http://www.maartendamen.com/2010/05/jeenode-infrared-project-part-1-getting-started/

and, in http://www.arcfn.com/2009/08/multi-protocol-infrared-remote-library.html, find by “samsung” and it explains how to use samsung codes.

Reply

Julez StoneSunday, June 17, 2012 11:16:00 PM Hi, i cant seem to get the raw data from my samsung remote…

How did you achieve this?

Thanks, Samuel

Reply

ShineWednesday, August 08, 2012 3:08:00 PM I managed to decode Samsung Air conditioner codes. My results are at:

https://docs.google.com/spreadsheet/ccc?key=0Aupzmp8AqC8JdGtNOXhUc0R0WC1hbVdRa0p3aDVxdFE#gid=0

anyway, I'm not able to compute the checksum (2 byte of every burst). If anyone figured it out, please let me know.

Replies

AnonymousSunday, September 08, 2013 5:01:00 PM
Hey!
Your results will make more sense if you (1) invert 0/1 bits, (2) interpret data so that LSB are transmitted first. Then at least temperature will look better (that half-byte is just offset from its minimum temperature of 16C).

I do not see any checksum there: consider t=21 and t=22 commands, except for the temperature-related bits there's no difference at all. Although its not quite clear what is in the second byte of the second package, which changes usually but not always with t change.

/Dmitry.

AnonymousSunday, September 08, 2013 5:14:00 PM Or I see – the checksum is lousy enough to count just bits regardless of their position. This explains :)

Reply

richcoraSaturday, September 08, 2012 10:04:00 PM This comment has been removed by the author.

Reply Actually i need to scan some channel on my tv and i lost my remote.

Thanks a lot :)

Reply

Islam QabelThursday, February 07, 2013 3:44:00 PM Hi I do not understand the raw data,all i know that for samsung the data is 32 bit (data+address) plus one start bit and one stop bit, for example for Samsung TV press“1” button in HEX as follows: FB040707 which will be sent from LSB to MSB as follows

the original ordering is from MSB to LSB
1111 1011 0000 0100 0000 0111 0000 0111
sending code in reversed order is
start bit +1110 0000 1110 0000 0010 0000 1101 1111+stop bit
so how to understand the codes above??? please help

Reply

Islam QabelFriday, February 08, 2013 2:59:00 AM Got it. The first two numbers represents the start bit ON & OFF durations
the last number is ON for stop bit
so the code will be started from the third number to the number before the last number….Here is the decoding procedure:

Since for Samsung IR coding....
Start bit: 4500us ON 4500us OFF
Logic "1": 560us ON 1690us OFF
Logic "0": 560us ON 560us OFF
Stop bit : 560us ON 560us OFF

for example:to decode Power ON/OFF

4600,4350 is the starting bit
700,1550 is "1" also for 650,1550...650,1600
650,450 is "0" also for 700,450....700,400

so the transmitting code is start bit+ “1110 0000 1110 0000 0100 0000 1011 1111” + stop bit……i tried these codes for Power ON/OFF, Volume Up, Volume down, Source input and button “1” and tested successfully on my LCD TV/PC/component monitor
Anyway thanks for the great work

Reply

AnonymousTuesday, March 12, 2013 3:17:00 PM What is the frequency used by samsung remotes?

Reply

AnonymousSunday, May 12, 2013 12:51:00 PM The 38 in the example given

Irsend.sendRAW(S_pwr,68,38);

means that the frequency is 38KHz

Reply

Thanakorn ThanprasitTuesday, May 21, 2013 11:02:00 AM It is work thank for this post

Reply

AnonymousThursday, January 30, 2014 9:37:00 AM Could someone post the code of the PIP key?

Reply

AnonymousMonday, February 24, 2014 11:09:00 PM Thank you soo much for these codes! they work! :)

Reply

AnonymousMonday, March 10, 2014 11:36:00 AM can someone please tell me what exactly raw codes are?? I am a novice at all this.. please help! :) Thanx

Reply

gvorsterWednesday, December 09, 2015 6:41:00 PM
Works for me too on my Samsung tv! Really would like to know how to record the raw codes for Samsung. I need it to get the codes for the 'SOURCE' button on my remote, which pops up a submenu on the tv showing options for 'TV', 'HDMI1', 'HDMI2'. Are these 2 separate raw codes to send: one for the 'source' button and one for the related submenu option. Or is it one direct code for the submenu option?

Reply

2016/sending_samsung_raw.txt · Last modified: 2016/06/25 18:01 by 75.177.137.2