has anyone in this group have used the MAX21100 gyro-accelerometer combo? if you have, can you teach me how to retrieve the data from the registers using the SPI protocol of arduino.

Thank You! :)

Hi, welcome to the forum.

Please don't cross-post on this forum (asking the same question twice).

If you bought a module with the MAX21100, which module is it ? I see a module at and one at

This is the manufacturer's page :

Can you communicate with it using I2C ? The sensor is new, and I can't find an example for SPI online yet.

@llexer, given your email address, surely someone at Maxim can help you?

Multiple cross-posts deleted.


Sorry about the cross-post.

The IC can communicate via I2C or SPI but I'm trying to find out how to retrieve data from a register address at a specific bank inside an IC.

Thank You! :D

Do you understand the datasheet about SPI ? Use the 4-wire mode full duplex. The chip requires 16-bit data to write a byte or to read a byte. The first 8 bits are two command bits and address bits (ignore the receiving bits) and the next 8 bits are data written (ignore the received bits) or 8 bits read (dummy bits written).

The first byte accordig to the datasheet : Bit 0: READ (1) /WRITE (0) bit. Bit 1: MS bit. Increment (1) register address or not (0). Bit 2–7: register address bits.

I don't know if the MAX21100 accepts a double 8-bit transfer. I think it is the same as 16-bit, but I'm not sure.

byte r1,r2,t1,t2;
digitalWrite(SS, LOW);
r1 = SPI.transfer(t1);
r2 = SPI.transfer(t2);
digitalWrite(SS, HIGH);

I don't have a MAX21100, so I can't test any code with it. You have to test it yourself. Can you make a sketch, that does some basic reading and writing ? The first step would be to read the WHO_AM_I register in the common bank, the value should be 0xB2. The common bank is always at 0x20 to 0x3F. In the common bank is register "BANK_SELECT" at 0x22. If you write 0x00 there, the User Bank 0 is selected and the register address 0x00 to 0x1F is User Bank 0, which can be read and written.

How do you connect the MAX21100 to an Arduino ? The MAX21100 is a 3.3V chip and most Arduino boards are 5V.

hi peter.

thank you for your reply.

As of now, we dont have the hardware yet but i think we will be geting it next week, so we cant perform any tests right now.

we do have the evaluation kit of the MAX21100.

As for the code, what does it do?

We will be using a LDO regulator to supply the MAX21100.


the device is already here and we have put it in a board based on the specification the data sheet of the MAX21100 stated.

the LDO regulator is also here and we use the MAX8869 which outputs a voltage of 1.8V.

now, what we are doing is knowing the address of the device using the I2C bus scanner code and we are having trouble with it. it just says scanning and nothing follows. Btw, we got the I2C scanning program from the arduino forum.

Can you help us in this case?

Thank you! :)