The APDS-9960 can be connected to the I²C bus of the RPi using the P01 header:
| Board Pin | Function | RPi Pin | RPi Function |
|---|---|---|---|
| VL | IR LED Power (optional) | n.c. | (not connected) |
| GND | Ground | P01-9 | GND |
| VCC | +3.3V | P01-1 | 3.3V PWR |
| SDA | Data | P01-3 | I2C1 SDA |
| SCL | Clock | P01-5 | I2C1 SCL |
| INT | Interrupt | P01-7 | GPIO 4 (optional) |
You need to have enabled loading of the I²C kernel module. You might use raspi-config to enable I²C:
- run
raspi-config - select
5 Interfacing Options - enable
P5 I2C
The APDS-9960 supports a I²C clock up to 400KHz (default is 100KHz). To speed up detection performance you should increase the clock rate be using the following option in /boot/config.txt:
dtparam=i2c_arm=on,i2c_baudrate=400000
A reboot is required to apply the change.
To verify your setup use the i2cdetect command. The APDS-9960 chip is hard coded at the address 0x39:
# i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- 39 -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --