The REV Robotics Color Sensor has two sensing elements: color and proximity.
Color measurements consist of Red, Green, Blue, and Alpha (clear) values. The white LED on the sensor has a slide switch to turn the LED on or off. Unlit targets are best illuminated with the build-in LED while bright or light-emitting targets may not require the build-in LED. Color data is best collected within 2cm of the target for the strongest color differentiation.
Proximity measurements are based on IR reflectance and can vary depending on lighting conditions and target reflectivity. The proximity sensor is ideally used to determine if something is in front of the sensor. While you can receive rough distance data, we recommend using the or similar time-of-flight sensor for accurate distance measurement.
When working with the Color Sensor V3 configure your robot to use the "REV Color Sensor V3" as shown in the image below.
In this example, the Color Sensor V3 is configured on I2C bus 1. The Color Sensor V3 can be configured on any of the I2C busses as long as a 2m Distance Sensor is not configured to the same bus.
This program shows a readout of values from the Color Sensor on your Driver Hub's screen while the program runs. "Light Detected" shows the amount of light detected between 0 and 1.
Additional information about the APDS-9151, its capabilities, and its features can be found in the following datasheet:
Note to users transitioning from Color Sensor V2 to V3: Color values will not be consistent between V2 and V3 sensors and there are minor changes to the FTC SDK. Be sure to update to the latest SDK.
@TeleOp
public class ColorSensorTest extends LinearOpMode {
private NormalizedColorSensor test_color;
@Override
public void runOpMode() {
test_color = hardwareMap.get(NormalizedColorSensor.class, "test_color");
waitForStart();
while (opModeIsActive()) {
telemetry.addData("Light Detected", ((OpticalDistanceSensor) test_color).getLightDetected());
NormalizedRGBA colors = test_color.getNormalizedColors();
//Determining the amount of red, green, and blue
telemetry.addData("Red", "%.3f", colors.red);
telemetry.addData("Green", "%.3f", colors.green);
telemetry.addData("Blue", "%.3f", colors.blue);
telemetry.update();
}
}
}
When using the Color Sensor V3 on the navX’s I2C Interface, you will need to make sure that the Voltage Select Jumper on the navX is set to 3.3V. The Color Sensor V3 has a max operating voltage of 3.3V and applying 5V can damage the sensor.

