MPU-9250 and MPU-9255 replacement: obsolete 9-axis IMU cross-reference (2026)
The MPU-9250 is end-of-life at TDK, and the part TDK's own status field names as its replacement is itself end-of-life. One notice, PCN-000223, ends the MPU-9250, the MPU-9250M and the MPU-9255 together and points all three at that same ICM-20948. The searched crosses then split three ways: the 6-axis ones drop the magnetometer entirely, the fusion part replaces raw 9-axis registers with fused orientation, and the same-family sibling is retired by the same notice as the part it would replace. Suggested candidates to validate in your own design, not drop-in equivalents.
Status // Three part numbers, one notice
Lifecycle status
The MPU-9250 is end-of-life on TDK's own status field. TDK's Product Center renders Product Status as “EOL announced” and names the Recommended Alternate as the ICM-20948, with the vendor's qualifier “Interchangeability is not guaranteed.” The live page blocks automated fetches, so that line is read from the archived capture dated 2022-03-18. PCN-000223 discontinues the part in the same terms, so status field and PCN agree.
PCN-000223 is why this page covers three part numbers: it names the MPU-9250, MPU-9250M and MPU-9255 in a single action, gives one alternate for all three, and sets last order 2019-02-07 and last ship 2019-08-07. The distinguishing feature is that the vendor's named exit is itself retired: the ICM-20948 carries an EOL status on TDK's own product page. Last-time-buy stock defers the migration without removing the requalification, and sourcing threads report counterfeit MPU-9250 parts in circulation, reason enough to stay in authorized channels.
Current stock levels, broker availability and pricing are point-in-time figures, kept off this evergreen page.
Candidates // Why these
The candidate set
The MPU-9250 core, for reference: nine axes as two stacked dies, a 6-axis inertial die plus an AsahiKasei AK8963 magnetometer, in one 24-pin QFN of 3×3×1mm, on I2C and SPI, answering on the RM-MPU-9250A map with WHO_AM_I 0x71. The magnetometer is not more registers on that map: it is a separate sub-device at auxiliary-I2C 0x0C, and therefore its own firmware target.
Catch: two separate problems. It keeps all nine axes, but a bank-switched map and a different device identity mean an MPU-9250 driver will not enumerate it (TDK: “interchangeability is not guaranteed”). And it carries an EOL status on TDK's own product page, so the exit TDK prints is already closing.
Catch: fused output, not a raw-register match. A System in Package running Bosch's fusion stack internally, returning absolute orientation on its own register set. An MPU-9250 design reads raw registers, so the data model and driver are rebuilt either way. Bosch also lists it not recommended for new designs.
Catch: fails on sensor content and on lifecycle. No magnetometer, so it drops the compass axis and any design reading heading needs a separate magnetometer alongside it. It is also itself end-of-life: PCN-000759 sets last-time-buy 2026-03-23, last-time-ship 2026-09-23, and names no alternate device.
Catch: named in the same notice as the subject. The closest same-vendor 9-axis part, and listed alongside the MPU-9250 in PCN-000223. Crossing to it qualifies a part TDK has already retired.
Catch: a dead end on both counts. No magnetometer and itself obsolete at TDK, so it neither returns the compass axis nor offers a durable lifecycle. Worked in full in the MPU-6050 cross-reference.
Also named, not built into the comparison: the BNO085 (fusion device, not raw-register), the BMI160 (6-axis, no magnetometer, itself EOL at Bosch), and the ADXL345 (accelerometer only, at most one third of the MPU-9250). None of the parts named is a drop-in.
Screening // Two questions, five candidates
The two questions that end every cross
Footprint is a red herring here: the ICM-20948 shares the MPU-9250's QFN-24 3×3×1mm outline and is still not interchangeable, because the barrier is the register map, not the pin pattern. Two other facts decide it, and neither is a filterable column in a distributor cross-reference.
Screening pass · ahead of the parametric search
The screen comes before the parametric search. A cross-reference sorts on function, interface and package; it cannot express which results are still made and which expose raw registers rather than fused output. Suggested candidates to validate in your own design, not drop-in equivalents.
Parametrics // Side by side
Comparison table
Sensor content and lifecycle are settled in section 03. What remains is the fit and firmware detail: bus, footprint, register identity, and where the magnetometer lives.
| MPU-9250 (subject) | ICM-20948 | BNO055 | MPU-6500 | MPU-9255 | MPU-6050 | |
|---|---|---|---|---|---|---|
| Vendor | TDK InvenSense | TDK InvenSense | Bosch Sensortec | TDK InvenSense | TDK InvenSense | TDK InvenSense |
| Host interface | I2C + SPI | I2C + SPI | I2C + UART | I2C + SPI | I2C + SPI | I2C only |
| Package | QFN-24, 3×3×1mm | QFN-24, 3×3×1mm, same outline | LGA-28, 3.8×5.2×1.13mm | QFN-24 | QFN-24 | QFN-24, 4×4×0.9mm |
| Register map / driver identity | RM-MPU-9250A, WHO_AM_I 0x71 | Bank-switched, different WHO_AM_I; new driver | Fusion register set; new driver | Own 6-axis map; new driver | Own 9-axis map; new driver | RM-MPU-6000A; new driver |
| Where the magnetometer lives | AK8963 sub-device, aux I2C 0x0C | On the part's own map, not aux I2C | Behind the fusion stack; no raw mag path by default | None | On its own 9-axis map | None |
| Status confidence | Confirmed (TDK field via archive 2022-03-18 + PCN-000223) | Confirmed (TDK product page) | Confirmed (Bosch NRND) | Confirmed (PCN-000759) | Confirmed (PCN-000223) | Confirmed (DigiKey obsolete) |
The load-bearing rows are register map and where the magnetometer lives: a driver written to the RM-MPU-9250A map and its auxiliary-I2C magnetometer stops matching the instant the silicon changes, and no candidate keeps that arrangement, matching package included. Package, interface and register data is vendor-reported, not independently audited.
Next // The decision
What to do next
No candidate survived the screen, so the path forward is a current-generation part from outside the searched set, and it forks on one question: does the design need raw magnetometer data, or can it consume fused orientation?
Path A · designs that need raw 9-axis data
+ a separate magnetometer
A current 6-axis IMU paired with a current magnetometer, sized and calibrated as two devices rather than one. The honest cost of leaving a discontinued single-package 9-axis part.
- Qualify the magnetometer as its own sub-system
- Re-layout for two sensor sites, not one QFN-24
- Budget hard- and soft-iron calibration for the new placement
Path B · designs that can consume fused orientation
A current fusion device returns absolute orientation on its own register set, which removes the host-side fusion work but replaces the raw-register data model and ties the design to that vendor's output.
- Confirm current lifecycle status at Bosch before designing in
- Rewrite the host for a fused-orientation data model
- Check whether any raw-register path your algorithms need is exposed
Both paths
The driver rewrite is the gating validation on both paths.
The target has to enumerate and stream in the existing firmware before any board is committed, and because the magnetometer is a separate sub-device on the MPU-9250, how the replacement exposes its own magnetometer is part of that check. Any last-time-buy stock is worth sourcing through authorized channels, because counterfeit MPU-9250 parts are reported in circulation.
Ruled out in section 03, do not re-open
- ICM-20948TDK-named, itself EOL
- MPU-9255EOL in the same notice
- BNO055NRND, fused output
- MPU-6500EOL, no magnetometer
- MPU-6050obsolete, no magnetometer
- BMI160 / ADXL345no mag; EOL / no gyro
What this doesn't say: every lifecycle status above is only what the cited source showed on the verification date, and a status can change after publication, so re-check the sources below before committing a design. None of the parts named is asserted as a drop-in. No end use, program or system is named or implied.
FAQ // Frequently asked
Frequently asked questions
Is the MPU-9250 discontinued or still in production?
The MPU-9250 is discontinued, not in production. TDK's Product Center lists Product Status as “EOL announced” and names the ICM-20948 as its recommended alternate, read from the archived capture because the live page blocks automated fetches, and PCN-000223 covers the end-of-life of the MPU-9250 with the MPU-9250M and MPU-9255. Broker and last-time-buy stock still appears, but the maker status is end-of-life, so the reader-useful move is a planned migration rather than a stock hunt.
What is the recommended replacement for the MPU-9250?
TDK's named recommended alternate is the ICM-20948, and TDK adds “Interchangeability is not guaranteed.” It keeps all nine axes, but it is not code-compatible: its bank-switched register architecture and WHO_AM_I identity differ, so it enters the design as a new part to qualify. It is also itself end-of-life at TDK, its own product page carries the EOL status, so the vendor's named path is already retired.
Is the ICM-20948 a drop-in replacement for the MPU-9250?
No. It keeps the 9-axis sensor content and even the QFN-24 3×3×1mm outline, but it answers on a bank-switched register architecture with a different WHO_AM_I identity, so an MPU-9250 driver will not enumerate or configure it, and migration reports describe it as not exactly code compatible. TDK states “interchangeability is not guaranteed,” and publishes an app note specifically for this migration.
Can I replace the MPU-9250 with a 6-axis part like the MPU-6500 or MPU-6050?
Only if the design does not use the magnetometer, and neither is a durable choice. Both are 6-axis with no magnetometer, so any design that reads heading needs a separate magnetometer added alongside. Both are also end-of-life or obsolete at TDK: the MPU-6500's last-time-buy was 2026-03-23 per PCN-000759, and the MPU-6050 is obsolete.
Is the MPU-9255 still available as an MPU-9250 alternative?
No. The MPU-9255 is named alongside the MPU-9250 in the same end-of-life notice, PCN-000223, and is itself end-of-life at TDK. It is the closest same-family 9-axis part, which is why it is cross-shopped, but crossing to it moves the design onto another discontinued TDK part.
How is the BNO055 different from the MPU-9250?
Both count nine axes, but they deliver them differently: the MPU-9250 streams raw gyroscope, accelerometer and magnetometer registers, while the BNO055 runs Bosch's fusion firmware on-chip and returns a finished absolute-orientation result on its own register set over I2C or UART. A host expecting raw MPU-9250 registers cannot read a BNO055 unchanged, and Bosch lists it as not recommended for new designs.
Does the register map change when moving off the MPU-9250?
Yes, on every cross. The MPU-9250 answers on the RM-MPU-9250A map with WHO_AM_I 0x71 and reaches its AK8963 magnetometer as a sub-device through auxiliary I2C, and no cross keeps that arrangement. The ICM-20948 uses a bank-switched architecture with a different identity, the BNO055 uses a fusion register set, and the 6-axis crosses have no magnetometer registers at all. The register-map port and the driver rewrite, including how the magnetometer is read, are the core of the migration.
Sources // Public, primary
Sources
- TDK Product Center MPU-9250 status (“EOL announced”; alternate ICM-20948, “interchangeability is not guaranteed”), archived 2022-03-18
- TDK PCN-000223: MPU-9250 / MPU-9250M / MPU-9255 end-of-life (DigiKey mirror, PDF)
- MPU-9250 product status (DigiKey)
- MPU-9250 product page (TDK InvenSense, 9-axis)
- MPU-9250 Product Specification (PS-MPU-9250A, PDF) and Register Map (RM-MPU-9250A)
- TDK app note: “Migrating from MPU-9250 to ICM-20948” (PDF)
- ICM-20948 product page (TDK InvenSense, 9-axis; itself EOL)
- AsahiKasei AK8963 3-axis magnetometer datasheet (the on-die magnetometer, PDF)
- MPU-6500 product page (TDK InvenSense, 6-axis)
- TDK PCN-000759: MPU-6500 end-of-life; LTB 2026-03-23, LTS 2026-09-23 (DigiKey mirror, PDF)
- MPU-9255 product page (TDK InvenSense, 9-axis)
- MPU-6050 product status (DigiKey, Obsolete)
- Bosch BNO055 product page (9-axis absolute orientation sensor)
- Bosch BNO085 product page (9-axis fusion sensor)
- Analog Devices ADXL345 product page (3-axis accelerometer)
- PX4 / Dronecode: “MPU-9250 End of Life, Migrate to ICM-20948?”
- GitHub pypilot #59: “MPU-925x Obsolescence”
- GitHub kriswiner/MPU9250 #480: “Alternative to MPU9250 and BNO055”
Part of // Featured in
Related reading
Editorially independent and from public sources only; lifecycle, package, electrical and interface data is vendor-reported, not independently audited. Alternates are candidates to validate in your own design, so confirm every detail with the manufacturer before committing.
About the author
Editorially independent and from public sources only; lifecycle, pin and rating data is vendor-reported, not independently audited. Alternates are candidates to validate in your own design. Confirm every detail with the manufacturer before committing.