Skip to content
  • MySensors
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo
  1. Home
  2. Hardware
  3. VEML6070 and VEML6075 UV sensors

VEML6070 and VEML6075 UV sensors

Scheduled Pinned Locked Moved Hardware
52 Posts 6 Posters 16.1k Views 5 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • A Offline
    A Offline
    Avamander
    wrote on last edited by
    #36

    Battery issues is one thing, SparkFun's VEML6075 library can't handle direct daylight even (compensated UV readings go negative).

    alexsh1A 1 Reply Last reply
    0
    • A Avamander

      Battery issues is one thing, SparkFun's VEML6075 library can't handle direct daylight even (compensated UV readings go negative).

      alexsh1A Offline
      alexsh1A Offline
      alexsh1
      wrote on last edited by
      #37

      @avamander That's impossible - it is designed to handle the direct sunlight. Mine is showing UV Index = 9. Negative UV reading is a software issue - looks like Sparkfun did not write a good lib for it. Did you try a different lib?

      A 1 Reply Last reply
      0
      • alexsh1A alexsh1

        @avamander That's impossible - it is designed to handle the direct sunlight. Mine is showing UV Index = 9. Negative UV reading is a software issue - looks like Sparkfun did not write a good lib for it. Did you try a different lib?

        A Offline
        A Offline
        Avamander
        wrote on last edited by Avamander
        #38

        @alexsh1

        Did you try a different lib?

        Haven't bothered, I'm just logging the raw values and then compensating with software.

        alexsh1A 1 Reply Last reply
        0
        • A Avamander

          @alexsh1

          Did you try a different lib?

          Haven't bothered, I'm just logging the raw values and then compensating with software.

          alexsh1A Offline
          alexsh1A Offline
          alexsh1
          wrote on last edited by
          #39

          @avamander It definitely works.

          My problem for now was just the battery consumption. I have one of these:

          https://www.aliexpress.com/item/I2C-Interface-3-3V-Board-Based-on-VEML6075-UVA-UVB-Light-Sensor-Module/32832979057.html?spm=2114.search0104.3.1.5f765e65b6nG8K&ws_ab_test=searchweb0_0,searchweb201602_3_10152_10151_10065_10344_10130_10068_10324_10342_10547_10325_10343_10340_10548_10341_10696_10192_10190_10084_10083_10618_10307_10820_10301_10821_10303_10059_100031_10103_524_10624_10623_10622_10621_10620,searchweb201603_25,ppcSwitch_7&algo_expid=c6a42de3-1e19-435c-af06-c3a9b24d4ca3-0&algo_pvid=c6a42de3-1e19-435c-af06-c3a9b24d4ca3&priceBeautifyAB=0

          The problem is that it is dodgy - the sleep consumption never goes below 50uA at 3.2V. According to the datasheet it should be 800nA while sleeping at 1.8V and 25C. Can anyone measure a shutdown current for VEML6085 please?

          A 1 Reply Last reply
          0
          • alexsh1A alexsh1

            @avamander It definitely works.

            My problem for now was just the battery consumption. I have one of these:

            https://www.aliexpress.com/item/I2C-Interface-3-3V-Board-Based-on-VEML6075-UVA-UVB-Light-Sensor-Module/32832979057.html?spm=2114.search0104.3.1.5f765e65b6nG8K&ws_ab_test=searchweb0_0,searchweb201602_3_10152_10151_10065_10344_10130_10068_10324_10342_10547_10325_10343_10340_10548_10341_10696_10192_10190_10084_10083_10618_10307_10820_10301_10821_10303_10059_100031_10103_524_10624_10623_10622_10621_10620,searchweb201603_25,ppcSwitch_7&algo_expid=c6a42de3-1e19-435c-af06-c3a9b24d4ca3-0&algo_pvid=c6a42de3-1e19-435c-af06-c3a9b24d4ca3&priceBeautifyAB=0

            The problem is that it is dodgy - the sleep consumption never goes below 50uA at 3.2V. According to the datasheet it should be 800nA while sleeping at 1.8V and 25C. Can anyone measure a shutdown current for VEML6085 please?

            A Offline
            A Offline
            Avamander
            wrote on last edited by
            #40

            @alexsh1 I have the same board, there seems to be a regulator and a few other components on the board, if you remove those, how's the power consumption then?

            alexsh1A 1 Reply Last reply
            0
            • A Avamander

              @alexsh1 I have the same board, there seems to be a regulator and a few other components on the board, if you remove those, how's the power consumption then?

              alexsh1A Offline
              alexsh1A Offline
              alexsh1
              wrote on last edited by
              #41

              @avamander I have removed every component bit by bit. Originally the consumption was 56uA and now it is 50uA with the only sensor left on the board

              A 1 Reply Last reply
              0
              • alexsh1A alexsh1

                @avamander I have removed every component bit by bit. Originally the consumption was 56uA and now it is 50uA with the only sensor left on the board

                A Offline
                A Offline
                Avamander
                wrote on last edited by Avamander
                #42

                @alexsh1 There's an I^2C address selection jumper on the board, maybe that draws current?

                alexsh1A 1 Reply Last reply
                0
                • A Avamander

                  @alexsh1 There's an I^2C address selection jumper on the board, maybe that draws current?

                  alexsh1A Offline
                  alexsh1A Offline
                  alexsh1
                  wrote on last edited by
                  #43

                  @avamander desoldered

                  0_1530976815027_3DB7AF0A-144A-4530-B34D-9879586F31A6.jpeg

                  0_1530976840321_FD86C38C-0A62-40B0-A9DA-B188749B3A43.jpeg

                  A 1 Reply Last reply
                  0
                  • alexsh1A alexsh1

                    @avamander desoldered

                    0_1530976815027_3DB7AF0A-144A-4530-B34D-9879586F31A6.jpeg

                    0_1530976840321_FD86C38C-0A62-40B0-A9DA-B188749B3A43.jpeg

                    A Offline
                    A Offline
                    Avamander
                    wrote on last edited by Avamander
                    #44

                    @alexsh1 Just desolder the sensor itself from the board if you're that far already? I wouldn't be surprised if aliexpress sellers sell counterfeit chips that are s****ier, I'm already seeing that with nRF24L01+'s

                    alexsh1A 1 Reply Last reply
                    0
                    • A Avamander

                      @alexsh1 Just desolder the sensor itself from the board if you're that far already? I wouldn't be surprised if aliexpress sellers sell counterfeit chips that are s****ier, I'm already seeing that with nRF24L01+'s

                      alexsh1A Offline
                      alexsh1A Offline
                      alexsh1
                      wrote on last edited by
                      #45

                      @avamander I tried to resolder it to the board - no luck.
                      It is very small. Very hard to solder any wires to it

                      1 Reply Last reply
                      0
                      • alexsh1A Offline
                        alexsh1A Offline
                        alexsh1
                        wrote on last edited by
                        #46

                        Ok, I did manage to solder the bare sonsor.
                        Consumption is still 50uA.

                        0_1530981078382_93757BD7-6E64-4BF6-84A3-3BB978BA680F.jpeg

                        Can anyone please let me know your VELM6075 break board consumption?????

                        A 1 Reply Last reply
                        1
                        • alexsh1A alexsh1

                          Ok, I did manage to solder the bare sonsor.
                          Consumption is still 50uA.

                          0_1530981078382_93757BD7-6E64-4BF6-84A3-3BB978BA680F.jpeg

                          Can anyone please let me know your VELM6075 break board consumption?????

                          A Offline
                          A Offline
                          Avamander
                          wrote on last edited by
                          #47

                          @alexsh1 I'd do it but I'm waiting for my replacement multimeter to arrive, sorry.

                          alexsh1A 1 Reply Last reply
                          0
                          • A Avamander

                            @alexsh1 I'd do it but I'm waiting for my replacement multimeter to arrive, sorry.

                            alexsh1A Offline
                            alexsh1A Offline
                            alexsh1
                            wrote on last edited by
                            #48

                            @avamander That's ok. Just post values here - other may benefit on this as well.
                            I still have no idea why the sensor is taking so much current

                            1 Reply Last reply
                            0
                            • T Offline
                              T Offline
                              tonbor
                              wrote on last edited by
                              #49

                              An old thread, tried the github ino for the VEML6075, is not working ok. UVA and UVB sometimes wrong negative figures. I am going to try the sparkfun library, is from 2018. Let you now if I get beter results.

                              T 1 Reply Last reply
                              0
                              • T tonbor

                                An old thread, tried the github ino for the VEML6075, is not working ok. UVA and UVB sometimes wrong negative figures. I am going to try the sparkfun library, is from 2018. Let you now if I get beter results.

                                T Offline
                                T Offline
                                tonbor
                                wrote on last edited by
                                #50
                                This post is deleted!
                                1 Reply Last reply
                                0
                                • T Offline
                                  T Offline
                                  tonbor
                                  wrote on last edited by
                                  #51

                                  /*
                                  Original by scalz@mysensors: https://forum.mysensors.org/topic/6952/veml6070-and-veml6075-uv-sensors/25#
                                  Needs a modified VEML6075-lib: https://github.com/rejoe2/VEML6075
                                  rewritten by Tonbor using sparkfun libary
                                  /
                                  // Enable debug prints to serial monitor
                                  #define MY_DEBUG
                                  // Enable and select radio type attached
                                  #define MY_RADIO_NRF24
                                  //#define MY_RADIO_RFM69
                                  //#define MY_NODE_ID 10
                                  #include <MySensors.h>
                                  #include <SparkFun_VEML6075_Arduino_Library.h>
                                  VEML6075 uv;
                                  //VEML6075 veml6075 = VEML6075();
                                  bool sensorFound = false;
                                  #define CHILD_ID_UVI 1
                                  #define CHILD_ID_UVA 2
                                  #define CHILD_ID_UVB 3
                                  uint32_t SLEEP_TIME = 30
                                  1000; // Sleep time between reads (in milliseconds)
                                  MyMessage uviMsg(CHILD_ID_UVI, V_UV);
                                  MyMessage uvaMsg(CHILD_ID_UVA, V_UV);
                                  MyMessage uvbMsg(CHILD_ID_UVB, V_UV);
                                  void presentation()
                                  {
                                  // Send the sketch version information to the gateway and Controller
                                  sendSketchInfo("UV Sensor", "1.4T");
                                  // Register all sensors to gateway (they will be created as child devices)
                                  present(CHILD_ID_UVI, S_UV);
                                  present(CHILD_ID_UVA, S_UV);
                                  present(CHILD_ID_UVB, S_UV);
                                  }
                                  void setup()
                                  {
                                  if (!uv.begin()) {
                                  Serial.println(F("VEML6075 not found!"));
                                  } else
                                  sensorFound = true;
                                  //#ifdef MY_DEBUG
                                  // uint16_t devid = veml6075.getDevID();
                                  // Serial.print(F("Device ID = "));
                                  // Serial.println(devid, HEX);
                                  // Serial.println(F("----------------"));
                                  //#endif
                                  }
                                  void loop()
                                  {
                                  if (sensorFound) {
                                  unsigned long lastSend =0;
                                  float uvi;
                                  float uva;
                                  float uvb;
                                  static float uviOld = -1;
                                  static float uvaOld = -1;
                                  static float uvbOld = -1;
                                  //veml6075.sleep(false); // power up veml6075 == begin()
                                  //sleep(500);
                                  // Poll sensor
                                  //veml6075.poll();
                                  uv.powerOn();
                                  delay(250);
                                  uva = uv.a();
                                  uvb = uv.b();
                                  uvi = uv.index();
                                  #ifdef MY_DEBUG
                                  Serial.print(F("UVA = "));
                                  Serial.println(uva, 2);
                                  Serial.print(F("UVB = "));
                                  Serial.println(uvb, 2);
                                  Serial.print(F("UV Index = "));
                                  Serial.println(uvi, 1);
                                  #endif
                                  if (uvi != uviOld) {
                                  send(uviMsg.set(uvi,2));
                                  uviOld = uvi;
                                  }
                                  if (uva != uvaOld) {
                                  send(uvaMsg.set(uva,2));
                                  uvaOld = uva;
                                  }
                                  if (uvb != uvbOld) {
                                  send(uvbMsg.set(uvb,2));
                                  uvbOld = uvb;
                                  }
                                  }
                                  uv.shutdown(); ; // power down veml6075
                                  sleep(SLEEP_TIME);
                                  }

                                  1 Reply Last reply
                                  0
                                  • T Offline
                                    T Offline
                                    tonbor
                                    wrote on last edited by tonbor
                                    #52

                                    This ino is working for me, it has the sleep function to save batteries. The Adafruit en the github/mysensors-> https://github.com/schizobovine/VEML6075 lib gives far to high index with my sensor. Only uv a and uv b declaration is not correct. Uv expect a index 0 till 11, domoticz controller passes a lower figure when it receives a number above 11.

                                    1 Reply Last reply
                                    0
                                    Reply
                                    • Reply as topic
                                    Log in to reply
                                    • Oldest to Newest
                                    • Newest to Oldest
                                    • Most Votes


                                    16

                                    Online

                                    11.7k

                                    Users

                                    11.2k

                                    Topics

                                    113.1k

                                    Posts


                                    Copyright 2025 TBD   |   Forum Guidelines   |   Privacy Policy   |   Terms of Service
                                    • Login

                                    • Don't have an account? Register

                                    • Login or register to search.
                                    • First post
                                      Last post
                                    0
                                    • MySensors
                                    • OpenHardware.io
                                    • Categories
                                    • Recent
                                    • Tags
                                    • Popular