IMU & motion-sensor obsolescence: which 6- and 9-axis MEMS parts are EOL & how to cross them
The MEMS inertial measurement unit, the 6-axis part combining a 3-axis gyroscope and accelerometer, and its 9-axis sibling that adds a magnetometer, is one of the most widely designed-in sensor blocks in electronics, and much of the generation that defined it is now obsolete. TDK has retired the MPU line, and the Bosch parts engineers reach for as crosses are themselves mid-retirement. What decides each swap is the register map and the driver identity the host firmware binds to, and whether the candidate even carries the sensor you need and is itself still in production. The footprint match tells you none of that. Suggested candidates to validate in your own design, not drop-in equivalents.
The family map
Every legacy MPU routes to a current-generation forward part. Unlike a footprint swap, the arrow crosses a new register map and a new driver identity every time. Where the maker's own named successor is itself end-of-life, the forward node is red: read that as a signal to skip to the current generation, not stop at the exit.
+ driver
+ driver
itself EOL
What is going EOL, and the two ways it happens
MEMS IMUs are not all reaching end-of-life the same way, and the difference decides whether the obvious cross even helps. Diagnose the case first.
The MPU generation, retired wholesale
The MPU-6000 and MPU-6050 carry an “Obsolete” status on TDK's Product Center, the MPU-9250 is obsolete, and even the ICM-20948 named as the 9-axis step-up is itself EOL at TDK. The forward line is the current ICM-426xx generation, in production, on a different register architecture.
LTB defers, doesn't remove the requalThe cross-vendor alternates, dying too
The Bosch parts most often cross-shopped are no safe harbour: the BMI160 is at Bosch end-of-life and not for new designs (Bosch PDN of 27 March 2024: last order acceptance 15 October 2024, last shipment ex-factory 15 April 2025), and the BNO055 is NRND. Bosch names the BMI270 and BMI323 as the forward path.
The obvious cross is dying tooThe durable path is the maker's current-generation part, the ICM-426xx line at TDK, the BMI270 or BMI323 at Bosch, the LSM6DS3 family at ST. Every one of those is a register-map and driver change, not a footprint swap.
The four catches that decide every IMU cross
Register map & driver identity Load-bearing
Firmware keyed to the RM-MPU-6000A map and its WHO_AM_I value stops matching the moment the silicon changes. No active cross keeps that map. The ICM-426xx line answers on its own bank-switched architecture, the Bosch parts on a Bosch model (the BMI270 uploads a config file every power-on), the BNO055 on a fusion register set.
Sensor content: gyro? raw data?
A distributor “motion sensor” tag does not promise a gyroscope or raw output. The ADXL345 is a 3-axis accelerometer with no gyro; the BNO055 is a 9-axis fusion SiP outputting absolute orientation, not a raw-register match. Match the sensor class, not the label.
The candidate's own lifecycle
Many parts a cross-reference returns are themselves EOL or NRND: the BMI160, the MPU-9250, the ICM-20948, the BNO055. A cross that is itself dying relocates the obsolescence. Confirm each candidate's own standing at the maker field before you design it in.
Package & footprint
No cross shares an MPU footprint. The MPU-6000 and MPU-6050 are 24-pin QFNs; the active crosses sit in different LGA and QFN packages with different pin counts. Every cross is a board re-layout, never a pin-for-pin swap.
The IMU & motion-sensor landscape
The common parts a cross-reference returns, mapped by the axis that actually decides the swap, the register map and driver identity, plus the sensor class and the part's own lifecycle. Confirm every lifecycle standing at the maker field before you design a part in.
| Part | Vendor | Sensor class | Register map / driver identity | Lifecycle |
|---|---|---|---|---|
| MPU-6000 | TDK InvenSense | 6-axis (gyro + accel) | RM-MPU-6000A, WHO_AM_I 0x68 | Obsolete TDK status field |
| MPU-6050 | TDK InvenSense | 6-axis (gyro + accel) | RM-MPU-6000A (shared) | Obsolete TDK status field |
| MPU-9250 | TDK InvenSense | 9-axis (+ magnetometer) | RM-MPU-9250A, mag at aux I2C | Obsolete TDK status field |
| ICM-20948 | TDK InvenSense | 9-axis (+ magnetometer) | own bank-switched map | EOL at TDK |
| BMI160 | Bosch Sensortec | 6-axis (gyro + accel) | Bosch register map | Obsolete Bosch PDN, last order 15 Oct 2024 |
| BNO055 | Bosch Sensortec | 9-axis fusion SiP (fused) | fusion set + operating modes | NRND at Bosch |
| ADXL345 | Analog Devices | 3-axis accel, no gyro | accelerometer registers only | Active |
| ICM-42688-P | TDK InvenSense | 6-axis (gyro + accel) | bank-switched, new WHO_AM_I | Active TDK current gen |
| ICM-42670-P | TDK InvenSense | 6-axis (gyro + accel) | own architecture, new WHO_AM_I | Active TDK-named alternate |
| BMI270 | Bosch Sensortec | 6-axis (gyro + accel) | Bosch map + config upload/boot | Active Bosch forward path |
| LSM6DS3 | STMicro | 6-axis (gyro + accel) | ST register map | Active cross-vendor path |
The load-bearing column is register map / driver identity: no active cross keeps the RM-MPU-6000A map, so every migration off an MPU part is a driver rewrite. The sensor-class column is what rules a mislabelled “IMU” cross in or out. Lifecycle, sensor and register data is vendor-reported, not independently audited.
The per-part teardowns
Each legacy part has a full forensic teardown, carrying the fit-catch on every cross, the comparison table and the migration path:
TDK · SPI 6-axis, obsolete
MPU-6000 vs ICM-42688-P: migrating off the obsolete IMU
The SPI 6-axis part, its current-generation TDK migration target, the Bosch cross-vendor path, and the MPU-6050 sibling that is itself obsolete.
TDK · I2C 6-axis, obsolete
MPU-6050 replacement: the obsolete 6-axis IMU cross-reference
The I2C 6-axis part, screened against the BNO055, BMI160, ADXL345 and MPU-9250 crosses engineers search, and TDK's own named alternate, the ICM-42670-P.
TDK · 9-axis, obsolete
MPU-9250 & MPU-9255 replacement: the obsolete 9-axis IMU cross-reference
Three part numbers ended in one notice, the magnetometer the 6-axis crosses quietly drop, and the ICM-20948 TDK names as the exit, itself end-of-life. None of the searched crosses survives the screen.
How to approach an IMU obsolescence
No single winner across the family. Look for a fit to your design and, above all, your host firmware:
Go to the maker's current generation Durable path
For a TDK design that is the ICM-426xx line (the ICM-42688-P or ICM-42670-P), for Bosch the BMI270 or BMI323, for a cross-vendor move ST's LSM6DS3 family. Each is in production, and each changes the register map and the driver.
Diagnose whether your cross is itself dead first
Several obvious crosses, the BMI160, the MPU-9250, the ICM-20948 and the BNO055, are themselves EOL or NRND. Confirm the candidate's own standing at the maker field before you qualify it.
The register-map & driver rewrite is the gating validation
The target has to enumerate on its own WHO_AM_I identity and stream correctly in your firmware before the board is committed. Prove it on a breakout ahead of the re-layout.
Every cross is a board re-layout
No active cross shares an MPU footprint or pin count, so budget the package change alongside the firmware work and, for a 9-axis part, a separate magnetometer sub-system if the forward part drops it.
Requalify in your own system
A matching axis count and interface do not qualify the part; validate the register map, the sensor content and the calibration in your design.
Frequently asked questions
Which MEMS IMUs and motion sensors are obsolete?
The TDK InvenSense MPU-6000 and MPU-6050 are obsolete on TDK's own status field, the MPU-9250 is obsolete at TDK and the ICM-20948 is end-of-life, the Bosch BMI160 is at Bosch end-of-life, and the Bosch BNO055 is not recommended for new designs. Confirm the exact part you use at the maker field; the current-generation parts are the TDK ICM-426xx line, the Bosch BMI270 and BMI323, and ST's LSM6DS3 family.
Are 6-axis IMUs interchangeable?
Not as drop-ins. They share a function, but each part answers on its own register map with its own WHO_AM_I identity, the sensor content differs (some cross-shopped parts have no gyroscope or output fused orientation rather than raw data), the packages and pinouts differ, and several of the obvious crosses are themselves end-of-life. Any host firmware keyed to the old register map and identity must be reworked, and every cross is a board re-layout.
What replaces the MPU-6050 and the MPU-6000?
Each has its own set of real crosses with a specific catch; the teardowns linked above work them in full. In short: the current-generation TDK parts are the ICM-42670-P (TDK's named MPU-6050 alternate) and the ICM-42688-P, each on its own register architecture; the cross-vendor options are Bosch's BMI270 and ST's LSM6DS3. Treat all as candidates to validate, not drop-ins.
Is the BMI160 or the BNO055 a safe cross for an obsolete MPU part?
Neither is a durable long-term cross. The BMI160 is at Bosch end-of-life and not available for new designs (Bosch PDN of 27 March 2024: last order acceptance 15 October 2024, last shipment ex-factory 15 April 2025), and Bosch names the BMI270 and BMI323 as the forward path. The BNO055 is NRND at Bosch, and it is a 9-axis fusion System in Package that outputs absolute orientation on its own register set, not a raw-register match. Crossing to either can relocate the obsolescence.
Does the register map change when moving off an MPU part?
Yes, on every active cross. The MPU-6000 and MPU-6050 share the RM-MPU-6000A register map, and no active candidate keeps it: the ICM-426xx generation uses its own bank-switched architecture with a new WHO_AM_I identity, the Bosch parts use a Bosch register model (the BMI270 also uploads a configuration file at each boot), and the BNO055 uses a fusion register set. The driver rewrite is the core of the migration.
Keep reading
Sources · public, primary
- TDK Product Center MPU-6000 status (Product Status: Obsolete), archived 2025-11-15
- TDK Product Center MPU-6050 status (Obsolete; alternate ICM-42670-P, “interchangeability is not guaranteed”), archived 2025-09-15
- MPU-6000 and MPU-6050 Register Map and Descriptions (RM-MPU-6000A, PDF)
- ICM-42688-P product page (TDK InvenSense)
- ICM-42670-P product page (TDK InvenSense)
- MPU-9250 product page (TDK InvenSense, 9-axis)
- ICM-20948 product page (TDK InvenSense, 9-axis, itself EOL)
- BMI160 part status Obsolete (DigiKey product page)
- Bosch Sensortec Product Discontinuance Notification, BMI160, 27 March 2024 (PDF)
- Bosch BNO055 product page (9-axis absolute orientation sensor)
- Analog Devices ADXL345 product page (3-axis accelerometer)
- ST LSM6DS3 product page (6-axis IMU, migration path)
Lifecycle, package, sensor and register data is vendor- and distributor-reported, not independently audited. Alternates are candidates to validate in your own design. Confirm every detail with the manufacturer before committing.
About the author