1
\$\begingroup\$

I am relatively inexperienced with electronics so be gentle please.

I am trying to interface a VEML7700 photodiode sensor with a Firebeetle ESP32 using platform.io and arduino framework.

The connection and library usage was very straightforward so I got it up and running almost immediately.

The schematic is in the image schematic of the VEML7700 connection

The problem is when I tried to measure the power consumption. According to the datasheet, the VEML7700 should consume around 40-60 µA. When I measure the power consumption with it connected on the esp32 I get 540 µA. If I disable the sensor I get a 480 µA consumption, which means that it turns off, and there is a 480 µA draw somewhere.

The strangest thing happens when you disconnect the Vcc. The sensor still works and outputs data.

If I do the same thing with another sensor (BME280 barometric sensor) connected on its own, I get an equivalent consumption (around 500 µA)

If I connect both of them in series, I get double the power consumption (around 1 mA). both sensors connected in series.

The same consumption happens even if I dont initialize the i2c bus. Or even if I have the SDA & SDL completely disconnected.

If you connect the sensors to a power supply directly with 3.3V and Vin, you get the consumption that they say on the datasheet (around 50 µA each), so I am off by an order of magnitude, even if I have the sensors disabled on the code.

I tried the same thing on an arduino NANO with a single sensor and I get 80 µA with the sensor enabled and 20 µA with the sensor disabled, so this appears to be working correctly.

Does anyone have any idea what the reason may be?

Thank you.

Edit: the same thing happens with the esp32 dev kit 4 which is the official dev kit

\$\endgroup\$
2
  • \$\begingroup\$ Are you considering the fact that when you feed 5V into the VEML board, it has pull-ups to 5V, and your ESP32 has 3V3 IO, so current will flow via I2C wires and ESP32 protection clamp diodrs back to ESP32 3.3V supply? \$\endgroup\$
    – Justme
    Commented Jun 9, 2020 at 8:57
  • \$\begingroup\$ @Justme Hi Justme. you are probably on to something but I am not really sure what you mean. So The VEML takes 3 to 5 volts according to the datasheet. I am powering it directly from the 3v3 of the ESP which is 3.3 Volts (as i did on the arduino nano which didn't have any excess consumption). \$\endgroup\$ Commented Jun 9, 2020 at 9:34

1 Answer 1

0
\$\begingroup\$

The extra current draw is likely due to the VEML7700 eval board having four 10k pull ups total on the SDA and SCL lines

These will draw power as long as the VEML7700 or the ESP connected to it are talking over I2C and there is power on the resistors from Vin and the VEML7700's internal 3.3v. If you want to increase these resistor values this will decrease the current draw of the system, but may also affect communication speed.

I recommend not using internal pull ups on the esp32 without some kind of protection like a clamp or voltage divider, as these pull ups will pull the I2C lines up to 5v and the VEML7700 does not appear to have internal over-voltage protection over 3.6v.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.