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.
  • korttomaK korttoma

    Yeah, my 6075 device is also still working fine on the 2xAA batteries I put in it a year ago.

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

    @korttoma @scalz FYG I got a new DMM from Dave Jones 121GW and decided to measure a sleep current for VEML6075 and to my surprise:

    0_1530957108991_0F29A8F8-3AD9-4235-AAF9-5756384C7B79.jpeg

    Quickly reading the datasheet I discovered my mistake:

    • current supply - 480uA
    • shutdown current - 800nA

    Therefore, the sensor has to be put to sleep properly.
    One can modify the existing lib:

    uint8_t VEML6075::Shutdown() {  //Places device in shutdown low power mode
    
    	Config = ReadByte(CONF_CMD, 0); //Update global config value
    
    	return WriteConfig(Config | 0x01); //Set shutdown bit
    
    }
    
    
    
    uint8_t VEML6075::PowerOn() {  //Turns device on from shutdown mode
    
    	Config = ReadByte(CONF_CMD, 0); //Update global config value
    
    	return WriteConfig(Config & 0xFE); //Clear shutdown bit
    
    }
    
    Make sure you define #define CONF_CMD 0x00
    
    

    PS Now I understand why I did not change batteries - they are rechargeable. Charing and putting them back made me think that batteries lasted for a long time. :relaxed:

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

      I have now three sensor from Vishay - VEML6040, VEML6070 and VEML6075
      I can confirm all three sensors must be property put down to sleep with battery nodes or you would have the following sleeping currents on nodes with typical mysensors setup and standalone sleeping current of 4uA:

      VEML6040 - 240uA
      VEML6070 - 94uA
      VEML6075 - 622uA

      Unfortunately, most libraries do not care for properly sleeping/waking up sensors and therefore, one has to do a little tinkering with software to make it work. I am actually thinking about re-writing some libs completely.

      1 Reply Last reply
      0
      • 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


                                        14

                                        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