
ISL29125 RGB Color Sensor Module 3.3V I2C with IR Filter
Order before 12.00PM
The ISL29125 RGB Color Light Sensor with IR Blocking Filter Module is a high-precision digital light sensor designed to measure red, green, and blue components of visible light while effectively rejecting infrared interference. This sensor module is ideal for electronics projects that require accurate color and light intensity measurement for data logging, pattern recognition, automation, and control systems. With a built-in IR blocking filter and 16-bit ADC resolution, the ISL29125 delivers reliable and consistent color data even under mixed or artificial lighting conditions.
The ISL29125 color sensor breakout board exposes all essential pins, making it easy to interface with Arduino, ESP32, ESP8266, Raspberry Pi, and other microcontrollers using the I2C communication protocol. Its ultra-low power consumption makes it suitable for battery-powered and energy-efficient designs. The selectable measurement range allows flexibility for both low-light and bright environments, ensuring stable performance across a wide range of applications.
This RGB color light sensor module operates at 3.3V and includes an optional interrupt pin for event-based sensing or threshold detection. When used with 5V microcontrollers, a logic level converter is recommended to ensure safe and reliable communication.
Features:
-
Accurate red, green, and blue light intensity sensing
-
Integrated IR blocking filter for improved color accuracy
-
16-bit ADC resolution for high-precision measurements
-
I2C digital output compatible with SMBus
-
Ultra-low power consumption for energy-efficient projects
-
Selectable measurement range for different lighting conditions
-
Optional interrupt pin for advanced sensing applications
-
Compact breakout board with all pins clearly exposed
-
Ideal for color detection, pattern recognition, and automation systems
-
Suitable for Arduino, ESP32, ESP8266, Raspberry Pi, and other I2C devices
Specifications:
-
Sensor Model: ISL29125
-
Operating Voltage: 3.3V
-
Operating Current: 56µA
-
Color Channels: Red, Green, Blue
-
IR Filter: Integrated infrared blocking filter
-
ADC Resolution: 16-bit
-
Interface Type: I2C (SMBus compatible)
-
Measurement Range: Selectable
-
Power Consumption: Low power design
-
Output Type: Digital I2C data
-
Board Type: Breakout / module
Pin Configuration:
-
3.3V: Power supply input
-
GND: Ground
-
SDA: I2C data line
-
SCL: I2C clock line
-
INT: Optional interrupt output pin
How It Works:
-
The sensor detects visible red, green, and blue light components
-
The IR blocking filter removes infrared light interference
-
Light intensity is converted into 16-bit digital values
-
Data is transmitted via I2C to the microcontroller
-
Software processes RGB data for color detection or analysis
How to Use:
-
Supply a stable 3.3V power source to the module
-
Connect SDA and SCL pins to the I2C bus of the microcontroller
-
Use a logic level converter when interfacing with 5V controllers
-
Initialize the sensor using an I2C-compatible library
-
Select measurement range based on ambient lighting
-
Read RGB values and apply software calibration if required
Applications:
-
RGB color detection and classification
-
Ambient light sensing and monitoring
-
Pattern recognition and data logging
-
Smart lighting and display control
-
Robotics and automation projects
-
Wearable and battery-powered electronics
-
Educational STEM and electronics learning kits
isl29125 rgb color sensor, isl29125 light sensor module, rgb color light sensor with ir filter, isl29125 breakout board, i2c rgb color sensor, isl29125 arduino sensor, low power rgb light sensor, 16 bit adc color sensor, color detection sensor module, visible light sensor rgb, isl29125 sensor price bangladesh, rgb color sensor module bangladesh
The ISL29125 is a low-power, digital RGB color light sensor with an I2C interface, perfect for Arduino and ESP8266 projects. This advanced sensor can detect red, green, and blue light components independently, making it ideal for color detection, ambient light sensing, and color matching applications.
In this comprehensive tutorial, you'll learn how to interface the ISL29125 sensor with an ESP8266 microcontroller, understand its technical specifications, and build practical projects using this versatile color sensor.
What is the ISL29125 RGB Sensor?
The ISL29125 is a digital RGB color sensor manufactured by Renesas Electronics (formerly Intersil). It features three separate photodiodes with red, green, and blue filters, allowing it to measure each color component with 16-bit resolution.
Technical Specifications:
- 16-bit ADC resolution for each color channel
- I2C digital interface (up to 400 kHz)
- Operating voltage: 2.25V to 3.63V
- Programmable interrupt function
- Four selectable light intensity ranges
- IR filtering capability
- Active current consumption: 56 µA (typical)
- Standby current: 0.5 µA
Measurement Ranges:
- 375 lux
- 10,000 lux (10k)
- 16,000 lux (16k)
- 64,000 lux (64k)
Hardware Requirements
To follow this tutorial, you'll need:
- ESP8266 development board (NodeMCU, Wemos D1 Mini, or similar)
- ISL29125 RGB color sensor breakout board
- Jumper wires
- Breadboard (optional)
- USB cable for programming
- Arduino IDE installed on your computer
Circuit Diagram and Wiring
The ISL29125 uses I2C communication, requiring only four connections to the ESP8266.
Pin Connections
| ISL29125 Pin | ESP8266 Pin | Description |
|---|---|---|
| VCC | 3.3V | Power supply |
| GND | GND | Ground |
| SCL | D1 (GPIO5) | I2C Clock |
| SDA | D2 (GPIO4) | I2C Data |
Important Notes:
- Always use 3.3V, not 5V, as the ISL29125 is not 5V tolerant
- Most ISL29125 breakout boards include pull-up resistors for I2C
- Keep wires short to minimize noise and interference
Arduino Code Implementation
Basic RGB Reading Code
Here's a complete Arduino sketch to read RGB values from the ISL29125:
#include <Wire.h>
// ISL29125 I2C Address
#define ISL_I2C_ADDR 0x44
// Register Addresses
#define DEVICE_ID 0x00
#define CONFIG_1 0x01
#define CONFIG_2 0x02
#define CONFIG_3 0x03
#define STATUS 0x08
#define GREEN_L 0x09
#define GREEN_H 0x0A
#define RED_L 0x0B
#define RED_H 0x0C
#define BLUE_L 0x0D
#define BLUE_H 0x0E
// ESP8266 I2C Pins
#define SDA_PIN D2
#define SCL_PIN D1
void setup() {
Serial.begin(115200);
delay(1000);
Wire.begin(SDA_PIN, SCL_PIN);
Serial.println("ISL29125 RGB Sensor Initialized");
// Verify device ID
uint8_t id = readRegister(DEVICE_ID);
if (id != 0x7D) {
Serial.println("ERROR: Sensor not detected!");
while(1);
}
// Configure sensor: RGB mode, 375 lux range
writeRegister(CONFIG_1, 0x05);
writeRegister(CONFIG_2, 0x00);
writeRegister(CONFIG_3, 0x00);
Serial.println("Sensor ready!");
}
void loop() {
uint16_t red = readColor(RED_L, RED_H);
uint16_t green = readColor(GREEN_L, GREEN_H);
uint16_t blue = readColor(BLUE_L, BLUE_H);
Serial.print("R: ");
Serial.print(red);
Serial.print(" | G: ");
Serial.print(green);
Serial.print(" | B: ");
Serial.println(blue);
delay(500);
}
uint16_t readColor(uint8_t lowReg, uint8_t highReg) {
uint8_t low = readRegister(lowReg);
uint8_t high = readRegister(highReg);
return (high << 8) | low;
}
void writeRegister(uint8_t reg, uint8_t value) {
Wire.beginTransmission(ISL_I2C_ADDR);
Wire.write(reg);
Wire.write(value);
Wire.endTransmission();
}
uint8_t readRegister(uint8_t reg) {
Wire.beginTransmission(ISL_I2C_ADDR);
Wire.write(reg);
Wire.endTransmission();
Wire.requestFrom(ISL_I2C_ADDR, 1);
return Wire.available() ? Wire.read() : 0;
}
Understanding ISL29125 Configuration
CONFIG_1 Register
This register controls the operating mode and sensing range:
Bit Configuration:
-
Bits 0-2: Operating mode
- 000: Power down
- 001: Green only
- 010: Red only
- 011: Blue only
- 100: Standby
- 101: RGB (most common)
- 110: RG
- 111: GB
-
Bits 3-4: Light intensity range
- 00: 375 lux
- 01: 10,000 lux
- 10: 16,000 lux
- 11: 64,000 lux
Example: 0x05 = RGB mode with 375 lux range
CONFIG_2 Register
Controls IR filtering and active current:
- Bit 7: IR compensation (0 = disabled, 1 = enabled)
- Bits 0-5: IR filtering range
CONFIG_3 Register
Manages interrupt configuration and thresholds for automated triggering.
Practical Applications
1. Color Detection and Sorting
Use the ISL29125 to identify and sort objects by color in industrial automation or hobbyist projects.
String detectColor(uint16_t r, uint16_t g, uint16_t b) {
if (r > g && r > b) return "Red";
if (g > r && g > b) return "Green";
if (b > r && b > g) return "Blue";
if (r > 30000 && g > 30000 && b > 30000) return "White";
if (r < 5000 && g < 5000 && b < 5000) return "Black";
return "Unknown";
}
2. Ambient Light Monitoring
Track light conditions for smart home automation or plant growth monitoring.
3. Color Matching Systems
Create paint matching tools or quality control systems for manufacturing.
4. Proximity Detection
Detect objects by measuring reflected light changes.
Troubleshooting Common Issues
Sensor Not Detected
Problem: Device ID returns 0x00 or incorrect value
Solutions:
- Check wiring connections
- Verify 3.3V power supply
- Confirm I2C address (should be 0x44)
- Test with I2C scanner sketch
- Check for damaged sensor
Inconsistent Readings
Problem: RGB values fluctuate wildly
Solutions:
- Shield sensor from ambient light variations
- Use appropriate intensity range for your lighting
- Add delay between readings
- Enable IR filtering if needed
- Ensure stable power supply
Low or Zero Values
Problem: All RGB values read near zero
Solutions:
- Increase light intensity range setting
- Ensure sensor is properly illuminated
- Check if sensor is in correct mode (RGB, not standby)
- Verify power supply voltage
Advanced Features
Using Interrupts
The ISL29125 can trigger interrupts when color values exceed thresholds:
void setupInterrupt() {
// Configure threshold registers
writeRegister(0x04, 0x00); // Low threshold LSB
writeRegister(0x05, 0x10); // Low threshold MSB
writeRegister(0x06, 0x00); // High threshold LSB
writeRegister(0x07, 0xFF); // High threshold MSB
// Enable interrupt in CONFIG_3
writeRegister(CONFIG_3, 0x01);
}
IR Filtering
For outdoor or sunlight applications, enable IR compensation:
// Enable IR filtering
writeRegister(CONFIG_2, 0x80);
Calibration and Accuracy
To improve accuracy:
- White Balance Calibration: Take readings of a white surface under your target lighting
- Dark Calibration: Record values in complete darkness
- Normalize Values: Scale readings between dark and white reference points
uint16_t calibrateReading(uint16_t raw, uint16_t dark, uint16_t white) {
if (white <= dark) return 0;
if (raw <= dark) return 0;
if (raw >= white) return 65535;
return map(raw, dark, white, 0, 65535);
}
Performance Optimization
Power Saving
Put sensor in standby mode when not in use:
void enterStandby() {
writeRegister(CONFIG_1, 0x04); // Standby mode
}
void wakeUp() {
writeRegister(CONFIG_1, 0x05); // RGB mode
delay(100); // Allow sensor to stabilize
}
Faster Reading
Increase I2C clock speed for quicker data transfer:
Wire.setClock(400000); // 400 kHz Fast Mode
Comparison with Other Color Sensors
ISL29125 vs TCS34725
- ISL29125: Lower power consumption, simpler interface, adequate for most projects
- TCS34725: Higher accuracy, better in low light, includes clear channel
ISL29125 vs APDS-9960
- ISL29125: Dedicated RGB sensing, higher resolution
- APDS-9960: Includes gesture detection and proximity, lower RGB resolution
The ISL29125 RGB color sensor is an excellent choice for ESP8266-based color detection projects. Its low power consumption, high resolution, and simple I2C interface make it perfect for battery-powered IoT applications, robotics, and automation systems.
With this guide, you now have the knowledge to implement the ISL29125 in your own projects, from basic color detection to advanced calibrated color matching systems.
Start experimenting with your ISL29125 sensor today and bring color detection capabilities to your next ESP8266 project!
Request Stock
Recently viewed products
You might also be interested in...
Customers who bought this also bought...
General Questions
-
What is the latest price of the ISL29125 RGB Color Sensor Module 3.3V I2C with IR Filter in Bangladesh?
The latest price of ISL29125 RGB Color Sensor Module 3.3V I2C with IR Filter in Bangladesh is Special Price BDT 1,399.00 Regular Price BDT 1,800.00 . You can buy the ISL29125 RGB Color Sensor Module 3.3V I2C with IR Filter at the best price on BDTronics.com or contact us via phone.
-
Where to buy ISL29125 RGB Color Sensor Module 3.3V I2C with IR Filter in Bangladesh?
You can buy ISL29125 RGB Color Sensor Module 3.3V I2C with IR Filter online by ordering on BDTronics.com or directly collect by visiting our store in person. BDTronics is a trusted provider of high-quality electronics, 3D printers, solar systems, and robotics parts. We offer fast shipping across the country via courier service.
-
What are the delivery options of ISL29125 RGB Color Sensor Module 3.3V I2C with IR Filter in Bangladesh?
We provide home delivery service all over Bangladesh. We support Cash on Delivery, Online Bank Transfer, bKash and Credit Card (Visa/ MasterCard/ Amex) payment solutions. The delivery time usually takes 1-2 days inside Dhaka and 2-4 days outside Dhaka.
