AS7341 I2C device timeout and init failed (ESP32)

Hello,
I am trying to use the Gravity: AS7341 11-Channel Visible Light Sensor with an ESP32 WROOM-32 board, but I keep receiving repeated errors on the serial monitor:
-------------------------------------
16:46:27.414 -> E (10657) i2c.master: probe device timeout. Please check if xfer_timeout_ms and pull-ups are correctly set up
16:46:27.456 -> IIC init failed, please check if the wire connection is correct
16:46:28.484 -> E (11717) i2c.master: probe device timeout. Please check if xfer_timeout_ms and pull-ups are correctly set up
16:46:28.484 -> IIC init failed, please check if the wire connection is correct
-------------------------------------
The "IIC init failed" and "probe device timeout" messages continue indefinitely, and the sensor is not detected.
**Test environment:**
- Sensor: Gravity AS7341 11-Channel Visible Light Sensor
- Board: ESP32 WROOM-32
- Connection:
- SDA → GPIO21
- SCL → GPIO22
- VCC → 3.3V
- GND → GND
- Tested with and without external 4.7kΩ pull-up resistors on SDA and SCL to 3.3V
- Voltage between VCC and GND is about 3.3V (measured with multimeter)
- Wires and connectors were re-soldered and checked carefully
-------------------------------------
**Code used:**
#include <Wire.h>
#include "DFRobot_AS7341.h"
DFRobot_AS7341 as7341;
void setup(void) {
Serial.begin(115200);
Wire.begin(21, 22);
while (as7341.begin() != 0) {
Serial.println("IIC init failed, please check if the wire connection is correct");
delay(1000);
}
}
void loop(void) {
DFRobot_AS7341::sModeOneData_t data1;
DFRobot_AS7341::sModeTwoData_t data2;
as7341.startMeasure(as7341.eF1F4ClearNIR);
data1 = as7341.readSpectralDataOne();
Serial.print("F1(405-425nm):");
Serial.println(data1.ADF1);
Serial.print("F2(435-455nm):");
Serial.println(data1.ADF2);
Serial.print("F3(470-490nm):");
Serial.println(data1.ADF3);
Serial.print("F4(505-525nm):");
Serial.println(data1.ADF4);
as7341.startMeasure(as7341.eF5F8ClearNIR);
data2 = as7341.readSpectralDataTwo();
Serial.print("F5(545-565nm):");
Serial.println(data2.ADF5);
Serial.print("F6(580-600nm):");
Serial.println(data2.ADF6);
Serial.print("F7(620-640nm):");
Serial.println(data2.ADF7);
Serial.print("F8(670-690nm):");
Serial.println(data2.ADF8);
Serial.print("Clear:");
Serial.println(data2.ADCLEAR);
Serial.print("NIR:");
Serial.println(data2.ADNIR);
delay(1000);
}
-------------------------------------
**Additional Troubleshooting:**
- I2C scanner code shows "No I2C devices found"
- Other I2C devices (like BME280 sensor) work normally on the same ESP32 board and with the same pins
- Sensor resoldered, wires and connections double-checked
**Questions:**
- Is there anything else I should check for this sensor?
- How can I confirm if the AS7341 sensor itself is faulty?
- Are there any compatibility issues between AS7341 and ESP32?
Thank you for your help!