Multiple i2c Baramoters' readings vary widely when connections are swapped.

Following the advice from “how-tos” in this forum, I connected 3 BMP 180 barometers in a circuit (to measure a pressure ramp in a wind-tunnel) using a CD74C4067E mux. To calibrate them, they were left without wind for several hours and the readings were an incredible +/- 15% between the sensors; contrary to Bosch’s claims of much higher accuracy. Suprisingly, connecting each directlty to SEPARATE Arduinos, the variation is only +/- 0.08%. Is my circuit design flawed? (see attached schematic)

Furthermore, switching positions, a given sensor’s readings may jump +/- 15% from it’s readings in the previous position, but NOT necessarily similar to the sensor it replaced. I’ve mixed and matched 5 sensors with no apparent pattern - any ideas?

Note: All wires are the same guage and length and the sensors are only 5cm apart when mounted in the (very small) tunnel. Also, someone recommended snipping the pull-up resistors from the sensor’s breakout boards - is that a good idea?

Schematic attached.

It could be that you need those pull-up resistors on the SDA lines.
Check this out: http://www.egr.msu.edu/classes/ece480/capstone/spring13/group08/documents/dan.pdf

Too bad you didn't buy BMP183 modules. It would have made your life easier.

belwood:
Following the advice from “how-tos” in this forum, I connected 3 BMP 180 barometers in a circuit (to measure a pressure ramp in a wind-tunnel) using a CD74C4067E mux. To calibrate them, they were left without wind for several hours and the readings were an incredible +/- 15% between the sensors; contrary to Bosch’s claims of much higher accuracy. Suprisingly, connecting each directlty to SEPARATE Arduinos, the variation is only +/- 0.08%. Is my circuit design flawed? (see attached schematic)

Is your graphic correct? Is shows that you are NOT powering the digital portion of the Device? VDDD is disconnected?

VDDA is the power supply for the Analog section. They are separated so that as a design option you could connect the VDDA to a ‘cleaner’ power. I am surprised that they function at all.

Are you going to use all 16 possible sensors? If not you could eliminate the 4067 and use 3 output pins of the YUN to act as chip selects. Just connect to your ‘disable’ pins to XCLR, hold XCLR low to disable each device. Only have one of your chip Select Pins High at a time.

Chuck.


Check out my Kickstarter Project Memory Panes an expansion RAM Shield for Mega2560’s. It adds 1MB of RAM for those projects where 8KB is not enough.

Thanks for the details. I'm afraid I'm new to Fritzing - the library didn't have the BMP180 so I used the 085 and got sloppy. The Qkits BMP 180 only has one VIN: http://www.qkits.com/moreinfo.cfm/GY-68-BMP180.

Yes, I'm not using all 16 pins so I'll try the 3 output pins as you suggested - fewer chips are better! Thanks.

Now I'm going to look at the new BMP183 modules too -- I love suggestions that make my life easier.

Adafruit sells a 3.3/5V ready breakout board for $10. I have one and it works well. It's the same exact sensor but with an SPI interface. So you can get rid of your multiplexor.

edit: On the other hand, you've already got this hooked up with the MUX. You're probably very close to getting it working.

Hi belwood

I have a very similar problem and is very interested to hear how you resolve yours:

Regards
Kenneth