Triple Axis Accelerometer Breakout - BMA180

Replacement: None. We're not carrying this part anymore, but check out the rest of our accelerometer category. This page is for reference only.

This is a breakout board for Bosch's BMA180 three-axis, ultra-high performance digital accelerometer. The BMA180 provides a digital 14-bit output signal via a 4-wire SPI or I2C interface. The full-scale measurement range can be set to ±1g, 1.5g, 2g, 3g, 4g, 8g or 16g. Other features include programmable wake-up, low-g and high-g detection, tap sensing, slope detection, and self-test capability. The sensor also has two operating modes: low-noise and low-power.

This breadboard friendly board breaks out every pin of the BMA180 to an 8-pin, 0.1" pitch header. The board doesn't have any on-board regulation, so the provided voltage should be between 1.62 and 3.6V for VDD and 1.2 to 3.6V for VDDIO. The sensor will typically only consume 650uA in standard mode.

Not sure which accelerometer is right for you? Our Accelerometer and Gyro Buying Guide might help!

  • Wide variety of measurment ranges (±1g, 1.5g, 2g, 3g, 4g, 8g and 16g)
  • 14- or 12-bit ADC conversion
  • 2 selectable I2C addresses
  • Programmable integrated digital filters (no external components necessary)
    • 8 low-pass filters
    • 1 high-pass filter
    • 1 band-pass filter
  • Programmable interrupt features:
    • Wake-up
    • Low-g detection
    • High-g detection
    • Tap sensing
    • Slope detection
  • 2 main standard modes: low-noise and low-power
  • Sleep mode
  • Wake-up mode
  • Self-test capability
  • 0.80 x 0.40"

