Wondering which motion sensor is right for you? Take a look here.
The MAX21100 sensor is no longer being produced and Maxim has exited the MEMs sensor business. I have an inventory of these parts and can now ship these boards worldwide until the inventory is exhausted.
This is a breakout board for Maxim Integrated's MAX21100 6-axis gyroscope/accelerometer motion sensor coupled with ST Microelectronic's LIS3MDL magnetometer and Measurement Specialties' MS5637 altimeter/pressure sensor. The board is designed to be two boards in one: either mount it directly to the Teensy 3.1 Cortex M4 ARM microcontroller or, by connecting the solder jumpers on the back of the breakout board, mount it in a breadboard for interfacing with any convenient microcontroller such as a 3.3 V Arduino Pro Mini. The sensors are NOT 5 V tolerant so use only 3V3 power and logic; if necessary, use a logic level converter. The board is hardwired for I2C communication partly because the MS5637 pressure sensor is I2C only, and because the MAX21100 uses I2C to communicate with the magnetometer when slaved to the MAX21100.
The MAX21100 has a DSYNC pin for syncing with a camera for motion stabilization or several other functional modes as well as two configurable interrupt pins. The LIS3MDL has one data ready and one interrupt pins. All of these signals pins are broken out to pins on the board. The breakout board also comes with a jumper to select the use of the 4K7 pull-up resistors on the board (jumper has been soldered in the photograph above).
The MAX21100 supports both bypass mode, where the microcontroller can directly control and access the data registers of all the sensors as I2C slaves, and the master mode where the MAX21100 is the I2C master to the magnetometer I2C slave, reads the magnetometer data and stores it in registers readable directly from the MAX21100. This is pretty standard and is similar to the capability found in Invensense's MPU9250, which can also act as master to an external magnetometer and up to four other external devices. And like the embedded MPU9250 Digital Motion Processor (DMP), the MAX21100 has an internal sensor fusion engine (Motion Merging Engine or MME) that can return quaternions. Unlike the MPU9250, however, the MAX21100 fuses data from all three sensors- accelerometer, gyroscope, and magnetometer- in hardware without having to load a binary blob into the microcontroller memory, delivers true 9 DoF hardware sensor fusion rather than the 6 DoF hardware + 9 DoF in software the MPU9250 DMP is currently limited to, and uses a simple interface where the quaternions can be read directly from MAX21100 registers just like the accelerations or rotation rates. Easy to understand and easy to use!
I have written a well-commented sketch that runs on the Teensy 3.1 (and with small modification, the Arduino 3.3 V Pro Mini) that accesses most of the features of the MAX21100 + LIS3MDL + MS5637 including initializing and configuring the sensors, performing the self tests, using the 128-byte FIFO for calibrating the accelerometer and gyroscope, reading the data registers and properly scaling the data depending on the user specified full scale, data read rate, bandwidth, etc. The sketch runs in either bypass mode or master mode, and uses open-source Madgwick and Mahony 9 DoF sensor fusion filters to estimate absolute sensor orientation with respect to Earth's True North, as well as yielding quaternions, yaw, pitch, and roll, and other heading information as required. The sketch can also run the sensor fusion in hardware on the MAX21100 using the magnetometer data from the slaved LIS3MDL.
All is not sweetness and light. The MAX21100 data sheet and register map are terse in many places and have annoying typos that make full use of the MAX21100 sensor's capabilities a challenge. I have figured out how to use most of the features but the sketch is a work in progress and I am in contact with Maxim Integrated who so far have been very forthcoming in answering my questions.
Also, when using the MAX21100 in bypass mode all control over the magnetometer is given up by the microcontroller to the MAX21100, as it should. However, this means that the microcontroller can no longer talk to the pressure sensor either. However, it is straightforward to toggle the MAX21100 from master to bypass mode in order to continue getting altitude and temperature updates. In the sketch, I only update the pressure, altitude, and temperature from the MS5637 at 2 Hz anyway since these do not change rapidly and reading these data too often slows down the 9 DoF sensor fusion. Taking the MAX21100 out of master mode to read from the pressure sensor at this rate does not change the 9 DoF sensor fusion filter update rate.
Speaking of sensor fusion filter rates, in my testing so far I get rates which vary from 0.95 kHz with hardware sensor fusion, 1.04 kHz with Madgwick sensor fusion in bypass mode, and 1.6 kHz for Mahony sensor fusion in master mode, all with the Teensy 3.1 running at 48 MHz. I've just started to make use of this sensor breakout board and there is a lot more testing I want to do. But the board works as designed, as do the sensors, and the breakout board is ready for someone (in addition to me!) to explore how to use the MAX21100 and its rather unique capabilities.
I wanted to test for myself the rather extraordinary claim by Maxim Integrated that the MAX21100 can do 9 DoF sensor fusion in hardware on the chip in such a small (3 mm x 3 mm) and inexpensive ($7.50 for the sensor) package that results in quaternions that can be read directly from the data registers without the proprietary binary blob loaded on the microcontroller's precious Flash memory. So far, I find the claims to be true. Remarkable! Is it as fast, as accurate, as stable as the open-source algorithms? I don't know yet, I am still in the middle of testing. Yes, we do not know what the algorithms are that Maxim Integrated uses. But at least we have some control over the coefficients of the algorithm and clever folks can probably figure out what the main features of the algorithm are.
I am interested in motion sensing in general and I find this new sensor to have capabilities worth exploring! Coupled with the fine LIS3MDL magnetometer (also used in the LSM9DS0), this small and versatile breakout board offers those serious about motion sensing and motion control a potentially very useful new tool for their applications.
In addition to the unique capabilities of the sensors themselves, this board has been designed as two boards in one. Mount it directly on the Teensy 3.1 as a Mini Add-On board, just like the LSM9DS0 or MPU9250 Mini Add-On boards already offered. Or solder the jumpers on the back of the breakout board so that 3V3 and GND can be supplied via the pins broken out on the board edge and the board can be used like any other breakout board mounted in a breadboard and usable with any 3V3 compliant microcontroller.
Build your own board using my design, or order a breakout board from me and see if this sensor combination is right for your application!
|Shipping Rate||First item||Additional items|
United States Postal Service: Standard Ground Rate with tracking
United States Postal Service: Priority Mail with tracking
Priority mail for faster delivery only available withing the US.
We recognize our top users by making them a Tindarian. Tindarians have access to secret & unreleased features.
We look for the most active & best members of the Tindie community, and invite them to join. There isn't a selection process or form to fill out. The only way to become a Tindarian is by being a nice & active member of the Tindie community!
One-man maker shop with a focus on appallingly small, value-added products. Specialties include motion sensing and motion control applications.
If you don't see what you want, let me know what it is, I might be able to help!
See here for my story: https://www.maker.io/en/interviews/2016/interview-with-kris-winer---pesky-products