# Component: APDS9960
The APDS9960 device features advanced Gesture detection, Proximity detection, Digital Ambient Light Sense (ALS) and Color Sense (RGBC). The slim modular package, L 3.94 x W 2.36 x H 1.35 mm, incorporates an IR LED and factory calibrated LED driver for drop-in compatibility with existing footprints.
## Add component to your project
Please use the component manager command `add-dependency` to add the `apds9960` to your project's dependency, during the `CMake` step the component will be downloaded automatically
```
idf.py add-dependency "espressif/apds9960=*"
```
## Example of APDS9960 usage
Pin assignment:
* master:
* GPIO3 is assigned as VL IO
* GPIO4 is assigned as the clock signal of i2c master port
* GPIO5 is assigned as the data signal of i2c master port
* Connection:
* connect sda of sensor with GPIO5
* connect scl of sensor with GPIO4
* connect vl of sensor with GPIO3
```c
i2c_bus_handle_t i2c_bus = NULL;
apds9960_handle_t apds9960 = NULL;
//Step1: Init I2C bus and VL io
gpio_config_t cfg;
cfg.pin_bit_mask = BIT(APDS9960_VL_IO);
cfg.intr_type = 0;
cfg.mode = GPIO_MODE_OUTPUT;
cfg.pull_down_en = 0;
cfg.pull_up_en = 0;
gpio_config(&cfg);
gpio_set_level(APDS9960_VL_IO, 0);
int i2c_master_port = APDS9960_I2C_MASTER_NUM;
i2c_config_t conf = {
.mode = I2C_MODE_MASTER,
.sda_io_num = APDS9960_I2C_MASTER_SDA_IO,
.sda_pullup_en = GPIO_PULLUP_ENABLE,
.scl_io_num = APDS9960_I2C_MASTER_SCL_IO,
.scl_pullup_en = GPIO_PULLUP_ENABLE,
.master.clk_speed = APDS9960_I2C_MASTER_FREQ_HZ,
};
i2c_bus = i2c_bus_create(i2c_master_port, &conf);
//Step2: Init apds9960
apds9960 = apds9960_create(i2c_bus, APDS9960_I2C_ADDRESS);
//Step3: Read gesture
uint8_t gesture = apds9960_read_gesture(apds9960);
```
23c164ec7f748957e41c2f39a6ed9a6d4b4af56a
idf.py add-dependency "espressif/apds9960^0.1.0"