Weathershield Temperature Accuracy?

Started by someburner, March 12, 2015, 08:28:16 AM

someburner

Hi,

I'm fairly new to Moteino, but I've been messing around with with a weather shield and I've noticed my readings are off by quite a lot. Right now I have the Weathershield stacked on top of an R4 with pins GND, VIN, 3.3, A7, A5, A4, and A3 soldered. Vsrc is a 9v battery. I want it to monitor the temperature in a heated room and the SI7021 and BMP180 are both reading temperatures that are about 10 deg F greater than they should be (reading low 90s, mercury thermometer says high 70s). I put it outside for a while (around 52 F) and the readings seemed to be accurate. I have it sleeping for 30 seconds between reads.

Any ideas? I've tried running it on usb and still get high temps.

Felix

Not sure, I have one in my mailbox. When the sun shines on the mailbox the temp is much higher because the mailbox heats up. Humidity might play a role as well. There are 2 sensors on it, both can report temperature but the si7021 is the more accurate of the two. BMP180 can also report temperature. Read it using both and compare. There must be some factor that affects it to read a higher temp. Ensure there is nothing on the Moteino or around that heats up and radiates heat on the WS PCB/gnd plane.

TomWS

Quote from: someburner on March 12, 2015, 08:28:16 AM
Hi,

I'm fairly new to Moteino, but I've been messing around with with a weather shield and I've noticed my readings are off by quite a lot. Right now I have the Weathershield stacked on top of an R4 with pins GND, VIN, 3.3, A7, A5, A4, and A3 soldered. Vsrc is a 9v battery. I want it to monitor the temperature in a heated room and the SI7021 and BMP180 are both reading temperatures that are about 10 deg F greater than they should be (reading low 90s, mercury thermometer says high 70s). I put it outside for a while (around 52 F) and the readings seemed to be accurate. I have it sleeping for 30 seconds between reads.

Any ideas? I've tried running it on usb and still get high temps.
You might look into how much time you give it to wake up and stabilize before taking a reading.  As an experiment, take two readings, 1/2 second apart.  See if there is any change between the two sets of readings - if stabilized, there won't be, if not then you'll know how to proceed.

Tom

someburner

I tried isolating the WS board some by taking it out of a 'shield' arrangement and separating it from the Moteino with some short wires. Seems to have helped somewhat. I'll do some more tests later and report back. I still need to check the accuracy of the thermometer with an ice bath. I now have it suspended in air which I believe is helping as well.

I took the two measurements half a second apart and they were pretty close, within a few hundredths of each other.

jarrods

So I have been doing a bunch of testing with this shield and using wireless programming. I am noticing a temp increase after programming is complete (~1/2 a degree). So instead of stacking the shields directly on top of each other I am overlapping only one side. This seems to have helps with that issue and increases airflow so it appears to respond faster to temp changes.

The other "issue" is that the 2 temp sensors don't agree. they are almost always 2-3 degree different. Has anyone else seen this? I know the Si7021 is supposed to be factory calibrated and the datasheet says +/- 0.4c. The BMP180 is +/-1.0c so I could see a 1.4 degree difference but not 3 degrees.

This is from the sensor just now (11:10pm). Temp is still falling
Si7021:63.68
BMP180:61.14

This morning ~ 6:20am - Temp was stable (sun just came out temp rising)
Si7021:60.18
BMP180:57.33

arround 1pm today(~peak for the day ):
SI7021:76.76
BMP180:74.60

This sensor is in a solar shield and the solar shield is not in direct sunlight. I am wondering if the case of the sensor is making a difference. Black plastic vs shiny metal?

For now I think I am just going to stick with the SI7021 temp.

Jarrod

Felix

I believe the BMP180 is primarily a barometer and secondarily a thermometer. Also the specs on the BMP180 temp readings are not as high grade as the Si7021 which is also a more expensive sensor. So while in my lab tests the temps are pretty close, I would not be surprised if the sensors are reacting differently in the outside. In fact I always got temp+hum from the Si7021 and pressure from BMP180.

kobuki

Sorry for resurrecting an old thread, please move it to a separate one if you find appropriate, but I thought it's related.

I've found my 2 old weathershields I almost forgot about. Fired one up with the latest LPL example code to see if it works. I sandwiched a Moteino on top of it. It's hanging at the edge of my desk on the USB cable to decrease the thermal inertia of the setup. The problem is, it consistently shows about 2 C° more than the Davis weather receiver next to it and 2 other sensors (1 digital and an oldschool analog one). Humidity is also off by -2% compared to the Davis unit. That one uses an SHT11, comparable accuracy. This variant also has the BMP180 and its temps are consistently about 0.3°C below the Si chip, so show around the same excess temps.

