I2C Pressure Sensor

From Openmoko

Jump to: navigation, search



The BMP085 (Datasheet) from Bosch Sensortec is a simple, easy to use, pressure sensing device. It speaks I2C and includes a temperature sensor. Because of it's tiny size of 5.0mm x 5.0mm x 1.2mm it fits nice into the Freerunner.


The sensor needs just four wires: power (3.3V, GND) and I2C (SDA, SCL). The wiki page about I2C describes where to get them.


I glued mine next to the BT antenna.

An experimental kernel driver is available from gitorious. It searchs for the chip at I2C address 0x77 and exports a sysfs interface where you can read the temperature and the pressure as well as adjust the internal oversampling.

Random information

Collection of random information from the mailing list

Current consumption

From the datasheet: The sensor uses about 0.1µA in standby and 12µA for one sample per second. If the highest resolution is not needed this gets down to 3µA per sample per second and scales linear with the sample rate.


I think I can get about 0.5m. The datasheed says 0.25m and better could be possible with software averaging. Outdoors the chip seems to work rather good (I still need to climb a hill). Going upstairs is also reflected quite good, so you can guess on which floor you are by looking at the pressure. Trying to measure height differences below one meter does not work reliable. I will continue to work on that.


  • Figure out if/why the sensor reports increased pressure results if it's heated up [in progress]
  • Do some resolution tests
  • Write a nice user interface


For other chips and ideas on how to use them see Variometer and Wish_List_-_Hardware_-_Atmospheric.

Personal tools