Making use of the Infrared LED on RTL-SDR Dongles

The infrared (IR) LED on most RTL-SDR dongles is a vestigial from the days when it was actually used for its original purpose as an DVB-T HDTV receiver. It was used to read a remote control that allowed you to change TV channels. For SDR use, the IR has little to no purpose and in many new dongles that come in metal cases (like ours) the IR LED is no longer even included on the PCB.

However, not one to waste a perfectly good interface, RTL-SDR experimenter R. X Seger created a new tool called rtl_ir which allows users to read IR data from any remote control with the RTL-SDR IR LED. Seger tested his program with the TV remote that comes included with some RTL-SDR dongles and was able to decode the scancode for power on/off as well as all the other buttons. He also tested an Apple and Siri Remote, and found that he was able to decode their scancodes too.

R. X Segers post goes over in detail what the IR spectrum is, how the IR driver works, and how to use the rtl_ir program and run it simultaneously with other RTL-SDR programs. He also shows an example on how it can be used to remotely power off a Raspberry Pi.

IR data received with rtl_ir.
IR data received with rtl_ir.
Notify of

Inline Feedbacks
View all comments

Whoever authored this article needs to do a bit of research on what is and what is NOT an LED!
An IR receiver (probably a Photodiode) is what’s on the rtl-sdr receiver board.
An IR LED is on the little remote that usually ships with the rtl-sdr. It is what sends the control pulses to the IR receiver.
Granted, there is a LED on the rtl-sdr dongle, but it is only there as a power indicator and it’s blue!


Thanks KB7URX, that’s definitely correct, I was wondering why an IR LED would be so bright! (haven’t thought too deeply about this otherwise).


@kb7urx Indeed, this website’s summary of my blog post is somewhat confused, the IR LED I was referring to was in the remote control included with the RTL-SDR. The context being I ordered an RTL-SDR kit (dongle, antenna, adapter, remote) and it came with this remote control device I wanted to find a use for; was originally going to go with the RTL-SDR Blog’s dongle, but it was out of stock at the time, so I opted for the NooElec NESDR which came with this remote, as many other RTL-SDR kits do (Mesinton, Newsky, etc).

As for the IR sensor, on the NESDR at least it is directly adjacent to the power LED, behind the window on the round edge. Took it apart and added some photos to (interior, exterior) – I haven’t found out exactly what model it is, the only label on the top is “CHOD”, but my best guess is something like the Vishay Semiconductors TSOP382, which includes an integrated photodetector (PIN diode) and preamplifier.

But RTL-SDR Blog does bring up an interesting point, their silver dongles have a closed metal case, no opening for an IR sensor, no photodetector visible on their circuit board unlike the NooElec blue dongle. Curious to the extent of their removal of the IR circuitry, wondering what will happen if I read from the 0xfc00+ IR registers, if anything useful can be done with them, possibly with hardware modifications. Planning on getting a RTL-SDR Blog silver dongle soon, so I may be able to experiment further and find out.



can we use this toolchain in combination with rtl_udp? Change frequency with left/right remote buttons for eg.?



@DE8MSH yes it should be possible with some scripting, you could run rtl_udp with RTLSDR_RPC_IS_ENABLED=1, then run rtl_rpcd -I, and have a client connect to the IR port, decode the signal and send the appropriate UDP commands to rtl_udp ( Similar to how I described integrating with dump1090, most/all librtlsdr-based software should be able to work with IR in the same way.


@AD5NL, the IR_RX_BUF (0xFC00) register of the RTL-SDR only returns bytes with the MSB set to 1=pulse/0=off, and the 7 lower bits the duration of the pulse, unfortunately it doesn’t allow reading the voltage at least anyway I can see (no frequency, amplitude, or phase measurements, only detection of the ~38 kHz IR carrier wave pulse length). Maybe with hardware modifications?


Interesting thought. I don’t have the time to fool with it myself (too many unfinished projects as it is) but I could send you an AD8302 and an AD8307 if you are interested in exploring those measurements.


I wonder how the value on the LED is being read. In other words is it just a simple digital (on/off) or is it measuring voltage (like an ADC? given that the radio itself is basically a fancy ADC, it doesn’t seem entirely improbable).

I have been experimenting a bit with LEDs on another project. I am building a weather balloon / HAB payload and I figured I might be able to use a UV LED hooked into one of the unused channels on the ADC module I already had (for measuring battery voltage) as a very crude detector of UV-A and possibly UV-B.