Is that normal? Should I do more tests, try to decouple the shield from the mote? Do I obviously have a faulty sample? I haven't tried the other one yet.

Felix

Ive tried the HDC1080 which is a drop in replacement (but different library) for the Si7021. It has somewhat different specs both in accuracy and electrically.
I've noticed a difference of a few degrees between the HDC and the Si7021 (both in same room). I cannot really tell which is more accurate.

I know both have heating elements which are supposed to dissipate humidity and prepare the sensor for a better measurement, as stated in the datasheets. Temperature is influenced by humidity, but I have not tried doing that.

Other than that it's hard to say if the hardware is faulty, my feeling is it's not, there seems to be consistency between the Si7021 sensors, when I place them next to each other they are very close in readings, given the same/identical setup and code.

If the sensors were to be in fact degraded (vs just giving different readings) I would hypothesize the following possible conditions, factoring in that the die is exposed:

- bad to start with from the distributor (very unlikely, these come from digikey/mouser, not china/alibaba)
- stored improperly until assembly (no)
- damaged during assembly (I don't think so, although the pickup head touches the sensor, and the exposed die is underneath the top surface but should not be impacted by the pickup vacuum)
- damage during reflow (can't think of why this could happen, the reflow oven is a very temp-stable 3 stage professional reflow oven)
- damage during testing (can't think of why this could happen)
- damage during shipping (very unlikely)
- damage during soldering or handling by us or the end user (static ... but such an elusive thing to test or verify, never seen this proven on any board I made)

I think the theory that the readings are just calibrated differently might hold more water than anything above. Someone mentioned they just subtracted the obvious difference in readings to align to other sensors they have and called it good. I know that's not ideal but ... not sure what else is better other than moving to another sensor like the HDC.

Getting another Si7021 breakout board from a reputable maker, and comparing that to the WShield readings, would be a good test in eliminating some speculation about what I mentioned above.

kobuki

Thanks for the extensive answer, Felix. I'll try the other one as well and compare the readings on a longer run. I rearranged the mote and the shield so they are perpendicular to each other, using a 90° pin header. It seems to have shifted the sensor values closer to the other ones in the room. Is there something like a settling time for these parts? They were sealed in the antistatic bag for about a year.

I'm observing something else, too. After plugging in the mote (using an FTDI interface), the temps start to increase gradually. Started with 25.8°C and it's already at 26.3°C now in just about 2 minutes. (Then settled at 26.5°C.) The BMP180 follows it with the usual 0.3°C offset. What's going on? Something is heating the shield? I'll use cables to move the shield farther away from the mote later to see if it helps. Attaching a photo of current test arrangement.

Felix

Oh you know what, you must have one from the early batches which had the white filter on. Remove that and see what the readings are. That's supposedly protecting from dust and such, but I think that has an effect on the readings from what I recall others saying.
I would expect settling time of about 30 seconds or so, but that really depends on the environment. The PCB is designed with that in mind and the copper fills around the sensor are removed to reduce any heating effect from the PCB itself, which in fact should be very minimal anyway since this is very low power. You being around the board, will cause readings to change i can tell you that, body heat, breath etc.

kobuki

Yeah, it's an early board. It still has the 10k R instead of the 1k one for the mosfet... I'll remove the cover and see what happens. It is sitting 2m behind me to avoid my influence on the temps.

kobuki

After 2-3 days it seemed to have stabilized and shows acceptable values. Maybe rehydration helped or some kind of other misalignment cleared. Whatever.

Felix, are you planning to produce more of the version with the pressure sensor soldered? It would be very convenient for a series of prototype devices I'm preparing.

Felix

Hmm, not unless I can find a reliable source for BMP180, which is actually discontinued. Most people seem to just care about T/H.
Nobody seems to have stocks right now, Mouser has some on order so I may preorder some and assemble a few panels with the BMP180.

kobuki

Ah, too bad. What about the newer BMP280 or BME280? The latter one has an RH sensor as well. Would these require big changes in the design?

Felix

They are more expensive, they are a different layout. So yes, major changes, plus a new library. We discussed this before that we don't appreciate the changes Bosch made, nothing backwards compatible. I said I would never again use Bosch parts in new designs.