# Adafruit TSSP77038 38KHz Infrared IR Demodulator Breakout

## Overview

![](https://cdn-learn.adafruit.com/assets/assets/000/129/447/medium800thumb/adafruit_products_5940-04.jpg?1713458238)

While designing our [IR decoding breakout](https://www.adafruit.com/product/5939), we noticed the [TSSP series of chips from Vishay](https://www.vishay.com/docs/82470/tssp770.pdf). These are simpler than more 'remote control' receivers in that they don't do any filtering on the codes received: you really just get the demodulated-from-38KHz-signal output.

![](https://cdn-learn.adafruit.com/assets/assets/000/129/448/medium800/adafruit_products_5940-02.jpg?1713458289)

According to Vishay, they're designed for "Reflective Sensing, Light Barriers, and Fast Proximity Applications". These sensors could be interesting for use when you want a less-'intelligent' IR decoder, or for proximity projects where you don't want to go all-out for a [VCNL I2C sensor](https://www.adafruit.com/product/4161).

These are good for creating break-beams where the IR light is modulated rather than just solid on, because you won't be affected by other IR signals or ambient light changes.

![](https://cdn-learn.adafruit.com/assets/assets/000/129/449/medium800/adafruit_products_5940-00.jpg?1713458333)

This board will work nicely for a variety of IR detecting projects, and with mounting holes and a cable, a lot easier to mount in enclosures and on devices. Using a 2mm pitch STEMMA JST PH cable with headers or alligator clips on the end, you can easily wire this board without any soldering.

![](https://cdn-learn.adafruit.com/assets/assets/000/129/450/medium800/adafruit_products_5940-01.jpg?1713458371)

Note that this board is specifically for proximity sensing or break-beam projects. While it can receive 38KHz IR remote control signals - there isn't a filter system so you'll get a lot of spurious signals.

Each STEMMA board is a fully assembled and tested PCB but no cable. No soldering is required to use it, but you will need to pick up [a 2mm pitch, 3-pin&nbsp;STEMMA JST PH cable](https://www.adafruit.com/?q=jst+ph+3&sort=BestMatch). Alternatively, if you _do_ want to solder, there's a 0.1" spaced header for power/ground/signal.

# Adafruit TSSP77038 38KHz Infrared IR Demodulator Breakout

## Pinouts

![](https://cdn-learn.adafruit.com/assets/assets/000/129/635/medium800/adafruit_products_double.jpg?1714051669)

## Power Pins

- **VIN/V+** &nbsp;- this is the power pin. To power the board, give it the same power as the logic level of your microcontroller - e.g. for a 5V microcontroller like Arduino, use 5V.
- **GND** - common ground for power and logic.

## Signal Output

- **SIG/Sig** - this is the output signal from the infrared demodulator. When a 38KHz signal is received, the IR signal is piped out the Signal pin into your microcontroller.

Warning: This board is specifically for proximity sensing or break-beam projects. It can receive 38KHz IR remote control signals but there isn't a filter system so you'll get a lot of spurious signals.

## STEMMA JST PH

- [**STEMMA JST PH**](https://learn.adafruit.com/introducing-adafruit-stemma-qt) - 2mm pitch STEMMA JST port for use with [3-pin STEMMA JST PH cables](https://www.adafruit.com/category/619). It has connections for:
  - **GND** &nbsp;- common ground for power and data. It is the black wire on the JST PH cable.
  - **V+** - power input for the infrared demodulator. It is the red wire on the JST PH cable.&nbsp;
  - **Sig** - signal to your microcontroller. It is the white wire on the JST PH cable.

## Signal LED and Jumper

- **Signal LED** - to the left of the JST PH connector is the signal LED, labeled **Sig**. It is the red LED. It will light up when an IR signal is read by the demodulator.
- **LED jumper** - in the center of the back of the board is a jumper for the signal LED. It is labeled **Sig** &nbsp;on the board silk. If you want to disable the signal LED, cut the trace on this jumper.

## Power LED and Jumper

- **Power LED** - to the right of the JST PH connector is the power LED, labeled **ON**. It is the green LED.
- **LED jumper** - in the center of the back of the board is a jumper for the power LED. It is labeled **On** on the board silk. If you want to disable the power LED, cut the trace on this jumper.

# Adafruit TSSP77038 38KHz Infrared IR Demodulator Breakout

## CircuitPython and Python

It's easy to use the **Infrared IR Demodulator Breakout** with CircuitPython and the [pulseio](https://docs.circuitpython.org/en/latest/shared-bindings/pulseio/index.html) core module. This module allows you to easily write Python code for sending and receiving pulse signals.

You can use this driver with any CircuitPython microcontroller board or with a computer that has GPIO, [pulseio](https://docs.circuitpython.org/projects/blinka/en/latest/api.html#pulseio-pulse-width-modulation-input-and-output-control) support and Python [thanks to Adafruit\_Blinka, our CircuitPython-for-Python compatibility library](https://learn.adafruit.com/circuitpython-on-raspberrypi-linux). Not all single board computers (SBCs) have pulseio support. Make sure to [check if it is supported](https://docs.circuitpython.org/en/latest/shared-bindings/pwmio/index.html#module-pwmio) on your board.&nbsp;

You'll need an IR LED or IR remote controller to use this example with the demodulator:

### Adafruit High Power Infrared IR LED Emitter - STEMMA JST PH 2mm

[Adafruit High Power Infrared IR LED Emitter - STEMMA JST PH 2mm](https://www.adafruit.com/product/5639)
_\*pew\* \*pew\*_! This board is like a little ray gun for infrared light, with two high powered LED outputs. When controlled with the&nbsp;onboard&nbsp;N-Channel FET driver, you'll be blasting 100mA-200mA of current pulsing through each LED for 10+ meters of range! This is the easiest...

In Stock
[Buy Now](https://www.adafruit.com/product/5639)
[Related Guides to the Product](https://learn.adafruit.com/products/5639/guides)
![Angled shot of LED emitter breakout board.](https://cdn-shop.adafruit.com/640x480/5639-00.jpg)

### Mini Remote Control

[Mini Remote Control](https://www.adafruit.com/product/389)
This little remote control would be handy for controlling a robot or other project from across the room. It has 21 buttons and a layout we thought was handy: directional buttons and number entry buttons. The remote uses the NEC encoding type and sends data codes 0 thru 26 (it skips #3, #7,...

In Stock
[Buy Now](https://www.adafruit.com/product/389)
[Related Guides to the Product](https://learn.adafruit.com/products/389/guides)
![Mini Remote Control with 21 buttons](https://cdn-shop.adafruit.com/640x480/389-03.jpg)

Warning: This board is specifically for proximity sensing or break-beam projects. It can receive 38KHz IR remote control signals but there isn't a filter system so you'll get a lot of spurious signals.

## CircuitPython Microcontroller Wiring

First wire up the sensor to your board exactly as follows. The following is the demodulator wired to a Feather RP2040 with a JST PH cable.

- **Board 3V** to **demodulator&nbsp;JST PH** **V+ (red wire)**  
- **Board GND** to **demodulator**** &nbsp;JST PH GND (black wire)**  
- **Board pin 5** to **demodulator** &nbsp; **JST PH** **Sig (white wire)**

![adafruit_products_featherSTEMMA_bb.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/655/medium640/adafruit_products_featherSTEMMA_bb.jpg?1714073080)

The following is the demodulator wired to a Feather RP2040 using a solderless breadboard:

- **Board 3V** to **demodulator**** &nbsp;****VIN (red wire)**  
- **Board GND** to **demodulator**** &nbsp;GND (black wire)**  
- **Board pin 5** to **demodulator** &nbsp;**SIG (white wire)**

![adafruit_products_featherBB_bb.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/656/medium640/adafruit_products_featherBB_bb.jpg?1714073125)

## Python Computer Wiring

Since there are _dozens_ of Linux computers/boards you can use, we will show wiring for Raspberry Pi. For other platforms, [please visit the guide for CircuitPython on Linux to see whether your platform is supported](https://learn.adafruit.com/circuitpython-on-raspberrypi-linux).

Here's the Raspberry Pi wired to the demodulator using a JST PH cable:

- **Pi 3V** to **demodulator**** &nbsp;JST PH V+ (red wire)**
- **Pi GND** to **demodulator**** &nbsp;JST PH GND (black wire)**
- **Pi GPIO5** to **demodulator**** &nbsp;JST PH Sig (white wire)**

![adafruit_products_piSTEMMA_bb.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/657/medium640/adafruit_products_piSTEMMA_bb.jpg?1714073138)

Here is how you'll wire the demodulator to a Raspberry Pi with a breadboard:

- **Pi 3V** to **demodulator VIN (red wire)**
- **Pi GND** to **demodulator**** &nbsp;GND (black wire)**
- **Pi GPIO5** to **demodulator** **SIG (white wire)**

![adafruit_products_piBB_bb.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/658/medium640/adafruit_products_piBB_bb.jpg?1714073152)

## Python Installation

You'll need to install the **Adafruit\_Blinka** library that provides the CircuitPython support in Python. This may also require enabling I2C on your platform and verifying you are running Python 3. [Since each platform is a little different, and Linux changes often, please visit the CircuitPython on Linux guide to get your computer ready](https://learn.adafruit.com/circuitpython-on-raspberrypi-linux)!

## CircuitPython Usage

To use with CircuitPython,&nbsp;you need to update **code.py** with the example script.

Thankfully, we can do this in one go. In the example below, click the **Download Project Bundle** button below to download the&nbsp; **code.py** file in a zip file. Extract the contents of the zip file, and&nbsp;the **code.py** file to your **CIRCUITPY** drive.

![CIRCUITPY](https://adafruit.github.io/Adafruit_Learning_System_Guides/STEMMA_IR_Demodulator_Examples_CircuitPython.png )

Info: Only core modules are used for this example. No additional libraries need to be added to the /lib folder.

## Python Usage

Once you have the library `pip3` installed on your computer, copy or download the following example to your computer, and run the following, replacing **code.py** with whatever you named the file:

`python3 code.py`

## Example Code

**If running CircuitPython:** Once everything is saved to the **CIRCUITPY** drive, [connect to the serial console](https://learn.adafruit.com/welcome-to-circuitpython/kattni-connecting-to-the-serial-console) to see the data printed out!

**If running Python:** The console output will appear wherever you are running Python.

https://github.com/adafruit/Adafruit_Learning_System_Guides/blob/main/STEMMA_IR_Demodulator_Examples/CircuitPython/code.py

In the code, if an IR pulse is detected, its pulses are printed to the serial monitor. An additional variable&nbsp;`pulse_count` keeps track of how many times a new pulse is detected. The `pulse` state tracks whether a pulse input is detected or not by the demodulator. You can use this code as a template for using the demodulator as a proximity sensor or break-beam.

Here is the output using an IR remote with the demodulator:

![](https://cdn-learn.adafruit.com/assets/assets/000/129/642/medium800/adafruit_products_cp_serial.png?1714062952)

Here is the output using an IR LED emitter with the modulator:

![](https://cdn-learn.adafruit.com/assets/assets/000/129/647/medium800/adafruit_products_cp_serial_2.png?1714070704)

# Adafruit TSSP77038 38KHz Infrared IR Demodulator Breakout

## Python Docs

# Adafruit TSSP77038 38KHz Infrared IR Demodulator Breakout

## Arduino

Using the Infrared Infrared IR Demodulator Breakout with Arduino involves wiring up the demodulator to your Arduino-compatible microcontroller, installing the [IRremote](https://github.com/Arduino-IRremote/Arduino-IRremote)&nbsp;library, and running the provided example code.

You'll need an IR LED or IR remote controller to use this example with the demodulator:

### Adafruit High Power Infrared IR LED Emitter - STEMMA JST PH 2mm

[Adafruit High Power Infrared IR LED Emitter - STEMMA JST PH 2mm](https://www.adafruit.com/product/5639)
_\*pew\* \*pew\*_! This board is like a little ray gun for infrared light, with two high powered LED outputs. When controlled with the&nbsp;onboard&nbsp;N-Channel FET driver, you'll be blasting 100mA-200mA of current pulsing through each LED for 10+ meters of range! This is the easiest...

In Stock
[Buy Now](https://www.adafruit.com/product/5639)
[Related Guides to the Product](https://learn.adafruit.com/products/5639/guides)
![Angled shot of LED emitter breakout board.](https://cdn-shop.adafruit.com/640x480/5639-00.jpg)

### Mini Remote Control

[Mini Remote Control](https://www.adafruit.com/product/389)
This little remote control would be handy for controlling a robot or other project from across the room. It has 21 buttons and a layout we thought was handy: directional buttons and number entry buttons. The remote uses the NEC encoding type and sends data codes 0 thru 26 (it skips #3, #7,...

In Stock
[Buy Now](https://www.adafruit.com/product/389)
[Related Guides to the Product](https://learn.adafruit.com/products/389/guides)
![Mini Remote Control with 21 buttons](https://cdn-shop.adafruit.com/640x480/389-03.jpg)

Warning: This board is specifically for proximity sensing or break-beam projects. It can receive 38KHz IR remote control signals but there isn't a filter system so you'll get a lot of spurious signals.

## Wiring

Wire as shown for a **5V** board like an Uno. If you are using a **3V** board, like an Adafruit Feather, wire the board's 3V pin to the breakout VIN.

Here is an Adafruit Metro wired up to the demodulator using a JST PH cable.

- **Board 5V** to&nbsp; **demodulator JST PH** **V+ (red wire)**  
- **Board GND** to **demodulator**** &nbsp;JST PH GND (black wire)**  
- **Board pin 5** to **demodulator** &nbsp; **JST PH** **Sig (white wire)**

![adafruit_products_metroSTEMMA_bb.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/659/medium640/adafruit_products_metroSTEMMA_bb.jpg?1714073178)

Here is an Adafruit Metro wired up using a solderless breadboard:

- **Board 5V** to&nbsp; **demodulator** **VIN (red wire)**  
- **Board GND** to **demodulator**** &nbsp;****GND (black wire)**  
- **Board pin 5** to **demodulator** &nbsp;**SIG (white wire)**

![adafruit_products_metroBB_bb.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/660/medium640/adafruit_products_metroBB_bb.jpg?1714073185)

## Library Installation

You can install the **IRremote** library for Arduino using the Library Manager in the Arduino IDE.

![](https://cdn-learn.adafruit.com/assets/assets/000/129/643/medium800/adafruit_products_Arduino_Open_Library_Manager.png?1714069345)

Click the **Manage Libraries ...** menu item, search for **IRremote** , and select the **&nbsp;IRremote** library:

![](https://cdn-learn.adafruit.com/assets/assets/000/129/644/medium800/adafruit_products_arduino_lib.png?1714069364)

Info: There are no additional dependencies needed for this library.

## Example Code
https://github.com/adafruit/Adafruit_Learning_System_Guides/blob/main/STEMMA_IR_Demodulator_Examples/Arduino_STEMMA_IR_Demodulator_Example/Arduino_STEMMA_IR_Demodulator_Example.ino

Upload the sketch to your board and open up the Serial Monitor ( **Tools -\> Serial Monitor** ) at 115200 baud. As you send IR signals to the demodulator, you'll see the raw data packets print to the Serial Monitor. You'll also see the `signal_count`, which increases in value by `1` every time a new signal is detected. A boolean state called `ir_state` is `true` when a signal is detected and `false` when a signal is not detected. You can use this code as a template for using the demodulator as a proximity sensor or break-beam.

Here is the output using an IR remote with the demodulator:

![](https://cdn-learn.adafruit.com/assets/assets/000/129/645/medium800/adafruit_products_arduinoSerial_0.png?1714069558)

Here is the output using an IR LED emitter with the demodulator:

![](https://cdn-learn.adafruit.com/assets/assets/000/129/646/medium800/adafruit_products_arduinoSerial_1.png?1714070603)

# Adafruit TSSP77038 38KHz Infrared IR Demodulator Breakout

## Arduino Docs

# Adafruit TSSP77038 38KHz Infrared IR Demodulator Breakout

## Downloads

## Files

- [TSSP77038 Datasheet](https://cdn-learn.adafruit.com/assets/assets/000/129/632/original/tssp770.pdf?1714051517)
- [EagleCAD PCB Files on GitHub](https://github.com/adafruit/Adafruit-TSSP77038-IR-Demodulator-Breakout-PCB)
- [Fritzing object in the Adafruit Fritzing Library](https://github.com/adafruit/Fritzing-Library/blob/master/parts/Adafruit%20TSSP77038%20IR%20Demodulator%20Breakout.fzpz)

## Schematic and Fab Print
![](https://cdn-learn.adafruit.com/assets/assets/000/129/451/medium800/adafruit_products_schem.png?1713459000)

![](https://cdn-learn.adafruit.com/assets/assets/000/129/452/medium800/adafruit_products_fab.png?1713459011 dimensions are in inches)


## Primary Products

### Adafruit TSSP77038 38KHz Infrared IR Demodulator Breakout

[Adafruit TSSP77038 38KHz Infrared IR Demodulator Breakout](https://www.adafruit.com/product/5940)
While designing our [IR decoding breakout](https://www.adafruit.com/product/5939) we noticed the [TSSP series of chips from Vishay](https://www.vishay.com/docs/82470/tssp770.pdf),&nbsp;these are simpler than more 'remote control' receivers in that they don't...

In Stock
[Buy Now](https://www.adafruit.com/product/5940)
[Related Guides to the Product](https://learn.adafruit.com/products/5940/guides)

## Featured Products

### Mini Remote Control

[Mini Remote Control](https://www.adafruit.com/product/389)
This little remote control would be handy for controlling a robot or other project from across the room. It has 21 buttons and a layout we thought was handy: directional buttons and number entry buttons. The remote uses the NEC encoding type and sends data codes 0 thru 26 (it skips #3, #7,...

In Stock
[Buy Now](https://www.adafruit.com/product/389)
[Related Guides to the Product](https://learn.adafruit.com/products/389/guides)
### Adafruit High Power Infrared IR LED Emitter - STEMMA JST PH 2mm

[Adafruit High Power Infrared IR LED Emitter - STEMMA JST PH 2mm](https://www.adafruit.com/product/5639)
_\*pew\* \*pew\*_! This board is like a little ray gun for infrared light, with two high powered LED outputs. When controlled with the&nbsp;onboard&nbsp;N-Channel FET driver, you'll be blasting 100mA-200mA of current pulsing through each LED for 10+ meters of range! This is the easiest...

In Stock
[Buy Now](https://www.adafruit.com/product/5639)
[Related Guides to the Product](https://learn.adafruit.com/products/5639/guides)
### STEMMA JST PH 2mm 3-Pin to Male Header Cable - 200mm

[STEMMA JST PH 2mm 3-Pin to Male Header Cable - 200mm](https://www.adafruit.com/product/3893)
This cable will let you turn a JST PH 3-pin cable port into 3 individual wires with high-quality 0.1" male header plugs on the end. We're carrying these to match up with our Hallowing, for extending and connecting sensors or LEDs - and the wires are even color coded!

<a...></a...>

In Stock
[Buy Now](https://www.adafruit.com/product/3893)
[Related Guides to the Product](https://learn.adafruit.com/products/3893/guides)
### STEMMA JST PH 2mm 3-Pin to Female Socket Cable - 200mm

[STEMMA JST PH 2mm 3-Pin to Female Socket Cable - 200mm](https://www.adafruit.com/product/3894)
This cable will let you turn a JST PH 3-pin cable port into 3 individual wires with high-quality 0.1" female header sockets on the end. We're carrying these to match up with our Hallowing, for extending and connecting sensors or LEDs - and the wires are even color coded!

<a...></a...>

In Stock
[Buy Now](https://www.adafruit.com/product/3894)
[Related Guides to the Product](https://learn.adafruit.com/products/3894/guides)
### JST PH 2mm 3-pin Plug to Color Coded Alligator Clips Cable

[JST PH 2mm 3-pin Plug to Color Coded Alligator Clips Cable](https://www.adafruit.com/product/4030)
This cable will let you turn a JST PH 3-pin cable port into 3 individual wires with grippy mini alligator clips. We're carrying these to match up with any of our boards or breakouts with 3-pin 'STEMMA' connectors on them such as the&nbsp;<a...></a...>

In Stock
[Buy Now](https://www.adafruit.com/product/4030)
[Related Guides to the Product](https://learn.adafruit.com/products/4030/guides)

## Related Guides

- [Adafruit High Power Infrared LED Emitter](https://learn.adafruit.com/adafruit-high-power-infrared-led-emitter.md)
- [Bluetooth TV Zapper](https://learn.adafruit.com/bluetooth-tv-zapper.md)
- [Adafruit TSMP96000 IR Receiver Breakout](https://learn.adafruit.com/adafruit-tsmp96000-ir-receiver-breakout.md)
- [Adafruit PMSA003I Air Quality Breakout](https://learn.adafruit.com/pmsa003i.md)
- [Adafruit Analog Accelerometer Breakouts](https://learn.adafruit.com/adafruit-analog-accelerometer-breakouts.md)
- [Adafruit Chainable DS18B20 Extender Breakout](https://learn.adafruit.com/adafruit-chainable-ds18b20-extender-breakout.md)
- [Adafruit BMP388 and BMP390 - Precision Barometric Pressure and Altimeter](https://learn.adafruit.com/adafruit-bmp388-bmp390-bmp3xx.md)
- [Introducing the Adafruit Bluefruit LE UART Friend](https://learn.adafruit.com/introducing-the-adafruit-bluefruit-le-uart-friend.md)
- [Three Button Foot Switch](https://learn.adafruit.com/three-button-foot-switch.md)
- [CLUE BLE MIDI Glove](https://learn.adafruit.com/clue-midi-glove.md)
- [Adafruit PCF8523 Real Time Clock](https://learn.adafruit.com/adafruit-pcf8523-real-time-clock.md)
- [Adafruit TCA4307 Hot-Swap I2C Buffer](https://learn.adafruit.com/adafruit-tca4307.md)
- [Adafruit CC3000 WiFi](https://learn.adafruit.com/adafruit-cc3000-wifi.md)
- [Dotstar LED and Glass Pebble Floor](https://learn.adafruit.com/neopixel-and-glass-pebble-floor.md)
- [PyPortal Philips Hue Lighting Controller](https://learn.adafruit.com/pyportal-philips-hue-lighting-controller.md)
