GY9960 Gesture IR-RGB Sensor I2C 3.3V

This is the RGB and Gesture Sensor, a small breakout board with a built in APDS-9960 sensor that offers ambient light and color measuring, proximity detection, and touchless gesture sensing. With this RGB and Gesture Sensor you will be able to control a computer, microcontroller, robot, and more with a simple swipe of your hand.


The APDS-9960 is a serious little piece of hardware with built in UV and IR blocking filters, four separate diodes sensitive to different directions, and an I2C compatible interface. For your convenience the following pins have been broken out: VL (optional power to IR LED), GND (Ground), VCC (power to APDS-9960 sensor), SDA (I2C data), SCL (I2C clock), and INT (interrupt). Each APDS-9960 also has a detection range of 10 -20cm.

Quick Spec

  • Model: GY-APDS 9960-3.3
  • Chip: APDS-9960
  • Power Supply: 3.3V
  • Range Detection: 10 - 20cm
  • Communication: I2C
  • Dimensions: 20 x 15.3mm
  • Net Weight: 2g



Setting the Jumpers

The front of the module has 2 solder jumpers labeled PS and I2C PU

PS - This jumper connects the power supplies of the sensor and IR LED together. As shipped, the jumper is open so you will need to provide power to both the VCC (2.4 – 3.6V) and VL (3.0 – 4.5V).

I2C PU - This is a 3-way solder jumper used to connect the I2C 10K pull-up resistors to the SDA and SCL circuits. As shipped, this jumper is open.


  • VL - Power to IR LED. Must be 3.0 – 4.5V
  • GND - Ground connects to ground on the MCU
  • VCC - Power input. Connects to 3.3V on the MCU (2.4 – 3.6V)
  • SDA - I2C Data line. Connects to SDA on MCU
  • SCL - I2C Clock line. Connects to SCL on MCU
  • INT - Interrupt output active LOW. Output is open-collector so requires pull-up resistor. Connects to an interrupt input on the MCU if used

Sample Code

  APDS9960 - Gesture Sensor Test

  This example reads gesture data from the APDS9960 sensor and prints any
  detected gestures and proximity infor to the Serial Monitor and to a 16x2
  I2C LCD display if attached.

  Gesture directions are as follows:
  - UP:    from header side
  - DOWN:  toward header side
  - LEFT:  from INT pin side
  - RIGHT: toward INT pin side
#include <Arduino_APDS9960.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 16, 2); // set LCD address to 0x27 for 16x2 display
int proximity = 0;

//  Initialization
void setup() {

  lcd.backlight();      // Make sure backlight is on

  if (!APDS.begin()) {
    Serial.println("Error initializing APDS9960 sensor!");

  // for setGestureSensitivity(..) a value between 1 and 100 is required.
  // Higher values makes the gesture recognition more sensitivee but less accurate
  // (a wrong gesture may be detected). Lower values makes the gesture recognition
  // more accurate but less sensitive (some gestures may be missed).
  // Default is 80 which we are using. 

  Serial.println("Detecting gestures ...");
  lcd.setCursor(0, 1);
  lcd.print("Proximity: ");
//  Main
void loop() {
  // Report proximity reading (0-255) if < 240 to avoid clutter
  if (APDS.proximityAvailable()) {
    proximity = APDS.readProximity();
    if (proximity < 240) {  // Suppress reporting readings when nothing close
      Serial.print("Proximity Detected: ");
      Serial.println (proximity);
      lcd.setCursor(11, 1);  //Move cursor to character 11 on line 1
      lcd.print("   ");     // Erase any extra characters left from last reading

  if (APDS.gestureAvailable()) {
    // a gesture was detected, read and print to serial monitor
    // and LCD if connected
    int gesture = APDS.readGesture();
    lcd.setCursor(0, 0);  //Move cursor to character 0 on line 0
    switch (gesture) {
      case GESTURE_UP:
        Serial.println("Detected UP gesture");
        lcd.print("UP   ");

      case GESTURE_DOWN:
        Serial.println("Detected DOWN gesture");
        lcd.print("DOWN ");

      case GESTURE_LEFT:
        Serial.println("Detected LEFT gesture");
        lcd.print("LEFT ");

      case GESTURE_RIGHT:
        Serial.println("Detected RIGHT gesture");

        // ignore


Shipping List

  • 1 x GY9960 Gesture IR-RGB Sensor I2C 3.3V
  • 1 x 6 Pin SIP Header

GY9960 Gesture IR-RGB Sensor

  • Brand: Generic
  • Product Code: GY9960-33V
  • Weight: 0.002kg
  • Stock

    Warehouse Stock Status Location
    Centurion In Stock UL166
    Stellenbosch In Stock Z2137

    We ship free of charge between branches to complete your order.

  • R79.00 (Inc Tax: R90.85)

Related Products

ZX Distance and Gesture Sensor

ZX Distance and Gesture Sensor

ZX Distance and Gesture Sensor The ZX Distance and Gesture Sensor is a touchless sensor that is capable of looking for simple gestures. Developed in conjunction with XYZ Interactive, the sensor uses ..

Part No: SEN-13162

R330.00 (Inc Tax: R379.50)

Orange Pi 2G IOT - 3.5" Android Display

Orange Pi 2G IOT - 3.5" Android Display

Orange Pi 2G IOT - 3.5" Android Display This is a 3.5 inch, 800×480 display with capacitive touch support for the Orange Pi 2G IOT Board. It basically transforms the Orange Pi’s little screenless, ..

Part No: 2G-IOT-DISP

R345.00 (Inc Tax: R396.75)

Wave Spectral Colour Sensor

Wave Spectral Colour Sensor

Wave Spectral Colour Sensor With AS7341 visible spectrum sensing IC as the core, the Wave Spectral Colour Sensor can sense the visible light component values of different bands in the environment. ..

Part No: W19564

R285.00 (Inc Tax: R327.75)

Tags: gy9960, 9960, apds9960, gesture, ir, infrared, infra, rgb, colour, sensor, i2c, 3.3v, ambient, light, prox, proximity, detec, detection, distance, touchless, gy-9960-33v