Need Help on MMA7361L Accelerometer (#1251)

I just bought an accelerometer from one of your reseller
and trying to use in on my balancing robot project.
I called them to ask my question but they did not have any knowledge to help me on this issue.

I’m new to this accelerometer but having some experience coding in
microchip c30. My controller board having dsPIC30F4011 on board.
The problem I’m facing is

I got unbalance reading from the accelerometer.
following is the reading I got (10 Bit ADC Value unsigned integer)

When the Board is level on the floor (0degree)
Flip 90 degree on X axis and Y axis
and in the opposite direction (-90 degree)

X -90 = 248 X 0 = 470 X 90 = 729 from 0 to 90 range = 259 and from 0 to -90 range = 222
Y -90 = 284 Y 0 = 558 Y 90 = 783 from 0 to 90 range = 225 and from 0 to -90 range = 274

According to the data-sheet it’s should not have or very few differences on both 0 to 90 and -90 to 0

I compare the reading with my another accelerometer with MMA7331L on board (4/12 g)
the reading are exactly balance i.e. range from 0 to 90 is the same as from -90 to 0

Please help me identify why I having an unbalance reading while another board connected to the same controller board and the same program is getting balance reading.

Best regards,


I am sorry to hear you are having trouble with your accelerometer. However, I do not think that what you are seeing is necessarily abnormal. What sensitivity settings are you using to compare the MMA7361L and MMA7331L? Do you have some example ADC readings from the MMA7331L? Keep in mind that the default sensitivity of the MMA7361L is ±1.5 g, which is nearly three times as sensitive as the default ±4 g of the MMA7331L, so any differences that you see will also be nearly three times as large.

Also, how certain are you that you are rotating the board exactly 90 degrees and that it is perfectly level when X or Y is 0? Even a very small tilt away from level will produce a significant change in the reading.

Another factor that might be affecting the readings is noise, so if you are not taking several ADC readings and averaging them, you could try that to see if it produces more consistent results.

- Kevin