Hacker News new | ask | show | jobs
by josecastillo 2556 days ago
Weirdly coincidental timing on this! I've been working on a PCB design (FeatherWing form factor) to track weather data on my hikes, making use of a BME280 and a GPS module. First revision of the board[1], I discovered that the sensors started out accurate, then drifted up to a steady 3° above ambient. Probably because the GPS module was heating up. So last night I found myself reading up on design considerations for temperature sensors [2], including specific things like the cutout you have on the left side of this board.

I'm guessing you designed this — any advice as I embark on designing a second revision of my hiking log?

[1] https://twitter.com/josecastillo/status/1134128199972130816 [2] http://www.ti.com/lit/an/snoa967a/snoa967a.pdf

3 comments

Jose - I have done a few designs for my current employer using the BME280 for environmental sensing. I've found it a little sensitive to heat, both from the environment and itself. There's a good resource from K&R Smith[1] about comparing the sensor to others and there's some discussion about how to set up the sensor to minimize self-heating. Might be worth looking into!

Additionally, when I do my designs, I place the BME280 sensor as far away from other components as possible (I see it is close to a SOIC chip on your board) and I route a cutout in the board around the sensor to reduce any heat conduction from the board. I also ensure that I have no power planes on the little resulting "island" PCB, and use small traces (with local decoupling) to further reduce any conductive heat. See the image in [2] for an example of what I am talking about.

Another alternative I pursued in situations where convective heat was an issue is to stick the sensor on a little remote board and use an off-the-shelf wire to connect the two (check out the Sparkfun Qwiic wires[3])

Overall you want to increase airflow around the sensor as much as possible so leaving it "hanging out" somewhere is the best approach to getting accurate measurements.

I hope that helps!

[1] http://www.kandrsmith.org/RJS/Misc/Hygrometers/calib_many.ht...

[2] https://www.instructables.com/id/How-to-Measure-Temperature-...

[3] https://www.sparkfun.com/products/14427

Hi Joey - yes, this is one of our boards. :-)

Are you sure it's the GPS module - 3 degrees sounds a lot for that? I'd try to take some measurements to confirm it before changing anything.

Which Feather board are you using?

I'd been planning to use it with the Feather M0 Bluefruit, but for now I'm testing with an M0 Express with one of these LED displays next to it [1] on a board doubler. Good to know that this is more temperature rise than you'd expect to see; I'll have to confirm that (and measure the thing's current draw, which I have not had a chance to do yet). Thanks!

[1] https://www.adafruit.com/product/3132

The BME280 is not particular suited for ambient temperature measurements. It's for accurate and fast pressure and humidity sensing. Quote from the datasheet about the temp sensor: Its output is used for temperature compensation of the pressure and humidity sensors and can also be used for estimation of the ambient temperature. You will get the temperature of the sensor rather than that of the environment. The tiny BME280 is thermal coupled to the board and also heats itself up during repeated measurements. For accurate ambient temperature you could use a DTH11 or DHT22. These come in plastic housings to isolate them from the surroundings and provide better airflow.