Welcome to the Pycom forum Forum
    • \[\[global:header.categories\]\]
    • \[\[global:header.recent\]\]
    • \[\[global:header.tags\]\]
    • \[\[global:header.popular\]\]
    • Login

    Explore Pybytes | Official Documentation | Report a Firmware Bug/Issue | GitHub

    PySense accuracy

    Scheduled Pinned Locked Moved Comments & Feedback
    pysense
    13 Posts 7 Posters 4.1k Views 8 Watching
    Loading More Posts
    • 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.
    • bmarkusB Offline
      bmarkus
      last edited by bmarkus

      I made some tests with PySense, using 0.0.6 PySense board firmware with the current library and 1.9.2.b2 LoPy firmware. As a control used a COZIR szenzor and a home meteorological station.

      TEMPERATURE

      PySense temperature is 31.2 / 29.9 Celsius, while other devices measure both 25 Celsius. It is a big error between the two PySense temp sensors and from the air temperature. In the beginning of the test PySense figures were a bit lower, 27.2 / 28.5 probably due to the dissipation of LoPy. However these values are not usable as a sensor data.

      HUMIDITY

      PySense is 38.3% while other sensors 39% / 47% where the 47% is the COZIR which expected to be the most accurate, therefore no idea what is the real humidity.

      AIR PREASSURE

      PySense figure is 1008 mbar while the meteo station is 1020, lets say they are close, it looks the most accurate sensor. PySense barometric altitude is 48m, GPS is 116m. Not bad, and usually it must be calibrated to the actual conditions, so it seems to be OK.

      LIGHT

      Can't test.

      All together I wouldn't use it in production environment, specially not the temp sensors.

      robert-hhR 1 Reply Last reply Reply Quote 0
      • robert-hhR Offline
        robert-hh @bmarkus
        last edited by robert-hh

        @bmarkus The temperature pysense tells is influenced by the LoPy heating it up. That was observed at several places here. Since temperature and relative humidity are connected, at higher temperature the reading for relative humidity for the same absolute humidity will be lower, so that's not surprising, and the ratio is in the right range. (see e.g. https://en.wikipedia.org/wiki/Relative_humidity)

        bmarkusB 1 Reply Last reply Reply Quote 0
        • bmarkusB Offline
          bmarkus @robert-hh
          last edited by

          @robert-hh said in PySense accuracy:

          @bmarkus The temperature pysense tells is influenced by the LoPy heating it up. That was observed at several places here. Since temperature and relative humidity are connected, at higher temperature the reading for relative humidity for the same absolute humidity will be lower, so that's not surprising, and the ratio is in the right range. (see e.g. https://en.wikipedia.org/wiki/Relative_humidity)

          Thanks Robert. It is pity that temp sensors are not usable even if device is in open air and not boxed.

          robert-hhR C 2 Replies Last reply Reply Quote 0
          • robert-hhR Offline
            robert-hh @bmarkus
            last edited by

            @bmarkus You could try to separate both units, but then the nice package is gone. At least the temp sensor can be use to check, whether the total package is in a good condition, if you pack enclose it in a sealed package. But looking at the overall power consumption, there seems not to be a risk, and that may not have been the intention.

            1 Reply Last reply Reply Quote 0
            • C Offline
              crumble @bmarkus
              last edited by

              @bmarkus you may need better and calibrated sensors, if you need exact values. I am not trusting my DHT-22 soldered to a PyTrack as well. DeepSleep will help against the heat form the ESP32. There will be no significant heat problems, if your LoPy wakes up every n minutes, measures, sending data and go back to DeepSleep. If you are using the normal sleep methods, the LoPy is still handling WiFi and and other stuff. This will heat up the whole system.

              bmarkusB 1 Reply Last reply Reply Quote 0
              • bmarkusB Offline
                bmarkus @crumble
                last edited by bmarkus

                @crumble said in PySense accuracy:

                @bmarkus you may need better and calibrated sensors, if you need exact values.

                If I have a dedicated sensor board I expect to have usable / trusted values provided. Otherwise why to use a sensor board? Temp measurement inaccuracy is far from acceptable.

                I have a LoRa GPS MOTE where even the MCU's built-in temp sensore provides accurate measurement with less than 1 Celsius difference to other sensors.

                1 Reply Last reply Reply Quote 0
                • D Offline
                  dbrgn
                  last edited by

                  What might help in a future version is a cutout around the sensor, and removing any groundplanes. This is what some of the manufacturers recommend in their datasheets, here from the SHT21:

                  alt text

                  alt text

                  I'm using this design for our iC880A backplane and it seems to work nicely.

                  When doing environmental sensing, a sensor disconnected from the electronics (e.g. through a cable or flex-PCB) would probably be the better option.

                  1 Reply Last reply Reply Quote 0
                  • catalinC Offline
                    catalin
                    last edited by

                    Hi guys,
                    We have investigated the temperature an humidity problems from the sensor mounted on Pysense.
                    First the temperature sensor, it's constructed to measure the temperature of the thermal paddle on the bottom of the chip which is connected to the ground plane. With in IR thermometer, I could prove that the PCB temperature is the exact one indicated by the sensor. On an ambient of 25 deg C, the sensor indicates 31-32 deg C. We'll try to improve this by isolating the ground plane from the thermal paddle, in a next Pysense release.
                    However, keep in mind the Silicon Labs Si7006 sensor used, has a precision of +/-1 deg C, and +/-5% humidity (RH).
                    Regarding Humidity, if the temperature is compensated to the Ambient one, then using Magnus formula: https://en.wikipedia.org/wiki/Dew_point#Simple_approximation,
                    "For every 1 °C difference in the dew point and dry bulb temperatures, the relative humidity decreases by 5%, starting with RH = 100% ...."
                    In @bmarkus case, T_sensor - T_ambient = 5.5deg C, and the RH_sensor is 38.3%, this means the RH for T_ambient of 25 deg is 38.3/(0.95^5.5)=50.7% RH, which is close to the 47% measured by the reference sensor.
                    Furthermore, there are 2 application notes from Silabs
                    https://www.silabs.com/documents/public/application-notes/AN1026-Si70xx-Temp-Sensor-Designers-Guide.pdf
                    https://www.silabs.com/documents/public/application-notes/AN607.pdf
                    Regarding, AN1026, we are using FR4 for the PCB, and the constants are already computed.
                    I've tried to make a temperature compensation model for Pysense, to find real ambient temperature. It's doable for a static process (start *py board and keep it powered), but for deep sleep cycles and using FiPy with multiple heat sources (ESP+LTE) this becomes impossible.

                    Catalin,

                    Have you checked out our docs for the answer? (Now with an easy search function) https://docs.pycom.io
                    Check out our newly revamped device management platform, Pybytes! https://pybytes.pycom.io/

                    catalinC 1 Reply Last reply Reply Quote 2
                    • catalinC Offline
                      catalin @catalin
                      last edited by catalin

                      Hi guys,
                      You could use a simple temperature offset to correct SI7006A20 readout temperature, taking into consideration your application sleep regime.
                      So, start your app (transmit data, do go_to_sleep), and measure temperature, let's say you have 30 deg C, and your ambient is 23, so you have a 7 deg offset. Let the board enough for the ambient to transfer (at least 30 min). Use this offset to compensate temperature for the future readings.
                      Try this setup, in a different ambient (outside, or in the fridge), but also for at least 30 mins. The offset method should offer +/-1 deg of precision.
                      In my experiments, I've obtained 2 deg offset, for a simple python script which wakes up LoPy every 5 mins, and stays active 30 secs(sending some data over Wifi). This worked both indoors (24 deg) and outdoors (8 deg), within 1 degree of error.

                      Catalin,

                      Have you checked out our docs for the answer? (Now with an easy search function) https://docs.pycom.io
                      Check out our newly revamped device management platform, Pybytes! https://pybytes.pycom.io/

                      J 1 Reply Last reply Reply Quote 0
                      • J Offline
                        jimpower @catalin
                        last edited by

                        @catalin This what I have done and the readings seem to be pretty accurate with other sensors Im using. I have adjusted to 75% of the sensor reading which seems to keep its output to within 0.5 of a degree either way of other sensors I have in the test lab.

                        catalinC 1 Reply Last reply Reply Quote 0
                        • catalinC Offline
                          catalin @jimpower
                          last edited by

                          @jimpower Just to be sure I've understood.
                          So, you have another, probably external Temperature sensor, for which you used a constant offset as compensation method?
                          Still, I'm not getting what's the "75%" about.

                          Catalin,

                          Have you checked out our docs for the answer? (Now with an easy search function) https://docs.pycom.io
                          Check out our newly revamped device management platform, Pybytes! https://pybytes.pycom.io/

                          J 1 Reply Last reply Reply Quote 0
                          • J Offline
                            jimpower @catalin
                            last edited by

                            @catalin Hi, Sorry should have been more specific. I also thought that the offset by -7 was right by calculations however as the temp changes the discrepancy between the external temp sensor and the pysense board would increase. I have found that if you use a percentage method the discrepancy stays within half a degree either way.

                            temp1 = (mp.temperature()-7)

                            temp1 = (mp.temperature()*0.75)

                            hope this made more sense :)

                            1 Reply Last reply Reply Quote 0
                            • A Offline
                              asone
                              last edited by

                              @catalin Was this fixed in newer versions of the PySense?

                              1 Reply Last reply Reply Quote 0

                              Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                              Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                              With your input, this post could be even better 💗

                              Register Login
                              • 1 / 1
                              • First post
                                Last post

                              Pycom on Twitter

                              Pycom