Comments: BMP180 Barometric Pressure Sensor Hookup


Looking for answers to technical questions?

We welcome your comments and suggestions below. However, if you are looking for solutions to technical questions please see our Technical Assistance page.

  • Member #1575310 / about 4 years ago * / 1

    I have BMP180 sensor in blue color, used in this tutorial- weather station But the sparkfun library is not working with it, they also didnt provided the link to download the library for the blue BMP180. Are both the sensor (red and blue BMP180) same? or i should buy this red sensor from Sparkfun?

    • santaimpersonator / about 4 years ago / 1

      Our board would be red, as pictured in this hookup guide. I would try to use the basic example in this hookup guide to test the sensor out. If you are still having issues, you will need to contact you supplier for help; we don't offer consultation services on products we don't carry.

      As a heads up, we no longer offer this sensor... the manufacturer no longer makes them. That being said, we do offer the newer BME280 sensor.

  • Member #1429974 / about 6 years ago / 1

    I want to use this on a model rocket that is going to reach 3000 m altitude and 0.8 mach speed resulting a force of 10g . Can this chip withstand these parameters?

    • MikeGrusin / about 6 years ago / 1

      To the best of my knowledge the data sheet doesn't say anything about G-loading, but I know of many people who have successfully used the BMP180 on model rockets. Note that it is light-sensitive, so try to keep it (or more specifically the small port on top of the chip) out of direct sunlight.

  • Tech Support Tips/Troubleshooting/Common Issues

    The BMP180 [ ] uses one address. Unfortunately, this address is not changeable for the sensor. The comment in this tutorial was referring to other I2C devices on the same bus line. One workaround is to use the softwareI2c library [ ] to create another I2C bus on the Arduino. On the hardware side, I recommend using a logic level converter since the other Arduino I/O pins are not set up as an open drain.

    If you look at the comment by mgrusin, he explains it further in detail and provides another alternative => .

  • Myxo / about 8 years ago * / 1

    This is kind of a complex question, but I'd like to use two of these to act as a kind of Prandtl tube for determining the air speed coming out of a blower. Here is a good description of a what a Prandtl tube is and what it does.

    A prandtl tube basically compares ambient air pressure to the air pressure in the direction of travel to determine air speed. This is a drawing of what I am thinking I would do with two of these sensors:

    I was thinking I could install one sensor on the outside of the box, and one on the inside, to determine the air speed coming out the front of the box. However, I'd like to try to do this with out interrupting the flow of air as it moves. I realize this might be a bit beyond the scope of the tutorial, but do you think there would be a major difference in pressure readings if the sensor was flush versus directly facing the flow of air in a tube?

    Also, when hooking up two of these sensors, would I be able to connect two using only one redboard?

  • Member #358796 / about 9 years ago / 1

    These examples work great! I Where can I find a list of all of the library functions for this library?

    • MikeGrusin / about 9 years ago / 1

      Protip: If you dig into the library folder, the ".h" file is where all the functions are defined for a particular library, and any decent programmer will write lots of comments there on what the functions do. For this part that file is called "SFE_BMP180.h", and it's a plain text file you can open with any text editor. Anything listed under "public" are things you can use in your own code. Hope this helps, if you have trouble interpreting the file let me know (I wrote it). Thanks and Good luck!

  • Member #682911 / about 9 years ago / 1

    I am thinking about putting a BMP180 in a weather balloon but I am not sure if that is a good idea. Any way it can give me live measurements? Also, I read the BMP180 is very sensitive to high air speed and change in temperature you think I ll have problem with that even if it is "protected" by the payload body? I would really appreciate if you could give me your opinion on that! Thanks!!

    • MikeGrusin / about 9 years ago / 1

      The BMP180 is a popular sensor to use in weather balloons, but note that its accurate range is only up to 30,000' (9000m). It can't do anything on its own, but if you hook it up to a microcontroller and a radio, it can give you live measurements.

      As an air pressure sensor, the BMP180 does notice gusts of air as higher pressure. This usually isn't a problem on balloons as they travel with the wind, so it should normally be dead calm around them (at least until they burst). The BMP180 does need to be exposed to ambient temperature to get an accurate reading; I would personally put it on the exterior of the payload, but shelter it from direct sunlight. Happy flying!

  • Member #355425 / about 9 years ago / 1

    Is the BMP180 suitable for use in monitoring a vacuum chamber? I'm wondering whether hard vacuum conditions could damage the sensor eventually.

    • MikeGrusin / about 9 years ago / 1

      Depending on whether you're talking about a bell jar or a true vacuum chamber, my guess is that it's not designed for hard vacuum and the internally sealed volume would eventually become damaged. But you can contact Bosch for a definitive answer.

  • Member #600766 / about 9 years ago / 1

    Hello, I'm trying to connect the BMP180 sensor to the SDA1 and SCl1 on an Arduino Due. I've tried changing all "wire" values to "wire1" in the library, but I still get the "wire1 was not declared in this scope". Anyone got any idea what I'm doing wrong?

    • MikeGrusin / about 9 years ago / 1

      Sorry, no; that's what I would have tried too. If you figure out the answer, please let us know!

  • kenidowa / about 9 years ago / 1

    I purchased one of these recently and they work fine. I hooked it up and used with Arduino UNO and everything seemed reasonable using the SFE_BMP180 library. but when I tried the same code on a Teensy 3.1 I get completely out of range values for all the parameters read. Yet I can use a library for the BMP85 by and get good results. trying to figure what could be different. between the Teensy and the UNO that give such drastically different results using your code library any thoughts?

    • MikeGrusin / about 9 years ago / 1

      The SFE_BMP180 library uses floating point math that is considerably different than the fixed-point example code provided by the manufacturer. This gives smoother transitions over pressure changes than the fixed-point code, but it's entirely possible that the datatypes that work for Arduino don't translate well to the architecture of the Teensy. If you're ambitious enough to find the issues in the SFE code that the Teensy is having problems with, we'd love to incorporate the fixes. (There are several input - output test cases in the library comments that should help debugging.) But there's no problem with you using the working BMP085 code you found, as the BMP180 is software-compatible with the 085.

      • kenidowa / about 9 years ago / 1

        Well I will keep looking since I know one problem is the double type is different in the Teensy 3.1 than on the Uno etc. which really is equivalent to float for Uno's etc. I will run your code on Teensy with the debug print statements turned on. It may be in the calibration routines.

        • kenidowa / about 9 years ago / 1

          ok now I think I understand the problem. the Teensy3.1 int type are 4 bytes so I changed the int and unsigned int to int16_t and uint16_t. I have made the changes and testing further. I can share once I am done testing, let me know.

          • MikeGrusin / about 9 years ago / 1

            Definitely! If you're familiar with submitting code revisions through github, you can do so at the repository page (, or just send them to me at mike.grusin at sparkfun. Thanks for debugging the problem and making the code better!

            • kenidowa / about 9 years ago / 1

              ok I haven't submitted code in github but there is always a first time. Currently my computer where the code resides is down. So once it is up I will submit some.

  • Member #613658 / about 9 years ago / 1

    Wishful thinking but could I power the BMP180 without connection to Arduino, then take the board to some altitude and return, then connect to Arduino and read the maximum altitude?

    • MikeGrusin / about 9 years ago / 1

      Sorry, that's a bit too wishful. The sensor can only measure and report pressure readings when it's hooked up to an Arduino or other microcomputer. You might take a look at the Arduino Pro, which is easy to connect to a battery for off-the-grid measurements.

  • I'm having the same problem. I tried it with arduino 1.0.3 as well and it pulled the same error. While I'm getting better at arduino, I'm still at the "modify example code and see what happens" stage so I have no idea what would be causing this error or what it means.

    EDIT: Nevermind, I got it to work. I just unzipped the file and dumped it in the library folder. On closer inspection, the unzipped file isn't the library folder and contains basically every bit of documentation for this board, including the library. I moved the library where it belonged and it compiled just fine.

If you've found an issue with this tutorial content, please send us your feedback!