Overview

The APDS-9960 is an integrated 4-in-1 digital optical sensor manufactured by Broadcom (formerly Avago Technologies). It combines 3D gesture recognition (up, down, left, right, near, far swipes), infrared proximity detection, ambient light sensing (ALS), and RGB color sensing into a single compact package communicating over an I2C interface.

It features four directional photodiode sensors (North, South, East, West) and an integrated IR LED emitter to detect hand motion directions up to 100 mm100\text{ mm} away without physical touch.

Quick reference

Operating Voltage (VCC)2.4 V to 3.6 V DC (3.3 V nominal)
IR LED Supply (VL / Breakout VCC)3.0 V to 4.5 V DC
Proximity Range10 mm to 100 mm10\text{ mm to }100\text{ mm}
Gesture DirectionsUP, DOWN, LEFT, RIGHT, NEAR, FAR
Color ChannelsRed, Green, Blue, and Clear (unfiltered)
Communication InterfaceI2C (fixed address 0x39, up to 400 kHz)
Interrupt OutputActive-LOW hardware interrupt (INT)
Operating Current100 µA active, 1 µA sleep mode

Pinout

Standard 5-Pin / 6-Pin Breakout Header

PinNameTypeDescription
1VCCPowerSupply voltage (+2.4 V to +3.6 V DC, 3.3V recommended)
2GNDPowerGround (0 V)
3SDADigital I/OI2C Serial Data line
4SCLDigital InputI2C Serial Clock input
5INTDigital OutputActive-LOW Interrupt pin (alerts MCU on gesture or proximity event)
6VLPowerPower for internal IR LED (connected to VCC on 3.3V breakouts)

Specifications

ParameterSymbolMinTypMaxUnitConditions
Supply Voltage (IC)VDDV_{DD}2.43.03.6VDC
Supply Voltage (IR LED)VLEDAV_{LEDA}3.03.84.5VDC
Active Supply CurrentIDDI_{DD}100250µAALS / Proximity active
IR LED Peak Drive CurrentILEDI_{LED}100200mAConfigurable in CONTROL reg
Gesture Rangedgestd_{gest}1050100mmHand gesture distance
ADC ResolutionRESRES16bitsRGBC / Proximity ADCs

Operating modes & Register map

Operating Modes (ENABLE Register 0x80)

  • PON (Bit 0): Power ON.
  • AEN (Bit 1): ALS / Color sensing enable.
  • PEN (Bit 2): Proximity sensing enable.
  • GEN (Bit 6): Gesture sensing engine enable.

Key Registers

AddressRegisterDescription
0x80ENABLEEnable register for Power, ALS, Proximity, and Gesture engines
0x81ATIMEALS ADC integration time (2.78 ms2.78\text{ ms} to 712 ms712\text{ ms})
0x8FPROX8-bit Proximity ADC data output
0x92IDReturns 0xAB (APDS-9960 identification byte)
0x94..0x9BCDATAL..BDATAH16-bit RGBC color data registers (Clear, Red, Green, Blue)
0xFC..0xFFGFIFO_U..GFIFO_WGesture FIFO directional photodiode datasets (Up, Down, Left, Right)

Wiring

APDS-9960 Breakout PinMicrocontroller (Arduino / ESP32)
VCC3.3V
GNDGND
SDASDA (A4 on Uno, GPIO21 on ESP32)
SCLSCL (A5 on Uno, GPIO22 on ESP32)
INTGPIO Pin with Interrupt support (e.g. D2 / GPIO4)
Note

Hardware Interrupt Pin Recommended: For gesture recognition, connecting the INT pin to a hardware interrupt line on the MCU is strongly recommended. Polling the I2C bus continuously for gesture events can miss fast hand swipes.

Common mistakes

  • Powering from 5.0V: Connecting 5V directly to VCC exceeds the 3.6V maximum rating and damages the photodiode ASIC.
  • Obstructing optical field-of-view: Placing dark tinted plastic or non-IR-transparent glass over the sensor blocks the 850 nm IR LED pulses and breaks gesture detection.
  • Swiping too far away: Gesture detection requires hand swipes within 50 mm to 100 mm (2 to 4 inches2\text{ to }4\text{ inches}) directly above the sensor package.

Notes

  • Color sensing outputs 16-bit raw counts for Clear, Red, Green, and Blue. Normalize RGBC counts to calculate RGB color coordinates or lux intensity.

Assets & downloads