Overview

The TSL2561 is a light-to-digital converter IC manufactured by ams OSRAM (formerly TAOS). It converts light intensity into a digital signal output capable of direct I2C interface.

Unlike standard cadmium-sulfide (CdS) photoresistors or single-diode light sensors, the TSL2561 contains two integrating photodiodes: Channel 0 detects broadband light (visible plus infrared), while Channel 1 detects infrared light only. Subtracting IR spectrum data from Channel 0 yields a precise human-eye spectral response (0.1 to 40,000+ lux0.1\text{ to }40,000+\text{ lux}) under varying light sources (incandescent, fluorescent, sunlight).

Quick reference

Operating voltage (VCC)2.7 V to 3.6 V DC (3.3 V nominal)
Dynamic range0.1 lux to 40,000+ lux
ADC resolution16-bit dual Integrating ADCs
Gain selection1×1\times (low gain) or 16×16\times (high gain)
Integration time13.7 ms, 101 ms, or 402 ms (programmable)
Communication interfaceI2C (address selectable: 0x29, 0x39, 0x49)
Operating current240 µA active, 3.2 µA power-down

Pinout

Standard 6-Pin Breakout Header

PinNameTypeDescription
1VCCPowerSupply voltage (+2.7 V to +3.6 V DC)
2GNDPowerGround (0 V)
33VIPower Output3.3V Output / Input
4ADDRDigital InputI2C Slave Address selection pin
5INTDigital OutputActive-LOW Interrupt output pin
6SDADigital I/OI2C Serial Data line
7SCLDigital InputI2C Serial Clock input

Specifications

ParameterSymbolMinTypMaxUnitConditions
Supply VoltageVDDV_{DD}2.73.03.6VDC
Active Supply CurrentIDDI_{DD}240600µAActive conversion mode
Power-Down CurrentIPDI_{PD}3.215µAPower-down state
Full Scale OutputFSFS65535Counts16-bit ADC max
Dark Current (Ch 0 / Ch 1)IdarkI_{dark}05LSBTA=25CT_A = 25^\circ\text{C}, 402 ms integration
I2C Clock FrequencyfSCLf_{SCL}0100400kHzFast Mode

I2C Addressing & Command Structure

Address Pin Configuration (ADDR / SELECT Pin)

ADDR Pin ConnectionI2C Address (Hex)
Floating (Left open)0x39 (Default)
Tied to GND0x29
Tied to VCC0x49

Command Register Byte (COMMAND Register 0x80)

All I2C register accesses must send a Command Byte where Bit 7 is set to 1 (0x80).

  • Word protocol bit (Bit 5 = 1): Read 2 consecutive bytes (LSB, MSB) in a single transaction (e.g. 0xAC to read Channel 0 Word).

Key Registers

RegisterAddressDescription
CONTROL0x80Power control (0x03 = Power ON, 0x00 = Power OFF)
TIMING0x81Gain select (Bit 4: 0 = 1x, 1 = 16x) & Integration time (Bits [1:0]: 00 = 13.7ms, 01 = 101ms, 10 = 402ms)
DATA0LOW / HIGH0x8C / 0x8DChannel 0 broadband data (16-bit LSB/MSB)
DATA1LOW / HIGH0x8E / 0x8FChannel 1 infrared data (16-bit LSB/MSB)

Wiring

TSL2561 Breakout PinMicrocontroller (Arduino Uno / ESP32)
VCC3.3V (or 5V if breakout includes 3.3V LDO)
GNDGND
SDASDA (A4 on Uno, GPIO21 on ESP32)
SCLSCL (A5 on Uno, GPIO22 on ESP32)

Common mistakes

  • Forgetting to set Bit 7 (0x80) on register reads: Failing to set bit 7 on the command byte causes the TSL2561 to ignore register read commands.
  • Sensor saturation in direct sunlight: In high-light conditions (outdoors), leaving Gain at 16×16\times or Integration time at 402 ms causes ADC values to max out at 65535. Software should automatically switch Gain to 1×1\times and Integration time to 13.7 ms under bright light.
  • Powering bare chip with 5V: The TSL2561 IC max supply rating is 3.6V. Only feed 5V if using a breakout board with an onboard 3.3V regulator.

Notes

  • Calculate Lux from raw counts: Ratio=Channel 1Channel 0Ratio = \frac{\text{Channel 1}}{\text{Channel 0}}, then apply ams empirical Lux calculation coefficients based on ratio ranges.

Assets & downloads