IRSend RAW Encoding - seurat-atreides/Sonoff-Tasmota GitHub Wiki

There are two command syntax forms for sending a remote control code in RAW format with IRsend:

  1. IRSend <frequency>,<rawdata1>,<rawdata2>,..,<rawdataN>

    e.g., IRsend 0,926,844,958,832,1798,868,902,848,900,870,900,852,908,918,958,794,934,874,928,1738,934,856,1764

  2. IRSend raw,<frequency>[,<header_mark>,<header_space>,<bit_mark>],<zero_space>[, [<one_multiple>] | <one_space>],<bit_stream>

    Where

Parameter Description
<frequency> carrier frequency (default 0 = 38kHz)
<header_mark> header mark duration (µs) (optional for some protocols)
<header_space> header space duration (µs) (optional for some protocols)
<bit_mark> bit mark duration (µs) (optional for some protocols)
<zero_space> zero space duration (µs)
<one_multiple> used to specify the one space duration if the one space duration is an integral multiple of the zero space duration. This parameter may be omitted if the multiple is 2.

Use of this parameter is mutually exclusive with the <one_space> parameter
<one_space> one space duration (µs). Use this parameter if the one space duration is not an integral multiple of <zero_space>

Use of this parameter is mutually exclusive with the <one_multiple> parameter
<bit_stream> bit stream data (stream of ones and zeroes)

This command syntax version makes use of the output of the raw IR decoder from ToniA/Raw-IR-decoder-for-Arduino

Examples for bitstream command syntax

rawirdecode output:

Number of symbols: 75
Symbols:
Hh010101101000111011001110000000001100110000000001100000000000000010001100
Bytes:
00:  0101|0110 | 6A | 01101010
01:  1000|1110 | 71 | 01110001
02:  1100|1110 | 73 | 01110011
03:  0000|0000 | 00 | 00000000
04:  1100|1100 | 33 | 00110011
05:  0000|0001 | 80 | 10000000
06:  1000|0000 | 01 | 00000001
07:  0000|0000 | 00 | 00000000
08:  1000|1100 | 31 | 00110001
6A,71,73,00,33,80,01,00,31
Timings (in us):
PAUSE SPACE:  0
HEADER MARK:  8620
HEADER SPACE: 4260
BIT MARK:     544
ZERO SPACE:   411
ONE SPACE:    1496
Decoding known protocols...
Unknown protocol
Bytecount: 9

Corresponding command:

IRSend raw,0,8620,4260,544,411,1496,010101101000111011001110000000001100110000000001100000000000000010001100

Gree air conditioner Power On

{8956, 4560, 546, 1710, 588, 616, 584, 618, 584, 1712, 586, 1712, 588, 614, 586, 614, 586, 618, 586, 1706, 590, 616 , 586, 1708, 590, 616, 588, 610, 590, 612, 590, 612, 590, 618, 584, 618, 584, 616, 586, 614, 588, 612, 590, 612, 590, 1712, 586 , 616, 588, 612, 590, 614, 588, 614, 586, 618, 586, 616, 586, 1710, 588, 614, 586, 1708, 590, 610, 592, 612, 590, 1708, 588, 614 , 588, 20084, 548, 612, 590, 614, 588, 614, 588, 616, 586, 654, 546, 616, 586, 616, 586, 614, 588, 612, 588, 610, 592, 612, 590 , 612, 590, 614, 586, 1712, 586, 616, 586, 612, 588, 614, 588, 614, 586, 616, 586, 612, 590, 614, 588, 610, 590, 616, 586, 614 , 588, 612, 590, 612, 590, 614, 588, 614, 588, 614, 588, 1708, 590, 612, 590, 1708, 590}

Arrange the data into pairs:

MARK SPACE BIT
8956 4560 (header)
546 1710 1
588 616 0
584 618 0
584 1712 1
586 1712 1
588 614 0
586 614 0
...
590 612 0
590 614 0
588 614 0
588 614 0
588 1708 1
590 612 0
590 1708 1
590 (ignore)

The header is always the first pair, the zeroes have the shortest space duration and the ones have the longest space duration.

  • header mark is 8956
  • header space is 4560
  • bit mark, get the average, say 590
  • zero space, say 615
  • one space, say 1710

Corresponding command:

IRSend raw,0,8956,4560,590,615,1710,1001100 ... 0000101
⚠️ **GitHub.com Fallback** ⚠️