SparkFun Electronics Commentsurn:uuid:214d0e4e-f1b1-d287-ce26-ac5b4c9f82492015-03-03T15:48:08-07:00SparkFun ElectronicsCustomer #616422 on SEN-09694 - Barometric Pressure Sensor - BMP085 BreakoutCustomer #616422urn:uuid:c3abf918-e4a9-79a7-ff14-157b1a653e852014-11-11T06:08:50-07:00<p>i didn&rsquo;t read all the commets, but anyway i found out that in the library there is an error
it&rsquo;s even easy to find out
if you are going to decomment the line to print AC1 AC2 etc parameter, you will find out that is giving you unsigned results !!! instead, AC2 AC3 Mb Mc are signed &hellip; and this is even enlighting because are too big numbers (in the examples AC2 is -934 and instead i got 64519 that is two&rsquo;s complemented !!!)
please anyone knows how to fix it using this library?
ore are you suggesting to write down the code from the biginning ?
thanks</p>Kamiquasi on SEN-09694 - Barometric Pressure Sensor - BMP085 BreakoutKamiquasiurn:uuid:a3673bb5-0532-a4f9-1f6a-abf7f4c999672013-04-09T13:44:40-06:00<p>It has been replaced by a newer revision. From the description:</p>
<blockquote><p>Replacement: <a href="https://www.sparkfun.com/products/11282" rel="nofollow" >SEN-11282</a>. We&rsquo;ve made some minor hardware changes including the addition of a solder jumper to disable the I2C pull-ups. This page is for reference only.</p></blockquote>EPO on SEN-09694 - Barometric Pressure Sensor - BMP085 BreakoutEPOurn:uuid:17055eb5-fcd9-b481-0b01-4c453cce865c2013-04-09T13:31:55-06:00<p>why the retirement?</p>Customer #357639 on SEN-09694 - Barometric Pressure Sensor - BMP085 BreakoutCustomer #357639urn:uuid:c46826f4-2d41-0431-c763-becac1e07bf72012-09-04T01:47:07-06:00<p>hi , can someone tell me why they describe this sensor with an accuracy of 0.03 hPa ,but if you check the Bosch sensor datasheet is declared +/- 1.0 hPa &hellip;.. where is the truth ??</p>Customer #357639 on SEN-09694 - Barometric Pressure Sensor - BMP085 BreakoutCustomer #357639urn:uuid:3cb64e02-1b2a-e57f-a7aa-9964ee54e43e2012-09-04T01:44:11-06:00<p>hi</p>Miskatonic on SEN-09694 - Barometric Pressure Sensor - BMP085 BreakoutMiskatonicurn:uuid:900fe0f6-42c2-bd2e-9064-0a51a052c19e2012-08-28T21:51:23-06:00<p>Jim this code works great, Thanks!</p>rogeri on SEN-09694 - Barometric Pressure Sensor - BMP085 Breakoutrogeriurn:uuid:49b129cd-0c04-4137-02c9-c10d41b759792012-08-19T09:31:50-06:00<p>I got this running on the FPGA of a National Instruments sbRIO 9606 embedded board.</p>
<p><a href="https://decibel.ni.com/content/docs/DOC-23854" rel="nofollow" >https://decibel.ni.com/content/docs/DOC-23854</a></p>KiwiJohn on SEN-09694 - Barometric Pressure Sensor - BMP085 BreakoutKiwiJohnurn:uuid:7c689498-49d8-7a46-253f-b914096f37082012-08-01T18:16:15-06:00<p>.</p>MikeGrusin on SEN-09694 - Barometric Pressure Sensor - BMP085 BreakoutMikeGrusinurn:uuid:396084fe-d783-9f0a-de43-258220a40d6d2012-07-23T13:53:32-06:00<p>We&rsquo;ve confirmed this as an issue and are working on a revised board. Note that the current board does still function properly, however there may be a slight penalty in the highest resolution of the data, thus the revision.</p>mikkelbg on SEN-09694 - Barometric Pressure Sensor - BMP085 Breakoutmikkelbgurn:uuid:e22887e4-4876-a24b-768d-5dc5c33e942d2012-07-23T13:30:52-06:00<p>The schematic show VDDA and VDDD connected correctly, but looking at the eagle file for the board it seems that pin 4 (VDDD) isn&rsquo;t connected as flyingjones found.</p>MikeGrusin on SEN-09694 - Barometric Pressure Sensor - BMP085 BreakoutMikeGrusinurn:uuid:42175a05-d508-0491-2d3e-102407b648202012-07-23T11:53:46-06:00<p>You&rsquo;re right, it&rsquo;s a gas-pressure sensor with a range and sensitivity optimized for atmospheric pressure, hence &ldquo;barometric&rdquo;. We also call it this to differentiate it from our force sensors and load cells, which are also commonly called pressure sensors.</p>zosguy on SEN-09694 - Barometric Pressure Sensor - BMP085 Breakoutzosguyurn:uuid:fa6fdc8c-c27c-e814-be01-a109f7589e8f2012-07-22T10:55:28-06:00<p>I think it&rsquo;s worth noting that this is not actually a barometric pressure sensor. It is simply a pressure sensor. It will report atmospheric pressure, which varies not only with the weather but with altitude. To convert this value to barometric pressure (which is atmospheric pressure adjusted for altitude) you must apply the formula in section 3.7 of the data sheet. If you apply that formula before you report your value, it should match up well with values reported by your local news station.</p>pmatil on SEN-09694 - Barometric Pressure Sensor - BMP085 Breakoutpmatilurn:uuid:5a99dddf-18a4-69f7-72dd-291e80db4ae32012-07-19T22:54:07-06:00<p>I wrote my C code in linux x86 machine. The pressure value vas initially way off so I had to guess what type of variables I use and where to cast them. In the end I got a pressure value that seems to be correct (I have no way to know for sure except the local weather station which is pretty close). I can&rsquo;t paste the code here as it&rsquo;s too long.</p>Customer #38079 on SEN-09694 - Barometric Pressure Sensor - BMP085 BreakoutCustomer #38079urn:uuid:65eac554-6ac9-1c89-8237-a42dbd0d739d2012-07-18T14:31:42-06:00<p>Ok, found the error:
line 84 should be:
x2=$(echo &ldquo;scale=4; ($b1*($b6<sup>2</sup>)/2<sup>12</sup>)/2<sup>16</sup>&rdquo; | bc)
I forgot to divide with 2<sup>16</sup>.</p>Customer #38079 on SEN-09694 - Barometric Pressure Sensor - BMP085 BreakoutCustomer #38079urn:uuid:5ac8a331-5114-aa6d-1f80-08e6404ae95e2012-07-18T14:04:07-06:00<p>I&rsquo;m having the same problem as hazmat - temperature reading is ok, pressure reading is too low (about 24 kPa).</p>
<p>my (bash) code: http://pastebin.com/H0XexiTY</p>
<p>output:
ut=0x6e2a
ut=28202
x1=6982.2070
x2=-2409.2948
b5=4572.9122
t=286.3070
temp=28.6307
&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;-
up=0xacd3e0
up=11326432
up=353951.0000
b6=572.9122
x1=2.1520
x2=-297.6457
x3=-295.4937
b3=80293.0126
x1=-1019.2410
x2=440576.0942
x3=109889.7133
b4=148778.8297
b7=1710362421.2500
p=22992.0133
x1=8066.2851
x1=373.9223
x2=-2581.0583
p=23091.0048</p>Maxwellfire on SEN-09694 - Barometric Pressure Sensor - BMP085 BreakoutMaxwellfireurn:uuid:aec3036d-8008-e279-fda5-9b1dc79ca1602012-07-16T09:33:42-06:00<p>Anyone know how fast the sensor can be read without getting repetitive data.In other words, how fast does it sample the air.</p>Customer #312827 on SEN-09694 - Barometric Pressure Sensor - BMP085 BreakoutCustomer #312827urn:uuid:3b32f8a8-9235-753b-7e96-501831279d782012-07-14T04:15:13-06:00<p>Hi
I have a Picaxe 28x2 and want to use this barometric sensor (BMP085).
The wireing is not a problem, but I cannot find the picaxe code for this.
I all ready use a realtime clock on the I2C bus.</p>
<p>The code I use to read the clock is:
readi2c 0,(seconds,mins,hour,day,date,month,year)</p>
<p>but what do i write to read the raw value from the barometric pressure?</p>neokio on SEN-09694 - Barometric Pressure Sensor - BMP085 Breakoutneokiourn:uuid:d5ac088e-0e49-867e-ba89-a2ca1810093d2012-06-26T23:08:07-06:00<p>Awesome, thanks! That library looks like it was put together with much more thought. In my tests, the code I posted above produces accurate temperature and altitude results. The Weather Board (Firmware 1.2) BMP085 library produces accurate temperature, but my sea level altitude (61 meters) is incorrectly reported as 1655 meters. I&rsquo;ll post my findings if I find a solution :)</p>MikeGrusin on SEN-09694 - Barometric Pressure Sensor - BMP085 BreakoutMikeGrusinurn:uuid:d4c0b2d6-599f-cd9d-1611-2dd38e7675182012-06-26T10:47:07-06:00<p>Thank you for the feedback. Arduino 1.0 brought many welcome improvements, but also broke a lot of existing software. We&rsquo;re still working on updating everything and will continue to do so. In the meantime, you might take a look at the firmware for the <a href="http://www.sparkfun.com/products/10586" rel="nofollow" >USB Weather Board</a>, which includes a working Arduino 1.0+ library for the BMP085.</p>neokio on SEN-09694 - Barometric Pressure Sensor - BMP085 Breakoutneokiourn:uuid:3ce760b7-00bb-e01b-72ba-2e63cde4dfd12012-06-26T01:29:59-06:00<p>Immense gratitude to the makers of the world who take the time to explore and share their findings. After 13 hours of searching/dissecting/migrating posted snippets of code, I discovered that NOT ONE functional demo of the BMP085 for Arduino 1.0+ exists. Dysfunctional findings include:</p>
<ul>
<li>the sparkfun tutorial @ http://www.sparkfun.com/tutorials/253</li>
<li>http://mitat.tuu.fi/?p=78</li>
<li>http://interactive-matter.eu/blog/2009/12/05/arduino-barometric-pressure-sensor-bmp085/</li>
<li>http://bildr.org/2011/06/bmp085-arduino/</li>
</ul>
<p>I was finally able to successfully debug the last article (@ bildr.org), mostly by fiddling with argument types. So if you replace the code in this otherwise awesome quickstart guide with this code &hellip; <a href="http://ilabbali.com/code/Arduino_BMP085.cpp" rel="nofollow" >http://ilabbali.com/code/Arduino_BMP085.cpp</a> &hellip; the BMP085 works great with Arduino 1.0+.</p>
<p>I tried posting the code here, but the sparkfun WYSIWYG parser totally mangles it.</p>Mac Stevens on SEN-09694 - Barometric Pressure Sensor - BMP085 BreakoutMac Stevensurn:uuid:a7851715-bd22-1899-3b24-d365b8865ffb2012-06-12T18:43:48-06:00<p>I tried the formula from the datasheet &ldquo;B3 = ((AC1<em>4+X3) [left shift] oss + 2) / 4
&rdquo;, which through operator precedence(http://en.wikipedia.org/wiki/Operators_in_C_and_C%2B%2B#Operator_precedence) is &ldquo;B3 = ((AC1</em>4+X3) [left shift] (oss + 2)) / 4
&rdquo; , and it gave results that were very wrong. Using the formula here (http://mitat.tuu.fi/?p=78) which you have incorrectly copied in case 3, worked well for me.</p>
<p>I am now wondering if I use the datasheet formula with parantheses as you have would work.</p>Mac Stevens on SEN-09694 - Barometric Pressure Sensor - BMP085 BreakoutMac Stevensurn:uuid:6190673a-457d-b73e-b136-20d11511c4792012-06-12T18:42:48-06:00<p>I tried the formula from the datasheet &ldquo;B3 = ((AC1*4+X3)</p>Mac Stevens on SEN-09694 - Barometric Pressure Sensor - BMP085 BreakoutMac Stevensurn:uuid:81f8ceba-e869-9013-cfb5-d7becc4c5c2b2012-06-12T18:36:02-06:00<p>I tried your values. Actually, you omitted ac5, so I used 24862 (if I remember right). I got about the same values as using my own parameters.</p>
<p>Here are values from two of my sensors:
// sensor 1
//m_ac1 = 7400;
//m_ac2 = -1068;
//m_ac3 = -14497;
//m_ac4 = 33662;
//m_ac5 = 24862;
//m_ac6 = 21258;
//m_b1 = 5498;
//m_b2 = 55;
//m_mb = -32768;
//m_mc = -11075;
//m_md = 2432;</p>
<p> // sensor 2
//m_ac1 = 8479;
//m_ac2 = -1394;
//m_ac3 = -14477;
//m_ac4 = 33727;
//m_ac5 = 25258;
//m_ac6 = 22936;
//m_b1 = 5498;
//m_b2 = 78;
//m_mb = -32768;
//m_mc = -11075;
//m_md = 2432;</p>Mac Stevens on SEN-09694 - Barometric Pressure Sensor - BMP085 BreakoutMac Stevensurn:uuid:d5faa2af-eadb-6e7b-28cf-082a62f0349e2012-06-12T18:27:31-06:00<p>I used the formula from the datasheet and got pressures that were way off.</p>
<p>Btw, the datasheet formula is &ldquo;B3 = ((AC1*4+X3)</p>Jamo on SEN-09694 - Barometric Pressure Sensor - BMP085 BreakoutJamourn:uuid:99b52148-2f30-07b6-c361-b975c1c08ed02012-06-11T18:51:04-06:00<p>The &lt; character is only stripped from code blocks, not from all comments. The full documentation is <a href="http://daringfireball.net/projects/markdown/syntax" rel="nofollow" >here.</a></p>
<p>PS. If you use reddit, it is the same syntax.</p>Steve1170 on SEN-09694 - Barometric Pressure Sensor - BMP085 BreakoutSteve1170urn:uuid:ee598f1a-d969-f098-4cc7-af3e6f2c1f402012-05-16T00:55:35-06:00<p>After looking around, I found the code at http://mitat.tuu.fi/?p=78 &hellip;; however, it&rsquo;s not compatible with Arduino 1.0.</p>
<p>I am starting to research what I need to change to make it compliant with the new IDE. Hopefully, it won&rsquo;t take much&hellip;</p>Steve1170 on SEN-09694 - Barometric Pressure Sensor - BMP085 BreakoutSteve1170urn:uuid:dee482dc-71db-218d-98c8-3d190911ba332012-05-16T00:25:29-06:00<p>Unfortunately, this does not work with Arduino 1.0 code, as is, due to changes in Wire.send() &amp; Wire.receive()&hellip; for those new to Arduino, change all the above to:</p>
<p>Wire.write() &amp; Wire.read().</p>
<p>It will save the headache of going through the code twice.</p>MattN on SEN-09694 - Barometric Pressure Sensor - BMP085 BreakoutMattNurn:uuid:8fb82779-9a1f-6db4-9348-c9482675a6a82012-05-12T02:33:56-06:00<p>My replacement part arrived from Watterott a couple of days ago. I&rsquo;ve just got the chance to wire it all back up and everything now seems to work fine. Cool! Thanks.</p>garlinto on SEN-09694 - Barometric Pressure Sensor - BMP085 Breakoutgarlintourn:uuid:f9aa6b03-0973-d3dc-7167-84d2c352f0642012-04-28T14:41:12-06:00<p>I used one of these sensors and 50 ft of 3/8" air compressor hose along with about $10 worth of other parts to make a secondary driveway vehicle sensor. When used with my IR sensor (already hooked up to a fio with an xbee attached), I can tell vehicle direction, i.e. ingress or egress. This sensor has a fast enough response that even a slight bump in pressure is detected at rates faster than 50ms intervals - plenty of time to detect a vehicle rolling over the hose. Really impressed with this sensor!</p>Customer #320118 on SEN-09694 - Barometric Pressure Sensor - BMP085 BreakoutCustomer #320118urn:uuid:4455b5b6-6474-dfe8-6aa9-f21cae3cadc72012-04-25T09:34:59-06:00<p>I am working on two BMP085 sensors.
One of them is used to measure air pressure and the other is used as reference.
I want to get the pressure offset value between these two sensors.
I put them side by side to test the difference but everytime the offset is different.
Anyone knows the reason?
Thank you.</p>udawat on SEN-09694 - Barometric Pressure Sensor - BMP085 Breakoutudawaturn:uuid:afc75c1f-03a4-ad12-e9d7-226bccd40adc2012-04-25T03:37:02-06:00<p>Yes, Infact Bosch&rsquo;s Datasheet clearly mentions the formulae required to get the pressure reading converted to Altitude reading. [Page 15]
In case the above link does not work: <a href="http://www.bosch-sensortec.com/content/language1/downloads/BST-BMP085-DS000-06.pdf" rel="nofollow" >Datasheet</a></p>jbreweral2or on SEN-09694 - Barometric Pressure Sensor - BMP085 Breakoutjbreweral2orurn:uuid:f0341dc3-eab1-4247-6606-54e8b7d22f3d2012-04-16T19:15:38-06:00<p>I got this a day or two ago and have it hooked up to the Arduino. I have tried just about everybody&rsquo;s code examples, and verified the calcs, but the pressure is about 1000 Pa too low. The temperature is correct, though. Suggestions??</p>MattN on SEN-09694 - Barometric Pressure Sensor - BMP085 BreakoutMattNurn:uuid:900ca7a5-dcbc-1467-64db-448c7a4501362012-04-14T12:22:55-06:00<p>OK, email sent. Thanks.</p>MikeGrusin on SEN-09694 - Barometric Pressure Sensor - BMP085 BreakoutMikeGrusinurn:uuid:f77c3c25-d19f-6b5a-f90f-ae0cec9700742012-04-14T11:06:17-06:00<p>Don&rsquo;t sigh, contact SparkFun tech support. We&rsquo;ll be happy to help you out.</p>MikeGrusin on SEN-09694 - Barometric Pressure Sensor - BMP085 BreakoutMikeGrusinurn:uuid:212dec5e-bf59-8550-98b0-00cd866a89be2012-04-14T08:52:14-06:00<p>You can&rsquo;t normally connect multiple BMP085s to the same I2C bus since they all have the same I2C (Wire) address. However you can run additional I/O pins to the XCLR input on each BMP085 to turn all of them off (LOW) except one (HIGH), and then talk to that one.</p>
<p>Remember that the calibration data is different from each device. The example code doesn&rsquo;t handle this by default. You might work around this by re-grabbing the calibration data each time you want to do a reading on a different BMP085, or re-writing the code to save all the calibration data from all connected devices. I know of no existing sketch code to do this, but Google and see what you can find. Good luck!</p>uppie on SEN-09694 - Barometric Pressure Sensor - BMP085 Breakoutuppieurn:uuid:d59a0b9e-3a87-c941-dc23-cdcdd6a1717d2012-04-14T05:36:45-06:00<p>if i want use two sensors,,how the skatch code?? i use arduino mega,,Thanks</p>MattN on SEN-09694 - Barometric Pressure Sensor - BMP085 BreakoutMattNurn:uuid:57cb2de1-5aab-62e9-1ebf-e58e143bfc5d2012-04-14T03:48:30-06:00<p>I&rsquo;m using a Uno to talk to the board, and have tried most of the code examples above to do the I2C - but they all give the same result. I think the only explanation is that the sensor is bad, but I probably can&rsquo;t return it as I can&rsquo;t prove its the sensor at fault and I&rsquo;ve also soldered a SIL header onto it. Sigh.</p>dvdsnyd on SEN-09694 - Barometric Pressure Sensor - BMP085 Breakoutdvdsnydurn:uuid:991103d8-4c63-702c-10aa-176bfd8a36dc2012-04-13T21:11:49-06:00<p>I have read that getting that reading means you have a bad sensor. More than a few people have come across this. What are you using to program?</p>MattN on SEN-09694 - Barometric Pressure Sensor - BMP085 BreakoutMattNurn:uuid:07ceeb57-95d9-ae4b-428b-a2e1ab5410672012-03-25T10:36:57-06:00<p>I&rsquo;m having some trouble with this sensor on my Uno &amp; Maple. When I read the int for the temperature all I&rsquo;m getting out is 0xFFFF - and I&rsquo;m sure I&rsquo;d notice if it was that hot! The calibration data seems to be coming out ok:</p>
<p>Reading Calibration Data
AC1: 6574
AC2: -1087
AC3: -14387
AC4: 33903
AC5: 24939
AC6: 20628
B1: 5498
B2: 57
MB: -32768
MC: -11075
MD: 2432</p>
<p>So I don&rsquo;t think its a simple I2C error. Anyone got any ideas? Thanks.</p>Customer #194337 on SEN-09694 - Barometric Pressure Sensor - BMP085 BreakoutCustomer #194337urn:uuid:ee3956f9-2f15-3082-46c2-a3351219a88b2012-03-23T06:11:31-06:00<p>@Node_0 - The good news is the accuracy is spelled out fairly clearly in the datasheet.</p>
<p>The 0.03hpa that SF is quoting is the noise figure and not the absolute accuracy.</p>
<p>The datasheet quotes that the TYPICAL accuracy is +/- 1.0hpa but can be up to +/- 4.0hpa depending on temp and pressure. See page 6 of the data sheet under the section labeled &ldquo;Absolute accuracy pressure&rdquo; for more clarification. The noise figure of 0.03hpa can be found on page 12, under the &ldquo;ultra high resolution&rdquo; listing.</p>
<p>Hope this helps.</p>bdicken on SEN-09694 - Barometric Pressure Sensor - BMP085 Breakoutbdickenurn:uuid:05987b58-a11c-e807-bb33-91bce1f57cef2012-03-21T07:38:37-06:00<p>I went ahead and did it and it works fine. I am concerned that I have different temperature readings from sensors side by side, but I&rsquo;ll calibrate.</p>
<p>Thanks</p>bdicken on SEN-09694 - Barometric Pressure Sensor - BMP085 Breakoutbdickenurn:uuid:594ccfd5-b86c-670f-d990-061db452385f2012-03-19T20:57:04-06:00<p>I now have both BMP085&rsquo;s connected and the XCLR working. But the values are off. I think I need to run the init before each one to get the calibration values.</p>
<p>Any harm in running
// initialize BMP085 pressure sensor
if (pressure_sensor.begin() == 0)
error(1);</p>
<p>Just before reading them ?
Thanks as always</p>moonrush on SEN-09694 - Barometric Pressure Sensor - BMP085 Breakoutmoonrushurn:uuid:5ca7ecf6-f830-0df9-d347-91c2e294ada62012-03-15T09:39:31-06:00<p>Would this sensor stand up to mild acidic\base or solvent conditions do you think? I&rsquo;m thinking of using it for a torr calculation that is exposed to such environments, only very very lightly, but I would like to know the longevity of such if somebody has used it as such.</p>fundorin on SEN-09694 - Barometric Pressure Sensor - BMP085 Breakoutfundorinurn:uuid:b3e30725-20f5-1083-dfba-d6cf25889ab92012-03-08T10:47:21-07:00<p>Is it possible to use this sensor for both pressure and depressure?</p>Node_0 on SEN-09694 - Barometric Pressure Sensor - BMP085 BreakoutNode_0urn:uuid:26a0bffc-d78e-def1-c631-835fa7ff30312012-03-07T18:59:33-07:00<p>I&rsquo;m curious as to whether this sensor is capable of detecting the pressure changes in a 2U server case.</p>
<p>Let&rsquo;s say I have a full rack (23") 2U server going all the way back,
let&rsquo;s then imagine that the internal compartments of the server are carefully sectioned off and have high flow 80mm fans for the primary induction stage (for HDD cooling), let&rsquo;s say we&rsquo;re using Delta&rsquo;s 80MM FFB0812EHE which according to it&rsquo;s datasheet can produce a pressure differential of 0.24" H20, let&rsquo;s say we have three of those in the primary stage which brings our positive pressure to 0.72" H20, if we convert that to in HG we get about 0.052959 which works out to 179.3 pascals.</p>
<p>However, if as the user pmatil asserts, the accuracy of the sensor is within 1hpa and not 0.03hpa (clarification please?) I&rsquo;m in a conundrum about choosing it.</p>
<p>A 180 pascal pressure differential would probably be at the high end of what these fans could produce, and I&rsquo;m interested in much more fine grained monitoring of the various subsystems airflow over time.</p>
<p>Could someone please differentiate accuracy from resolution as it pertains to this sensor?</p>
<p>Also, while I love the selection of sensors here at SF, I must note a relatively sparse selection of airflow sensors, there is only one anemometer and I'v seen much smaller handheld anemometers available for under $25, if all that is required is a free spinning magnetic rotor and a hall effect sensor, then such a sensor would be very valuable indeed for all sorts of applications.</p>
<p>The only other notable offering is from Modern Device and it uses a different technique which measures electrical resistance vs temperature in order to approximate a wind speed. I believe their product model number is: MD0545 (it&rsquo;s a breakout board) and the chip in question there is the TMP421.</p>
<p>Your time is appreciated</p>3boysdad on SEN-09694 - Barometric Pressure Sensor - BMP085 Breakout3boysdadurn:uuid:5d3a2fb9-1c51-6c62-a398-437cc89abf382012-02-29T08:13:28-07:00<p>Figured out the problem. Using Arduino 1.0 libraries apparently you need to use the Wire.write rather than the Wire.send method to get this guy to work.</p>
<h1>if (ARDUINO >= 100)</h1>
<p> Wire.write(a); // sends register address to read from</p>
<h1>else</h1>
<p> Wire.send(a); // sends register address to read from</p>
<h1>endif</h1>
<p>You might want to adjust the sample Arduino you published in the link above&hellip;</p>Flowmeters on SEN-09694 - Barometric Pressure Sensor - BMP085 BreakoutFlowmetersurn:uuid:bd0c1f71-9a7c-9164-67f3-be067767b7a92012-02-27T05:27:54-07:00<p>Thanks for the post below helix help me greatly as i was really struggling !</p>3boysdad on SEN-09694 - Barometric Pressure Sensor - BMP085 Breakout3boysdadurn:uuid:8798c33a-29bb-61d9-1992-1dcfd19540782012-02-22T21:26:40-07:00<p>trying to get sensor to work for me - I&rsquo;ve tried a number of the code bases posted here for the arduino and with all of them get stuck during the calibration step. specifically around this call (from Sparkfun&rsquo;s code):</p>
<p>ac1 = bmp085ReadInt(0xAA);</p>
<p>as I debug this method it seems to hang in the function bmp085ReadInt() method:</p>
<p> Serial.println(&ldquo;bmp085ReadInt - 1&rdquo;);
Wire.beginTransmission(BMP085_ADDRESS);
Serial.println(&ldquo;bmp085ReadInt - 2&rdquo;);
Wire.send(address);
Serial.println(&ldquo;bmp085ReadInt - 3&rdquo;);</p>
<p>&ldquo;bmp085ReadInt - 3&rdquo; never shows up in the serial output window.</p>
<p>any suggestions? i ordered a couple of more just in case I have a bad one here</p>bdicken on SEN-09694 - Barometric Pressure Sensor - BMP085 Breakoutbdickenurn:uuid:3924bef0-da84-a801-a87a-7453e135d59c2012-02-18T21:11:41-07:00<p>Thank you. That is perfect. I saw that code in there, but didn&rsquo;t quite get it. That makes it clear. I only have about 6 ft between the board and the bottom so I&rsquo;ll adjust accordingly. Thanks for the tips.</p>
<p>Again, thank you for the suggestions.</p>MikeGrusin on SEN-09694 - Barometric Pressure Sensor - BMP085 BreakoutMikeGrusinurn:uuid:4f0321e5-5c0a-8b65-e025-4fa283d3f8d22012-02-18T12:56:18-07:00<p>Some I2C devices allow you to modify the addresses of individual parts, but unfortunately the BMP085 isn&rsquo;t one of them. But if you look at the BMP085 datasheet, section 4.2, it mentions that you can connect two devices to the same bus if you also use the XCLR input to keep one BMP085 silent while you&rsquo;re communicating with the other one.</p>
<p>The USB Weather Board does run an I/O pin to XCLR on the onboard BMP085, so you can turn it on and off with that pin. For the remote BMP085 you&rsquo;ll need to get an extra I/O line down there to connect to XCLR (you might steal one of the otherwise unused lines on the programming header).</p>
<p>Note that you can run into problems driving long wires (more than a few meters) with digital signals including I2C. There are ways around this though, such as reducing the I2C clock speed, and/or using special driver chips to boost the signal. Google and check the datasheets for info. Good luck on your project!</p>bdicken on SEN-09694 - Barometric Pressure Sensor - BMP085 Breakoutbdickenurn:uuid:6395024a-b560-68e4-256d-8756ebad78092012-02-18T11:43:57-07:00<p>Be a bit patient, new to some of the technologies here.</p>
<p>How do I address a second BMP085 sensor ?</p>
<p>I&rsquo;m deploying a sparkfun weather station as part of a water quality initiative. I&rsquo;ve modified the code to work for what we need, but I need to add two more sensors to the package. The one that is causing me the most concern is water depth. The tide drives change in the water level.</p>
<p>I&rsquo;m planning on using a BMP085 inside a collapsible bladder at the bottom of the lagoon, and then measuring the pressure inside the bag as the water level moves up and down. Depth varies from 1 ft to 4 ft.</p>
<p>The board has one BMP085 on it already for the air pressure. So I am adding a second. I can&rsquo;t quite figure out how to address the second sensor !</p>
<p>Any suggestions welcome. Not my most experienced area.</p>UMBC-CheEng on SEN-09694 - Barometric Pressure Sensor - BMP085 BreakoutUMBC-CheEngurn:uuid:188b4568-e640-1d76-7e26-8b31963c60462012-02-17T06:50:03-07:00<p>I know the post is very old, but on page 15 of the Bosch data sheet, they recommend putting 4.7kOhm resistors to Vddd on both SCL and SDA. Looks like they were just following the datasheets recommendations.</p>JonathanP on SEN-09694 - Barometric Pressure Sensor - BMP085 BreakoutJonathanPurn:uuid:0c14d578-4338-effa-23ea-385d5ecc26d12012-01-26T07:48:15-07:00<p>FYI, I was just playing around with the Android SensorManager on my Motorola Xoom tablet and found out that it has the BMP085 on board.</p>hazmat on SEN-09694 - Barometric Pressure Sensor - BMP085 Breakouthazmaturn:uuid:0edb7074-be7d-67a0-ccd1-b18cfce48b6e2011-12-25T18:04:37-07:00<p>I&rsquo;m running into some issues with my code and I hope someone could help. If I hard code the readings and calibration data that is shown on P.13 of the datasheet, I get the results shown in the datasheet, however, when I pull the real data and the real calibration off of the device, the pressure is way low (about 3.55psi, 24,500 Pa). The temperature readings are accurate, and when I change the oversampling, the results I get for pressure are consistent (about the same + expected noise) for oversampling of 0, 1, 2 and 3. I did have to play around with typecasting a bit to get things to match up with the reference code. I&rsquo;d like to experiment with some other calibration data and readings to validate my calculations- at the moment, I have:</p>
<pre><code>AC1=8515
AC2=-1156
AC3=-14476
AC4=34169
AC6=24839
B1=5498
B2=61
MB=-32768
MC=-11075
MD=2432
</code></pre>
<p>Oversampling (for this example) is 2</p>
<p>UT reads as 35405, which calculates to 21.5C</p>
<p>UP reads as 171740 (after the shift for oversampling), which results in a pressure of 24957, or 3.619psi. (way too low for my altitude, about 800ft ASL)</p>
<p>I&rsquo;d appreciate if someone could either run my calibration an readings into their code and see if they get the same, or send me your calibration and readings I could run through my code.</p>
<p>FYI: this is being done in C on a PIC32 on a Digilent Uno32. I do plan to share the code once it works. I&rsquo;ve got a bunch of things running on the same I2C bus under a scheduler I wrote- each sensor can have a different interval and it can do other operations on a different device while the I2C while the pressure sensor is waiting the requisite time.</p>Blacklab1 on SEN-09694 - Barometric Pressure Sensor - BMP085 BreakoutBlacklab1urn:uuid:4ac7d6e6-7523-25ca-6ddb-10b1e25361412011-12-23T02:05:05-07:00<p>I Third this- Too bad they did not use the oval with a space in the middle switch. &ndash;( )&ndash; Then if you need the pull-ups you just drop some solder in the midle to connect the resistors.</p>gregh3285 on SEN-09694 - Barometric Pressure Sensor - BMP085 Breakoutgregh3285urn:uuid:dd404436-5cdd-88e2-f19d-9502248a9cfb2011-12-10T12:21:07-07:00<p>I&rsquo;ve been running my BMP085 off the +5 volt rail inadvertently for over a month. I&rsquo;m not proud of the fact that I can&rsquo;t read a data sheet. But, I will say that it has been working. I did have a strange anomaly come up last night on my weather station, where the BMP085 lives. When the pressure was rising and the temperature was falling, all of a sudden the pressure jumped about 350 Pa and then as the temperature came back up and the pressure fell, the jump reversed itself. Odd. I&rsquo;m going to implement Member #236519&rsquo;s suggestion. Go see KWIAPPLE11 on Weather Underground. That&rsquo;s me.</p>Blacklab1 on SEN-09694 - Barometric Pressure Sensor - BMP085 BreakoutBlacklab1urn:uuid:2e4592ca-2b47-d87c-83a1-fbc7980f84b32011-12-02T05:23:34-07:00<p>That was COOL!</p>Customer #267337 on SEN-09694 - Barometric Pressure Sensor - BMP085 BreakoutCustomer #267337urn:uuid:77688d24-3dec-b445-1e58-8abfd640fec02011-11-17T13:34:10-07:00<p>FYI: I put together cpp library, please see: http://code.google.com/p/bmp085</p>
<pre><code>#include "bmp085.h"
bmp085 BMP085;
void setup()
{
Serial.begin(9600);
BMP085.Calibrate();
}
void loop()
{
BMP085.refresh();
Serial.print(BMP085.pressure);
Serial.print(", ");
Serial.println(BMP085.temperature);
delay(5000);
}
</code></pre>Sabre00 on SEN-09694 - Barometric Pressure Sensor - BMP085 BreakoutSabre00urn:uuid:a7f541c7-67ec-0c8f-fbc6-290dafa695112011-10-20T03:58:22-06:00<p>That is exactly what I did Mike.<br/>
I used their values in my microcontroller, (has a math object) and also in a python script (just to be sure). I have the results printing to screen at the exact points in the code and I am getting the same values as them.<br/>
There must be something I am missing.<br/>
I will look back at the calibration constants again and make sure I am reading and converting them correctly. Also if I am reading UT and UP correctly.<br/>
Its a shame about the calibration constants. In my line of work, if I intend to deploy these I will have to be able to do my own calibrations and adjustments, which would need me to write to those calibration constants. ( that is if I understand the complex process).<br/>
If all else fails I will just have to order an arduino and bite the bullet.</p>MikeGrusin on SEN-09694 - Barometric Pressure Sensor - BMP085 BreakoutMikeGrusinurn:uuid:5e2b9150-1ae1-e3df-e987-e7f86460e5d62011-10-19T19:38:22-06:00<p>A nap is almost always a good idea in these situations. ;) And I don&rsquo;t believe you can overwrite the calibration registers, though I may be wrong about that.<br/>
One thing that helped me was to run the example values in both the datasheet and floating-point paper through my code to see if I came up with the same intermediate and final results as in those papers. This can help narrow down the source of the problem. Good luck!</p>Sabre00 on SEN-09694 - Barometric Pressure Sensor - BMP085 BreakoutSabre00urn:uuid:d96f001c-60b9-9f68-0a1d-9a52fbc9f1c72011-10-19T18:38:47-06:00<p>Thanks Mike.<br/>
After trying to get this to work I took a nap and I did a search for &ldquo;calibrating the BMP085&rdquo; and I came across that paper.<br/>
In there it explicitly says that the 16-bit signed numbers are using two&rsquo;s complement. I suspected that that was used but I was still getting some weird values.<br/>
I will give it a thorough read and tackle it again tomorrow.<br/>
Question?<br/>
Is it possible to write to these calibration constant registers?</p>MikeGrusin on SEN-09694 - Barometric Pressure Sensor - BMP085 BreakoutMikeGrusinurn:uuid:dde88e86-722f-7f44-5124-1af853c30fce2011-10-19T15:39:57-06:00<p>The datasheet has a pretty complete example on the integer math involved (pay attention to the variable sizes and whether they&rsquo;re signed or unsigned). But there&rsquo;s also a paper <a href="http://wmrx00.sourceforge.net/Arduino/BMP085-Calcs.pdf" rel="nofollow" >here</a> on doing all the calculations as floating point, which may be easier to follow.</p>Sabre00 on SEN-09694 - Barometric Pressure Sensor - BMP085 BreakoutSabre00urn:uuid:23f40a08-ce8d-44f7-20c6-21b7f3b2311d2011-10-19T13:39:06-06:00<p>How did you convert your coefficients/constants?</p>Sabre00 on SEN-09694 - Barometric Pressure Sensor - BMP085 BreakoutSabre00urn:uuid:f2354d9d-8423-32c3-5520-cc8dfa13d1f52011-10-19T13:22:00-06:00<p>Can you tell me what conversion you are using for the 16-bit registers to convert them to a decimal number?<br/>
I am using a non-arduino microcontroller and I am having difficulty getting the calculated temperature and pressure match (even closely) to room temperature and pressure readings. So I suspect I am using the incorrect calibration constants&hellip;<br/>
HELP!</p>Customer #57306 on SEN-09694 - Barometric Pressure Sensor - BMP085 BreakoutCustomer #57306urn:uuid:487f011b-8e34-a280-2648-de24bd563f8c2011-10-06T05:04:02-06:00<p>The Quickstart guide says&hellip; &ldquo;Pay special attention to how you power the BMP085. Its maximum supply voltage is 3.6V. So don&rsquo;t go feeding it 5V!&rdquo;</p>tomrauch on SEN-09694 - Barometric Pressure Sensor - BMP085 Breakouttomrauchurn:uuid:f6a180b3-d4d6-d73b-e157-a411cb16267e2011-09-15T23:08:49-06:00<p>Thanks Mike! I would like to build something, just to find out for myself how it all works. I will check out that Arduino Pro Mini and I recently purchased the Sensor Networks book.<br/>
Tom</p>MikeGrusin on SEN-09694 - Barometric Pressure Sensor - BMP085 BreakoutMikeGrusinurn:uuid:f4b8c466-c588-74bf-aa83-370a59cae4962011-09-15T14:08:54-06:00<p>It&rsquo;s possible, but not trivial. You&rsquo;d likely need a microcontroller of some sort (like the Arduino Pro Mini) to access the sensor, format the data, and send it to a radio (like an XBee). We have a book called <a href="http://www.sparkfun.com/products/10324" rel="nofollow" >Building Wireless Sensor Networks</a> which is a good resource, but there&rsquo;s also plenty of information on the web as well.<br/>
If you&rsquo;d rather not have to build something, we do have the full-up <a href="http://www.sparkfun.com/products/10586" rel="nofollow" >Weather Board</a> which includes this sensor (and others) and is designed to easily be made wireless. But it may be overkill for your needs.</p>tomrauch on SEN-09694 - Barometric Pressure Sensor - BMP085 Breakouttomrauchurn:uuid:740ce617-2ed8-8f17-db40-cb86efb5b11e2011-09-14T23:01:16-06:00<p>Hi, would it be possible to make this sensor a wireless device? Does anyone know a good resource to show me how that would be accomplished? Thanks, Tom</p>Customer #248982 on SEN-09694 - Barometric Pressure Sensor - BMP085 BreakoutCustomer #248982urn:uuid:8ba10cae-c199-258e-587c-39b6e95ebe032011-09-03T10:09:29-06:00<p>I had my sensor running fine logging to pachube with the ethernet shield then it started logging 0 for both pressure and temperature, I have tried connecting xclr to GND to attempt a reset but no change. Is my sensor broken??</p>Customer #107081 on SEN-09694 - Barometric Pressure Sensor - BMP085 BreakoutCustomer #107081urn:uuid:533aeb47-e47c-f95f-e927-b3c7715620cb2011-08-21T15:12:06-06:00<p>These sensors are pretty good&hellip; up to around 37km altitude.<br/>
Then they start reporting some weird data :-)<br/>
We took one up to 40.575km on our Horus 15.5 high altitude balloon flight, it reported pressure down to 2hPa before outputting gibberish data. It recovered again on the way back down.<br/>
Still, pretty damn good for a sensor only rated down to 300hPa :-)</p>Avi8tor857 on SEN-09694 - Barometric Pressure Sensor - BMP085 BreakoutAvi8tor857urn:uuid:eb71a4d5-f698-0f82-7987-bb44d2b802bb2011-08-17T22:00:17-06:00<p>With the aircraft altimeter if calibrated if you set it the the field elevation then the pressure should be the current pressure. Alternatively if you get the pressure at the airport and set it in the altimeter than it should read the field elevation, if this is true its accurate to a few feet.<br/>
Most airports update the pressure every hour, ask the FBO what the pressure is or if you have a radio the airport will have a frequency with an automated notice including the pressure.</p>Avi8tor857 on SEN-09694 - Barometric Pressure Sensor - BMP085 BreakoutAvi8tor857urn:uuid:eeaa27d0-e6a4-7131-64d0-94c97980d06c2011-08-17T20:54:59-06:00<p>This may be obvious to some but the instructions just blindly say use pins A4 and A5 but on the Ardunio mega 2560 you have to use pins 20 (SDA) and 21 (SCL).</p>Gerpus on SEN-09694 - Barometric Pressure Sensor - BMP085 BreakoutGerpusurn:uuid:36489ce2-67d5-af0b-223f-ff7d6177d0312011-08-09T14:11:34-06:00<p>Can I use it as an altimeter? I need to open a parachute before my package crashes into the ground (need to interface it to an Arduino board)</p>MikeGrusin on SEN-09694 - Barometric Pressure Sensor - BMP085 BreakoutMikeGrusinurn:uuid:ff6cf08b-090e-6db9-2100-96d9b5c95c8c2011-07-23T14:42:26-06:00<p>First off good job going the extra mile to do this the right way! There&rsquo;s a fair amount of controversy over the weak-pull-up resistors being enabled by default in the Wire library (especially since they&rsquo;re too weak to be good I2C pullup resistors anyway). But we generally use the unmodified library with no problems, by always making sure there is another set of 4.7K pullup resistors to 3.3V somewhere on the bus. The 4.7K resistors overpower the 20K WPU resistors in the Arduino, ensuring that the I2C bus never sees 5V (it&rsquo;s more like 3.6V, still high but not as bad). Hope this helps.</p>Customer #236519 on SEN-09694 - Barometric Pressure Sensor - BMP085 BreakoutCustomer #236519urn:uuid:1b43dbc2-310d-474c-276f-9a9c5f80f72c2011-07-23T09:01:41-06:00<p>I just purchased this sensor from a local shop. It works. Though I spent a good amount of time looking at the issue of having a 3.3 v device on a 5 v I2C bus before I connected this little sensor to my Arduino Uno. I was prepared to construct a level shifter, until it occurred to me that it might be possible to disable the internal Atmel 328 pull up resistors for the I2C bus.<br/>
It is possible to do this by changing the wire library. Here&rsquo;s the link: <a href="http://www.varesano.net/blog/fabio/how-disable-internal-arduino-atmega-pullups-sda-and-scl-i2c-bus" rel="nofollow" >http://www.varesano.net/blog/fabio/how-disable-internal-arduino-atmega-pullups-sda-and-scl-i2c-bus</a> Now all I do is pull the SDA and SCL lines to 3.3 v, which this sensor does. And my other 5V device (DS1307) is perfectly happy with the 3.3v bus voltage. Thanks to Sparkfun for this product!</p>sjondur on SEN-09694 - Barometric Pressure Sensor - BMP085 Breakoutsjondururn:uuid:4b5af4d7-2a76-3a5c-731c-3d58cd4239ec2011-06-17T10:31:05-06:00<p>We bought BMP085 from Sparkfun and used C8051F340 to communicate with it via I2C.<br/>
Temperature measured 23.1 degC.<br/>
The pressure measured was 99568 Pa. The local weather station had 29.47 in = 99 785 Pa<br/>
These are the dig. signals over the i2c bus.<br/>
AC[12345] = {10377, -1393, -14300, 35532, 24474, 20309}<br/>
B[12] = {5498, 78}<br/>
M[BCD] = {-32768, -11075, 2432}<br/>
UP = 368764, UT = 28522.<br/>
I would say the complexity level of this device is more than I expected.<br/>
Overall this device is working great.</p>Customer #9020 on SEN-09694 - Barometric Pressure Sensor - BMP085 BreakoutCustomer #9020urn:uuid:851e7fac-ae4d-fa2f-10ee-cbf612e2620a2011-06-06T15:11:40-06:00<p>(1) Has anyone got code to read the BMP085 with a Basic Stamp<br/>
or PICaxe ?<br/>
(2) I&rsquo;m interested only in pressure variations, not absolute<br/>
value. I wonder if I can omit some of the calibration steps ?</p>Rens on SEN-09694 - Barometric Pressure Sensor - BMP085 BreakoutRensurn:uuid:a31c484d-48d0-27a9-e626-8db1888e3dd62011-05-12T14:50:52-06:00<p>Hopefully somebody knows the answer to the following mystery or could give me some hints to solve it: I&rsquo;m using two barometer sensors: the BMP085 (I2C) and the SCP1000 (SPI). Somehow the values of both sensor are way off.<br/>
First the temperature:<br/>
The SCP1000 tells me it&rsquo;s 25.15C while the BMP085 thinks it is 28.1C while in fact it is much cooler around 21C.<br/>
Then the pressure:<br/>
SCP1000: 101767Pa<br/>
BMP085: 103962Pa<br/>
The SCP1000 seems to be closest to the actual value. Both sensor are located on the same board.<br/>
Suggestions are welcome!</p>Phil Hutchinson on SEN-09694 - Barometric Pressure Sensor - BMP085 BreakoutPhil Hutchinsonurn:uuid:dcee149b-3be1-50e3-13ea-c7ff200a48092011-05-10T15:59:52-06:00<p>Sorry, strike that. It helps if you don&rsquo;t mix up the SDA and SCL connections. Now that I have fixed that, I am able to poll both the real-time clock on the Adafruit data-logger shield and the BMP085 pressure sensor using the same Wire library. At the same time, I am also able to write files to the SD card on the data-logger shield as well, but that&rsquo;s via SPI, so no surprise there.</p>Phil Hutchinson on SEN-09694 - Barometric Pressure Sensor - BMP085 BreakoutPhil Hutchinsonurn:uuid:2d374899-c91a-2947-3c02-a6307e77813b2011-05-10T15:43:51-06:00<p>I&rsquo;m trying to do just that and am having problems. If I comment out my pressure sensor code, the real-time clock works fine. If I comment out my real-time clock code, the pressure sensor works fine. However, having both sets of code enabled causes my Arduino to seize up.</p>helix on SEN-09694 - Barometric Pressure Sensor - BMP085 Breakouthelixurn:uuid:f7a64616-e3f1-9f5b-b683-961c8f62b1502011-05-09T00:53:21-06:00<p>I believe that there is a calculation error in this code which gets worse as sensor oversampling increases.<br/>
It occurs in the lines where it is setting b3:<br/>
if (oversampling_setting == 3) b3 = ((int32_t) ac1 * 4 + x3 + 2) >> 1;<br/>
if (oversampling_setting == 2) b3 = ((int32_t) ac1 * 4 + x3 + 2);<br/>
if (oversampling_setting == 1) b3 = ((int32_t) ac1 * 4 + x3 + 2) >> 1;<br/>
if (oversampling_setting == 0) b3 = ((int32_t) ac1 * 4 + x3 + 2) >> 2;<br/>
These lines should be replaced by the datasheet and API formula:<br/>
b3 = ((((int32_t)ac1 * 4 + x3) ## oversampling_setting) + 2) >> 2;<br/>
where ## is meant to be the shift-left operator (sparkfun strips &lsquo;less-than&rsquo; characters out of posts)<br/>
With a raw temperature reading of 31908 and a raw pressure reading of 320701 at ultra high resolution, the first code snippet gives me a true pressure of 118662. However, when using the second code snippet (which I believe to be correct) I get 100296 - which is within 1hPa of my local weather station.</p>j.michael on SEN-09694 - Barometric Pressure Sensor - BMP085 Breakoutj.michaelurn:uuid:2cad1ae8-7b71-6e67-535b-4608a9e730982011-04-25T19:23:59-06:00<p>Can this be used with Adafruit&rsquo;s data logging shield, which also uses i2c on analog pins 4 and 5? The pins are open and solderable.</p>mman1506 on SEN-09694 - Barometric Pressure Sensor - BMP085 Breakoutmman1506urn:uuid:d30c2f8f-3a56-d0fb-3220-30c5b44692602011-04-13T19:24:48-06:00<p>or you discovered a perpetual energy machine</p>rm11 on SEN-09694 - Barometric Pressure Sensor - BMP085 Breakoutrm11urn:uuid:77785fcf-a5a1-f1fa-d5a0-4dd791adabce2011-04-05T12:20:04-06:00<p>does anyone knows if the temperature measurement works with negative values ? lets say down to -20degC ?</p>societyofrobots on SEN-09694 - Barometric Pressure Sensor - BMP085 Breakoutsocietyofrobotsurn:uuid:db4b36a8-5cdc-cf59-903c-23e843a8c7232011-04-01T14:59:55-06:00<p>[delete this comment]</p>Customer #209983 on SEN-09694 - Barometric Pressure Sensor - BMP085 BreakoutCustomer #209983urn:uuid:1d8fb7c3-870c-adda-1755-d09cb9c2c09c2011-03-12T20:06:02-07:00<p>Don&rsquo;t agonize it appears that the scp1000 is obsolete. If you plan to design a product you probably want parts that are going to be around for a while.<br/>
http://www.vti.fi/en/support/obsolete_products/pressure_sensors/</p>trialex on SEN-09694 - Barometric Pressure Sensor - BMP085 Breakouttrialexurn:uuid:3b57b06b-9269-f8d2-b5ba-1be928ef7f172011-02-10T02:40:23-07:00<p>Are you sure this part is in the Eagle library? I think the latest (at time of writing, the April 13th 2010 version) has the sensor itself, but not the breakout board.<br/>
Anyways not too hard to make yourself, but yeah, not in the library (yet)</p>DavesPlanet on SEN-09694 - Barometric Pressure Sensor - BMP085 BreakoutDavesPlaneturn:uuid:94c5cbb3-61ab-6d49-c0ef-4988210541332011-02-08T06:03:42-07:00<p>I agonized over designing a product around this chip or the much more expensive SCP1000. The SCP1000 claims to be accurate to within a 9cm column of air (raise/lower it 9cm for a different altitude reading). I had to do the math on the BMP085 because all they give is an accuracy of 0.03 hPa, that works out to 9.75 inches or 25 cm at sea level, about three times that of the SCP1000 but still fantastically accurate for an altitude based product. If you want to see the math 0.03hPa = 3Pa, and at sea level a foot change equals 3.7Pa</p>Wayne on SEN-09694 - Barometric Pressure Sensor - BMP085 BreakoutWayneurn:uuid:ffe1d806-34fa-d10d-6afe-9164a35492fe2011-01-19T17:08:39-07:00<p>I did a test of this sensor relative to GPS altitude on a drive down highway 38 from Sugarloaf CA (near Big Bear) to Mentone, CA.. The results, as well as the Arduino code needed to reproduce my experiment is here:<br/>
http://sites.google.com/site/wayneholder/gps-vs-barometric-altitude<br/>
Wayne</p>weather01089 on SEN-09694 - Barometric Pressure Sensor - BMP085 Breakoutweather01089urn:uuid:b9b8b4f8-415e-1513-31f7-acf65dce5dbe2011-01-07T06:42:31-07:00<p>This works, but not with my 28j60 ethernet shield, which uses SPI as well. I see someone connected theirs to analog 4 and 5, not like the example showing SDA and SCL to digital 0 and 1?<br/>
Firing this up locks up the etnernet shield.</p>sunrise@sunsys.net on SEN-09694 - Barometric Pressure Sensor - BMP085 Breakoutsunrise@sunsys.neturn:uuid:63c8e660-2c05-6774-a2d5-e714cd052fb92010-12-15T09:30:47-07:00<p>I have received information from a Bosch engineer, who points out that:<br/>
- a pressure vessel would be needed to determine the accuracy of the sensor &hellip; local weather stations may be too far away, or their reports to old, to use as a reference<br/>
- the calibration of the altimeter I was using is unknown<br/>
- the sensor is very accurate but not an &ldquo;ideal&rdquo; sensor<br/>
- the specification document mentions a possible offset (&ldquo;up to 1 hPa&rdquo;) as a result of soldering techniques, which would not be included in the on-chip calibration data stored in EEPROM</p>sunrise@sunsys.net on SEN-09694 - Barometric Pressure Sensor - BMP085 Breakoutsunrise@sunsys.neturn:uuid:58be01ac-d7a6-3701-1d20-c5f2d3274e902010-12-05T15:04:59-07:00<p>Today I obtained values from an aircraft altimeter &hellip; set to 0 feet it reads 29.34 (993.566 hPa); set to 700 feet it reads 30.05 (1017.61 hPa). The latter agrees with Weather Underground (1017 hPa and rising).&lt;br /><br/>
&lt;br /><br/>
The BMP-085 sensor output (after the equations in the datasheet) is 988.10, and corrected to sea level 1012.75. So it seems like the sensor output is 5.466 hPa too low, and as a result the sea level correction is 4.86 too low also.&lt;br /><br/>
&lt;br /><br/>
Re-checking my program, I manually substitute the pressure reading from the 0 feet altimeter 993.56 and the sea level corrected output is 1018.08 - which is much closer to the 700 feet altimeter reading, the error is only 0.45 hPa.&lt;br /><br/>
&lt;br /><br/>
Re-checking the program calculations from the datasheet, using the datasheet calibration values and input pressure, the output pressure is the same as given in the datasheet example.&lt;br /><br/>
&lt;br /><br/>
So my conclusion is the sensor is reading too low -about 5.4 hPa.</p>sunrise@sunsys.net on SEN-09694 - Barometric Pressure Sensor - BMP085 Breakoutsunrise@sunsys.neturn:uuid:fbaa9b1c-f26a-83dd-1c3e-a4bc3d4b481a2010-11-30T15:44:45-07:00<p><strong><a href="/users/88894" rel="nofollow" >sunrise@sunsys.net</a>:</strong> <em>I&rsquo;m not getting the pressure accuracy &hellip; local weather stations report 30.16 inHg (1013.25 millibar) but the sensor is reporting 99500 (995.00 millibars). </em>&lt;br /><br/>
&lt;br /><br/>
Okay, weather reports provide pressure corrected to sea level so that comparisons between stations can be made. The sensor reports current pressure only.&lt;br /><br/>
&lt;br /><br/>
Altitude relative to sea level can be calculated using the sensor&rsquo;s pressure value like this:&lt;br /><br/>
&lt;br /><br/>
altimeter_setting = (float)101325<em>pow(((288-0.0065</em>known_altitude)/288),5.256);&lt;br /><br/>
&lt;br /><br/>
altitude_meters = 44330 * (1.0 - pow((float)pressure/((101325+pressure)-altimeter_setting),(1/5.255)));&lt;br /><br/>
&lt;br /><br/>
&lt;br /><br/>
But that&rsquo;s not the whole story, I think my sensor is still providing an odd value. Using actual data from the sensor (my altitude is 206 metres ASL):&lt;br /><br/>
Pressure from sensor(Pa): 97880&lt;br /><br/>
altimeter_setting calculated: 98873&lt;br /><br/>
altitude_meters: 208&lt;br /><br/>
&lt;br /><br/>
Weather Underground reports 100500 Pa at my location.&lt;br /><br/>
&lt;br /><br/>
&lt;br /><br/>
Thank you to http://www.experts123.com/q/is-the-reported-barometric-pressure-adjusted-to-sea-level.html. I looked at lots of other sources but this had the best explanation, and a formula for sea level correction that seems to work!&lt;br /><br/>
&lt;br /><br/>
&lt;br /><br/>
&lt;br /></p>sunrise@sunsys.net on SEN-09694 - Barometric Pressure Sensor - BMP085 Breakoutsunrise@sunsys.neturn:uuid:55f0c974-cebc-d9e2-f817-4e8ac0b3d9d52010-11-29T13:56:54-07:00<p>I don&rsquo;t know if this is related, but I found this post http://www.picbasic.co.uk/forum/showthread.php?t=13081 that mentions the sensors are affected by light.&lt;br /><br/>
&lt;br /><br/>
Indeed, I shone a flashlight onto the sensor and the readings went from 99826 to 99710, which affected my altitude calculation - it went from 208m to 227m.&lt;br /><br/>
&lt;br /><br/>
Perhaps some of the other comments on the post are relevant also (stressing of the substrate)?</p>sunrise@sunsys.net on SEN-09694 - Barometric Pressure Sensor - BMP085 Breakoutsunrise@sunsys.neturn:uuid:6abecc37-a451-24ee-de70-ca888b16cfbc2010-11-29T13:43:10-07:00<p>I&rsquo;m not getting the pressure accuracy &hellip; local weather stations report 30.16 inHg (1013.25 millibar) but the sensor is reporting 99500 (995.00 millibars). &lt;br /><br/>
&lt;br /><br/>
Temperature 22.5 C looks right.&lt;br /><br/>
&lt;br /><br/>
For the altitude calculation below, I need to subtract about 650 from the pressure reading, making it 99500-650=98850, in order to come out at the correct local altitude.&lt;br /><br/>
&lt;br /><br/>
&lt;br /><br/>
altitude = 44330 * (1.0 - pow((float)pressure/101325.0,(1/5.255)));</p>HaroldChan on SEN-09694 - Barometric Pressure Sensor - BMP085 BreakoutHaroldChanurn:uuid:ef013bbb-5bff-8614-290d-b9bcbf1825b82010-10-24T23:25:24-06:00<p>this is very accurate as the value keeps the same with the local weather station nearby!</p>BLP on SEN-09694 - Barometric Pressure Sensor - BMP085 BreakoutBLPurn:uuid:dc25e4c3-8130-59ba-68db-28ce36141de52010-10-12T15:03:49-06:00<p>Fabulous sensor &ndash; just got it working on my bench after not playing with it for months.<br/>
A lot more computationally intensive than <a href="http://www.sparkfun.com/commerce/product_info.php?products_id=8161" rel="nofollow" >http://www.sparkfun.com/commerce/product_info.php?products_id=8161</a></p>Scott3 on SEN-09694 - Barometric Pressure Sensor - BMP085 BreakoutScott3urn:uuid:1fcff680-72fe-aaa5-138d-a4f6c90aad252010-10-10T20:08:08-06:00<p>Hi - just came across this library for the Arduino - i loaded up the example sketch and it ran on my board out of the box - seems to work well! See <a href="http://arducopter.googlecode.com/svn/trunk/libraries/APM_BMP085/" rel="nofollow" >http://arducopter.googlecode.com/svn/trunk/libraries/APM_BMP085/</a></p>LaikaN57 on SEN-09694 - Barometric Pressure Sensor - BMP085 BreakoutLaikaN57urn:uuid:696859fe-3853-26e5-e81f-b625a7212bd82010-10-03T20:53:23-06:00<p>SOLVED<br/>
I was connecting SDA and SCL to digital pins 4 and 5 on my Arduino. They should be connected to ANALOG pins 4 and 5. Well that was a waste of a day.</p>jjw on SEN-09694 - Barometric Pressure Sensor - BMP085 Breakoutjjwurn:uuid:b07ab1d5-ec45-83b4-f226-558a4c3209592010-10-03T07:40:14-06:00<p>May I add; make all the I2C parts have a similar pinout (at least the I2C lines) so that they can be stacked.</p>LaikaN57 on SEN-09694 - Barometric Pressure Sensor - BMP085 BreakoutLaikaN57urn:uuid:e2090ea2-f35d-1803-e9ca-facd7e865f9a2010-10-01T00:53:46-06:00<p>I am using the BMP085 with the new Arduino Uno and a Logic Level Converter (<a href="http://www.sparkfun.com/commerce/product_info.php?products_id=8745" rel="nofollow" >http://www.sparkfun.com/commerce/product_info.php?products_id=8745</a>). Whenever I call Wire.endTransmission() I get error code 2 (received NACK on transmit of address). All the boards are un-modified and I have to following connections:<br/>
A - Arduino<br/>
L - Logic Level Converter<br/>
B - BMP085</p>
<h2>Power </h2>
<p>A,3.3V L,LV<br/>
A,3.3V B,VCC<br/>
A,5V L,HV<br/>
A,GND L,GND<br/>
A,GND L,GND<br/>
A,GND B,GND</p>
<h2>Data </h2>
<p>A,Digital4 L,Ch1,TXO<br/>
A,Digital5 L,Ch2,TXO<br/>
B,SDA L,Ch1,TXI<br/>
B,SCL L,Ch2,TXI<br/>
Voltages seemed fine (3.28V on 3.3V rails). Any thoughts? Could I have burned it out when I soldered on the headers (It was hot to the touch after 5-10 seconds)? And lastly, how would I test the chip with only an Arduino and multimeter? I am new to the electronics part of this.</p>pmatil on SEN-09694 - Barometric Pressure Sensor - BMP085 Breakoutpmatilurn:uuid:eb049c09-d9d9-96fa-566e-8b6ae841e99d2010-09-28T11:41:36-06:00<p>I&rsquo;ve just got this to work with the Bus Pirate. Great sensor. One note though about the product description&hellip; The absolute accuracy is +/- 1 hPa, not 0.03 hPa. Resolution is down to 0.03 hPa.<br/>
Converting the coefficients was the hardest job since the datasheet nor the application note give the conversion formula. It&rsquo;s only in C-code. And since I&rsquo;m not that good at C it took a little time to understand how some of the coeffs are negative.<br/>
If you are deciding between this and MPL115A2I2C take this. I have both and MPL115A&rsquo;s coeffs are way harder to convert (fixed point numbers).</p>Scott3 on SEN-09694 - Barometric Pressure Sensor - BMP085 BreakoutScott3urn:uuid:a1bf4d12-e4ee-5f2f-d8eb-ebcbed4775402010-09-05T20:15:33-06:00<p>Hi - I think you are getting good results. I believe that &ldquo;272&rdquo; equates to 27.2 Celsius, 99615 Pa (Pascal) converts to 29.41 inches of mercury (I divided 99615 by 3386.389 to convert Pa to inches of mercury)&hellip;.your values seem reasonable&hellip;</p>scoopjones on SEN-09694 - Barometric Pressure Sensor - BMP085 Breakoutscoopjonesurn:uuid:51a1803c-da9f-c3ae-d0a1-5b2d4278d5462010-09-05T00:48:12-06:00<p>I tried the suggested code and the change in line 58 to &ldquo;long ut= bmp085_read_ut();&rdquo;, but results are still strange. I got 272 for the temperature, and 99615<br/>
for pressure (that could be true, but I&rsquo;m not sure). Can anyone with working code post a link. Would be much appreciated. Thanks!</p>Scott3 on SEN-09694 - Barometric Pressure Sensor - BMP085 BreakoutScott3urn:uuid:865f46fc-48cd-a8de-c136-ce91f2cd427b2010-08-29T12:11:10-06:00<p>Hi - I had similar problems. The code from <a href="http://mitat.tuu.fi/?p=78" rel="nofollow" >http://mitat.tuu.fi/?p=78</a> worked for me with one small change - around line 58, change<br/>
int ut= bmp085_read_ut();<br/>
to:<br/>
long ut= bmp085_read_ut();</p>mech_engineer on SEN-09694 - Barometric Pressure Sensor - BMP085 Breakoutmech_engineerurn:uuid:eec34772-a60b-9e14-0bba-4bf70e9238e92010-08-22T23:29:08-06:00<p>@ scoopjones, use this example code, <a href="http://mitat.tuu.fi/?p=78" rel="nofollow" >http://mitat.tuu.fi/?p=78</a>, from Finnishguy. It works perfect, I&rsquo;ve been meaning to turn it into a library just haven&rsquo;t gotten around to it yet, I&rsquo;ll post something when I do, hope it helps</p>scoopjones on SEN-09694 - Barometric Pressure Sensor - BMP085 Breakoutscoopjonesurn:uuid:d61d34c7-aad6-bfe7-2c5f-b52cff4131e02010-08-20T00:21:14-06:00<p>Does anyone have Arduino code for this that works? I&rsquo;ve tried several versions from different spots on the Internet and always get unusable results. As far as I can tell, the problem is that the Arduino doesn&rsquo;t have a &ldquo;short&rdquo; variable type (-127 to 127), which is required for reading the registers. I may be wrong, but I&rsquo;m definitely spinning my wheels. Thanks!</p>mech_engineer on SEN-09694 - Barometric Pressure Sensor - BMP085 Breakoutmech_engineerurn:uuid:2ee3c3b5-f9e5-17a4-0852-3092755b4dfb2010-08-09T21:14:54-06:00<p>I&rsquo;ve followed the spec sheet powering it at 3.3V and haven&rsquo;t had a problem, it&rsquo;s worked perfect and readings are comparable if not the same as the local weather.</p>Single T on SEN-09694 - Barometric Pressure Sensor - BMP085 BreakoutSingle Turn:uuid:2b475299-6d00-8fcf-ae01-c37568278f062010-07-16T16:34:27-06:00<p>Hi,<br/>
I am looking at the schematic and it seems like the VDD is connected to VCC. I am not sure why your board would appear to be different from the schematic.</p>adame on SEN-09694 - Barometric Pressure Sensor - BMP085 Breakoutadameurn:uuid:75c36982-08b2-7074-917a-792648d245bf2010-07-10T21:54:02-06:00<p>No Joy. I noticed that the digital power pin isn&rsquo;t connected and if I put a CRO on it I notice that the voltage on the digital power pin is decaying to zero volts when I attempt to communicate to it.<br/>
The XCLR pin which is internally connected to the digital power pin is following the same pattern.<br/>
The sparkfun wiring example indicates that the device should be powered by 5volts. This is in excess of the absolte max in the Bosch data sheet (4.25V).<br/>
What has everyone else been using to power this device?<br/>
Are there any breakout boards available with pin 4 (digital power pin) connected?</p>flyingjones on SEN-09694 - Barometric Pressure Sensor - BMP085 Breakoutflyingjonesurn:uuid:3177efcf-29c6-43ae-8b20-66ee86471c8d2010-07-04T23:35:55-06:00<p>I desoldered the sensor from this board and found that pin 4 (Vddd) is not connected. The schematic indicates that it should be routed to Vcc. The board still works reasonably well so presumably the digital part of the chip is deriving power through some unintentional path such as the analog supply or the i2c pins.</p>Finnishguy on SEN-09694 - Barometric Pressure Sensor - BMP085 BreakoutFinnishguyurn:uuid:dfe8b97f-5a0f-e206-356e-a118cd3854e52010-05-23T03:56:03-06:00<p>Got this working on Arduino Pro Mini, here&rsquo;s the full code:<br/>
<a href="http://mitat.tuu.fi/?p=78" rel="nofollow" >http://mitat.tuu.fi/?p=78</a></p>greensasquatch on SEN-09694 - Barometric Pressure Sensor - BMP085 Breakoutgreensasquatchurn:uuid:c48dd05c-3920-1b6d-cca7-b3694c5e4df02010-04-15T00:47:33-06:00<p>All i can say is finally! I&rsquo;ve been waiting for this for months ever since I suggested it back in January. Can&rsquo;t wait till you have it back in stock.</p>NXTreme on SEN-09694 - Barometric Pressure Sensor - BMP085 BreakoutNXTremeurn:uuid:f8a817e9-2b2e-e699-dfba-13e11e76c8312010-04-03T19:06:52-06:00<p>I second the motion. I don&rsquo;t have any preference between having 10K pull-ups or none but I would really prefer not having some smaller value like 4.7K.<br/>
On a separate topic, in case anyone is wondering these sensors can measure an altitude from about -1,000 feet to about 30,000. I might be wrong but I hope I&rsquo;m right:) I found this site to be helpful. <a href="http://www.omega.com/techref/techdata.html#altitude" rel="nofollow" >http://www.omega.com/techref/techdata.html#altitude</a></p>pvin on SEN-09694 - Barometric Pressure Sensor - BMP085 Breakoutpvinurn:uuid:08abccd9-e636-f63c-501a-c9a757d25f142010-04-01T09:36:30-06:00<p>I hope you don&rsquo;t start at trend putting pull-up resistors on I2C control lines. And if you do please pick the highest resistance (i.e. 10 kohm) as the vast majority of folks would be using a 100 kHz SCL clock rate.</p>