Comments

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.

  • KineticaRT / about 13 years ago / 2

    I am using the BMA180 with an Arduino Min Pro 3V3 and SPI communications.
    I found that I had to use SPI Mode 0 (CPOL =0, CPHA = 0), whereas the Bosch Data Sheet implies that Mode 2 (CPOL = 1, CPHA = 0) is required.
    At first I thought it might be clock frequency/connection related but I tried at both clock rate extremes and it works fine with Mode 0 but not Mode 2.
    Any similar experiences; I want to understand whether the data sheet is wrong or something else is going on here.

    • Trevor3 / about 13 years ago / 1

      I found that Phase = 1 and Pole = 1 works fine. I think the datasheet indicates that sample is on rising clk and clk is normally high.

  • Member #427002 / about 10 years ago / 1

    This was a great accelerometer because it is very sensitive at 1g. I cannot find a replacement that has this sensitivity. Does anyone know of one? Thanks.

  • Member #427002 / about 10 years ago / 1

    This was a great accelerometer because it is very sensitive at 1g. I cannot find a replacement that has this sensitivity. Does anyone know of one? Thanks.

  • lusher00 / about 11 years ago / 1

    It seems as though I can't change the range on this thing. I write to the reg and then read it back and I can see that it accepted the write but the ADC values are the same. When the sensor is oriented with the +Z pointing up it reads about 1800 on the Z axis and 500 on the X and Y. It doesn't make much sense to me. I looked at several other's code and I'm writing to the same registers in the same order as all the examples I found. I found one other post mentioning the same issue.

  • Member #357168 / about 12 years ago / 1

    Anyone have any sample code using Python to convert the values to something usable?

  • Member #340915 / about 12 years ago / 1

    Hello people, I´ve been testing this sensor for a while and I still can´t change the acceleration range. I can change the register 0x35 with the data I need but the eeprom is always in the default value after a soft reset. Anyone has any idea please? Thank you very much!

  • Member #340915 / about 12 years ago / 1

    Hello people, I´ve been testing this sensor for a while and I still can´t change the acceleration range. I can change the register 0x35 with the data I need but the eeprom is always in the default value after a soft reset. Anyone has any idea please? Thank you very much!

  • Ktak / about 12 years ago * / 1

    I have 2 BMA180 connected to an arduino on a adafruit datalogger shield (there are onboard i2c pullups) using long cable to each (4m) into the i2c bus. I came across with a strange problem. I am reading the values every 25ms in block of 7 bytes using the BMA180 library from here http://www.varesano.net/files/libraries_20120118_0959.zip. In the beginning the capturing is ok 8g mode ACC1_X ACC1_Y ACC1_Z ACC2_X ACC2_Y ACC2_Z 2 -45 1195 147 -128 1345 4 -55 1174 149 -124 1406 -3 -42 1209 144 -130 1336

    but after some time things go really strange and the sensor is still

    859 -72 4   -48 1293    815
    907 -62 1   -38 1299    831
    917 -82 1   -39 1287    810
    866 -74 -6  -42 1286    795
    879 -89 10  -36 1302    805
    914 -83 3   -54 1284    797
    

    later

    1263    813 -36 846 84  -58
    1273    814 -25 835 66  -4
    1259    810 -44 823 60  -69
    1249    786 -44 816 67  -64
    

    the strange "offsets" happen all the time. Its like the value off the Z is moving to the other values.

    here is plot with the problem Its a 1h log.

    Any ideas?

  • Ace! / about 12 years ago / 1

    Yo Sparkfun! Accelerometers can't accurately measure movement unless they are rigidly connected to the thing that is moving. Please put mounting holes on all accel breakout boards! Preferably 4 of them so the accel is not cantilevered!

  • kender / about 12 years ago * / 1

    If you plan on using BMA180 with SPI, there is possibility of collision between SPI and I2C. It can be taken care of, though. See this thread.

  • Member #274817 / about 12 years ago / 1

    Is it possible to use this device with a Arduino Uno? Is it necessary to use a logic level converter?

    • BobbyJ / about 12 years ago / 1

      Mine works fine with my Arduino Uno. I have not had any problems using it on a 5v supply. It also works if you power it from the 3.3v supply. The digital in/out will work just fine with 3v even through they are expecting 5v.

  • lnh / about 12 years ago / 1

    Like others, I've been dealing with the apparent i2c address discrepancy with this part. The data sheet says 0x40 and many are finding that 0x80 is what works. The problem is that when Bosch lists 0x40, they are actually only referring to the 7 MSB's of the i2c address. So, if your system (like mine) wants you to specify an 8 bit address for the part, it is in-fact 0x80. I believe the Arduino wire library may only want the 7 bit address, so what Bosch lists works for Arduino. I confirmed by looking at Arduino i2c transactions with a logic analyzer. I've only looked at a handful of data sheets for i2c sensors, but the BMA180 isn't one of the stellar ones.

  • Member #64567 / about 13 years ago / 1

    I'm having trouble setting BMA180 registers (eg, the range and bandwidth registers at 0x35 and 0x20) using a UBW32 PIC32 board.
    I can read the version, gain, range, and acceleration values alright (using SPI with control byte with leading bit 1) but after writing (control byte with leading bit 0), a read returns the same value the register had before the write. I'm writing directly into the setting register, not the EEPROM register -- the data sheet says this is read/write, but I can't get the write to work.
    Any pointers on what I might be doing wrong will be appreciated; thanks in advance.

    • Member #64567 / about 13 years ago / 1

      Ok, I got it -- need to set the ctrl_reg0 ee_w bit. With that set the image registers change properly.

  • kurt_ek / about 13 years ago * / 1

    ummm quick question... I'm working on my thesis right now... And I'd like to use some of the pictures here (for example this BMA180)
    am I allowed to?
    EDIT: I got my answer :) thank you!

  • Member #125670 / about 13 years ago / 1

    I am trying to communicate with the BMA180 with SPI. Is there any command I can send that will return a known output so that I can know if I am data correctly.
    Is it right that you send a 1 followed by 7 bits which are the register number that you want to read?

    • MikeGrusin / about 13 years ago / 1

      How about the version and chip ID registers? They won't change whereas other ones will.

  • litwol / about 13 years ago / 1

    May the measurement range be changed on the fly? say as part of the program?

  • Member #236726 / about 13 years ago / 1

    When will this product be in stock again?

  • ian87 / about 13 years ago * / 1

    i have sucessfully tried the example code .....
    how to set bma180 so the chip will send 100data every second?

  • ian87 / about 13 years ago / 1

    i'm using bma180 with atmega328 on 16mhz ...
    i've compiled and build the makefile with F_CPU=16000000
    do you know what is the setting for hyperterminal?
    i use 9600bps,8bit,no parity,stopbit1,dataflowcontrol none.
    i also try with 19200bps but the uart wont show on hyperterminal ...
    btw i want to set hyperterminal on 9600bps,8bit,no parity,stopbit1,dataflowcontrol none.
    what is the uart initialization code for main.c ? (i'm using winavr) . thank you ...

  • Safety0ff / about 13 years ago / 1

    Mine returns version 0x14.
    SPI modes 0 and 3 work for me (so I'll use mode 3 so SCK is high when idle, see datasheet).

  • Member #20723 / about 13 years ago * / 1

    -

  • MACSBOOST / about 13 years ago / 1

    Thanks MUX, mine had the same problem, the address was 0x80 instead of 0x40 with SDO grounded.
    I'm using a picaxe 18M2

  • Norritt / about 13 years ago / 1

    Any one else got Version register to read out like 0x14 instead of 0x12 as stated in the data sheet. I don't have any problems just did got confused when I was trying to set it up.

  • Tuto / about 13 years ago / 1

    For the people who speak Spanish.

    Acabo de incorporar al proyecto Mikuadric0ptero El Acelerometro BMA-180

    Si quer�is conocer mis comentarios y el C�digo para manejarlo. Os invito a visitar: https://sites.google.com/site/mikuadricoptero/home/descripciones/1-72-acelerometro-02

  • mux / about 13 years ago / 1

    mine has the address 0x80 although the datasheet says that it should be 0x40 when SDO is connected to the ground, weird...
    Anyway, mbed sample here if anyone's interested:
    http://mbed.org/users/mux/programs/bma180/lhnw4q

  • Artem / about 14 years ago / 1

    Hooray! I was lucky placing an order with BO BMA180 Breakout and now I'll get one)))
    Btw, support says they'll receive chips in 2-3 weeks, so be ready to catch it)

  • ThiSel / about 14 years ago / 1

    ARRRRGGGHHH!!!
    No way! So little stock? I coudn't even order it when I saw the stock notification mail!

    • ThiSel / about 14 years ago / 1

      Are we going to wait another 1 or 2 months for the stocks to arrive again?

  • Artem / about 14 years ago / 1

    Any update on availability yet?

  • fornow / about 14 years ago / 1

    Hi, might anyone have a schematic to show connection of this accel sensor to an Uno and some Arduino example code ? Thanks!

  • opey / about 14 years ago / 1

    My Quadrocopter is anxiously awaiting this board (well, me too :) ). Any update on the shipment of the IC yet? Thanks for any update.

  • robo1 / about 14 years ago / 1

    Can we have an update on when/if this board will be back in stock?

  • opey / about 14 years ago / 1

    Any idea when these will be back in stock?

  • m.ryandesign / about 14 years ago / 1

    I have the BMA180 breakout board going through a logic level converter into an Arduino Mini 04. I am able to communicate with the accelerometer and write changes to the registers but I have not been able to use the interrupt feature.
    Has anyone had luck triggering interrupts with the BMA180? I am looking to trigger an interrupt on a double tap (any axis), I have set the necessary settings and threshold but I still cannot trigger the interrupt.
    Insight?

  • DiamondSky / about 14 years ago / 1

    Are there any SPI or I2C wiring examples for using this accelerometer with Duemilanove? The diagrams in the datasheet aren't working for me.

  • Member #447713 / about 11 years ago / 0

    Hello, is there any way to interface BMA180 with a pic microcontroller? Does exist any example of code compatible with PIC mcus? Plz, i need answers its pressinggg!!!

Customer Reviews

No reviews yet.